ช่องโหว่บน Microsoft Azure Services เสี่ยงต่อการถูกเข้าถึงข้อมูลได้โดยไม่ต้องผ่านการตรวจสอบสิทธิ์

Orca บริษัทด้านความปลอดภัยไซเบอร์ได้ค้นพบช่องโหว่ที่เกี่ยวข้องกับบริการ Microsoft Azure โดยช่องโหว่ดังกล่าวถูกพบในช่วงระหว่างวันที่ 8 ตุลาคม 2022 ถึง 2 ธันวาคม 2022 ซึ่งส่งผลกระทบต่อ Azure API Management, Azure Functions, Azure Machine Learning และ Azure Digital Twins me ซึ่งทำให้ผู้โจมตีสามารถหลีกเลี่ยงการตรวจสอบสิทธิ์ และเข้าถึงข้อมูลบนเครื่องปลายทางได้

โดยปัจจุบันทาง Microsoft ได้ออกอัปเดตเพื่อแก้ไขช่องโหว่เรียบร้อยแล้ว

ช่องโหว่บนบริการ Microsoft Azure มีดังนี้

ช่องโหว่ Unauthenticated SSRF บน Azure Digital Twins Explore โดยช่องโหว่อยู่ใน /proxy/blob endpoint ทำให้มีความเสี่ยงถูกโจมตีเพื่อรับ response จากบริการใดๆก็ตามที่ต่อท้ายด้วย "blob.

พบช่องโหว่ใน Azure ทำให้สามารถเข้าถึงเครื่อง host ได้ผ่าน serverless function

สรุปรายละเอียดของช่องโหว่

Privilege escape เป็นสิทธ์ Root ได้ใน container
Container มีสิทธ์ CAP_SYS_ADMIN ซึ่งไม่เป็นไปตาม best practice จึงทำให้สามารถเข้าถึงเครื่อง Host ได้
Host เป็น single-tenant จึงทำให้สามารถเข้าถึงได้แค่ container ใน tenant

Escalating Privileges

นักวิจัยจาก Unit42 พบว่าใน container ของ Azure function จะมี service "init" ที่สามารถ Mount disk ใน container ได้ แต่ว่าตัว service มีช่องโหว่เรื่องการ validate input นักวิจัยจึงใช้ช่องโหว่นี้สร้าง shadow ไฟล์ขึ้นมาโดยใช้ password ของตัวเองแล้ว mount ไปที่ /etc/shadow ทำให้สามารถเปลี่ยน user เป็น root ได้โดยใช้ password ที่ถูกสร้างขึ้นมาใหม่

Escape to Host

เนื่องจาก container ของ Azure function มีการกำหนดสิทธิ์ Linux Capabilities มาไม่ได้ตามมาตรฐาน (Best Practice) ทำให้มีสิทธิ์หลายอย่างเข้าเงื่อนไขของ Container escape technique ที่ชื่อว่า "notify_on_release escape" ดังนี้

มีสิทธ์ root
มี SYS_ADMIN capability
สามารถใช้ mount syscall
container ต้องอ่าน และเขียน cgroup v1 virtual filesystem ได้

หลังจากที่นักวิจัยเข้าถึงเครื่อง Host ได้แล้ว พบว่าเครื่อง Host เป็น HyperV ที่จะถูกใช้งานแค่ tenant เดียว จึงทำให้ไม่มีความเสียงที่จะเข้าถึง Container ที่อยู่ใน tenant อื่นได้ นอกเหนือว่าจะมีช่องโหว่ที่ตัว HyperV นักวิจัยจึงหยุดการทดสอบ และรายงานช่องโหว่ไปที่ Microsoft

วิธีการแก้ไข 

Microsoft ได้ patch service ที่ใช้ในการ mount โดยเพิ่มการ Validate Input โดยที่ลูกค้าไม่ต้องดำเนินการใด ๆ เพิ่มเติม

ที่มา : unit42