สิทธิ์ที่ซ่อนเร้น: เหตุใดแค่ “รู้จัก” จึงไม่พอสำหรับการรักษาความปลอดภัย

สิทธิ์ที่ซ่อนเร้น: เหตุใดแค่ “รู้จัก” จึงไม่พอสำหรับการรักษาความปลอดภัย

โลกของการทำงานในปัจจุบันซับซ้อนขึ้นทุกวัน โดยเฉพาะอย่างยิ่งกับการใช้งานระบบคลาวด์หลากหลายรูปแบบ (Multi-Cloud) และเครื่องมืออัตโนมัติต่างๆ เช่น Bot, Script หรือ Service Account ที่เราเรียกว่า Agent สิ่งเหล่านี้เข้ามาช่วยเพิ่มประสิทธิภาพ แต่ก็สร้างความท้าทายใหม่ๆ ในการบริหารจัดการสิทธิ์ หรือ Authorization ซึ่งเป็นหัวใจสำคัญของการรักษาความปลอดภัยทางไซเบอร์

ความเข้าใจผิดที่พบบ่อยคือ การมี ตัวตน (Identity) เพียงพอแล้วสำหรับการให้สิทธิ์ แต่ในความเป็นจริงแล้ว การรู้ว่าใครคือ Agent ไม่ได้หมายความว่าเรารู้ว่า Agent นั้นได้รับอนุญาตให้ทำอะไรบ้าง และนี่คือจุดที่ความเสี่ยงมักจะเกิดขึ้น

ความแตกต่างระหว่างตัวตนและการอนุญาตสิทธิ์

ตัวตน (Identity) คือการยืนยันว่าบุคคลหรือ Agent นั้นๆ คือใคร หรือเป็นอะไร เช่น ชื่อผู้ใช้งาน, รหัสผ่าน, หรือข้อมูลประจำตัวดิจิทัลต่างๆ

การอนุญาตสิทธิ์ (Authorization) คือการกำหนดว่าเมื่อตัวตนนั้นถูกยืนยันแล้ว พวกเขามีสิทธิ์ทำอะไรได้บ้าง กับทรัพยากรไหนบ้าง และภายใต้เงื่อนไขใดบ้าง

ลองนึกภาพว่าคุณมีกุญแจ (Identity) ที่บอกว่าคุณเป็นเจ้าของบ้าน แต่การอนุญาตสิทธิ์คือคุณได้รับอนุญาตให้เปิดประตูห้องไหน เปิดตู้เซฟได้หรือไม่ หรือแม้กระทั่งให้เพื่อนเข้าบ้านได้ไหม

ในโลกดิจิทัล โดยเฉพาะอย่างยิ่งกับ Agent ต่างๆ การแยกแยะสองสิ่งนี้ออกจากกันเป็นเรื่องสำคัญอย่างยิ่ง

“Control Plane” ที่หายไปในระบบคลาวด์และเครื่องมืออัตโนมัติ

ในสภาพแวดล้อมที่เต็มไปด้วยเครื่องมือหลากหลาย ทั้งแพลตฟอร์มคลาวด์อย่าง Azure, AWS, GCP หรือเครื่องมือ DevOps อย่าง GitHub Actions, Jenkins, Terraform หรือ Kubernetes ต่างมีระบบจัดการสิทธิ์ของตัวเอง สิ่งที่ขาดหายไปคือ “Control Plane” ส่วนกลางที่คอยเชื่อมโยงและควบคุมการให้สิทธิ์เหล่านี้ให้เป็นหนึ่งเดียวกัน

Agent หนึ่งตัวอาจมีสิทธิ์ใน GitHub Actions ที่ไปสั่งงานใน Azure DevOps ซึ่งมีสิทธิ์ไปแก้ไขโครงสร้างพื้นฐานใน AWS หรือ GCP ต่อไปเป็นทอดๆ โดยไม่มีระบบใดที่มองเห็นภาพรวมของการเชื่อมโยงสิทธิ์เหล่านี้

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

ความเสี่ยงที่มองข้ามไม่ได้เมื่อให้สิทธิ์มากเกินไป

การให้สิทธิ์ Agent มากเกินไป หรือที่เรียกว่า Over-permissioning เป็นช่องโหว่ด้านความปลอดภัยที่ร้ายแรง หาก Agent ที่ได้รับสิทธิ์มากเกินไปถูกเจาะหรือถูกนำไปใช้ในทางที่ผิด แฮกเกอร์ก็อาจเข้าถึงและควบคุมระบบที่สำคัญได้อย่างง่ายดาย

ลองจินตนาการถึง Agent ที่มีสิทธิ์สร้าง จัดการ และลบทรัพยากรทั้งหมดในคลาวด์ ถ้า Agent นั้นถูกโจมตี ความเสียหายที่เกิดขึ้นย่อมมหาศาล

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

ก้าวสู่การบริหารจัดการสิทธิ์ที่ชาญฉลาด

การแก้ปัญหาเหล่านี้คือการพัฒนาระบบการจัดการสิทธิ์ที่ฉลาดขึ้น ระบบที่สามารถมองเห็นและควบคุมการอนุญาตสิทธิ์ของ Agent ได้ในทุกแพลตฟอร์มและทุกเครื่องมือ

เราจำเป็นต้องมีระบบที่สามารถกำหนดนโยบายการให้สิทธิ์แบบรวมศูนย์ (Centralized Authorization Policy) ที่สามารถตรวจสอบและบังคับใช้สิทธิ์ได้อย่างสอดคล้องกัน แม้ Agent จะทำงานข้ามสภาพแวดล้อมที่แตกต่างกัน

เป้าหมายคือการให้สิทธิ์ Agent เพียงแค่ “เท่าที่จำเป็น” และเฉพาะเมื่อ “จำเป็น” เท่านั้น เพื่อลดความเสี่ยงด้านความปลอดภัยให้เหลือน้อยที่สุด และเพิ่มความสามารถในการตรวจสอบและควบคุมการเข้าถึงในสภาพแวดล้อมที่ซับซ้อนยิ่งขึ้นในอนาคต