Hunderte AUR-Pakete von Infostealer-Malware-Angriff betroffen
(lists.archlinux.org)- In das AUR (Arch User Repository) wurden zahlreiche bösartige Commits eingeschleust, wodurch ein Supply-Chain-Angriff entstand, bei dem der Paketinstallationsprozess so manipuliert wurde, dass
npm install atomic-lockfileausgeführt wird - Bei der Durchsicht der schreibgeschützten Mirror-Suchergebnisse wurde derselbe bösartige Befehl in den Dateien PKGBUILD,
.installund.hookvon rund 408 Paketen bestätigt - Die bösartigen Commits nutzen Commit-Fälschung, indem sie Name und E-Mail des jeweils vorherigen Commits missbrauchen, um sich als legitime Maintainer auszugeben; das ist unabhängig von einer möglichen Kontoübernahme
- Arch arbeitet derzeit an der Rücksetzung bzw. Löschung bösartiger Commits und an der Sperrung von Konten; weitere bösartige Pakete sollen gesammelt in einem einzigen Thread gemeldet werden
- Community-Mitglieder melden fortlaufend einzelne Paket-Commits und leisten damit eine kooperative Reaktion auf einen Vorfall großen Ausmaßes, der das gesamte AUR-Paketökosystem betrifft
Überblick über den Vorfall und Bitte um Mithilfe
- Es wurden Hinweise auf massenhaft eingeschleuste bösartige Commits im AUR geteilt; derzeit laufen Maßnahmen zur Rücksetzung/Löschung der bösartigen Commits und zur Sperrung von Konten
- Falls weitere bösartige Pakete entdeckt werden, wird darum gebeten, sie als Antwort auf diese E-Mail zu melden, damit alles im selben Thread gesammelt werden kann
- Ein zuständiger Koordinator antwortete, dass alle eingegangenen Meldungen geprüft wurden, und bedankte sich bei den Beteiligten für ihren Zeitaufwand
Muster des Schadcodes — atomic-lockfile
- Die manipulierten Pakete führen durchgängig
npm install atomic-lockfileaus; dahinter folgen zusätzliche npm-Paketnamen wieora,fast-glob,glob,minimist,axios,commander,execa,chalk,debugund weitere - Dateitypen, in denen sich der bösartige Befehl befand
- Installationsskripte in der Form
*-deps.install - Paket-Installationsskripte
*.install - Dateien vom Typ
*.hook— zum Beispiel in der FormExec = /bin/sh -c 'cd /tmp && npm install atomic-lockfile ... 2>/dev/null; exit 0', also Ausführung in/tmp, anschließendes Unterdrücken von Fehlern und Beenden - Teilweise auch in zugehörigen Dateien wie
install.shenthalten
- Installationsskripte in der Form
- Als Beispiel für ein neu erstelltes bösartiges Paket wurde
exodus-wallet-bingemeldet; es handelte sich um ein neu angelegtes Paket, das zum Zeitpunkt des ersten Commits vor etwa 4 Stunden erstellt worden war
Erkennungsmethode und Umfang der Auswirkungen
- Die Erkennung erfolgte durch direkte Prüfung eines schreibgeschützten Mirrors
- Nach
git clone https://github.com/archlinux/aur.gitwurden alle Refs durchlaufen undgit grep 'atomic-lockfile'ausgeführt - Als Ergebnis wurde eine lange Liste von rund 408 Paketen ermittelt, die
atomic-lockfileinstallieren; diese kann für automatisierte Bereinigungsarbeiten genutzt werden
- Nach
- Beispiele für als betroffen genannte Pakete
runescape-launcher,oracle-bin,tesseract-gui,python-starsessions,bitcoin-core-git,apple-music-desktop,exodus-wallet-bin,anythingllm-appimage,arm-linux-gnueabihf-binutilsund weitere- Darunter auch breite Paketfamilien wie
cutefish-*,python2-*undpython-*
- Da durch zahlreiche Einzelmeldungen sehr viele E-Mails aufliefen, wurde empfohlen, mehrere Fälle in einer einzigen Mail zu bündeln; eine zusammengefasste Paketliste wurde zudem separat auf IRC geteilt
Methode der Vortäuschung/Fälschung
- Bei Paketen im Zusammenhang mit einem bestimmten Konto (
arojas) wurde die Frage aufgeworfen, ob es sich um eine Kontoübernahme oder um Commit-Fälschung handelt - Dazu wurde bestätigt, dass die bösartigen Commits Name und E-Mail des unmittelbar vorherigen Commits vortäuschen (impersonate) — also eine Fälschung der Commit-Metadaten
- Es wurde auch berichtet, dass andere Pakete desselben Nutzers in manchen Fällen bereits bereinigt wurden
Stand der Gegenmaßnahmen
- Gemeldete Paket-Commits wurden der Reihe nach bearbeitet; bei einigen Einträgen wurde per Antwort Done bestätigt, dass die Korrektur abgeschlossen ist
- Mit weiteren Meldungen prüfte der zuständige Koordinator die eingegangenen Fälle gesammelt, parallel zu den laufenden Sperr- und Rücksetzungsmaßnahmen
- Zahlreiche Beteiligte meldeten einzelne Pakete zusammen mit Commit-Links; die Reaktion erfolgte damit als gemeinschaftlich getragene, kooperative Gegenmaßnahme
1 Kommentare
Lobste.rs-Kommentare
Durch diese Sache dürfte das restliche Vertrauen in anonyme, nicht verifizierte Beiträge in der Community so gut wie am Ende sein
Es fühlt sich an, als würde man zusehen, wie Vertrauen in Echtzeit abgetragen wird
Wir vertrauen Computern viel zu viele persönliche und sensible Daten an, und sie sind zum Zentrum des modernen Lebens geworden. Wenn ein privater Rechner kompromittiert wird, ist das ein wirklich katastrophales Ereignis, und im besten Fall kann man nur hoffen, für Hacker nicht interessant genug zu sein, dass sie einen gezielt schikanieren
Trotzdem haben wir es aus irgendeinem Grund normalisiert, irgendein zufälliges Programm mit vollen Rechten auszuführen[1], und tun dann überrascht, wenn sich das als schlechte Idee herausstellt
[1] Gemeint sind die aktuellen Benutzerrechte. In den meisten Setups hat root praktisch kaum Bedeutung
Ich stelle mir ein System vor, das beim Installieren oder Aktualisieren von AUR-Paketen solche Optionen bietet: bei kürzlich aktualisierten Paketen eine Woche warten, bis sie "abgekühlt" sind; selbst ein paar Minuten investieren, um das Paket zu prüfen, und eine signierte Review zu hinterlassen, die mit dem eigenen Ruf verknüpft ist; oder sich auf signierte Reviews mehrerer anderer Personen verlassen, bei denen sich genug Vertrauen angesammelt hat
Die Abkühlphase könnte technisch mit der Arch-Politik kollidieren, alle Pakete gemeinsam aktuell zu halten. Allerdings werden AUR-Pakete ohnehin nicht offiziell unterstützt
Selbst nach mehreren Stunden wurde das NPM-Paket noch nicht entfernt: https://www.npmjs.com/package/atomic-lockfile
Um zu prüfen, ob installierte Pakete betroffen sind, kann man dieses kleine Skript zusammen mit der Datei
aur_pkg_list.txtverwendenIch habe die Semikolons eingefügt, damit man es leicht als Einzeiler verwenden kann :-)
Es scheint auch Teilstrings zu treffen. Zum Beispiel matcht
kteaauch aufkteatimeDiese Version scheint zu funktionieren
Gut möglich, dass das schon seit einiger Zeit lief. In dieser E-Mail von vor 18 Tagen scheint ein ähnlicher bösartiger Payload verwendet worden zu sein, aber der schädliche Commit wurde offenbar vollständig aus dem Repository entfernt
Dazu passend: Gibt es irgendwo einen wirklich guten Vergleich der Supply-Chain-Sicherheitslage populärer Linux-Distributionen? Die meisten Texte, die ich bisher gefunden habe, wirkten entweder wie subtil verkapptes Marketing oder wie schlampige AI-Ware. Vielleicht muss ich das einfach selbst recherchieren
Der deprimierende Teil ist, dass ich die Ideale gemeinschaftlicher Entwicklung eigentlich mag, wegen Supply-Chain-Sorgen aber zunehmend genauer auf geschlossene Alternativen oder sogar proprietäre Software schaue