Kunder på Microsoft Azures molnplattform som använder Linux i virtuella maskiner har stött på en kritisk sårbarhet (CVE-2021-38647) som möjliggör fjärrkörning av kod med root-rättigheter. Sårbarheten har kodnamnet OMIGOD och är anmärkningsvärd eftersom problemet finns i applikationen OMI Agent, som diskret installeras i Linux-miljöer.
OMI Agent installeras automatiskt och aktiveras när tjänster som Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management, Azure Diagnostics och Azure Container Insights används. Till exempel är Linux-miljöerna i Azure med aktiverad övervakning utsatta för angrepp. Agenten är en del av det öppna paketet OMI (Open Management Infrastructure Agent) med en implementation av stacket DMTF CIM/WBEM för att hantera IT-infrastruktur.
OMI Agent installeras i systemet under användaren omsagent och skapar inställningar i /etc/sudoers för att köra en serie skript med root-rättigheter. Under drift av vissa tjänster skapas lyssnande nätverks-sockets på nätverksportarna 5985, 5986 och 1270. Skanning med tjänsten Shodan visar att mer än 15 000 sårbara Linux-miljöer finns på nätet. För närvarande finns det redan en fungerande prototyp av en exploit tillgänglig som möjliggör körning av egen kod med root-rättigheter på sådana system.
Problemet förvärras av det faktum att användningen av OMI i Azure inte är tydligt dokumenterad, och OMI Agent installeras utan förvarning — det räcker att godkänna villkoren för den valda tjänsten vid konfigurationen av miljön, så aktiveras OMI Agent automatiskt, vilket innebär att de flesta användare inte ens är medvetna om dess existens.
Exploiteringsmetoden är trivial — det räcker att skicka en XML-förfrågan till agenten utan att inkludera autentiseringshuvudet. OMI använder autentisering vid mottagningen av styrningsmeddelanden, och kontrollerar att klienten har rätt att skicka en viss kommando. Sårbarhetens kärna ligger i att när huvudet ‘Authentication’, som ansvarar för autentisering, tas bort i meddelandet, server anserar att kontrollen var framgångsrik, accepterar styrmeddelandet och tillåter körning av kommandon med root-rättigheter. För att utföra godtyckliga kommandon i systemet räcker det att använda det vanliga kommandot ExecuteShellCommand_INPUT i meddelandet. Till exempel, för att köra verktyget „id“ behöver man skicka en begäran: curl -H "Content-Type: application/soap+xml;charset=UTF-8" -k --data-binary "@http_body.txt" https://10.0.0.5:5986/wsman …
id
0
Microsoft har redan släppt en uppdatering av OMI 1.6.8.1 för att åtgärda sårbarheten, men den har ännu inte nått användarna av Microsoft Azure (i nya miljöer installeras fortfarande den gamla versionen av OMI). Automatisk uppdatering av agenten stöds inte, så användarna måste uppdatera paketet manuellt med kommandona „dpkg -l omi“ i Debian/Ubuntu eller „rpm -qa omi“ i Fedora/RHEL. Som en tillfällig skyddsåtgärd rekommenderas att blockera åtkomst till nätverksportarna 5985, 5986 och 1270.
Förutom CVE-2021-38647 har OMI 1.6.8.1 också åtgärdat tre sårbarheter (CVE-2021-38648, CVE-2021-38645 och CVE-2021-38649) som gör det möjligt för en icke-privilegerad lokal användare att köra sin kod med root-rättigheter.
Källa: opennet.ru
