20 ตุลาคม 2011

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

การวิจัยแสดงให้เห็นว่าข้อผิดพลาดในการแยกวิเคราะห์ SOAP อาจส่งผลให้คำขอ SOAP ที่สร้างขึ้นเป็นพิเศษมีองค์ประกอบข้อความซ้ำและ/หรือลายเซ็นการเข้ารหัสลับที่กำลังประมวลผลหายไป หากเกิดปัญหานี้ขึ้น ผู้โจมตีที่สามารถเข้าถึงข้อความ SOAP ที่ไม่ได้เข้ารหัสลับไว้อาจดำเนินการในฐานะผู้ใช้ที่มีสิทธิ์รายอื่นและดำเนินการ EC2 อย่างไม่ถูกต้องได้ ตัวอย่างเช่น หากผู้โจมตีได้รับคำขอ SOAP ที่สร้างขึ้นและเซ็นชื่อไว้ก่อนหน้าของลูกค้า EC2 หรือใบรับรอง X.509 สาธารณะของลูกค้าอย่างไม่เหมาะสม ผู้โจมตีอาจสร้างคำขอ SOAP โดยพลการในนามของลูกค้ารายอื่นได้

แม้ว่าการรับคำขอ SOAP ที่เซ็นชื่อไว้ก่อนหน้าหรือใบรับรอง X.509 จะเป็นเรื่องยาก แต่นักวิจัยระบุว่าผู้โจมตีอาจทำได้หากลูกค้าส่งคำขอ SOAP ผ่าน HTTP แทนที่จะส่งผ่าน HTTPS ในที่สาธารณะที่อาจถูกสกัดกั้น หรือแสดงเนื้อหาคำขอ SOAP ทั้งหมดในตำแหน่งที่ผู้โจมตีสามารถเข้าถึงได้ (เช่น ฟอรัมข้อความสาธารณะ) นอกจากนี้ นักวิจัยด้านความปลอดภัยยังค้นพบและรายงานข้อบกพร่องอื่นๆ ของ Cross-Site Scripting (XSS) ซึ่งอาจใช้ในการรับใบรับรอง X.509 สาธารณะของลูกค้า การรับใบรับรอง X.509 สาธารณะของลูกค้าด้วยวิธีนี้อาจทำให้ผู้โจมตีสามารถสร้างคำขอ SOAP โดยพลการในนามของลูกค้าได้ ซึ่งจะทำให้เกิดการใช้ประโยชน์จากช่องโหว่ตามที่อธิบายไว้ข้างต้น

ทั้งช่องโหว่ SOAP และ XSS ได้รับการแก้ไขและมีการวิเคราะห์บันทึกโดยละเอียดแล้วว่าไม่มีลูกค้าที่ได้รับผลกระทบ

ขอย้ำเตือนว่า AWS แนะนำแนวทางปฏิบัติด้านความปลอดภัยเพื่อปกป้องลูกค้าของเรา ดังนี้:

  • ใช้ตำแหน่งข้อมูล SSL-secured/HTTPS สำหรับบริการของ AWS เท่านั้นและตรวจสอบให้แน่ใจว่ายูทิลิตีไคลเอ็นต์ของคุณดำเนินการตรวจสอบใบรับรองแบบเพียร์อย่างเหมาะสม การเรียกใช้ AWS API เพียงส่วนน้อยจากที่ผ่านการรับรองความถูกต้องทั้งหมดจะใช้ตำแหน่งข้อมูลที่ไม่ใช่ SSL และ AWS ต้องการยกเลิกการสนับสนุนตำแหน่งข้อมูลที่ไม่ใช่ SSL ในอนาคต
  • เปิดใช้งานและใช้ Multi-Factor Authentication (MFA) สำหรับการเข้าถึง AWS Management Console
  • สร้างบัญชี Identity and Access Management (IAM) ที่มีบทบาทและความรับผิดชอบจำกัด เพื่อจำกัดให้สามารถเข้าถึงได้เฉพาะทรัพยากรที่บัญชีดังกล่าวต้องการเท่านั้น
  • จำกัดการเข้าถึง API และการโต้ตอบตาม IP แหล่งข้อมูล โดยใช้การจำกัดนโยบาย IP แหล่งข้อมูล IAM
  • เปลี่ยนข้อมูลประจำตัว AWS เป็นประจำ รวมถึงคีย์ลับ ใบรับรอง X.509 และคู่คีย์
  • เมื่อใช้ AWS Management Console ให้ลดหรือหลีกเลี่ยงการโต้ตอบกับเว็บไซต์อื่นๆ และปฏิบัติตามแนวทางปฏิบัติการท่องอินเทอร์เน็ตอย่างปลอดภัย เหมือนกับที่คุณควรทำสำหรับกิจกรรมการธนาคารหรือกิจกรรมออนไลน์ที่สำคัญ/มีความเสี่ยงในทำนองเดียวกัน
  • ลูกค้า AWS ควรพิจารณาใช้กลไกการเข้าถึง API ที่ไม่ใช่ SOAP เช่น REST/Query

AWS ขอขอบคุณบุคคลดังต่อไปนี้ที่รายงานช่องโหว่เหล่านี้และมีส่วนร่วมต่อความมุ่งมั่นเพื่อความปลอดภัยของเรา:
Juraj Somorovsky, Mario Heiderich, Meiko Jensen และ Jörg Schwenk จาก Ruhr-University Bochum ประเทศเยอรมนี
Nils Gruschka จาก NEC Europe
Luigi Lo Iacono จาก Cologne University of Applied Sciences ประเทศเยอรมนี

ความปลอดภัยเป็นภารกิจที่สำคัญที่สุดของเรา เรายังคงมุ่งมั่นที่จะมอบคุณสมบัติ กลไกและความช่วยเหลือให้กับลูกค้าของเราเพื่อให้โครงสร้างพื้นฐานของ AWS มีความปลอดภัยอย่างต่อเนื่อง สามารถแจ้งคำถามหรือข้อกังวลเกี่ยวกับความปลอดภัยให้เราทราบได้ทาง aws-security@amazon.com