Zusammenfassung
- Die Kompromittierung des Bash-Uploaders von Codecov im Jahr 2021 wurde zu einem Haftungstest für CI-Geheimnisse, da das Sicherheitsupdate von Codecov selbst darauf hinwies, dass ein Dritter den Bash-Uploader verändert hatte und möglicherweise Umgebungsvariablen und entfernte Git-Informationen aus den CI-Umgebungen der Kunden exportieren konnte.
- Das Post-Mortem von Codecov gab später an, dass der Angreifer einen HMAC-Schlüssel für ein Google Cloud Storage-Dienstkonto aus einer Zwischenschicht in einem öffentlichen, selbst gehosteten Docker-Image extrahiert und diesen Schlüssel verwendet hatte, um den Bash-Uploader zu ändern, der den Endbenutzern bereitgestellt wurde.
- Die Haftungsfrage ist nicht einfach, dass die Nutzer die Prüfsummen hätten überprüfen sollen. Codecov kontrollierte den Distributionspfad des Uploaders, den Build-Prozess des öffentlichen Docker-Images, die Überwachung des gehosteten Skripts, die Benachrichtigung der Kunden und den Migrationsplan vom curl-to-shell-Vertrauensmodell.
- Die Kunden kontrollierten, welche Geheimnisse für CI-Jobs verfügbar waren, welche Download-Methode verwendet wurde, ob die Prüfsummenvalidierung durchgesetzt wurde und wie schnell sie nach der Benachrichtigung Anmeldeinformationen rotieren konnten. Diese Kundenkontrollen löschten die Verantwortung des Anbieters für die Integrität des Skripts nicht.
- Dieser Artikel betrachtet das Sicherheitsupdate und das Post-Mortem von Codecov als Primärquellen, die Kundenreaktionen als indirekte Beweise erster Partei und die Dokumentation von NIST, CISA, SLSA, Sigstore und CI als technisches Kontrollvokabular. Er beansprucht nicht, Zugang zu Strafverfolgungsdateien, privaten Kundenlisten oder vollständigen Protokollen der Angreiferinfrastruktur zu haben.
Warum dieser Fall zu einer Risiko- und Haftungsakte gehört
Codecov gehört zu einer Risiko- und Haftungsakte, da die Kompromittierung des Bash-Uploaders im Jahr 2021 einen routinemäßigen Coverage-Upload-Schritt in einen möglichen Weg zur Offenlegung von CI-Geheimnissen verwandelte. Das Sicherheitsupdate von Codecov vom 15. April 2021 aufhttps://about.codecov.io/security-update/gab an, dass Codecov am 1. April erfahren hatte, dass jemand unbefugten Zugriff auf das Bash-Uploader-Skript erhalten und es ohne Autorisierung geändert hatte. Das Unternehmen erklärte, dass der Akteur aufgrund eines Fehlers im Docker-Image-Erstellungsprozess von Codecov Zugriff erhalten hatte, der die Extraktion eines zur Änderung des Uploaders erforderlichen Identifikators ermöglichte. Codecov gab an, dass es ab dem 31. Januar 2021 periodische unbefugte Änderungen gegeben hatte, die möglicherweise Informationen aus den CI-Umgebungen der Kunden an einen Drittserver außerhalb der Codecov-Infrastruktur exportieren konnten.
Dieser öffentliche Bericht macht den Vorfall größer als ein kompromittiertes Anbieterskript. Der Bash-Uploader wurde in CI-Jobs der Kunden ausgeführt, oft nach Abschluss der Tests und vor dem Hochladen der Coverage-Daten. CI-Jobs können Repository-URLs, Build-Metadaten, Bereitstellungs-Token, Paketveröffentlichungs-Anmeldeinformationen, Cloud-Anmeldeinformationen, Signaturschlüssel, Datenbank-URLs, Webhook-Geheimnisse, persönliche Zugriffstoken und Umgebungsvariablen enthalten, die von Test- und Release-Automatisierung verwendet werden.
Eine kleine böswillige Ergänzung eines Uploaders kann zu einem Credential-Sammelpunkt werden, da Kunden absichtlich Vertrauen und Geheimnisse in das CI setzen.

