AWS Application Load Balancer พบช่องโหว่จากการตั้งค่าผิดพลาด เสี่ยงถูกเจาะระบบเข้าถึงข้อมูล
ความปลอดภัยบนระบบคลาวด์ไม่ได้ขึ้นอยู่กับตัวซอฟต์แวร์เพียงอย่างเดียว แต่ยังรวมถึงวิธีการที่ผู้ใช้งานนำไปปรับใช้จริง ล่าสุดมีการค้นพบช่องโหว่ใน Application Load Balancer (ALB) ซึ่งเป็นบริการจัดเส้นทางทราฟฟิกของ Amazon Web Services (AWS) ที่อาจเปิดโอกาสให้ผู้ไม่หวังดีสามารถข้ามผ่านระบบควบคุมการเข้าถึงและเข้าถึงเว็บแอปพลิเคชันเป้าหมายได้
ประเด็นสำคัญของเรื่องนี้คือ ช่องโหว่ดังกล่าวไม่ได้เกิดจากบั๊ก (Bug) ของตัวซอฟต์แวร์ AWS แต่เกิดจาก Implementation Issue หรือปัญหาในการติดตั้งและตั้งค่าของผู้ใช้งานเอง ซึ่งเปรียบเสมือนการมีตู้เซฟที่แข็งแรงทนทาน แต่เจ้าของกลับเปิดประตูทิ้งไว้ ทำให้ทรัพย์สินภายในไม่ปลอดภัย
กลไกการโจมตีและการทำงานของช่องโหว่
ทีมนักวิจัยจากบริษัทความปลอดภัย Miggo พบว่าหากการตั้งค่าการยืนยันตัวตน (Authentication) ของ ALB ไม่รัดกุมพอ ผู้โจมตีสามารถแทรกแซงขั้นตอนการส่งต่อข้อมูลไปยังบริการยืนยันตัวตนขององค์กร (Third-party corporate authentication service) เพื่อปลอมแปลงสิทธิ์ในการเข้าถึงแอปพลิเคชันและขโมยข้อมูลสำคัญได้
กระบวนการโจมตีที่นักวิจัยนำเสนอมีขั้นตอนดังนี้:
- ผู้โจมตีสร้างบัญชี AWS และตั้งค่า Application Load Balancer ของตนเอง
- สร้างและลงนามใน Authentication Token (โทเคนยืนยันตัวตน) ตามปกติ
- ปรับเปลี่ยนการตั้งค่าเพื่อให้ระบบเข้าใจว่าโทเคนนี้ถูกออกโดยบริการยืนยันตัวตนของเป้าหมาย
- ใช้ AWS ลงนามในโทเคนนั้นเพื่อให้ดูเหมือนว่ามาจากระบบของเป้าหมายอย่างถูกต้อง เพื่อใช้เข้าถึงแอปพลิเคชัน
อย่างไรก็ตาม การโจมตีนี้จะทำได้ก็ต่อเมื่อแอปพลิเคชันเป้าหมายมีการตั้งค่าที่ผิดพลาดและเปิดให้เข้าถึงได้จากสาธารณะ หรือผู้โจมตีมีสิทธิ์เข้าถึงในระดับต่ำอยู่แล้วและต้องการยกระดับสิทธิ์ (Privilege Escalation) ให้สูงขึ้น

การตอบสนองจาก AWS และแนวทางการแก้ไข
ทาง AWS ได้ออกมาโต้แย้งตัวเลขการประมาณการของ Miggo ที่ระบุว่ามีแอปพลิเคชันกว่า 15,000 แห่งที่เสี่ยงต่อช่องโหว่นี้ โดย AWS ระบุว่ามีลูกค้าเพียงส่วนน้อยมากที่ตั้งค่าผิดพลาด และได้ดำเนินการติดต่อลูกค้ากลุ่มดังกล่าวเพื่อแนะนำวิธีแก้ไขแล้ว
แม้ AWS จะมองว่านี่ไม่ใช่การ Bypass ระบบของบริการ AWS โดยตรง แต่บริษัทได้ปรับปรุงเอกสารคำแนะนำการใช้งาน 2 ครั้งสำคัญเพื่อปิดช่องโหว่นี้:
- 1 พฤษภาคม: เพิ่มคำแนะนำให้มีการตรวจสอบความถูกต้อง (Validation) ก่อนที่ ALB จะลงนามในโทเคน
- 19 กรกฎาคม: แนะนำให้ผู้ใช้ตั้งค่า Security Groups (กลุ่มความปลอดภัยที่ทำหน้าที่เป็นไฟร์วอลล์เสมือน) เพื่อให้แอปพลิเคชันรับทราฟฟิกจาก 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 ในการตรวจสอบความถูกต้องของโทเคนก่อนการลงนาม



