วันนี้ผมมารีวิวหนังอะไร หรือป่าว ขอตอบว่าไม่ใช่ครับ โดยวันนี้ผมมาสรุป เรื่อง CIA + T Triad ที่มาช่วยให้เราพัฒนาระบบให้มีความปลอดภัยตั้งแต่ช่วงการออกแบบ (Design) ครับ โดยที่ตัวอย่างแต่ละตัวมีความหมาย ดังนี้ครับ
- Confidentiality - การรักษาความลับของข้อมูล เช่น ระบบของเรามีหน้าจอยืนยันตัวตนก่อนเข้ามาทำอะไรกับระบบได้ครับ
- Integrity - ความน่าเชื่อถือของข้อมูล โดยข้อมูลมีความน่าเชื่อถือมีความสอดคล้องกันครับ งานในสายการเงิน จะเน้นส่วนนี้มากครับ เช่น ระบบบัญชี / ระบบลงทุน โดยสิ่งที่ให้ Integrity มันรวนได้เกิดจาก
- User Error - ระบบต้องมีการตรวจสอบข้อมูลนำเข้า เช่น รหัสบัตรประชาชนต้องกรอกเข้ามาถูกต้อง ไม่ใช่ใส่ 1234567890123 ระบบนำข้อมูลเข้ามาได้
- Attacker - มีผู้ประสงค์ไม่ดีเข้ามาแก้ข้อมูล เราสามารถตรวจสอบได้ว่าข้อมูลนั้นถูกต้องไหม อาทิ เช่น Key สัมพันธ์กับตารางที่เกี่ยวข้อง หรือไม่มีการทำ Checksum ในแต่ละ Record เพื่อตรวจสอบว่าข้อมูลนั้นถูกต้องไม่ถูกแก้ไข - Availability - ความพร้อมใช้งานของระบบ ถ้าเรามีสิทธิในข้อมูลนั้นๆ ระบบต้องพร้อมใช้งานตลอดเวลา
- Fair Allocation - ถ้าทุกคนมีสิทธิเท่ากัน ต้องได้ใช้ทุกคนไม่ใช่เข้าไปแล้วตาย เจอ Starvation
- Fault Tolerant - ไม่ใช่ว่ามี Load เข้ามาเยอะแล้วเข้าไม่ได้ซะงั้น โดยในส่วนของ Availability มีการทำพวกแผน BCP / DRP เอาไว้รองรับอีกที นอกจาก Load เยอะ อาจจะมี HW Fail / SW Fail
- Easy to use - หา Feature นั้นเจอได้สะดวก
จริงๆตอนแรกมันมีแต่ CIA แหละครับ แต่จากหนังสือ Secured by Design ผู้เขียนหนังสือขอเพิ่มตัว T เข้ามาด้วยครับ ซึ่งผมเห็นด้วยนะที่เพิ่ม เพราะ มันช่วยทำให้เราทราบปัญหา การเปลี่ยนไปของข้อมูลด้วยครับ
- Traceability - การติดตามการเปลี่ยนแปลงของข้อมูล หรือหลายคนจะคุ้นกับคำว่า Audit Log หรือ Activity Log เพื่อเอาไว้หาได้ว่าใครเข้ามาทำอะไรกับข้อมูล และมีใครเข้ามาจัดการต่อ หรือไม่ เป็นต้นครับ อย่างของ EU มีกฏหมาย General Data Protection Regulation (GDPR) เข้าดูแลอีกทีครับ โดย GDPR สำคัญไฉนกดลิงค์ได้เลยครับ
ขอปิดท้ายด้วยว่า Security ไม่ใช่ Functional Requirement แต่มันเป็น Non-Functional Requirement (Quality Attribute) ซึ่งส่งผลกับการออกแบบระบบ และการเลือกใช้สถาปัตยกรรม เพื่อให้พัฒนาระบบขึ้นมาครับ ฉะนั้นแล้ว
Security is concern ครับ !!!
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.