Zdalnie eksploatowana luka w agencie OMI, narzucanym w środowiskach Linux Microsoft Azure

Klienci chmurowej platformy Microsoft Azure, korzystający z systemu Linux na maszynach wirtualnych, napotkali krytyczną lukę (CVE-2021-38647), umożliwiającą zdalne wykonywanie kodu z uprawnieniami roota. Luka otrzymała kodową nazwę OMIGOD i jest szczególnie istotna, ponieważ problem występuje w aplikacji OMI Agent, która bez żadnych zapowiedzi jest instalowana w środowiskach Linux.

OMI Agent automatycznie instaluje się i aktywuje przy korzystaniu z usług takich jak Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management, Azure Diagnostics i Azure Container Insights. Na przykład, atakujący mogą zyskać dostęp do środowisk Linux w Azure, dla których włączono monitoring. Agent jest częścią otwartego pakietu OMI (Open Management Infrastructure Agent) realizującego stos DMTF CIM/WBEM do zarządzania infrastrukturą IT.

OMI Agent jest instalowany w systemie jako użytkownik omsagent i tworzy konfiguracje w /etc/sudoers do uruchamiania serii skryptów z uprawnieniami roota. W trakcie działania niektórych usług tworzone są nasłuchujące gniazda sieciowe na portach 5985, 5986 i 1270. Skanowanie w serwisie Shodan pokazuje obecność w sieci ponad 15 tysięcy podatnych środowisk Linux. Obecnie w sieci dostępny jest już działający prototyp exploita, umożliwiający wykonanie własnego kodu z uprawnieniami roota w podobnych systemach.

Problem pogłębia się tym, że w Azure wyraźnie nie dokumentuje się zastosowania OMI, a OMI Agent jest instalowany bez ostrzeżenia — wystarczy zgodzić się na warunki wybranej usługi podczas konfigurowania środowiska, a OMI Agent zostanie automatycznie aktywowany, co oznacza, że większość użytkowników nawet nie podejrzewa o jego istnieniu.

Metoda eksploatacji jest prosta — wystarczy wysłać do agenta zapytanie XML, usuwając nagłówek odpowiadający za uwierzytelnienie. OMI wykorzystuje uwierzytelnienie podczas odbierania komunikatów sterujących, weryfikując, czy klient ma prawo do wysyłania danej komendy. Istotą luki jest to, że po usunięciu z komunikatu nagłówka „Authentication”, odpowiedzialnego za uwierzytelnienie, serwer uznaje zakończenie testu za udane, przyjmuje komunikat sterujący i zezwala na wykonanie poleceń z uprawnieniami root. Aby wykonać dowolne polecenia w systemie, wystarczy użyć w wiadomości standardowego polecenia ExecuteShellCommand_INPUT. Na przykład, aby uruchomić narzędzie „id”, wystarczy wysłać zapytanie: 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

Firma Microsoft już wydała aktualizację OMI 1.6.8.1, która usuwa lukę, ale jeszcze nie dotarła do użytkowników Microsoft Azure (w nowych środowiskach wciąż instalowana jest stara wersja OMI). Automatyczne aktualizacje agenta nie są wspierane, dlatego użytkownicy muszą ręcznie zaktualizować pakiet, używając poleceń „dpkg -l omi” w Debianie/Ubuntu lub „rpm -qa omi” w Fedora/RHEL. Jako obejście zabezpieczeń zaleca się zablokowanie dostępu do portów sieciowych 5985, 5986 i 1270.

Oprócz CVE-2021-38647 w OMI 1.6.8.1 usunięto również trzy luki (CVE-2021-38648, CVE-2021-38645 i CVE-2021-38649), które pozwalają nieuprzywilejowanemu lokalnemu użytkownikowi na wykonanie swojego kodu z uprawnieniami root.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster