ช่องโหว่ CodeBreach นำไปสู่การเข้าควบคุมระบบ AWS Console
นักวิจัยด้านความปลอดภัยได้ค้นพบช่องโหว่ที่ชื่อว่า CodeBreach ซึ่งเกิดจากการตั้งค่า Regular Expression ผิดพลาดเพียงเล็กน้อยในระบบ CI/CD Pipeline ของ AWS โดยปัญหาอยู่ที่ตัวกรองซึ่งใช้ตรวจสอบ ผู้ที่สามารถเรียกใช้งาน Build ได้ ตัวกรองดังกล่าวใช้รายการ ID ที่คั่นด้วยเครื่องหมาย Pipe (เช่น 123|456|789) และถูกตีความเป็น Regular Expression แต่ขาด anchor เริ่มต้น ^ และสิ้นสุด $ ส่งผลให้ผู้ใช้ GitHub ที่มี ID ซึ่งมีเลข ID ของผู้ดูแลที่เชื่อถือได้ เป็นส่วนหนึ่งของค่า สามารถหลบเลี่ยงการตรวจสอบและเรียกใช้งาน Build ที่มีสิทธิ์สูงได้
ช่องโหว่นี้ทำให้ GitHub Repository หลักของ AWS ตกอยู่ในความเสี่ยงต่อการถูกควบคุมทั้งหมด โดยเฉพาะ AWS JavaScript SDK ซึ่งเป็น Library ที่ใช้งานบน AWS Console เองจากการวิเคราะห์พบว่า 66% ของสภาพแวดล้อม Cloud มีการใช้งาน JavaScript SDK หากเกิดการโจมตี Supply Chain สำเร็จ อาจส่งผลให้ AWS Console ของผู้ใช้ทุกคนถูกเจาะ เพื่อป้องกันเหตุการณ์ในอนาคต AWS ได้เปิดตัว Pull Request Comment Approval build gate รูปแบบใหม่ ซึ่งเป็นแนวทางที่ง่ายและปลอดภัยในการป้องกันไม่ให้ Build ที่ไม่น่าเชื่อถือถูกเข้าถึง แหล่งข่าว [ https://dg.th/d6oce9lgrt ]
คำแนะนำ
- – ตรวจสอบและแก้ไขการใช้งาน Regular Expression ในระบบ CI/CD ให้มีการกำหนด anchor ^ และ $ เพื่อบังคับการจับคู่แบบตรงตัว (Exact Match)
- – หลีกเลี่ยงการใช้ Regular Expression ในการทำ Allow-list สำหรับตัวตนผู้ใช้งาน ควรใช้การตรวจสอบค่าแบบเท่ากันโดยตรง (Exact Comparison) แทน
- – แยก Pipeline สำหรับ Pull Request จากผู้ที่ไม่เชื่อถือออกจาก Pipeline ที่มีสิทธิ์สูงอย่างชัดเจน
- – กำหนดให้การรัน Build ที่มีสิทธิ์สูงต้องผ่านการอนุมัติจากผู้ดูแลระบบก่อนทุกครั้ง เช่น การใช้ Pull Request Comment Approval
- – จำกัดการเข้าถึง Secret, Credential และ Token ภายใน Build Environment ให้เฉพาะงานที่จำเป็นเท่านั้น
- – เปิดใช้งานการตรวจสอบและบันทึก Log ของระบบ CI/CD อย่างละเอียด พร้อมตั้งค่าแจ้งเตือนเมื่อพบพฤติกรรมผิดปกติ
- – ทบทวนสิทธิ์ของ GitHub Repository, CI/CD Service Account และ Credential ต่าง ๆ อย่างสม่ำเสมอ
- – ทดสอบความปลอดภัยของ Build Pipeline และ Supply Chain อย่างต่อเนื่อง เพื่อป้องกันช่องโหว่ที่อาจถูกมองข้าม
Reference: https://securityonline.info/codebreach-missing-regex-anchors-exposed-aws-console-to-takeover/
