AWS Application Load Balancer พบช่องโหว่จากการตั้งค่าผิดพลาด เสี่ยงถูกเจาะระบบเข้าถึงข้อมูล

ความปลอดภัยบนระบบคลาวด์ไม่ได้ขึ้นอยู่กับตัวซอฟต์แวร์เพียงอย่างเดียว แต่ยังรวมถึงวิธีการที่ผู้ใช้งานนำไปปรับใช้จริง ล่าสุดมีการค้นพบช่องโหว่ใน Application Load Balancer (ALB) ซึ่งเป็นบริการจัดเส้นทางทราฟฟิกของ Amazon Web Services (AWS) ที่อาจเปิดโอกาสให้ผู้ไม่หวังดีสามารถข้ามผ่านระบบควบคุมการเข้าถึงและเข้าถึงเว็บแอปพลิเคชันเป้าหมายได้

ประเด็นสำคัญของเรื่องนี้คือ ช่องโหว่ดังกล่าวไม่ได้เกิดจากบั๊ก (Bug) ของตัวซอฟต์แวร์ AWS แต่เกิดจาก Implementation Issue หรือปัญหาในการติดตั้งและตั้งค่าของผู้ใช้งานเอง ซึ่งเปรียบเสมือนการมีตู้เซฟที่แข็งแรงทนทาน แต่เจ้าของกลับเปิดประตูทิ้งไว้ ทำให้ทรัพย์สินภายในไม่ปลอดภัย

กลไกการโจมตีและการทำงานของช่องโหว่

ทีมนักวิจัยจากบริษัทความปลอดภัย Miggo พบว่าหากการตั้งค่าการยืนยันตัวตน (Authentication) ของ ALB ไม่รัดกุมพอ ผู้โจมตีสามารถแทรกแซงขั้นตอนการส่งต่อข้อมูลไปยังบริการยืนยันตัวตนขององค์กร (Third-party corporate authentication service) เพื่อปลอมแปลงสิทธิ์ในการเข้าถึงแอปพลิเคชันและขโมยข้อมูลสำคัญได้

กระบวนการโจมตีที่นักวิจัยนำเสนอมีขั้นตอนดังนี้:

  1. ผู้โจมตีสร้างบัญชี AWS และตั้งค่า Application Load Balancer ของตนเอง
  2. สร้างและลงนามใน Authentication Token (โทเคนยืนยันตัวตน) ตามปกติ
  3. ปรับเปลี่ยนการตั้งค่าเพื่อให้ระบบเข้าใจว่าโทเคนนี้ถูกออกโดยบริการยืนยันตัวตนของเป้าหมาย
  4. ใช้ AWS ลงนามในโทเคนนั้นเพื่อให้ดูเหมือนว่ามาจากระบบของเป้าหมายอย่างถูกต้อง เพื่อใช้เข้าถึงแอปพลิเคชัน

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

Image 6

การตอบสนองจาก AWS และแนวทางการแก้ไข

ทาง AWS ได้ออกมาโต้แย้งตัวเลขการประมาณการของ Miggo ที่ระบุว่ามีแอปพลิเคชันกว่า 15,000 แห่งที่เสี่ยงต่อช่องโหว่นี้ โดย AWS ระบุว่ามีลูกค้าเพียงส่วนน้อยมากที่ตั้งค่าผิดพลาด และได้ดำเนินการติดต่อลูกค้ากลุ่มดังกล่าวเพื่อแนะนำวิธีแก้ไขแล้ว

แม้ AWS จะมองว่านี่ไม่ใช่การ Bypass ระบบของบริการ AWS โดยตรง แต่บริษัทได้ปรับปรุงเอกสารคำแนะนำการใช้งาน 2 ครั้งสำคัญเพื่อปิดช่องโหว่นี้:

  • 1 พฤษภาคม: เพิ่มคำแนะนำให้มีการตรวจสอบความถูกต้อง (Validation) ก่อนที่ ALB จะลงนามในโทเคน
  • 19 กรกฎาคม: แนะนำให้ผู้ใช้ตั้งค่า Security Groups (กลุ่มความปลอดภัยที่ทำหน้าที่เป็นไฟร์วอลล์เสมือน) เพื่อให้แอปพลิเคชันรับทราฟฟิกจาก ALB ของตนเองเท่านั้น
สรุปประเด็นความปลอดภัยของ AWS ALB
หัวข้อ รายละเอียด
สาเหตุของปัญหา การตั้งค่าของผู้ใช้งาน (Implementation Issue) ไม่ใช่บั๊กของซอฟต์แวร์
ผลกระทบ อาจถูกปลอมแปลงโทเคนเพื่อข้ามการยืนยันตัวตนและเข้าถึงข้อมูล
วิธีป้องกันหลัก ใช้ Security Groups และเพิ่มขั้นตอน Validation ก่อนลงนามโทเคน
รูปแบบความรับผิดชอบ Shared Responsibility Model (ความรับผิดชอบร่วมกันระหว่างผู้ให้บริการและผู้ใช้)

ข้อเท็จจริงสำคัญ

  • ช่องโหว่นี้เกิดจากการตั้งค่า Authentication ที่ไม่ถูกต้องของผู้ใช้ AWS
  • ผู้โจมตีต้องมีช่องทางการเชื่อมต่อกับแอปพลิเคชันที่ตั้งค่าผิดพลาดจึงจะดำเนินการได้
  • การแก้ไขไม่สามารถทำได้ผ่านการอัปเดตแพตช์อัตโนมัติ แต่ผู้ใช้ต้องปรับเปลี่ยนการตั้งค่าด้วยตนเอง
  • เหตุการณ์นี้สะท้อนถึงความซับซ้อนของ Shared Responsibility Model ซึ่งเป็นโมเดลที่แบ่งหน้าที่ความรับผิดชอบด้านความปลอดภัยระหว่างผู้ให้บริการคลาวด์และลูกค้า

คำถามที่พบบ่อย

ช่องโหว่นี้เกิดจากบั๊กของ AWS หรือไม่?

ไม่ใช่ครับ ช่องโหว่นี้เกิดจากวิธีการที่ลูกค้าติดตั้งและตั้งค่าการยืนยันตัวตนใน Application Load Balancer ไม่ถูกต้อง ซึ่งเป็นปัญหาด้านการนำไปใช้งาน (Implementation) ไม่ใช่ข้อผิดพลาดในตัวโค้ดของ AWS

ผู้โจมตีสามารถเจาะระบบทุกแอปพลิเคชันที่ใช้ ALB ได้หรือไม่?

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

AWS แก้ไขปัญหานี้ให้ผู้ใช้งานโดยอัตโนมัติหรือไม่?

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

วิธีป้องกันที่ดีที่สุดสำหรับผู้ใช้ AWS คืออะไร?

ควรตั้งค่า Security Groups เพื่อจำกัดให้แอปพลิเคชันรับทราฟฟิกจาก ALB ของตนเองเท่านั้น และปฏิบัติตามคำแนะนำล่าสุดของ AWS ในการตรวจสอบความถูกต้องของโทเคนก่อนการลงนาม