Manipuliertes Go-Paket verschafft sich dauerhaften Fernzugriff
Ein Angriff auf die Software-Lieferkette bedroht das Go-Ökosystem. Ein manipuliertes Paket wurde entdeckt, das es Angreifern ermöglicht, unbemerkt die Fernkontrolle über infizierte Systeme zu übernehmen.
Security-Analysten haben ein bösartiges Go-Paket entdeckt, das gezielt als Fälschung des beliebten Datenbankmoduls BoltDB verbreitet wurde.
Das manipulierte Paket heißt github.com/boltdb-go/bolt und sieht dem echten Modul github.com/boltdb/bolt zum Verwechseln ähnlich. Solche Angriffe nennt man Typosquatting, weil sie darauf setzen, dass Entwickler sich vertippen oder den Unterschied nicht bemerken.
Das schädliche Paket wurde bereits im November 2021 auf GitHub veröffentlicht und dann vom Go Module Mirror-Dienst gespeichert, ohne dass es jemals entfernt wurde. Dadurch blieb es für ahnungslose Entwickler über Jahre hinweg abrufbar.
Hintertür für Angreifer – unsichtbar für Entwickler
„Sobald das manipulierte Paket installiert ist, erhält der Angreifer Fernzugriff auf das infizierte System und kann dort beliebige Befehle ausführen,“ erklärt Sicherheitsexperte Kirill Boychenko.
Doch die Angreifer gingen noch einen Schritt weiter, um ihre Spuren zu verwischen:
- Nachträgliche Manipulation der Git-Tags: Nachdem das Paket verbreitet war, änderten die Hacker die Git-Tags und verknüpften sie mit einer harmlosen Version.
- Keine verdächtigen Spuren im Repository: Wer das Repository später überprüfte, fand nur die saubere Version – die bösartige blieb verborgen.
- Go-Cache machte den Angriff möglich: Der Go Module Proxy hatte bereits die infizierte Version gespeichert und nie aktualisiert oder gelöscht. Dadurch luden Entwickler weiterhin die schädliche Variante herunter.
„Sobald eine Modulversion zwischengespeichert wurde, bleibt sie abrufbar – selbst wenn der ursprüngliche Code geändert wird,“ so Boychenko. Während dieser Mechanismus eigentlich für mehr Sicherheit sorgen soll, haben die Hacker ihn gezielt ausgenutzt, um ihre Schadsoftware unbemerkt zu verbreiten.
Weitere manipulierte Pakete entdeckt
Auch bei npm-Paketen wurden ähnliche Angriffe entdeckt. Spezialisten von Cycode fanden drei bösartige Pakete, die verschleierten Code enthielten:
- serve-static-corell
- openssl-node
- next-refresh-token
Diese Pakete sammelten Systeminformationen und führten Befehle von einem externen Server aus.
Reaktion der Go-Community
Am 5. Februar 2025 veröffentlichten die Betreiber des Go Module Mirror eine Warnung zu github.com/boltdb-go/bolt: „Dieses Modul ist eine bösartige Fälschung und wurde gezielt erstellt, um Entwickler zu täuschen und sich als das echte Modul github.com/boltdb/bolt auszugeben.“
Angreifer finden immer raffiniertere Methoden, um Schadsoftware in Software-Lieferketten einzuschleusen. Entwickler sollten daher genau prüfen, welche Pakete sie installieren – selbst wenn sie aus vermeintlich vertrauenswürdigen Quellen stammen.
