ช่องโหว่ความปลอดภัยร้ายแรงในการใช้งาน OAuth ของ Microsoft ถูกค้นพบ ซึ่งทำให้ผู้โจมตีภายนอกสามารถเข้าถึงแอปพลิเคชันภายในของ Microsoft ได้โดยไม่ได้รับอนุญาต ช่องโหว่นี้ใช้ประโยชน์จากจุดอ่อนในการจัดการโทเค็นการยืนยันตัวตนของแอปพลิเคชันแบบ multi-tenant ซึ่งอาจเปิดเผยข้อมูลและระบบสำคัญของบริษัท
ช่องโหว่นี้มีจุดศูนย์กลางอยู่ที่ Microsoft Entra ID (เดิมชื่อ Azure Active Directory) และการกำหนดค่าแอปพลิเคชันแบบ multi-tenant เมื่อแอปพลิเคชันถูกตั้งค่าให้ทำงานข้ามองค์กรต่างๆ พวกมันสามารถยอมรับโทเค็นการยืนยันตัวตนจากผู้ใช้ภายนอกบริษัทของตนเองได้ อย่างไรก็ตาม แอปพลิเคชันภายในของ Microsoft หลายตัวล้มเหลวในการตรวจสอบโทเค็นเหล่านี้อย่างเหมาะสม ทำให้เกิดช่องว่างความปลอดภัยที่อันตราย
องค์ประกอบหลักของช่องโหว่:
- แอปพลิเคชัน OAuth แบบหลายผู้เช่าใน Microsoft Entra ID
- การตรวจสอบโทเค็นที่ไม่เหมาะสม (ขาดการตรวจสอบผู้ออก ผู้เช่า และหัวข้อ)
- การตั้งค่าการยินยอมของผู้ใช้เริ่มต้นที่อนุญาตให้แอปพลิเคชันมีสิทธิ์อย่างกว้างขวาง
- แอปพลิเคชันภายในที่เปิดให้อินเทอร์เน็ตสาธารณะเข้าถึงได้โดยไม่มีการป้องกันระดับเครือข่าย
วิธีการโจมตีนั้นง่ายอย่างน่าประหลาดใจ
การโจมตีทำงานโดยหลอกให้ผู้ใช้อนุญาตสิทธิ์ให้กับแอปพลิเคชันที่เป็นอันตรายซึ่งดูเหมือนถูกต้อง เมื่อได้รับการอนุญาตแล้ว ผู้โจมตีสามารถใช้โทเค็น OAuth ที่สร้างขึ้นเป็นพิเศษเพื่อเข้าถึงระบบภายในของ Microsoft ที่ควรจะห้ามเข้าถึง ปัญหาหลักคือแอปพลิเคชันหลายตัวตรวจสอบเพียงว่าโทเค็นนั้นถูกต้องหรือไม่ แต่ไม่ได้ตรวจสอบว่ามาจากองค์กรหรือผู้ใช้ที่ถูกต้องหรือไม่
การสนทนาในชุมชนเผยให้เห็นว่านี่ไม่ใช่แค่ปัญหาของ Microsoft เท่านั้น ความซับซ้อนของการกำหนดค่า OAuth และ Entra ID ได้สร้างความสับสนอย่างแพร่หลายในหมู่นักพัฒนา องค์กรหลายแห่งมีช่องโหว่คล้ายกันโดยไม่รู้ตัว เพราะแอปพลิเคชันของพวกเขาไม่ได้ตรวจสอบข้อมูลโทเค็นอย่างเหมาะสม เช่น ผู้ออก tenant และ subject
องค์ประกอบพื้นผิวการโจมตี:
- Entra ID Enterprise Applications
- Multi-Tenant vs Single Tenant Applications
- OAuth Permissions และ MS Graph Permissions
- Delegated Permission vs Application Permissions
- เวกเตอร์การโจมตีแบบ Consent Phishing
นโยบาย Zero Trust ไม่สามารถป้องกันการละเมิดได้
เหตุการณ์นี้ได้จุดประกายการถกเถียงเกี่ยวกับแนวทางความปลอดภัยสมัยใหม่ Microsoft เช่นเดียวกับบริษัทใหญ่หลายแห่ง ได้เปลี่ยนจากความปลอดภัยเครือข่ายแบบดั้งเดิมไปสู่โมเดล zero trust ที่ทุกการเชื่อมต่อต้องได้รับการยืนยันตัวตน อย่างไรก็ตาม แนวทางนี้ล้มเหลวในการป้องกันการโจมตีเพราะระบบการยืนยันตัวตนเองถูกบุกรุก
ผู้เชี่ยวชาญด้านความปลอดภัยบางคนโต้แย้งว่าการป้องกันเครือข่ายแบบดั้งเดิม เช่น VPN จะให้การป้องกันเพิ่มเติม แอปพลิเคชันภายในที่เปิดเผยต่ออินเทอร์เน็ตสาธารณะกลายเป็นเป้าหมายที่ง่ายเมื่อช่องโหว่ OAuth ถูกค้นพบ VPN ที่กำหนดค่าอย่างเหมาะสมและต้องการการยืนยันตัวตนแบบหลายขั้นตอนอาจทำให้ระบบเหล่านี้เข้าถึงได้ยากกว่ามาก
การตอบสนองของโปรแกรม Bug Bounty ของ Microsoft ทำให้ชุมชนความปลอดภัยผิดหวัง
สิ่งที่น่ากังวลที่สุดคือการตอบสนองของ Microsoft ต่อนักวิจัยด้านความปลอดภัยที่ค้นพบช่องโหว่เหล่านี้ แม้จะพบวิธีเข้าถึงเซิร์ฟเวอร์ build ที่ใช้คอมไพล์ Windows และอาจเปิดเผยซอร์สโค้ด แต่นักวิจัยไม่ได้รับรางวัลทางการเงินใดๆ สิ่งนี้ได้รับการวิพากษ์วิจารณ์อย่างรุนแรงจากชุมชนความปลอดภัย โดยหลายคนชี้ให้เห็นว่าโปรแกรม bug bounty ของ Microsoft กลายเป็นเรื่องตระหนี่มากขึ้น
โปรแกรม bug bounty ของ Microsoft เป็นเพียงเปลือกของสิ่งที่เคยเป็น พวกเขาแอบตัดสิทธิ์การค้นพบที่มีผลกระทบสูงจำนวนมากในปี 2023
การขาดรางวัลทำให้นักวิจัยด้านความปลอดภัยที่ถูกต้องตามกฎหมายไม่อยากรายงานช่องโหว่ให้กับ Microsoft ซึ่งอาจทำให้ช่องโหว่สำคัญไม่ถูกค้นพบจนกว่าผู้กระทำผิดจะพบมัน
การตอบสนองด้านความปลอดภัยของ Microsoft :
- แอปพลิเคชันภายในได้รับการแก้ไขแล้ว แต่ไม่มีการส่งมอบการแก้ไขแบบครอบคลุมทั้งระบบ tenant
- จ่ายเงินรางวัล $0 USD แม้จะมีการเข้าถึงเซิร์ฟเวอร์สร้าง Windows
- โปรแกรมเงินรางวัลค้นหาบั๊กมีรายงานว่าตัดสิทธิ์การค้นพบที่มีผลกระทบสูงจำนวนมากในปี 2023
ผลกระทบที่แพร่หลายนอกเหนือจาก Microsoft
แม้ว่า Microsoft จะได้แก้ไขแอปพลิเคชันภายในของตนแล้ว แต่ปัญหาการกำหนดค่า OAuth พื้นฐานส่งผลกระทบต่อองค์กรนับไม่ถ้วนที่ใช้ Microsoft 365 และ Entra ID บริษัทหลายแห่งมีการตั้งค่าเริ่มต้นที่อนุญาตให้ผู้ใช้ให้สิทธิ์กับแอปพลิเคชันใดก็ได้ ทำให้เกิดโอกาสการโจมตีที่คล้ายกัน
ความซับซ้อนทางเทคนิคของ OAuth และ Entra ID ทำให้นักพัฒนาทำผิดพลาดที่อันตรายได้ง่าย แม้แต่วิศวกรที่มีประสบการณ์ยังต้องดิ้นรนกับโมเดลสิทธิ์ที่ซับซ้อนและการกำหนดค่าแบบ multi-tenant ทำให้เกิดช่องว่างความปลอดภัยที่ผู้โจมตีสามารถใช้ประโยชน์ได้
เหตุการณ์นี้เน้นย้ำถึงความท้าทายที่ยังคงมีอยู่ของความปลอดภัยคลาวด์และความสำคัญของการตรวจสอบโทเค็นอย่างเหมาะสมในระบบการยืนยันตัวตนสมัยใหม่ องค์กรที่ใช้บริการ identity ของ Microsoft ควรทบทวนสิทธิ์แอปพลิเคชันของตนและพิจารณาการจำกัดการยินยอมของผู้ใช้เพื่อป้องกันการโจมตีที่คล้ายกัน
อ้างอิง: Consent & Compromise: Abusing Entre OAuth for Fun and Access to Internal Microsoft Applications