Kunden der Cloud-Plattform Microsoft Azure, die Linux auf virtuellen Maschinen verwenden, sind mit einer kritischen Schwachstelle (CVE-2021-38647) konfrontiert, die eine remote Ausführung von Code mit Root-Rechten ermöglicht. Diese Schwachstelle mit dem Codenamen OMIGOD ist besonders bemerkenswert, da sie im OMI Agent auftritt, der unauffällig in Linux-Umgebungen installiert wird.
Der OMI Agent wird automatisch installiert und aktiviert, wenn Dienste wie Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management, Azure Diagnostics und Azure Container Insights genutzt werden. Beispielsweise sind Linux-Umgebungen in Azure, für die das Monitoring aktiviert ist, anfällig für Angriffe. Der Agent ist Teil des offenen OMI-Pakets (Open Management Infrastructure Agent) mit einer Implementierung des DMTF CIM/WBEM-Stacks zur Verwaltung von IT-Infrastruktur.
Der OMI-Agent wird im System unter dem Benutzer omsagent installiert und erstellt Einstellungen in /etc/sudoers, um eine Reihe von Skripten mit Root-Rechten auszuführen. Während des Betriebs bestimmter Dienste werden Netzwerk-Sockets auf den Ports 5985, 5986 und 1270 geöffnet. Ein Scan mit dem Shodan-Dienst zeigt, dass es im Netzwerk über 15.000 anfällige Linux-Umgebungen gibt. Derzeit ist bereits ein funktionierender Exploit-Prototyp öffentlich zugänglich, der es ermöglicht, eigenen Code mit Root-Rechten auf solchen Systemen auszuführen.
Das Problem wird dadurch verschärft, dass in Azure die Verwendung von OMI nicht klar dokumentiert ist und der OMI-Agent ohne Vorwarnung installiert wird – es reicht aus, den Bedingungen des gewählten Dienstes während der Umgebungskonfiguration zuzustimmen, und der OMI-Agent wird automatisch aktiviert, sodass die meisten Benutzer nicht einmal von seiner Existenz wissen.
Die Methode ist einfach – es reicht, eine XML-Anfrage an den Agenten zu senden und den Header, der für die Authentifizierung verantwortlich ist, zu entfernen. OMI verwendet die Authentifizierung beim Empfang von Steuerbefehlen, um sicherzustellen, dass der Client berechtigt ist, einen bestimmten Befehl auszuführen. Das Problem liegt darin, dass bei der Entfernung des Headers „Authentication“, der für die Authentifizierung zuständig ist, der Server der Überprüfung als erfolgreich angesehen wird, das Steuerungssignal akzeptiert und das Ausführen von Befehlen mit Root-Rechten zulässt. Um beliebige Befehle im System auszuführen, reicht es aus, im Signal den Standardbefehl ExecuteShellCommand_INPUT zu verwenden. Zum Beispiel genügt es, die Anfrage zu senden: 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 hat bereits das Update OMI 1.6.8.1 veröffentlicht, das eine Sicherheitsanfälligkeit behebt. Dieses Update ist jedoch noch nicht bei den Nutzern von Microsoft Azure angekommen (in neuen Umgebungen wird derzeit die alte Version von OMI installiert). Automatische Aktualisierungen des Agenten werden nicht unterstützt, daher müssen die Nutzer das Paket manuell aktualisieren, indem sie die Befehle „dpkg -l omi“ in Debian/Ubuntu oder „rpm -qa omi“ in Fedora/RHEL verwenden. Zum Schutz wird empfohlen, den Zugang zu den Netzwerkports 5985, 5986 und 1270 zu blockieren.
Neben CVE-2021-38647 wurden in OMI 1.6.8.1 auch drei weitere Schwachstellen (CVE-2021-38648, CVE-2021-38645 und CVE-2021-38649) behoben, die es einem nicht privilegierten lokalen Benutzer ermöglichen, seinen Code mit Root-Rechten auszuführen.
Quelle: opennet.ru
