สุวพันธ์ คุณศิริ

เรื่องของงาน ระบบ สิ่งที่กำลังเรียนรู้ และชีวิตระหว่างทาง

เราจะเชื่อหลักฐานการเปลี่ยนแปลงในระบบได้แค่ไหน

กำลังพัฒนา · ระบบที่รันด้วยข้อมูลตัวอย่าง

Pranee Audit สำรวจว่า เมื่อระบบบอกว่าบางสิ่งถูกเปลี่ยน ใครเปลี่ยน หรือเคยอยู่ในสถานะใด เราจะเชื่อหลักฐานนั้นได้มากแค่ไหน

งานนี้เป็น audit trail engine สำหรับบันทึกและตรวจสอบเหตุการณ์ ภาพที่ใช้เล่าเรื่องมาจากระบบรุ่น 0.9.0 ที่รันด้วยข้อมูลตัวอย่าง ทั้งผลิตภัณฑ์และเรื่องที่บันทึกยังอยู่ระหว่างพัฒนา

มีบันทึกแล้ว ยังมีคำถามต่อ

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

ผมจึงสนใจอีกชั้นหนึ่งของคำถาม: เราตรวจได้หรือไม่ว่าสิ่งที่กำลังอ่านยังตรงกับสิ่งที่เคยบันทึกไว้ การสืบค้นเหตุการณ์กับการตรวจความต่อเนื่องของหลักฐานเกี่ยวข้องกัน แต่ตอบคนละส่วน

ผลตรวจที่ต้องอ่านตามขอบเขตของมัน

ในการทดสอบจำลอง มีการแก้ event หลังจัดเก็บ ผล Verify ในภาพระบุปัญหาที่ลำดับ 84 เพราะค่า hash ไม่ตรงกับข้อมูลที่บันทึกไว้

ผล Verify ของ Pranee Audit ในสถานการณ์จำลอง พบ hash ไม่ตรงกันที่ event #84 โดยปกปิดข้อมูลระบุ tenant และรหัสกุญแจบางตำแหน่ง
ผล Verify: event #84 มีค่า hash ไม่ตรงกันการตรวจช่วงที่เลือกไม่อัปเดตสถานะด้านบนที่ยังเป็น “Not checked yet” สถานะนั้นจะเปลี่ยนเมื่อการตรวจของ engine ทำงานสถานการณ์จำลองการแก้ข้อมูล ทดสอบบนระบบจริงด้วยข้อมูลตัวอย่างภาพนี้ปกปิดข้อมูลระบุ tenant และรหัสกุญแจบางตำแหน่ง รายละเอียดอื่นยังมองเห็นอยู่ การแก้ภาพนี้ไม่ยืนยันการปกปิดข้อมูลก่อนจัดเก็บในระบบ

ตรวจพบการเปลี่ยนแปลง ไม่ได้แปลว่าป้องกันได้ทุกกรณี

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

ผล Verify กับสถานะของ chain เป็นคนละส่วน

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

ส่วนนี้อธิบายความต่างของผลตรวจและสถานะด้วยข้อความ โดยไม่แสดงภาพสถานะ broken chain ภาพผล Verify ด้านบนจึงไม่ใช่หลักฐานภาพของสถานะนั้น

ตรวจได้ว่าข้อมูลเปลี่ยน ยังไม่ตอบว่าควรเก็บอะไร

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

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

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

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

สิ่งที่ยังต้องตรวจต่อ

ผลทดสอบนี้ยังไม่ครอบคลุมทุกเงื่อนไขของการเก็บรักษาและตรวจสอบหลักฐาน ยังมีคำถามว่าขอบเขตสิทธิ์เข้าถึงระบบและการตรวจแยกมีผลต่อข้อสรุปอย่างไร

กลับมาอ่านว่าเราตรวจอะไร

ผมอยากกลับมาอ่านผลตรวจพร้อมเงื่อนไขของมัน: ตรวจช่วงไหน พบอะไร และสถานะใดที่ผลตรวจนั้นไม่ได้เปลี่ยน แทนการเก็บไว้เพียงว่า “พบปัญหา”