ช่องโหว่ความปลอดภัย OAuth ของ Microsoft เปิดช่องให้ผู้โจมตีภายนอกเข้าถึงแอปพลิเคชันภายใน

ทีมชุมชน BigGo
ช่องโหว่ความปลอดภัย OAuth ของ Microsoft เปิดช่องให้ผู้โจมตีภายนอกเข้าถึงแอปพลิเคชันภายใน

ช่องโหว่ความปลอดภัยร้ายแรงในการใช้งาน 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