
Go-Malware verbreitet sich über bösartige Terraform-Provider
Bösartige Terraform-Provider in HashiCorps Registry lieferten Go-basierte Malware, fanden Forscher heraus, in einem Supply-Chain-Angriff mit Verbindung zu nordkoreanischen Akteuren.
Sicherheitsforscher haben eine Go-basierte Malware-Kampagne offengelegt, die bösartige Terraform-Provider und Go-Module verwendet, die über die HashiCorp Terraform Registry veröffentlicht wurden. Dies markiert das erste Mal, dass Bedrohungsakteure dieses zentrale Repository als Verteilungsvektor für bösartige Payloads genutzt haben. Laut Aikido handelt es sich bei den beiden Terraform-Providern und zwei Go-Modulen um gocommunity-io/dockerd (222 Downloads), kreuzwenker/docker (1.449 Downloads), gocommunity.io/orderedbtree und gogets.dev/btreex. Die über diese Pakete verbreitete Malware zeigt Überschneidungen mit Graphalgo, einer Kampagne, die erstmals im Februar von ReversingLabs dokumentiert und nordkoreanischen (DPRK) Bedrohungsakteuren zugeschrieben wurde.
Die Angreifer sprechen potenzielle Entwickler auf LinkedIn, Facebook oder Job-Foren an, während sie sich als nicht existierende Web3-Unternehmen ausgeben, und bitten sie dann, eine Programmieraufgabe zu erledigen, indem sie ein harmloses GitHub-Repository bereitstellen, das bösartiges Verhalten durch eine auf npm oder PyPI veröffentlichte Abhängigkeit einführt. Die neueste Entdeckung fällt mit der Identifizierung einer neuen Reihe bösartiger npm-Pakete zusammen, die von Checkmarx, JFrog und SafeDep gemeldet wurden, darunter indexed-btree, mathsbase, mathmain, math-universe, modern-events, quick-events, crypto-hasher, events-router, sort-btree, graphcore-js und graphlib-js. Die Analyse zeigt, dass in einigen Fällen die Malware-Ausführung nur bei einer bestimmten kryptografischen Operation ausgelöst wird, ein Kennzeichen einer gezielten Operation.
JFrog beschrieb das Payload-Verhalten: Es entschlüsselt nur, wenn das Opfer ein lineares System mit einer bestimmten Matrix löst, nimmt seine Befehle von einem Smart Contract auf dem Ethereum Sepolia Testnet entgegen, hält einen zweiten Befehlskanal über Slack offen und versteckt sich hinter Download-Zahlen, die von einer Farm von GitHub Actions-Workern erzeugt wurden. Der Implantat ist mit asymmetrischer Kryptografie verschlüsselt, sodass seine genauen Funktionen unbekannt bleiben. Es kontaktiert einen Slack-Kanal und fragt alle 10 Sekunden den conversations.history-Endpunkt ab, wobei es auf drei Pakettypen reagiert: Startpaket zum Beginn einer Dateiübertragung, Chunk-Paket zur Lieferung von Dateiinhalten und Endpaket zum Zusammenfügen der Chunks. SafeDep stellte fest, dass der Blockchain-Pfad entfernte Daten entschlüsselt, ein Programm namens subwatcher schreibt und es mit Node.js startet, aber die Forscher konnten nur das Implantat und nicht den später über diese Kanäle gelieferten Code wiederherstellen, sodass sie nicht sagen können, welche Aufgaben ein Operator auf einem Opfer ausführte.
Aikido fand heraus, dass die über die Terraform-Provider und Go-Module verbreitete Malware ein Go-Port ist, der Blockchain- und Slack-Infrastruktur mit der npm-Version teilt. Sie hat duale Command-and-Control-(C2)-Kanäle, die Blockchain-Dead-Drops und ein Slack-Bot-Token verwenden. Nach der Infektion sammelt sie Systeminformationen, darunter Hardware-Attribute, Betriebssystem, Hostname und ob Node.js verfügbar ist, und sendet diese Daten über die API an einen von Angreifern kontrollierten Slack-Kanal. Der Sicherheitsforscher Oliver Smith erklärte, dass die Malware nach dem Check-in-Aufruf ein ephemeres öffentlich-privates Schlüsselpaar generiert und es mit zwei öffentlichen Schlüsseln der Bedrohungsakteure kombiniert, um gemeinsame Schlüssel zu erstellen, was die Kommunikation über gemeinsame Kanäle ermöglicht, ohne C2-Nachrichten zwischen infizierten Hosts offenzulegen. Das blockchainbasierte C2 ruft Daten von einem Ethereum Smart Contract auf dem Arbitrum Sepolia Testnet unter Verwendung einer fest codierten Vertragsadresse ab und fragt alle drei Sekunden nach verschlüsselten Befehlen, die als Go- oder JavaScript-Code ausgeführt werden. Smith sagte, dieser Mechanismus sei ein weiterer Hinweis auf eine gezielte Operation, da alle Clients alle Nachrichten konsumieren und No-Op ausführen, wenn sie Nachrichten für andere Clients nicht entschlüsseln können.
Der Socket-Sicherheitsforscher Karlo Zanki sagte gegenüber The Hacker News, dass Graphalgo weiterhin demselben operativen Playbook folgt und wahrscheinlich gefälschte Vorstellungsgespräche als primären Erstzugriffsvektor nutzt. Die Ausführung wird durch eine grundlegende Überprüfung von Daten gesteuert, die wahrscheinlich von der Front-End-Komponente geliefert werden, was auf eine eng gezielte Aktivität hindeuten könnte, aber wahrscheinlicher die Analyse behindert, wenn Forscher die Backend-Payload ohne das entsprechende Front-End entdecken. Die ursprüngliche Graphalgo-Operation wies dasselbe Merkmal auf.
Das Auftauchen von Terraform-Providern ist eine neuartige Taktik, aber Aikido fügte hinzu, dass es vielleicht nicht überraschend ist, da es einen direkteren Weg zu kritischen Produktionsanmeldeinformationen bieten kann und zeigt, dass der Bedrohungsakteur die Kampagne über npm und PyPI hinaus ausweitet. Dies ist nicht das erste Mal, dass nordkoreanische Gegner Terraform-Provider für die Malware-Verbreitung genutzt haben. SentinelOne berichtete letzte Woche, dass der Bedrohungsaktivitätscluster TraderTraitor weaponisierte Terraform-Lock-Dateien verwendete, um Rust-basierte Backdoors von benutzerdefinierten Terraform-Provider-Registries zu liefern, die von den Angreifern kontrolliert werden. Zanki sagte, es sei zu früh, um mit Sicherheit zu schlussfolgern, dass DPRK-verbundene Bedrohungsakteure Terraform-Registries als neue Verteilungstaktik nutzen, aber ihr jüngstes Auftauchen in zwei separaten Kampagnen mache einen Zufall weniger wahrscheinlich. Er fügte hinzu, dass diese Akteure hochgradig anpassungsfähig sind und Terraform-Registries als ihren nächsten Verteilungskanal in großem Umfang adoptieren könnten.
Separat hob CloudSEK einen zuvor nicht gemeldeten JavaScript-Loader namens GHAPPIER hervor, der nach der Kompromittierung eines legitimen npm-Pakets, @dforge-core/dforge-mcp, verbreitet wurde. Es ist derzeit nicht bekannt, wie Angreifer Zugriff auf das Konto des Maintainers erlangten, obwohl vermutet wird, dass die Maschine des Entwicklers durch eine bösartige Erweiterung oder ein Paket infiziert worden sein könnte. Die bösartige Version 0.2.21 blieb am 9. September 2026 für 35 Minuten und 38 Sekunden auf npm live, bevor der ursprüngliche Maintainer die Änderungen rückgängig machte und eine saubere Version 0.2.22 veröffentlichte. Derselbe Loader wurde in 65 öffentlichen Repositories beobachtet, die 22 verschiedenen Konten gehören. Der CloudSEK-Forscher Vikas Kundu sagte, der Operator habe die gespeicherten Anmeldeinformationen eines Entwicklers erlangt und dann diese Anmeldeinformationen verwendet, um in jedes Repository zu schreiben, in das der Entwickler pushen konnte. Ein Vergleich zweier Kopien des Loaders, eine aus dem npm-Paket und eine aus dem Repository eines zweiten Opfers, zeigte, dass die Angriffskette denselben Staging-Host und dieselbe Anfrage an eine Vercel-Domain verwendet, sich jedoch im Kampagnen-Tag unterscheidet, ghappier versus g0115. Die zweite Payload verwendet die NullReceiver-Technik, um ihre C2-Adresse 193.247.144[.]38 von einer Angreifer-Wallet zu beziehen, und weist die nachfolgende Byte-Sequenz 68656c6c6f6970626f742121 auf, die zu helloipbot!! dekodiert. Diese Aktivität überschneidet sich mit einer langjährigen nordkoreanischen Kampagne namens PolinRider.
Das Rust-Projekt warnte auch vor einer laufenden Kampagne, die auf rust-lang-Mitglieder und Besitzer beliebter Crates abzielt, um deren Geräte und Konten für die Malware-Verbreitung zu kompromittieren. Adam Harvey, ein Softwareentwickler bei der Rust Foundation, sagte, Angreifer vereinbaren einen Videoanruf für etwas Positives wie eine Job-, Projekt- oder Vertragsmöglichkeit und nutzen ihn dann, um das Ziel dazu zu bringen, etwas zu installieren, wie einen angeblich fehlenden Audio-Codec, oder einen in die Zwischenablage gelegten Befehl auszuführen. Sie erstellen neue, aber legitim erscheinende Firmenprofile, einschließlich plausibler LinkedIn-Präsenzen, um eine oberflächliche Prüfung zu bestehen. Die Vorgehensweise überschneidet sich mit der mit Nordkorea verbundenen Contagious Interview-Kampagne. Das Rust-Projekt forderte Mitwirkende und Crate-Besitzer auf, Vorsicht walten zu lassen, Multi-Faktor-Authentifizierung zu aktivieren und Konten auf unerwartete Anmeldungen zu überprüfen.
Für Website-Besitzer und IT-Teams ist diese Gruppe von Supply-Chain-Angriffen eine Erinnerung daran, dass Abhängigkeiten von öffentlichen Registries nicht automatisch sicher sind, selbst wenn sie eine Download-Zahl ungleich Null haben oder in einem legitimen Repository erscheinen. Die Überprüfung von Drittanbieter-Code, bevor er in die Produktion gelangt, das Pinning von Versionen und die Überprüfung der Publisher-Historie bleiben zentrale Verteidigungsmaßnahmen. AEU-I, der sicherheitsorientierte IT- und Infrastrukturberatungsdienst der AEU Group, hilft Organisationen dabei, solche unabhängigen Überprüfungen von Drittanbieter-Abhängigkeiten und Supply-Chain-Kontrollen einzuführen, ohne zu behaupten, an diesen Entdeckungen beteiligt gewesen zu sein.
So schützen Sie sich
- Wenn Sie Terraform verwenden, installieren Sie Provider nur aus der offiziellen HashiCorp-Registry oder von einem Publisher, dem Sie bereits vertrauen, und verlassen Sie sich nicht allein auf Download-Zahlen.
- Führen Sie bei einem unaufgeforderten Vorstellungsgespräch oder Programmiertest keinen unbekannten Code aus und installieren Sie keine Software auf Ihrem eigenen Computer; überprüfen Sie zuerst das Unternehmen über eine separate offizielle
- Aktivieren Sie die Zwei-Schritt-Verifizierung (Multi-Faktor-Authentifizierung) für Ihre GitHub-, npm- und Hosting-Konten und prüfen Sie die Seite mit den letzten Anmeldeaktivitäten auf alles, was Sie nicht erkennen.
- Führen Sie eine einfache schriftliche Liste aller Drittanbieter-Pakete und -Plugins, von denen Ihre Website abhängt, und aktualisieren Sie jedes, sobald ein Sicherheitsfix angekündigt wird.
- Wenn eine Programmieraufgabe Sie auffordert, ein Paket hinzuzufügen, von dem Sie noch nie gehört haben, halten Sie inne und suchen Sie nach dem Paketnamen zusammen mit dem Wort bösartig, bevor Sie es ausführen.
- Für Website-Besitzer: Nutzen Sie einen Managed-Hosting- oder Sicherheitsüberprüfungsdienst, der helfen kann, Drittanbieter-Code zu prüfen, bevor er Ihre Live-Website erreicht.
Begriffe Erklärt
- Terraform provider Ein Plugin, das es dem Terraform-Tool ermöglicht, einen bestimmten Cloud-Dienst oder eine Ressource zu verwalten.
- Go module Ein Paket mit Code, der in der Programmiersprache Go geschrieben wurde und geteilt und wiederverwendet werden kann.
- npm Eine öffentliche Bibliothek, in der Entwickler JavaScript-Code-Pakete teilen und herunterladen.
- PyPI Der Python Package Index, eine öffentliche Bibliothek von Python-Code-Paketen.
- command-and-control (C2) Der versteckte Kommunikationskanal, den ein Malware-Betreiber verwendet, um Anweisungen an infizierte Computer zu senden.
- blockchain dead drop Eine Methode, Befehle in einem Blockchain-Smart-Contract statt auf einem normalen Server zu verstecken.
- Ethereum smart contract Ein kleines Programm, das auf der Ethereum-Blockchain gespeichert ist und automatisch ausgeführt wird, wenn bestimmte Bedingungen erfüllt sind.
- testnet Eine separate Kopie einer Blockchain, die zum Testen verwendet wird, wobei digitale Token keinen realen Wert haben.