GDPR กับข้อมูลทดสอบเป็นหัวข้อที่ทีมพัฒนามักเจอช้าเกินไป คือเจอตอนที่มีคนถามว่าไฟล์สำรองของฐานข้อมูลทดสอบเก็บไว้ที่ไหน ข้อมูลส่วนบุคคลที่ไหลเข้าไปในระบบทดสอบนั้นเดินทางง่ายกว่าที่คิด และมักไปโผล่ในที่ที่ไม่มีใครนึกถึง บทความนี้จะพาคุณดูว่าควรคิดอย่างไรกับข้อมูลประเภทนี้ และแนวปฏิบัติใดที่นำไปใช้ได้ทันทีโดยไม่ต้องรอฝ่ายกฎหมาย
ข้อมูลใดนับเป็นข้อมูลส่วนบุคคล?
ข้อมูลส่วนบุคคลหมายถึงข้อมูลใดก็ตามที่ระบุตัวบุคคลได้ ไม่ว่าจะระบุได้โดยตรงหรือระบุได้เมื่อนำหลายช่องมารวมกัน ในบริบทของข้อมูลตัวตน ช่องที่ชัดเจนที่สุดคือชื่อ นามสกุล เลขประจำตัวประชาชน วันเกิด ที่อยู่ หมายเลขโทรศัพท์ และที่อยู่อิเล็กทรอนิกส์
ช่องที่คนมักมองข้ามคือช่องที่ดูไม่เกี่ยวกับตัวตน เช่นรหัสลูกค้า รหัสอุปกรณ์ รหัสตำแหน่งที่ตั้ง หรือหมายเลขคำขอในไฟล์บันทึก ช่องเหล่านี้ไม่ใช่ชื่อของใคร แต่เมื่อรวมกับข้อมูลอื่นก็ชี้กลับไปหาคนคนหนึ่งได้
ประเด็นสำคัญคือความเป็นส่วนตัวไม่ใช่คุณสมบัติของช่องใดช่องหนึ่ง แต่เป็นคุณสมบัติของชุดข้อมูลทั้งชุด การตัดชื่อออกแล้วเหลือวันเกิดกับรหัสไปรษณีย์ก็ยังไม่ทำให้ข้อมูลนั้นปลอดภัยเสมอไป
ทำไมไม่ควรคัดลอกจากระบบจริงเข้าสู่ระบบทดสอบ?
เหตุผลข้อแรกคือวัตถุประสงค์ของการเก็บ ข้อมูลที่เก็บมาเพื่อให้บริการลูกค้าไม่ควรถูกนำไปใช้เพื่อการทดสอบโดยอัตโนมัติ เพราะเป็นการใช้เพื่อวัตถุประสงค์อื่นซึ่งเจ้าของข้อมูลไม่ได้คาดคิด
เหตุผลข้อที่สองคือระดับการป้องกัน ระบบทดสอบมักถูกมองว่าเป็นระบบชั่วคราว จึงมักตั้งสิทธิ์การเข้าถึงกว้างกว่า เปิดให้ทีมภายนอกเข้าถึงได้ และไม่ค่อยได้รับการตรวจสอบเท่าระบบจริง
เหตุผลข้อที่สามคือจำนวนสำเนา เมื่อคัดลอกเข้าสู่ระบบทดสอบ ข้อมูลจะถูกคัดลอกต่ออีกหลายรอบ ทั้งไฟล์สำรอง เครื่องพัฒนาของแต่ละคน และสภาพแวดล้อมชั่วคราวที่ตั้งขึ้นสำหรับการทดสอบเฉพาะเรื่อง
เหตุผลข้อที่สี่คือการควบคุมระยะเวลาจัดเก็บ ในระบบจริงมักมีกระบวนการลบข้อมูลเมื่อพ้นระยะเวลา แต่ระบบทดสอบมักไม่มีระบบแบบนั้น ข้อมูลจึงค้างอยู่โดยไม่มีใครรับผิดชอบ
เหตุผลที่ไม่ควรคัดลอกจากระบบจริงเข้าสู่ระบบทดสอบ:
- เหตุผลข้อแรกคือวัตถุประสงค์ของการเก็บ ข้อมูลที่เก็บมาเพื่อให้บริการลูกค้าไม่ควรถูกนำไปใช้เพื่อการทดสอบโดยอัตโนมัติ
- เหตุผลข้อที่สองคือระดับการป้องกัน ระบบทดสอบมักถูกมองว่าเป็นระบบชั่วคราว จึงมักตั้งสิทธิ์การเข้าถึงกว้างกว่า
- เหตุผลข้อที่สามคือจำนวนสำเนา เมื่อคัดลอกเข้าสู่ระบบทดสอบ ข้อมูลจะถูกคัดลอกต่ออีกหลายรอบ
- เหตุผลข้อที่สี่คือการควบคุมระยะเวลาจัดเก็บ ระบบทดสอบมักไม่มีกระบวนการลบข้อมูลเมื่อพ้นระยะเวลา
การปิดบัง การใช้ชื่อแทน และการทำให้ไม่สามารถระบุตัวบุคคลได้ ต่างกันอย่างไร?
การปิดบังคือการซ่อนบางส่วนของค่าที่แสดงออกมา เช่นแสดงเฉพาะท้ายของหมายเลขโทรศัพท์ วิธีนี้ช่วยลดการมองเห็นจากหน้าจอ แต่ข้อมูลตัวจริงยังครบอยู่ในที่จัดเก็บ
การใช้ชื่อแทนคือการแทนชื่อหรือตัวระบุด้วยรหัส และแยกกุญแจที่ใช้ถอดกลับไปเก็บไว้ที่อื่น ข้อมูลยังระบุตัวบุคคลได้ถ้ามีกุญแจอยู่ในมือ จึงยังถือเป็นข้อมูลส่วนบุคคลอยู่
การทำให้ไม่สามารถระบุตัวบุคคลได้คือการทำให้ข้อมูลชี้กลับไปหาบุคคลใดไม่ได้อีกต่อไปแม้จะมีข้อมูลอื่นประกอบ และไม่สามารถย้อนกลับได้ เป้าหมายของสามวิธีนี้ต่างกันชัดเจน จึงใช้แทนกันไม่ได้
กับดักที่พบบ่อยคือการเชื่อว่าการปิดบังทำให้ข้อมูลไม่สามารถระบุตัวบุคคลได้ทันที ความจริงคือการปิดบังเพียงลดการมองเห็น ส่วนข้อมูลต้นทางยังอยู่ในมือของผู้อื่นทั้งหมด
หลักการเก็บเท่าที่จำเป็นใช้กับข้อมูลทดสอบอย่างไร?
หลักการคือเก็บเท่าที่จำเป็นต่อวัตถุประสงค์ที่ระบุไว้ และไม่เก็บไว้นานเกินกว่าที่จำเป็น ในบริบทของงานทดสอบ หลักการนี้แปลว่าคุณควรถามก่อนว่ากรณีทดสอบที่กำลังจะเขียนต้องการช่องใดจริง ๆ
ตัวอย่างที่ตรงไปตรงมาคือการทดสอบว่าฟอร์มแสดงข้อผิดพลาดเมื่อผู้ใช้ลาออกกลางคัน ไม่ต้องการชื่อจริงหรือวันเกิดจริงเลย ต้องการเพียงให้ช่องนั้นมีค่าและผู้ใช้กดออกจากหน้า ซึ่งทำได้ด้วยข้อมูลที่สร้างขึ้น
อีกตัวอย่างคือการทดสอบรายงานสรุปยอดขายที่ต้องการเพียงข้อมูลรวม ไม่ต้องมีชื่อผู้ซื้ออยู่ในระเบียนเลย การตัดช่องที่ไม่ใช้ทิ้งตั้งแต่ตอนสร้างชุดข้อมูลช่วยลดความเสี่ยงได้โดยไม่กระทบคุณภาพของงานทดสอบ
เมื่อถึงเวลาล้างข้อมูล ควรมีเจ้าภาพที่ชัดเจนและกำหนดเวลาที่แน่นอน ไม่ใช่ปล่อยให้ข้อมูลทดสอบอยู่ต่อเพราะไม่มีใครกล้าลบมัน
ข้อมูลส่วนบุคคลรั่วออกไปทางใดได้บ้าง?
ทางแรกคือไฟล์บันทึกของระบบ ซึ่งมักบันทึกข้อมูลที่ผู้ใช้ส่งเข้ามาทั้งก้อนโดยไม่มีใครตั้งใจ ทางที่สองคือข้อความแจ้งข้อผิดพลาดที่พิมพ์ค่าที่ผู้ใช้กรอกกลับออกมาเต็ม ๆ ทางที่สามคือภาพหน้าจอที่แปะในช่องทางพูดคุยของทีมระหว่างรายงานข้อบกพร่อง
ทางที่สี่คือเครื่องพัฒนาของแต่ละคนที่มีสำเนาฐานข้อมูลไว้ในเครื่อง ทางที่ห้าคือไฟล์ส่งออกที่ถูกดาวน์โหลดไปวิเคราะห์ในโปรแกรมตารางคำนวณแล้วค้างอยู่ในโฟลเดอร์ดาวน์โหลดของใครสักคน
ทางที่ข้อมูลส่วนบุคคลรั่วออกไปได้:
- ทางแรกคือไฟล์บันทึกของระบบ ซึ่งมักบันทึกข้อมูลที่ผู้ใช้ส่งเข้ามาทั้งก้อนโดยไม่มีใครตั้งใจ
- ทางที่สองคือข้อความแจ้งข้อผิดพลาดที่พิมพ์ค่าที่ผู้ใช้กรอกกลับออกมาเต็ม ๆ
- ทางที่สามคือภาพหน้าจอที่แปะในช่องทางพูดคุยของทีมระหว่างรายงานข้อบกพร่อง
- ทางที่สี่คือเครื่องพัฒนาของแต่ละคนที่มีสำเนาฐานข้อมูลไว้ในเครื่อง
- ทางที่ห้าคือไฟล์ส่งออกที่ถูกดาวน์โหลดไปวิเคราะห์ในโปรแกรมตารางคำนวณแล้วค้างอยู่ในโฟลเดอร์ดาวน์โหลดของใครสักคน
ทุกทางเหล่านี้มีลักษณะร่วมกันคือไม่ถูกจัดว่าเป็นระบบจัดเก็บข้อมูล จึงไม่ถูกตรวจสอบ และไม่ถูกนับรวมในระยะเวลาจัดเก็บ
สำหรับนักพัฒนา: แยกสภาพแวดล้อมและเลี่ยงการคัดลอกข้อมูลจริง
ข้อแรกคือกำหนดให้สภาพแวดล้อมทดสอบเป็นสภาพแวดล้อมที่สร้างข้อมูลขึ้นใหม่ได้เสมอ ไม่ใช่สภาพแวดล้อมที่ต้องคัดลอกจากที่อื่นจึงจะใช้งานได้ เมื่อการคัดลอกไม่ใช่เส้นทางหลัก ความเสี่ยงก็ลดลงทันที
ข้อที่สองคือปิดการบันทึกค่าที่ผู้ใช้ส่งเข้ามาโดยอัตโนมัติในชั้นรับคำขอ และกำหนดรายการช่องที่ห้ามปรากฏในไฟล์บันทึกไว้อย่างชัดเจน
ข้อที่สามคือตรวจว่าข้อความแจ้งข้อผิดพลาดไม่พิมพ์ค่าที่ผู้ใช้กรอกกลับออกมา ถ้าจำเป็นต้องอ้างถึงค่าจริง ให้แสดงเฉพาะบางส่วนพร้อมทำให้ไม่ชัดเจน
ข้อที่สี่คือกำหนดอายุของไฟล์สำรองและการส่งออก และทำให้การลบเป็นงานอัตโนมัติ ไม่ใช่การบ้านที่ต้องมีคนจำได้
ข้อที่ห้าคือทดสอบว่าการปิดบังยังใช้ได้กับข้อมูลทุกรูปแบบที่ระบบรับ ไม่ใช่เฉพาะรูปแบบที่ทีมคุ้นเคย เพราะช่องที่เพิ่มเข้ามาใหม่มักหลุดจากการปิดบังเสมอ
ข้อที่ควรทำเพื่อแยกสภาพแวดล้อมทดสอบและเลี่ยงการคัดลอกข้อมูลจริง:
- ข้อแรกคือกำหนดให้สภาพแวดล้อมทดสอบเป็นสภาพแวดล้อมที่สร้างข้อมูลขึ้นใหม่ได้เสมอ
- ข้อที่สองคือปิดการบันทึกค่าที่ผู้ใช้ส่งเข้ามาโดยอัตโนมัติในชั้นรับคำขอ
- ข้อที่สามคือตรวจว่าข้อความแจ้งข้อผิดพลาดไม่พิมพ์ค่าที่ผู้ใช้กรอกกลับออกมา
- ข้อที่สี่คือกำหนดอายุของไฟล์สำรองและการส่งออก และทำให้การลบเป็นงานอัตโนมัติ
- ข้อที่ห้าคือทดสอบว่าการปิดบังยังใช้ได้กับข้อมูลทุกรูปแบบที่ระบบรับ
ก้าวต่อไป
เริ่มจากการไล่ดูว่าสภาพแวดล้อมทดสอบของทีมคุณสร้างข้อมูลขึ้นเองได้หรือไม่ ถ้าคำตอบคือต้องคัดลอกจากที่อื่นก่อน ตรงนั้นคือจุดที่ควรปรับก่อนจุดอื่นทั้งหมด
ในเครื่องมือสร้างข้อมูลตัวตนของเว็บไซต์นี้ ทุกช่องถูกสังเคราะห์ขึ้นโดยไม่มีการอ้างอิงถึงระเบียนจริงใดเลย และถ้าคุณอยากเทียบวิธีสร้างข้อมูลแบบต่าง ๆ ว่าวิธีใดเหมาะกับงานแบบใด อ่านต่อได้ที่ข้อมูลสังเคราะห์กับการทำให้ไม่ระบุตัวบุคคล หรือดูว่าข้อมูลที่อยู่ควรถูกจัดเก็บอย่างไร
ข้อมูลทุกชุดที่กล่าวถึงในบทความนี้เป็นข้อมูลที่สังเคราะห์ขึ้นเพื่อการทดสอบเท่านั้น ไม่ตรงกับบุคคลจริงใด และไม่สามารถใช้ผ่านการยืนยันตัวตนหรือการเปิดบัญชีใด ๆ ได้