Data Masking ให้รู้ว่ามีอยู่จริง แต่ขอปิดไว้นะ

Data Masking เป็นวิธีการสร้างข้อมูลใน Version ที่มีโครงสร้างเหมือนกันในระดับชัดข้อมูล ตารางหรือ template ข้อมูล แต่มีการแปลงข้อมูลให้เปลี่ยนไปจากเดิม เช่น รหัสนักศึกษา จาก 6600123 เป็น D2RT126 เป็นต้น และถ้า field หรือ Column มีคุณสมบัติเป็น Unique key ก็ต้องรักษาคุณสมบัตินั้นไว้ ซึ่งสามารถนำไปใช้เพื่อวัตถุประสงค์ต่างๆ เช่น การทดสอบซอฟต์แวร์ การฝึกอบรมผู้ใช้ การส่งต่อให้ทีมงานอื่นๆไปทำงานต่อ แต่ไม่ต้องการให้เห็นข้อมูลที่แท้จริง และการเอาข้อมูลไปเผยเพร่ในรูปแบบ Open Data

ทำ Data Masking เพื่อปกป้องข้อมูลจริงแต่ผลลัพธ์ต้องเหมือนกับชุดข้อมูลจริงต้นฉบับ เช่น ถ้านับจำนวนจากรหัสนักศึกษาจริง ก็ต้องมีผลเท่ากับที่นับจากจำนวนรหัส masking ที่จัดทำขึ้น

เมื่อกฏหมาย PDPA มีบทลงโทษที่ชัดเจนทางกฏหมาย การทำ Data Masking ก็เป็นช่องทางที่ช่วยลดความเสี่ยงต่อการทำให้ข้อมูลรั่วไหลไปโดยไม่ได้ตั้งใจ

Data masking ต่างจาก encryption ตรง Encrypted สามารถ decrypted ได้ข้อมูลกลับมาเหมือนเดิม และอาจจะทำให้ไม่สามารถวิเคราะห์ข้อมูลบางจำพวกได้เมื่อ Encrypted ข้อมูลไปแล้ว เช่น วันเกิด เป็นต้น แต่ Masked Data จะต้องไม่มี algorithm ไหนนำกลับข้อมูลให้เหมือนต้นฉบับได้ ไม่สามารถ reverse engineered ได้ และไม่สามารถใช้ความสามารถทางสถิติในการระบุตัวบุคคลได้ เช่นการเอาข้อมูลต่าง ๆ ที่ได้มาประกอบขึ้นเพื่อระบุว่าเป็นข้อมูลของใครคนใดคนหนึ่งได้

เทคนิคการทำ Data Masking

Scrambling การเข้ารหัสแบบสุ่ม เป็นการสร้างความยุ่งเหยิงให้ข้อมูล

Substitution เทคนิคนี้จะแทนที่ข้อมูลเดิมด้วยค่าอื่นจากการหาค่าที่น่าเชื่อถือและเป็นค่าประเภทเดียวกับข้อมูลที่แทนที่ โดยสร้างตารางข้อมูลที่จะใช้เพื่อแทนข้อมูลต้นฉบับ ต้องมีการตั้งกฎเพื่อรักษาลักษณะเดิมของข้อมูลไว้

การใช้การแทนที่ทำได้ยากกว่าการเข้ารหัสข้อมูล แต่สามารถนำไปใช้กับข้อมูลหลายประเภทและให้ความปลอดภัยที่ดี ตัวอย่างเช่น คุณสามารถแทนที่หมายเลขบัตรเครดิตด้วยหมายเลขที่ผ่านกฎการตรวจสอบของผู้ให้บริการบัตร

Shuffling การสับเปลี่ยนข้อมูลโดยการสุ่ม เช่นการสลับนามสกุลของลูกค้า

Date aging วิธีนี้จะเพิ่มหรือลดฟิลด์วันที่ตามช่วงวันที่ที่ระบุไว้แล้วตามกฏที่ตั้งไว้

Variance วิธีการนี้มักใช้เพื่อปกปิดข้อมูลมูลค่าทางการเงินและการทำธุรกรรมและข้อมูลวันที่ Algorithm ความแปรปรวนจะปรับเปลี่ยนตัวเลขหรือวันที่แต่ละคอลัมน์โดยสุ่มเป็นเปอร์เซ็นต์ของค่าจริง ตัวอย่างเช่น คอลัมน์ของเงินเดือนพนักงานอาจมีความแปรปรวนเป็นบวกหรือลบ 5% ที่ใช้กับคอลัมน์นั้น การทำเช่นนี้จะเป็นการปลอมแปลงข้อมูลที่สมเหตุสมผลในขณะที่รักษาช่วงและการกระจายของเงินเดือนให้อยู่ภายในขีดจำกัดที่มีอยู่

Masking out การปิดบังจะแปลงค่าเพียงบางส่วนเท่านั้น และมักใช้กับหมายเลขบัตรเครดิตที่มองเห็นเพียงตัวเลขสี่หลักสุดท้ายเท่านั้น เดียวนี้เราน่าจะเห็นบ่อยๆ วันก่อนแม่เข้า รพ. ปกติบนกระดานในหอผู้ป่วยจะเขียนเบอร์โทรหมอไว้แบบพร้อมใช้งาน เดียวนี้จะเขียนไว้แค่ 3 ตัวหลังเท่านั้น

Nullifying จะแทนที่ค่าจริงในคอลัมน์ข้อมูลด้วยค่า NULL ซึ่งจะเป็นการลบข้อมูลทั้งหมดออก แม้ว่าการลบประเภทนี้จะใช้งานได้ง่าย แต่ไม่สามารถใช้คอลัมน์ที่ไม่มีค่าในการค้นหาหรือการวิเคราะห์ได้ ส่งผลให้ความสมบูรณ์และคุณภาพของชุดข้อมูลสำหรับสภาพแวดล้อมการพัฒนาและการทดสอบลดลงได้

ประเภทของ data masking

Static data masking จะสร้างชุดข้อมูลที่ปิดบังแยกต่างหากจากฐานข้อมูลจริงในที่ใหม่ เช่น การวิจัย การพัฒนา และการสร้างแบบจำลอง ค่าข้อมูลที่ปกปิดต้องสร้างผลการทดสอบและการวิเคราะห์ที่สะท้อนข้อมูลต้นฉบับและคงอยู่เมื่อเวลาผ่านไปเพื่อให้แน่ใจว่าผลลัพธ์ที่ถูกต้องและทำซ้ำได้

Dynamic data masking  เป็นการรักษาความปลอดภัยตามบทบาทโดยเฉพาะในระบบที่ใช้งานจริง เมื่อผู้ใช้ต้องการข้อมูลจริง Dynamic data masking จะแปลง บดบัง หรือบล็อกการเข้าถึงฟิลด์ข้อมูลที่ละเอียดอ่อนตามบทบาทของผู้ใช้ ตัวอย่างเช่น ต้องการใช้ข้อมูลนักศึกษาทั้วไปไม่จำเป็นที่ต้องให้เห็น รหัสบัตรประชาชน วันเดือนปีเกิด ก็ทำการปกปิดไป

On-the-fly data masking เป็นการปกปิดข้อมูลในขณะโอนข้อมูลไปสู่อีกที่นึ่ง หรือไปอยู่ในฐานข้อมูลทดสอบต่าง ๆ  

ความยากของการทำ Data Mask คือความซับซ้อนของข้อมูลที่นำมาทำตามรูปแบบข้างต้นที่ต้องรักษา Referential integrity * ไว้และยังต้องรักษากฏตาม Data governance policy ด้วย

ดีต่อมหาวิทนาลัยอย่างไรเมื่อมีการใช้ Data masking

  1. ป้องกันการละเมิดข้อมูลและเพิ่มความปลอดภัยให้กับข้อมูล
  2. ทำ Data masking ก่อนการการพัฒนาระบบ การทดสอบ และการวิเคราะห์ ช่วยให้สามารถแชร์ข้อมูลสำคัญทั้งภายในและภายนอกได้ ในขณะที่ยังคงเป็นไปตามข้อบังคับ หรือ กฏหมาย PDPA
  3. ควบคุมการเข้าถึงข้อมูลอย่างเหมาะสมตามบทบาท
  4. ทำให้ผู้ใช้งานสบายใจและไม่ต้องกังวลเรื่องข้อมูลรั่วไหลแล้วต้องรับผิดชอบต่างๆนาๆ เพราะข้อมูลที่นำมาใช้งานได้ปกป้องผู้ใช้งานอยู่แล้ว อันนี้ดีสุด

ข้อมูลประกอบอื่น ๆ

* Referential integrity ทำให้ข้อมูลมีทั้ง consistent และ accurate โดยการจัดทำ foreign key ที่ต้องมีค่าข้อมูลในอีกตารางเท่านั้นถึงจะปรากฏในตารางปลายทางได้ การสร้าง Trigger หรือ stored procedure เพื่อควบคุมการทำ CRUD ข้อมูล

** Data sanitization เป็นกระบวนการลบ Sensitive Data หรือ Confidential Data จากฐานข้อมูลมีวิธีทำดังนี้

  1. Overwriting the data with random characters สร้างข้อมูลสุ่มมาแทนที่ข้อมูลเดินแบบไม่ให้สามารถย้อนหลังข้อมูลได้
  2. Degaussing การลบข้อมูลแบบใช้สนามแม่เหล็ก (powerful magnetic)
  3. Physical destruction เป็นการทำลายอุปกรณ์จัดเก็บไปเลย

คำถามต่อไปที่จะหาคำตอบคือมี Tools อะไรมาช่วยอำนวยความสะดวกในการจัดทำ Data Masking บ้าง ?

อ้างอิงข้อมูลจาก

Data Masking จากเว็บ https://www.techtarget.com/searchsecurity/definition/data-masking

AI ที่ชื่อ Bard ของ Google : https://bard.google.com/

AI ของ OpenAI : https://chat.openai.com/