Basic Percona กับการปกปิดตัวตน Data Masking

KANIN SRIMACHAN
WeLoveBug dot Com
Published in
2 min readAug 16, 2023

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

https://unsplash.com/photos/XIVDN9cxOVc

ไม่หรือใช่นั้นเราผู้ทดสอบไม่มีทางรู้ จะรู้ก็ต่อเมื่อโดนหมายศาลสไนเปอร์ เนื่องจาก กฎหมายอย่าง PDPA และอื่นๆ ที่เกี่ยวข้องกับความเป็นส่วนตัวของผู้ใช้นั้น ค่อนข้างมาแรงมากๆในปัจจุบัน เราจึงต้องระมัดระวังให้มากขึ้นกว่าแต่ก่อน

วันนี้จะขอเน้นไปทาง ตัวหนังสือซะส่วนใหญ่ก่อนนะครับ เพื่อทำให้ทุกคนเข้าใจว่า อะไรคือ Data Masking และมันจำเป็นยังไง

แต่ทว่าการจะทดสอบบางข้อมูลนั้นต้องใช้ข้อมูลที่เป็นของจริง จริงๆ

แล้วเราจะทำไงละ?

Data Masking จึงนำมาใช้ในกรณีที่

ถึงจะได้กล่าวไปคร่าวๆ ในข้างต้นแล้ว แต่ Data Masking คืออะไรละ

Data Masking คือวิธีที่จะเปลี่ยนแปลงข้อมูลในดาต้าในรูปแบบต่างๆ เพื่อทำการเปลี่ยนแปลง ปกปิด หรือ ลบข้อมูลที่ไม่ได้ใช้ หรือ เป็นข้อมูลที่อ่อนไหวออกไป

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

แล้วสองวิธีข้างต้นใช้ทำอะไรได้บ้างละ?

เราสามารถใช้การ ปกปิด และ ลบข้อมูลออก ในกรณีที่ นำเสนองานกับลูกค้า

เพราะใน 2 กรณีนี้ จะสามารถรับและเขียนได้ไว ทำให้ไม่ต้องเตรียมตัวเยอะในการ นำเสนอกับลูกค้า

แล้ว การเปลี่ยนแปลงข้อมูลละ?

ในวิธีนี้จะเป็นวิธีหลักๆ ที่เราจะใช้ในการทดสอบของเรา เนื่องจากในการทดสอบนั้น หากเราต้องการการทดสอบที่เหมือนจริงที่สุด การใช้ข้อมูลจริงๆจึงจำเป็นต่อการทดสอบ อย่างเช่นยอดการใช้จ่าย หรือ ยอดการซื้อแพ็กเกจ เราไม่มีทางรู้ว่าลูกค้าส่วนใหญ่จะใช้อะไร เราจะสามารถเดาก็ได้ แต่!!! การที่เราเดานั้น ไม่ได้หมายความว่า ข้อมูล ข้อมูลนั้น จะเป็นของที่ลูกค้าใช้บ่อยจริง เราจึงต้องการข้อมูลจริงเพื่อนำมาใช้งาน เพื่อสร้าง Environment ให้เหมือนจริงที่สุด

แล้วเราจะเปลี่ยนแปลงอะไรบ้างล่ะ?

แน่นอนครับ ชื่อ ที่อยู่ เลขประจำตัวประชาชน และ อื่นๆ ที่เป็นข้อมูลที่ละเอียดอ่อนเราสามารถเปลี่ยนได้หมด

โดยการทำ Data Masking จะมีเทคนิคหลักๆ อยู่ 13 อย่าง

โดยแต่ละเทคนิคนั้นจะมีวิธีที่แตกต่างกัน บางเทคนิคก็ ปกปิด บ้างก็ ลบข้อมูลให้เป็น Null และบ้างคือการเปลี่ยนข้อมูล

รูปจากผมเอง

เราจะเห็นว่าเทคนิคส่วนใหญ่ ที่อยู่ในเทคนิคทั้ง 13 ตัวคือการเปลี่ยนแปลงข้อมูล

เพราะ การเปลี่ยนแปลงข้อมูลจะ ทำให้เราทดสอบข้อมูลได้ดีที่สุด

โดยทั้งนี้ ตัวของ Percona ที่ผู้เขียนได้ลองศึกษามา จะใช้หลักๆ อยู่ 5 ข้อ

  1. Data Anonymization (ข้อมูลนิรนาม) — การทำให้ข้อมูลไม่สามารถระบุตัวบุคคลได้
  2. Substitution — แทนที่ข้อมูลต้นฉบับโดยการนำค่าที่น่าเชื่อถือและเป็นค่าประเภทเดียวกันกับข้อมูลต้นฉบับ
  3. Redaction — เป็นการแทนที่ข้อมูลด้วยข้อมูลทั่วไปที่ไม่เกี่ยวข้องกับต้นฉบับ
  4. Scrambling — เป็นการเรียงลำดับตัวอักษรหรือตัวเลขของข้อมูลให้ต่างจากข้อมูลต้นฉบับ
  5. Masking out — เป็นการปิดบังค่าข้อมูลบางส่วน

ในสัปดาห์หน้าเราจะมาพบเจอกันกับ การเตรียมตัวเบื้องต้นของการทำ Data Masking โดยผมจะเริ่มจากการเล่น Masking ก่อน หรือการปกปิดข้อมูลนั้นเอง

เช่น Mark Kanin, 086-566-6565 เป็น **rk kan**, 086-xxx-xxxx

ทั้งนี้อยากให้ผู้อ่านเตรียม ข้อมูลมาเองถ้าเป็นไปได้ และขอให้เตรียม โปรแกรมดังนี้

-Docker

ครับเตรียมมาแค่นั้นก่อน หากมีอะไรเพิ่มเติมจะมาเพิ่ม หรือ บอกให้ในบทความหน้า

ทั้งนี้หวังว่าข้อมูลที่ได้เขียนลงไปจะทำให้ผู้อ่านเข้าใจการทำการ Masking Data ขึ้นไม่มากก็น้อย หากผมทำอะไรผิดพลาดไป หรือตกหล่น ก็ขออภัยมา ณ ที่นี้ครับ

ขอให้เป็นสัปดาห์ใหม่ ที่สดใส ฝนไม่ตก รถไม่ติด ของไม่หาย ไฟไม่รั่ว โชคดีครับ🎉🎉🎊🎊

--

--