Coder gab eine Übernahme seiner Software-Registry-Infrastruktur registry.coder.com bekannt, die einem Angreifer ermöglichte, nicht autorisierte Server zu der über Cloudflare betriebenen Infrastruktur hinzuzufügen. Infolgedessen wurden einige Download-Anfragen an die Server des Angreifers statt an die legitimen Coder-Server weitergeleitet, wodurch eine Reihe von Nutzern mit Schadversionen von Terraform-Modulen beliefert wurde.
Das Zeitfenster für die Verteilung der schädlichen Dateien lag laut Coder am 31. August zwischen 07:35 und 21:45 Uhr UTC. Die manipulierten Module zielten auf Laufzeitumgebungen von Provisioning-Tools ab, da sie Code enthielten, der bei seiner Ausführung auf betroffenen Geräten als Informationsdiebstahl-Tool fungierte.
Welche Daten waren gefährdet?
Die schädlichen Module suchten in der Umgebung des Nutzers nach einer großen Bandbreite an Geheimnissen und Anmeldedaten, darunter:
- Umgebungsvariablen und Geheimnisse von Provisioner-Prozessen.
- API-Schlüssel für Cloud-Infrastrukturen und KI-Tools.
- Anmeldedaten für CI/CD-Systeme.
- Geheimnisse in Konfigurationsdateien und im Terminalverlauf.
- OIDC-Token und konfigurierte SSH-Schlüssel sowie einmalige externe Authentifizierungstoken.
- Coder-Datenbankpasswörter und andere Geheimnisse, wenn der Provisioner innerhalb von coderd ausgeführt wird.
Die gesammelten Daten wurden an die ähnlich aussehende Domain coder-infra[.]com gesendet. Coder empfiehlt potenziell betroffenen Nutzern, alle in der Liste aufgeführten Geheimnisse so schnell wie möglich zu rotieren.
Überprüfungs- und Behebungsschritte
Vor dem Upgrade auf die korrigierten Versionen 2.37.0, 2.36.4, 2.35.7 oder 2.34.9 forderte Coder dazu auf, Firewall-, Proxy- und DNS-Protokolle sowie VPC-Datenverkehr auf Verbindungen zur schädlichen Domain zu prüfen. Entwickler sollten außerdem in Provisioner-Protokollen nach data.external.telemetry suchen, die während des Expositionszeitraums heruntergeladenen Module bestimmen und möglicherweise manipulierte Pakete aus dem Cache löschen.
Coder stellte außerdem eine SQL-Abfrage bereit, mit der sich zwischengespeicherte Module und möglicherweise betroffene Vorlagenversionen bestimmen lassen.
Warum ist diese Übernahme wichtig?
Das Risiko beschränkt sich hier nicht auf ein bösartig veröffentlichtes Softwarepaket, sondern erstreckt sich auf einen vertrauenswürdigen Verteilungspunkt, auf den Entwickler beim Aufbau von Vorlagen für Arbeitsumgebungen und Infrastrukturen angewiesen sind. Da die von den Modulen angegriffenen Geheimnisse außerdem Cloud-Schlüssel, KI-Tools und CI/CD-Umgebungen umfassen, ist der Vorfall unmittelbar für Entwicklungs-, Plattform- und Sicherheitsteams relevant.
Coder erklärte, dass Aktualisierungstoken nicht an den Provisioner weitergegeben wurden und keine Hinweise auf eine Beeinträchtigung der von Coder gespeicherten Kundendaten gefunden worden seien. Gleichzeitig räumte das Unternehmen ein, dass die vom Angreifer verwendete Infrastruktur außerhalb seiner Kontrolle liege. Daher verfüge Coder nicht über wichtige Protokolle und könne nicht abschließend alle kompromittierten Bereitstellungen bestimmen. Diese Lücke macht die Rotation von Geheimnissen und die unabhängige Überprüfung der Protokolle auch in Fällen erforderlich, in denen kein direkter Hinweis auf einen Abfluss vorliegt.