Zdalnie wykorzystana luka w agencie OMI nałożona w środowiskach Microsoft Azure Linux

Klienci platformy chmurowej Microsoft Azure korzystający z systemu Linux na maszynach wirtualnych napotkali krytyczną lukę (CVE-2021-38647), która umożliwia zdalne wykonanie kodu z uprawnieniami roota. Luka otrzymała nazwę kodową OMIGOD i wyróżnia się tym, że problem występuje w aplikacji OMI Agent, która jest po cichu instalowana w środowiskach Linux.

Agent OMI jest automatycznie instalowany i aktywowany podczas korzystania 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 środowiska Linux na platformie Azure, dla których włączono monitorowanie, są podatne na ataki. Agent jest częścią otwartego pakietu OMI (Open Management Infrastructure Agent) z implementacją stosu DMTF CIM/WBEM do zarządzania infrastrukturą IT.

Agent OMI jest instalowany w systemie z uprawnieniami użytkownika omsagent i tworzy ustawienia w pliku /etc/sudoers umożliwiające uruchamianie serii skryptów z uprawnieniami roota. Podczas działania niektórych usług na portach sieciowych 5985, 5986 i 1270 tworzone są gniazda sieciowe nasłuchujące. Skanowanie w usłudze Shodan pokazuje obecność w sieci ponad 15 tysięcy podatnych na ataki środowisk Linux. Obecnie działający prototyp exploita jest już publicznie dostępny, umożliwiając wykonanie kodu z uprawnieniami roota na takich systemach.

Problem pogłębia fakt, że użycie OMI nie jest jawnie udokumentowane na Azure, a Agent OMI jest instalowany bez ostrzeżenia – wystarczy, że podczas konfigurowania środowiska zgodzisz się na warunki wybranej usługi, a Agent OMI zostanie aktywowane automatycznie, tj. większość użytkowników nawet nie jest świadoma jego obecności.

Sposób wykorzystania jest banalny – wystarczy wysłać do agenta żądanie XML, usuwając nagłówek odpowiedzialny za uwierzytelnienie. OMI wykorzystuje uwierzytelnianie podczas odbierania komunikatów kontrolnych, weryfikując, czy klient ma prawo wysłać określone polecenie. Istota luki polega na tym, że po usunięciu z wiadomości nagłówka „Authentication”, który odpowiada za uwierzytelnienie, serwer uznaje weryfikację za udaną, akceptuje komunikat kontrolny i pozwala na wykonanie poleceń z uprawnieniami roota. Aby wykonać dowolne polecenia w systemie, wystarczy użyć w komunikacie standardowego polecenia ExecuteShellCommand_INPUT. Na przykład, aby uruchomić narzędzie „id”, wystarczy wysłać żądanie: curl -H „Content-Type: application/soap+xml;charset=UTF-8” -k —data-binary „@http_body.txt” https: //10.0.0.5:5986/wsman ... ID 3

Microsoft udostępnił już aktualizację OMI 1.6.8.1 naprawiającą lukę, jednak nie została ona jeszcze dostarczona użytkownikom Microsoft Azure (w nowych środowiskach nadal instalowana jest stara wersja OMI). Automatyczne aktualizacje agentów nie są obsługiwane, dlatego użytkownicy muszą przeprowadzić ręczną aktualizację pakietu za pomocą poleceń „dpkg -l omi” w systemie Debian/Ubuntu lub „rpm -qa omi” w Fedorze/RHEL. W ramach obejścia bezpieczeństwa zaleca się blokowanie dostępu do portów sieciowych 5985, 5986 i 1270.

Oprócz CVE-2021-38647, OMI 1.6.8.1 usuwa także trzy luki (CVE-2021-38648, CVE-2021-38645 i CVE-2021-38649), które mogą pozwolić nieuprzywilejowanemu użytkownikowi lokalnemu na wykonanie kodu jako root.

Źródło: opennet.ru

Dodaj komentarz