Bösartige Terraform-Provider sind ein unangenehmer Sonderfall im Supply-Chain-Risiko. Ein Provider ist nämlich keine Bibliothek, die irgendwo im Code schlummert, sondern laut HashiCorps eigener Architekturbeschreibung ein eigenständiges, ausführbares Programm – und es läuft auf genau jener Maschine, die die Zugangsdaten zur Cloud-Umgebung hält. Genau dort hat die Sicherheitsfirma Aikido zwei verseuchte Pakete in der öffentlichen HashiCorp-Registry gefunden und am 22. September 2026 darüber berichtet.
Wie die bösartigen Terraform-Provider funktionieren
Betroffen sind laut Aikido die Provider gocommunity-io/dockerd und kreuzwenker/docker, veröffentlicht Anfang September. Der zweite Name ist der eigentlich interessante: Das echte Paket heißt kreuzwerker/docker und zählt rund 56 Millionen Downloads. Ein einzelner vertauschter Buchstabe – und den liest in einer 400 Zeilen langen HCL-Datei niemand nachträglich Korrektur. Die Fälschungen blieben klein: The Hacker News nennt 1.449 Downloads für kreuzwenker/docker und 222 für gocommunity-io/dockerd. Belastbar sind solche Zahlen allerdings kaum – JFrog geht laut demselben Bericht davon aus, dass Downloadzahlen dieser Kampagne über GitHub-Actions-Farmen künstlich erzeugt wurden.
Parallel dazu fand Aikido zwei passende Go-Module: gocommunity.io/orderedbtree, erstmals am 11. August veröffentlicht, und gogets.dev/btreex vom 8. September. Dieselbe Kampagne verteilt seit Monaten auch npm-Pakete.
Bemerkenswert ist die Zündung. Terraform-Provider kennen keinen npm-artigen Installations-Hook, der bei terraform init feuert. Der Einsprungpunkt sitzt laut Aikidos Analyse in den Ressourcen-Funktionen für docker_container – er wird also erst erreicht, wenn Terraform diese Ressource verarbeitet. Und selbst dann entschlüsselt sich der Schadcode nur, wenn der SHA256-Wert aus den aneinandergehängten Variablen containerName und networkID einem festen Zielwert entspricht; derselbe Wert dient gleichzeitig als Schlüssel. Bei gogets.dev/btreex ist die Bedingung ein Objekt mit einem bestimmten Preis-Wert, während orderedbtree die Malware ungeschützt im Klartext enthielt. Wer die Pakete also in einer Sandbox ausführt, sieht im Zweifel nichts.
Wird die Bedingung erfüllt, folgt laut Aikido ein Go-Agent mit zwei unabhängigen Steuerkanälen. Er sammelt Betriebssystem, Architektur, Hostname, Benutzername, Heimatverzeichnis, Zeitstempel und die Information, ob node installiert ist – letzteres, weil Befehle wahlweise als Go- oder als JavaScript-Code ausgeführt werden. Die Erstmeldung geht in einen Slack-Kanal namens frontend-devs, verschlüsselte Befehle holt der Agent aus einem zweiten Slack-Arbeitsbereich und zusätzlich aus einem Smart Contract im Arbitrum-Sepolia-Testnetz. Die Blockchain fragt er alle drei Sekunden ab, Slack alle zehn.
Die Betriebsspuren machen die Dimension greifbar: 1.240 verschlüsselte Nachrichten im Befehlskanal seit dem 16. Juli, 1.402 Transaktionen am Vertrag seit dem 6. August und 18 verschiedene Hostnamen in 725 unverschlüsselten Erstmeldungen – drei Windows-, fünf Linux- und zehn macOS-Geräte.
Zur Herkunft ist Vorsicht angebracht. Aikido selbst nimmt keine Zuordnung vor und verweist nur auf die Überschneidung mit der Kampagne, die ReversingLabs im Februar 2026 Graphalgo nannte und nordkoreanischen Akteuren zurechnete. Den Einstieg über gefälschte Bewerbungsgespräche mit Coding-Aufgaben halten die Analysten von Socket für wahrscheinlich – belegt ist er für den npm- und PyPI-Zweig, nicht für die Terraform-Provider. Socket warnt zudem ausdrücklich, es sei zu früh für den Schluss, dass nordkoreanische Akteure Terraform-Registries jetzt als neuen Verbreitungsweg nutzen. Diese Einschränkung gehört dazu.
Dein AD härten: 12 Sofortmaßnahmen
Das PDF mit Bordmitteln, PowerShell-Prüfbefehlen und 30-Tage-Reihenfolge – per Mail, sobald du deine Anmeldung zum Tech-&-Tacheles-Newsletter bestätigst.
Mit der Anmeldung erhältst du die AD-Checkliste als PDF und danach den Tech-&-Tacheles-Newsletter mit Einordnungen zu Security, KI und Crypto sowie gelegentlichen Hinweisen auf meine Bücher und Produktempfehlungen (auch Affiliate-Links) – eingetragen bist du erst nach Klick auf den Bestätigungslink in der E-Mail (Double-Opt-in). Abmeldung jederzeit über den Link in jeder E-Mail, Details in der Datenschutzerklärung.
Was das für dich bedeutet
Der Unterschied zu einem verseuchten npm-Paket ist nicht graduell, sondern grundsätzlich. Ein Terraform-Provider läuft auf dem CI-Runner oder der Admin-Workstation – also dort, wo die Anmeldedaten für AWS, Azure oder den eigenen Hypervisor liegen. Wer diese Maschine kontrolliert, sitzt direkt an den Produktions-Zugangsdaten; weitere Exploits braucht es dafür meist nicht. Aus CISO-Sicht ist das der kürzeste denkbare Weg von „ein Tippfehler in einer Konfigurationsdatei“ zu „Angreifer hat Cloud-Administrator“.
Die bedingte Zündung entwertet den schnellen Scan. Ein Satz wie wir haben das Paket geprüft, es war unauffällig ist bei dieser Bauart kein Argument mehr. Der Payload wartet auf einen Wert, den nur das Zielprojekt liefert. Vertrauen muss deshalb an der Herkunft hängen – am Namensraum und am Hash – nicht am Ergebnis einer Analyse.
Der Namensraum ist die eigentliche Schwachstelle. kreuzwerker gegen kreuzwenker erkennt kein Mensch beim Überfliegen eines Pull Requests. Die Verteidigung muss darum aus Werkzeug kommen, nicht aus Aufmerksamkeit – genau wie beim npm-Supply-Chain-Wurm und beim Rust-Paket arrayref, das den Schadcode schon beim Kompilieren einschleuste.
Was du jetzt konkret tun solltest
- Namensräume prüfen, bevor etwas dazukommt. Das ist der einzige Schritt, der Typosquatting wirklich abfängt. Zieh alle
source-Zeilen aus denrequired_providers-Blöcken und vergleiche die Organisationsnamen gegen eine Positivliste. Eingrepüber das Repository dauert zwei Minuten. - Lock-Datei erzwingen – aber mit realistischer Erwartung.
.terraform.lock.hclgehört mit Hashes ins Repository,terraform initläuft in der Pipeline mit-lockfile=readonly. Das verhindert nicht, dass ein Tippfehler-Provider hereinkommt: HashiCorp beschreibt die Prüfung ausdrücklich als „trust on first use“; die Datei pinnt genau die Adresse, die inrequired_providerssteht. Was sie leistet, ist trotzdem viel wert – jeder neue oder geänderte Provider erzeugt einen Diff in der Lock-Datei, und die Pipeline bricht ab, bis dieser Diff eingecheckt und im Review gesehen wurde. - Beim Sperren der Hashes an alle Plattformen denken. Eine auf macOS erzeugte Lock-Datei trägt nur die Hashes dieser Plattform; der Linux-Runner scheitert dann an
-lockfile=readonly.terraform providers lock -platform=…füllt die fehlenden vor. - Provider spiegeln – vollständig.
terraform providers mirrorfüllt ein Mirror-Verzeichnis, einnetwork_mirror– oderfilesystem_mirror-Block in der CLI-Konfiguration bindet die Pipeline daran. Wichtig: Derdirect-Block muss entfernt oder perexcludeeingeschränkt werden, sonst greift Terraform weiterhin auch direkt auf die Registry zu. Und der Mirror selbst wird damit zur Vertrauensinstanz – HashiCorp warnt ausdrücklich davor, einen fremden Mirror einzubinden. - Statische Cloud-Schlüssel abschaffen. CI-Runner sollten kurzlebige Anmeldedaten über OIDC bekommen. Ein Token, der nach 15 Minuten wertlos ist, ändert die gesamte Schadenslage.
- Egress der Build-Umgebung begrenzen. Aikido empfiehlt Organisationen ohne Blockchain-Bedarf ausdrücklich, auf Verbindungen zu HTTP-basierten Blockchain-Diensten zu alarmieren. Dasselbe gilt für Slack: Der Agent spricht ausschließlich
api.slack.com, die Angreifer-Arbeitsbereiche tauchen im Netzverkehr nie auf – Blocklisten auf Workspace-URLs greifen also nicht. - Im Verdachtsfall nicht aufräumen, sondern neu aufsetzen. Aikido ist hier deutlich: Paket entfernen genügt nicht, nur eine Neuinstallation gibt Sicherheit über den Zustand des Hosts. Und jeden Zugangsschlüssel drehen, der die Maschine berührt hat – Cloud, Infrastruktur und Veröffentlichungs-Tokens.
Wer eine Entwickler- oder Admin-Maschine tatsächlich neu aufsetzen muss, merkt schnell, wie viel daran nur lokal existierte. Passende verschlüsselte Datenträger dafür stehen im Ratgeber zu verschlüsselten USB-Sticks und externen SSDs.
Einordnung: Warum Infrastruktur-Code das lohnendere Ziel ist
Angreifer folgen den Rechten. Die Kette Entwickler-Laptop, Build-Runner, Cloud-Konto ist in den letzten Jahren zur bequemsten Abkürzung geworden, und Infrastructure-as-Code sitzt an deren Ende. Auffällig ist die Professionalisierung der Steuerung: Ein Smart Contract lässt sich nicht wie eine Domain abschalten. Angreifbar bleibt der Kanal aber auf Netzebene, weil der Agent die Chain über HTTP-basierte RPC-Dienste erreicht. Und Slack-Verkehr zu api.slack.com sieht in fast jedem Firmennetz normal aus. Beides zusammen zeigt, wo Erkennung über gesperrte Domains an ihre Grenze kommt – und warum der Blick auf den Prozess wichtiger ist als der auf das Ziel.
Quellen
- Aikido Security: Graphalgo Malware Spreads to Terraform and Go (22.09.2026)
- The Hacker News: Attackers Use Malicious Terraform Providers to Deliver Go Malware (23.09.2026)
- ReversingLabs: Graphalgo-Kampagne
- HashiCorp: How Terraform works (Plugin-Architektur)
- HashiCorp: Dependency Lock File · terraform init · terraform providers lock
- HashiCorp: terraform providers mirror · CLI-Konfiguration (provider_installation)
Mehr Klartext, direkt ins Postfach
Neue Analysen zu Security, KI und Crypto per Mail – zum Einstieg die AD-Checkliste mit 12 Sofortmaßnahmen als PDF.
Zur Anmeldung