Das Arrayref-Rust-Crate wurde bei einem Supply-Chain-Angriff kompromittiert, der während der Kompilierung Infostealer-Malware auf den Systemen von Entwicklern installierte. Die Angreifer manipulierten im selben kurzen Angriffszeitraum auch die Crates append-only-vec und internment.
Arrayref ist eine weit verbreitete Rust-Bibliothek mit mehr als 53 Millionen Downloads in den vergangenen 90 Tagen. Sie kommt in Kryptografie-, Grafik- und Blockchain-Projekten zum Einsatz, wodurch der Vorfall für Entwickler und Organisationen, die auf Rust-Abhängigkeiten angewiesen sind, besonders relevant ist.
Die schädlichen Versionen wurden inzwischen entfernt. Wer die betroffenen Pakete während des Expositionszeitraums installiert hat, sollte seine Systeme jedoch auf Anzeichen einer Kompromittierung untersuchen.
Angreifer nutzten eine Typosquatting-Abhängigkeit
Der Angreifer veränderte die betroffenen Versionen, indem er eine Abhängigkeit namens proc-macro1 hinzufügte. Das Paket imitierte durch die ähnliche Schreibweise das legitime und weit verbreitete proc-macro2-Crate.
Der ursprüngliche Quellcode der kompromittierten Pakete blieb ansonsten unverändert. Dadurch war die schädliche Ergänzung bei einer schnellen Überprüfung des Quellcodes schwieriger zu erkennen.
Das Paket proc-macro1 enthielt ein build.rs-Skript, das während der Kompilierung automatisch ausgeführt wurde. Das Skript rekonstruierte seine Infrastruktur aus codierten Fragmenten und wählte eine Payload aus, die zum Betriebssystem des Entwicklers passte.
Die Malware unterstützte Linux x86-64, Windows x86-64, macOS x86-64 und macOS ARM64. Diese plattformübergreifende Unterstützung erhöhte die potenzielle Reichweite der Kampagne erheblich.
Malware stiehlt während des Build-Prozesses Daten und richtet Persistenz ein
Auf Unix-Systemen schrieb die Malware eine Datei namens rust-setup in das temporäre Verzeichnis. Anschließend markierte sie die Datei als ausführbar und startete sie als losgelösten Prozess.
Unter Windows erstellte die Payload ein PowerShell-Skript im temporären Ordner. Sie nutzte versteckte Windows-Script-Host- und VBS-Komponenten, um den Prozess am Laufen zu halten.
Forscher stellten fest, dass die Payload der zweiten Stufe Informationen über das Hostsystem sammeln und Zugangsdaten stehlen konnte. Sie zielte auf die von Chrome, Brave und Edge verwendeten Browser-Anmeldedatenbanken ab.
Die Malware versuchte außerdem, dauerhaft auf infizierten Systemen zu verbleiben. Sie nutzte Registry-Run-Schlüssel unter Windows, LaunchAgent-Einträge unter macOS und systemd-Dienste unter Linux, um Persistenz einzurichten.
Arrayref-Angriff betraf drei Pakete
Zu den schädlichen Paketversionen gehörten arrayref Version 0.3.10, append-only-vec Version 0.1.9 und internment Version 0.8.7. Alle drei Pakete wurden über dasselbe Konto verwaltet.
Der Angreifer veröffentlichte außerdem mehrere Pakete unter separaten Namen, darunter aovine, arone, aronenao und tinymember. Die Registry hat diese zusätzlichen Pakete inzwischen entfernt.
Die Kampagne begann am frühen 20. August. Die Angreifer erstellten zunächst Konten, die legitime Nutzer imitierten, bevor sie ein zunächst harmloses proc-macro1-Paket veröffentlichten. Anschließend veröffentlichten sie ein schädliches Update und verbreiteten die manipulierten Crate-Versionen über das kompromittierte Maintainer-Konto.
Die Registry entfernte die schädliche Abhängigkeit und später auch arrayref 0.3.10 aus ihrem Index. Der gesamte Expositionszeitraum dauerte fast 90 Minuten.
Entwickler sollten betroffene Builds als kompromittiert betrachten
Entwickler sollten Cargo.lock-Dateien und Build-Aufzeichnungen auf die betroffenen Versionen überprüfen. Außerdem sollten sie ihre Systeme nach den abgelegten Dateien durchsuchen und den mit der Infrastruktur der Kampagne verbundenen Netzwerkverkehr untersuchen.
Wer während des Expositionszeitraums ein Projekt erstellt hat, sollte zugängliche Zugangsdaten, CI-Tokens, Signaturschlüssel und andere geheime Informationen austauschen. Teams sollten betroffene Umgebungen nach Abschluss ihrer Untersuchung aus bekanntermaßen sicheren Backups neu aufbauen.
Projekte, die weiterhin keine Anzeichen einer Kompromittierung zeigen, sollten ihre Abhängigkeiten auf bekanntermaßen sichere Versionen festlegen, bis die Situation rund um das Maintainer-Konto vollständig geklärt ist. Forscher haben Überschneidungen bei der Infrastruktur mit jüngsten, Nordkorea zugeschriebenen Supply-Chain-Kampagnen festgestellt, dies bestätigt jedoch keine Zuschreibung.
Fazit
Die Kompromittierung des Arrayref-Rust-Crates zeigt, wie eine kleine Änderung an einer Abhängigkeit große Teile der Software-Lieferkette gefährden kann. Entwickler, die die betroffenen Versionen installiert haben, sollten von einem Risiko ausgehen, ihre Umgebungen untersuchen und sensible Zugangsdaten unverzüglich austauschen.


0 Kommentare zu „Kompromittiertes Arrayref-Rust-Crate verbreitet Infostealer-Malware“