Kunden der Microsoft Azure Cloud-Plattform, die Linux in virtuellen Maschinen verwenden, sind auf eine kritische Sicherheitsanfälligkeit (CVE-2021-38647) gestoßen, die es ermöglicht, Code mit Root-Rechten aus der Ferne auszuführen. Die Sicherheitsanfälligkeit trägt den Codenamen OMIGOD und zeichnet sich dadurch aus, dass das Problem in der OMI-Agent-Anwendung vorhanden ist, die stillschweigend 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 verwendet werden. Beispielsweise sind Linux-Umgebungen in Azure, für die die Überwachung aktiviert ist, angreifbar. Der Agent ist Teil des Open-Source-Pakets OMI (Open Management Infrastructure Agent) mit einer Implementierung des DMTF CIM/WBEM-Stacks zur Verwaltung von IT-Infrastrukturen.
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 einiger Dienste werden Netzwerk-Sockets an den Netzwerkports 5985, 5986 und 1270 eröffnet. Scans im Shodan-Dienst zeigen, dass es über 15.000 anfällige Linux-Umgebungen im Netzwerk gibt. Derzeit ist ein funktionierender Prototyp eines Exploits verfügbar, der es ermöglicht, eigenen Code mit Root-Rechten auf ähnlichen Systemen auszuführen.
Das Problem wird dadurch verschärft, dass die Verwendung von OMI in Azure nicht explizit dokumentiert ist und der OMI-Agent ohne Vorwarnung installiert wird – es reicht aus, den Bedingungen des gewählten Dienstes bei der Einrichtung der Umgebung zuzustimmen, und der OMI-Agent wird automatisch aktiviert, d.h. die meisten Benutzer ahnen nicht einmal von seiner Existenz.
Die Ausnutzungsmethode ist trivial – es genügt, eine XML-Anfrage an den Agenten zu senden, indem der Header, der für die Authentifizierung zuständig ist, entfernt wird. OMI verwendet Authentifizierung beim Empfang von Steuerbotschaften, um zu überprüfen, ob der Client berechtigt ist, einen bestimmten Befehl zu senden. Der Kern der Sicherheitsanfälligkeit besteht darin, dass beim Entfernen des Headers "Authentication", der für die Authentifizierung zuständig ist, Server Wenn die Überprüfung als erfolgreich angesehen wird, empfängt sie die Steuerungsnachricht und erlaubt die Ausführung von Befehlen mit Root-Rechten. Um beliebige Befehle im System auszuführen, genügt es, im Nachrichtendienst den Standardbefehl ExecuteShellCommand_INPUT zu verwenden. Um beispielsweise das Dienstprogramm „id“ zu starten, muss folgender Befehl gesendet werden: 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
Die Firma Microsoft hat bereits ein Update OMI 1.6.8.1 veröffentlicht, das die Sicherheitsanfälligkeit behebt, dieses ist jedoch noch nicht an die Benutzer von Microsoft Azure (in neuen Umgebungen wird vorerst die alte Version von OMI installiert) verteilt worden. Die automatische Aktualisierung des Agenten wird nicht unterstützt, daher müssen die Benutzer das Paket manuell aktualisieren, indem sie die Befehle „dpkg -l omi“ in Debian/Ubuntu oder „rpm -qa omi“ in Fedora/RHEL verwenden. Als Workaround zum Schutz wird empfohlen, den Zugriff auf die Netzwerkports 5985, 5986 und 1270 zu blockieren.
Neben CVE-2021-38647 wurden in OMI 1.6.8.1 auch drei Sicherheitsanfälligkeiten (CVE-2021-38648, CVE-2021-38645 und CVE-2021-38649) behoben, die es einem unprivilegierten lokalen Benutzer ermöglichen, seinen Code mit Root-Rechten auszuführen.
Quelle: opennet.ru
