Rust: Verpflichtung der Lieferkette zu arrayref, internment und append-only-vec

Autor: Veröffentlicht 6 min de lectura 4 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

Rust's Paket-Ökosystem erlitt einen Versuch, die Lieferkette am 20. August 2026 zu kompromittieren: drei böswillige Versionen von beliebten Kisten wurden innerhalb von Stunden nach der Intervention von Rust's Sicherheits-Response-Team veröffentlicht und beseitigt. Betroffene Kisten: arrayref 0.3.10, internment 0.8.7 und append-only-vec 0.1.9, alle aus demselben Wartungskonto veröffentlicht und zwischen 86 und 107 Minuten nach ihrer Veröffentlichung zurückgezogen, nach den offiziellen Aufzeichnungen des Rust Security Response Teams (RSRT) und des RUSTSEC-2026-0260 Sicherheitshinweises.

Was diese Kampagne besonders gefährlich machte, war der technische Vektor: nicht sichtbarer böser Code wurde in den Zielbibliotheken eingeführt, sondern in der Compilation Skript einer Typosquated Unit namens Proc-macro1(mit dem weit verbreiteten proc-macro2). Die Buchhandlung selbst war eine legitime Kopie von proc-macro2, um Fehler zu vermeiden, aber sein Build-Skript baute eine Server-Adresse aus base64-codierten Fragmenten wieder auf, deaktivierte TLS-Verifikation durch die Installation eines Validators, der immer Erfolg zurückgibt, heruntergeladen eine plattformspezifische binäre und ausgeführt es während der Compilation Phase. Dieses Verhalten impliziert, dass es genug war, dass Cargo die Abhängigkeit (z.B. mit Build-Last, Check-Last oder Test-Last) zu lösen und zu kompilieren, um die Malware, ohne dass der Code der verübten Kisten in der Zeit der Ausführung aufgerufen werden muss.

Rust: Verpflichtung der Lieferkette zu arrayref, internment und append-only-vec
Bild generiert mit IA.

Die bestätigten Tatsachen umfassen die Veröffentlichungs- und Entnahmezeitmarken (veröffentlicht durch die RSRT), das Vorhandensein des Build-Skripts mit dem Download und den TLS-Deaktivierungsmechanismus (verifiziert durch die RSRT und zunächst vom Nextron Systems GmbH Research Team zugeschrieben), sowie die Persistenzvektoren und Payload-Befehle in der zweiten Stufe (öffentliche Analyse von Wiz-Dokumentation Persistenz durch Registry Ra-Schlüssel in Windows, LaunchAgent in macOS und Systemd-Brows). Es wurde kein CVE zugewiesen und laut RustSec es gibt keine öffentlichen Beweise, dass bösartige Versionen weit verbreitet wurden.

Es gibt noch unsichere oder ungeschlossene Elemente: das Hauptbuch des Autors - öffentlich als droundy in Kisten identifiziert. io - scheint kompromittiert zu sein und das Sicherheitsteam versucht, den Eigentümer zu kontaktieren, aber es wurde nicht veröffentlicht, wie das Engagement von Anmeldeinformationen aufgetreten. Es wurden keine offiziellen Zahlen darüber vorgelegt, wie viele spezifische Downloads für die gelöschten Versionen waren; The Hacker News konsultierte die RSRT zu diesen unbeantworteten Zahlen zum Zeitpunkt des Berichts. Demgegenüber zeigen die historischen Gesamte von arrayref (vorgesehen durch die crates.io API) dass die Rate eine langfristige Massennutzung hat, mit zehn Millionen von Downloads in den letzten Monaten, die das Wirkungspotenzial hervorhebt, wenn eine bösartige Version von beliebten Abhängigkeiten installiert worden war.

Technisch kombinierte die Lieferung zwei bekannte Techniken: Typosquatting (proc-macro1, proc-macro2) und Manipulation von Versionen und Yanks, um Cargo zu zwingen, die Aktualisierung auf eine nicht-jakierte Version zu betrachten. Ein Forscher berichtete, dass der Autor des Pakets mehrere frühere Versionen (0.3.5-0.3.9) markiert hatte, wie in der gleichen Minute der böswilligen Veröffentlichung yanked, so dass die neue 0.3.10 momentan die einzige unangekündigte Version von yanked für Benutzer, die den Vorschlag von "consider update" erhalten. Dieses Spiel machte es einfacher für Projekte mit 0.3.x-Versionsbereichen, um die bösartige Version während der Zusammenstellung zu lösen.

Praktische Konsequenzen: Wenn ein Projekt - direkt oder vorübergehend - die bösartige Version gelöst und auf dem Entwicklungsteam oder in CI zusammengestellt wurde, konnte das Build-Skript die zweite Stufe des Angriffs ausführen. Die dokumentierte Nutzlast führt Beharrlichkeit, Kommunikation mit einem C2 (öffentliche Indikatoren zeigen auf 23,254.165.112: 443 und andere Ports), und Browser-Zulassungen Diebstahl-Funktionen unter Windows. Auch wenn Rost-Kraten nicht später in der Produktion laufen, gibt die Ausführung während der Zusammenstellung dem Angreifer eine effektive Kontrolle über den Host, der die Einheit kompilierte.

Was sollten Sie tun - Kontrollen und konkrete Maßnahmen

1) Überprüfen Sie, ob Ihre Umgebung die beteiligten Versionen kompiliert haben kann. Suchen Sie den lokalen Cargo Cache für Artefakte entsprechend den Daten vom 20. August 2026: in der Regel in ~ / .cargo / Record / Cache (Unix / macOS) oder% USERPROFILE%\ Ladung\ Record\ Cache (Windows). Das Antwort-Team empfiehlt, jede gelöschte Rate-Datei zu entfernen und Abhängigkeiten von sicheren Versionen zu rekonstruieren. Siehe auch die öffentliche Seite des Pakets in Kisten. io, um Versionen und Eigentümer zu bestätigen: https: / / crates.io / crates / arrayref.

(2) Isolieren und entfernen Sie verdächtige Geräte. Öffentliche Engagement-Indikatoren umfassen Namen und Routen wie / tmp / rust-setup (Unix / macOS),% TEMP%\ rust-setupps1 und% TEMP%\ rust-setup-launch.vbs (Windows). Wenn Sie diese Dateien finden, führen Sie sie nicht aus; halten Sie Kopien für die Analyse bei Bedarf und gehen Sie zu einer Reinigung und Scannen mit EDR / AV-Tools.

3) Suchen Sie nach Beharrlichkeit. In Windows-Check Run / RunOnce Schlüssel in der Benutzer-und System-Registrierung; in macOS, review ~ / Library / LaunchAgens und / Library / LaunchDaemons / LaunchAgens; in Linux, Liste systemd --Benutzereinheiten und Dateien in ~ / .config / systemd / user. Wenn Sie Dienste oder Schlüssel, die mit den im veröffentlichten IoC angegebenen Namen verknüpft sind, erkennen, antworten Sie auf vollständige Vorfälle (Isolierung, ggf. Nachbildung).

4) Überprüfen Sie Protokolle von CI und bauen Sie Server. Wenn Ihre Pipelines automatisch oder in gemeinsamen Läufern kompilieren, suchen Sie nach Zeichen von Kompilationen in den Angriffszeitbereichen und URLs / Kommunikations-IPs (z.B. 23.254.165.112). Überprüfen Sie auch Geräte, die in Läufern generiert werden und löschen Sie den entfernten Cache aus dem Paketrecorder gegebenenfalls.

5) Pinnee Abhängigkeiten bis zu sicheren Versionen. RustSec und die Community schlagen vor, Arrayref auf 0.3.9 oder früher zu fixieren (z.B. in Cargo.toml verwenden Arrayref = "0.3.9" oder Cargo.lock zu ändern, um Auflösung auf 0.3.10 zu vermeiden). Wenn Ihr Projekt Pflegebereiche akzeptiert, bestätigen Sie, dass die aufgelöste Lockfile keine 0.3.10.

6) Ändern Sie Anmeldeinformationen und überprüfen Sie Zugriffe. Wenn Sie Kisten halten, drehen Sie Veröffentlichungstoken, überprüfen Kisten. io-Account-Aktivität und Kontaktantwort-Teams können die Wiederverwendung von Zugriff verhindern. Wenn Ihre Organisation Token in CI verwendet, entfernen und ersetzen Sie Token, die möglicherweise ausgesetzt wurden.

Rust: Verpflichtung der Lieferkette zu arrayref, internment und append-only-vec
Bild generiert mit IA.

7) Halten Sie die CI-Tools und hängen von Abkühlungen und Steuerungen. Bewerten Sie Richtlinien, die die automatische Erstellung von neu veröffentlichten Paketen verhindern, und verwenden Sie temporäres Schloss für automatische Updates (z.B. Kühlfenster oder manuelle Überprüfung) reduziert das Risiko von unauditierten Codeausführungen. Cargo setzt keine äquivalente Abklingzeit voraus; es gibt eine langjährige PR für minimale Verlagsoptionen, die noch anhängig waren.

Kontext und Risiko für die Zukunft: Dieser Vorfall wiederholt beobachtete Muster in anderen Ökosystem-Verpflichtungen (npm, etc.), wo typosquating und Rapid Publishing Umsetzung in Entwicklungsumgebungen und CI produzieren. Obwohl RustSec behauptet, dass es keinen Beweis für eine umfangreiche Nutzung dieser Versionen gibt, macht die Kombination einer großen Anzahl von abhängigen Rate und die Fähigkeit, in der Bauphase zu laufen, das Risiko für Projekte, die Einheiten in sensiblen Umgebungen kompilieren.

Weitere technische Details und die offizielle Mitteilung finden Sie in der RustSec Datenbank: https: / / rustsec.org / Beratung / RUSTSEC-2026-0260.html, und die Dokumentation von Fracht auf dem yanking-Mechanismus in der Veröffentlichung von Kisten: https: / / doc.rust-lang.org / Fracht / Referenz / Verlag. html. Beachten Sie das Rust Security Response Team und weitere technische Analysen von Antwortgruppen (Nextron, Wiz und andere) für Indikatoren und Proben, die eine genauere Reinigung und Erkennung ermöglichen.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.