ช่องโหว่ที่ถูกโจมตีจากระยะไกลในตัวแทน OMI ที่กำหนดในสภาพแวดล้อม Microsoft Azure Linux

ลูกค้าของแพลตฟอร์มคลาวด์ Microsoft Azure ที่ใช้ Linux ในเครื่องเสมือนพบช่องโหว่ร้ายแรง (CVE-2021-38647) ที่ทำให้สามารถเรียกใช้โค้ดจากระยะไกลด้วยสิทธิ์รูทได้ ช่องโหว่ดังกล่าวมีชื่อรหัสว่า OMIGOD และมีความโดดเด่นจากปัญหาดังกล่าวเกิดขึ้นในแอปพลิเคชัน OMI Agent ซึ่งได้รับการติดตั้งอย่างเงียบๆ ในสภาพแวดล้อม Linux

OMI Agent จะได้รับการติดตั้งและเปิดใช้งานโดยอัตโนมัติเมื่อใช้บริการต่างๆ เช่น Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management, Azure Diagnostics และ Azure Container Insights ตัวอย่างเช่น สภาพแวดล้อม Linux ใน Azure ที่เปิดใช้งานการตรวจสอบนั้นเสี่ยงต่อการถูกโจมตี เอเจนต์เป็นส่วนหนึ่งของแพ็คเกจ OMI (Open Management Infrastructure Agent) แบบเปิดพร้อมการใช้งานสแต็ก DMTF CIM/WBEM สำหรับการจัดการโครงสร้างพื้นฐานด้านไอที

OMI Agent ได้รับการติดตั้งบนระบบภายใต้ผู้ใช้ omsagent และสร้างการตั้งค่าใน /etc/sudoers เพื่อรันชุดสคริปต์ที่มีสิทธิ์รูท ในระหว่างการทำงานของบริการบางอย่าง ซ็อกเก็ตเครือข่ายการฟังจะถูกสร้างขึ้นบนพอร์ตเครือข่าย 5985, 5986 และ 1270 การสแกนในบริการ Shodan แสดงให้เห็นว่ามีสภาพแวดล้อม Linux ที่มีช่องโหว่มากกว่า 15 รายการบนเครือข่าย ปัจจุบัน ต้นแบบการทำงานของช่องโหว่นี้เผยแพร่สู่สาธารณะแล้ว ซึ่งช่วยให้คุณสามารถรันโค้ดด้วยสิทธิ์รูทบนระบบดังกล่าวได้

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

วิธีการหาประโยชน์นั้นไม่สำคัญ เพียงส่งคำขอ XML ไปยังตัวแทน โดยลบส่วนหัวที่รับผิดชอบในการตรวจสอบสิทธิ์ออก OMI ใช้การรับรองความถูกต้องเมื่อได้รับข้อความควบคุม เพื่อตรวจสอบว่าไคลเอ็นต์มีสิทธิ์ส่งคำสั่งเฉพาะ สาระสำคัญของช่องโหว่คือเมื่อส่วนหัว "การรับรองความถูกต้อง" ซึ่งมีหน้าที่ตรวจสอบสิทธิ์ถูกลบออกจากข้อความ เซิร์ฟเวอร์จะถือว่าการตรวจสอบยืนยันสำเร็จ ยอมรับข้อความควบคุม และอนุญาตให้ดำเนินการคำสั่งด้วยสิทธิ์รูท หากต้องการดำเนินการคำสั่งใด ๆ ในระบบ ก็เพียงพอที่จะใช้คำสั่ง ExecuteShellCommand_INPUT มาตรฐานในข้อความ ตัวอย่างเช่น หากต้องการเปิดยูทิลิตี้ “id” เพียงส่งคำขอ: curl -H “Content-Type: application/soap+xml;charset=UTF-8” -k —data-binary “@http_body.txt” https: //10.0.0.5:5986/wsman ... รหัส 3

Microsoft ได้เปิดตัวการอัปเดต OMI 1.6.8.1 ซึ่งแก้ไขช่องโหว่แล้ว แต่ยังไม่ได้ส่งมอบให้กับผู้ใช้ Microsoft Azure (OMI เวอร์ชันเก่ายังคงติดตั้งในสภาพแวดล้อมใหม่) ไม่รองรับการอัพเดตเอเจนต์อัตโนมัติ ดังนั้นผู้ใช้ต้องทำการอัพเดตแพ็คเกจด้วยตนเองโดยใช้คำสั่ง "dpkg -l omi" บน Debian/Ubuntu หรือ "rpm -qa omi" บน Fedora/RHEL เพื่อเป็นวิธีแก้ปัญหาด้านความปลอดภัย ขอแนะนำให้บล็อกการเข้าถึงพอร์ตเครือข่าย 5985, 5986 และ 1270

นอกเหนือจาก CVE-2021-38647 แล้ว OMI 1.6.8.1 ยังระบุช่องโหว่ 2021 รายการ (CVE-38648-2021, CVE-38645-2021 และ CVE-38649-XNUMX) ที่อาจอนุญาตให้ผู้ใช้ภายในเครื่องที่ไม่มีสิทธิพิเศษสามารถรันโค้ดในฐานะรูทได้

ที่มา: opennet.ru

เพิ่มความคิดเห็น