Microsoft hat die vorübergehende Entfernung einer Reihe von Repositories auf GitHub im Rahmen der Untersuchung eines Vorfalls bestätigt, der mit der Kompromittierung von Open-Source-Projekten des Unternehmens zusammenhängt. Berichten zufolge wurde in den Code ein Informations-Stealer eingeschleust, der auf Entwickler-Workstations und CI/CD-Umgebungen abzielt. Der Vorfall ist Teil einer groß angelegten Kampagne zur Attacke auf die Software-Lieferkette, die den Codenamen Miasma erhalten hat. Entwicklern, die die unten aufgeführten PyPI-Pakete sowie Open-Source-Projekte von Microsoft auf GitHub nutzen, wird geraten, ihre Abhängigkeiten umgehend zu überprüfen und einen Audit der Secrets in den betroffenen Umgebungen durchzuführen.
Reaktion von Microsoft und Umfang des Vorfalls
Nach Angaben eines Microsoft-Sprechers wurden einige Repositories nach einer Überprüfung wiederhergestellt, während andere bis zum Abschluss der Untersuchungen weiterhin nicht verfügbar sein können. Das Unternehmen hat eine begrenzte Zahl von Kunden informiert, die Inhalte aus kompromittierten Repositories heruntergeladen haben könnten, und erklärte sich bereit, betroffene Parteien bei Bedarf über die offiziellen Support-Kanäle zu kontaktieren, falls weitere Maßnahmen erforderlich sind.
Zu den betroffenen Projekten gehört den vorliegenden Informationen zufolge das Paket durabletask – eine Python-Bibliothek, die kompromittiert wurde, um einen Informations-Stealer auszuliefern, der auf Linux-Systeme ausgerichtet ist. Microsoft bezeichnete seine Schritte als Maßnahmen zum Schutz der Kunden und des gesamten Ökosystems.
Evolution der Methoden zur Payload-Auslieferung
Laut einer Analyse von Socket entwickelt sich die Kampagne dynamisch weiter und umfasst mehrere Wellen: Mini Shai-Hulud, Miasma und Hades. Die jüngste Welle hat zusätzlich 23 Pakete auf PyPI betroffen, wobei die Angreifer mit unterschiedlichen Mechanismen zur Auslieferung des schädlichen Codes experimentieren.
Frühe Versionen der bösartigen Pakete nutzten ausführbare .pth-Autoload-Hooks, um die Bun-Laufzeit zu starten und einen obfuskierten JavaScript-Stealer auszuführen. In neueren Varianten kommen grundsätzlich andere Ansätze zum Einsatz:
- Trojanisierte native .abi3.so-Erweiterungen – der Stealer wird beim Import des Pakets in ein Python-Projekt gestartet
- Modifizierter .pth-Loader – sucht die Payload
_index.jsüber Pfade insys.path, anstatt sie direkt in das Distributionspaket (Wheel) einzubetten
Die Trennung von Loader und Payload erschwert nach Einschätzung der Socket-Forscher die Erkennung bei statischer Analyse erheblich, da jede Komponente für sich betrachtet weniger verdächtig wirkt. Zudem zeigte die Analyse der Miasma-Payload, dass diese in der Lage ist, bei Öffnen eines Repositories in einer IDE oder in Entwicklerwerkzeugen mit KI-Unterstützung automatisch Code auszuführen.
Besondere Beachtung verdient eine in bioinformatischen Paketen entdeckte Technik zur Umgehung von KI-Scannern: In Blockkommentare von JavaScript ist eine adversarial Prompt Injection eingebettet, die automatisierte Analysesysteme und KI-Assistenten von Analysten in die Irre führen kann. Diese Technik wurde zuvor von Forschern von StepSecurity beschrieben.
Betroffene Pakete
Die Kampagne umfasst drei Kategorien bösartiger Pakete: Bibliotheken für die Bioinformatik, Pakete mit Bezug zu KI und Model Context Protocol (MCP) sowie Typosquatting-Imitationen populärer Bibliotheken. Nach Angaben der Forscher ist die vollständige Liste der kompromittierten Versionen:
- Bioinformatik: dreamgen 1.8.1, embiggen 0.11.97, ensmallen 0.8.101, gpsea 0.9.14, phenopacket-store-toolkit 0.1.7, ppkt2synergy 0.1.1, pyphetools 0.9.120
- KI und MCP: instructor-mcp 1.15.2/1.15.3, langchain-core-mcp 1.4.2/1.4.3, openai-mcp 2.41.1/2.41.2, ray-mcp-server 0.2.1, tiktoken-mcp 0.13.1/0.13.2
- Typosquatting und Sonstige: rsquests 2.34.3 (Imitation von requests), tlask 3.1.4 und rlask 3.1.7 (Imitation von flask), mem8 6.0.1, mflux-streamlit 0.0.3/0.0.4, orchestr8-platform 3.3.2
Die Zielauswahl ist kein Zufall. Bioinformatische Bibliotheken werden in wissenschaftlichen Workflows eingesetzt – etwa im Graph-Lernen, bei der Phänotypisierung von Patienten und im Umgang mit Phenopackets. Pakete mit MCP-Bezug nutzen das wachsende Interesse an der Integration von Language Models mit externen Tools aus. Typosquatting-Pakete setzen darauf, dass sich Anwender bei der Installation über pip install vertippen.
Bewertung der Auswirkungen
Unabhängig von der Methode der Auslieferung ist das Endziel des schädlichen Codes identisch: das Sammeln von Secrets (Tokens, API-Schlüssel, Zugangsdaten) von Entwickler-Workstations und aus CI/CD-Umgebungen mit anschließender Exfiltration in ein öffentliches GitHub-Repository. Dadurch entsteht ein Kaskadenrisiko: Kompromittierte Secrets eröffnen den Zugang zu Produktivsystemen, Cloud-Infrastrukturen und internen Services von Organisationen.
Am stärksten gefährdet sind:
- Wissenschaftliche und Forschungseinrichtungen, die bioinformatische Python-Bibliotheken einsetzen
- Entwicklungsteams, die mit der Integration von MCP und Language Models experimentieren
- Beliebige Projekte mit automatisierter Installation von Abhängigkeiten ohne Hash-Verifikation
Empfehlungen für die Reaktion
- Abhängigkeiten prüfen: Führen Sie einen Audit der Dateien
requirements.txt,pyproject.tomlund der Lockfiles auf das Vorhandensein der genannten Pakete und Versionen durch. Verwenden Siepip listundpip show <package>, um installierte Versionen zu überprüfen - Secrets rotieren: Falls eines der genannten Pakete in Ihrer Umgebung installiert war, ändern Sie umgehend alle Tokens, API-Schlüssel und Zugangsdaten, die aus dieser Umgebung erreichbar sind, einschließlich der CI/CD-Secrets
- Microsoft-Repositories prüfen: Wenn Sie in den letzten Wochen Open-Source-Projekte von Microsoft auf GitHub geklont oder genutzt haben, warten Sie auf eine offizielle Benachrichtigung von Microsoft oder prüfen Sie den Status der konkreten Repositories
- Dependency-Kontrollen verschärfen: Implementieren Sie die Überprüfung von Paket-Hashes bei der Installation (
pip install --require-hashes), nutzen Sie Software Composition Analysis (SCA)-Tools und beschränken Sie die automatische Installation nicht verifizierter Pakete in CI/CD-Umgebungen - .pth-Dateien und .abi3.so prüfen: Durchsuchen Sie in Python-virtuellen Umgebungen verdächtige
.pth-Dateien und native Erweiterungen.abi3.so, die von bösartigen Paketen installiert worden sein könnten
Wie der Socket-Forscher Kirill Boychenko betonte, stellt der Hades-Zweig der Shai-Hulud- und Miasma-Kampagne eine sich rasch weiterentwickelnde Attacke auf die Software-Lieferkette dar, nicht einen isolierten Vorfall mit einem einzelnen Paket. Die Trennung von Loader und Payload in der Variante langchain-core-mcp zeigt, dass die Angreifer ihre Methoden gezielt anpassen, um bestehende Erkennungsmechanismen zu umgehen. Vorrangige Maßnahmen sind ein Audit der Abhängigkeiten und die Rotation sämtlicher Secrets in Umgebungen, in denen die genannten Pakete installiert gewesen sein könnten.