Eine kürzlich von Mandiant durchgeführtes Untersuchung hat aufgedeckt, dass AWS-Geheimnisse aus Atlassians Code-Repository-Tool Bitbucket geleakt und von Angreifern genutzt wurden, um unautorisierten Zugang zu erlangen.
Bitbucket, eine Code-Hosting-Plattform von Atlassian, verfügt über einen integrierten CI/CD-Dienst namens Bitbucket Pipelines. Diese Pipelines können für die Bereitstellung und Wartung von AWS-Ressourcen genutzt werden. Bitbucket bietet eine Funktion namens „Secured Variables“, mit der Administratoren CI/CD-Secrets, wie AWS-Schlüssel, sicher speichern können.
CI/CD Secerets sind entscheidend für die Authentifizierung und Autorisierung innerhalb von CI/CD-Pipelines. Sie ermöglichen es den Pipelines, mit Plattformen wie AWS zu interagieren und die notwendigen Berechtigungen zu erhalten. Geheimnisse sind aufgrund ihrer Macht ein beliebtes Ziel für Angreifer, da sie direkten Zugang zu Umgebungen bieten.
Bitbucket Secured Variables bieten eine praktische Möglichkeit, Geheimnisse lokal zu speichern. Allerdings können diese Variablen durch Artefaktobjekte im Klartext offengelegt werden. Wenn eine Bitbucket-Variable – gesichert oder ungesichert – in ein Artefaktobjekt kopiert wird, entsteht eine .txt-Datei, die den Wert dieser Variable im Klartext anzeigt. Es wurden Fälle beobachtet, in denen Entwicklungsteams Bitbucket-Artefakte in Quellcode-Webanwendungen zur Fehlerbehebung verwendet haben. Unwissentlich enthielten diese Artefakte Klartextwerte von geheimen Schlüsseln, die dann öffentlich im Internet zugänglich waren und von Angreifern ausgenutzt wurden.
Reproduktion des Lecks
- Einrichten von Secured Variables in Bitbucket: Dies kann auf Repository- oder Workspace-Ebene erfolgen.
- Aktualisieren der bitbucket-pipelines.yml-Datei: Ein häufig verwendeter Befehl ist
printenv
, der alle Umgebungsvariablen in eine .txt-Datei kopiert. Diese Datei wird dann in ein Bitbucket-Artefaktobjekt übergeben. - Herunterladen des Artefakts: Nach der Pipeline-Ausführung kann das Artefakt heruntergeladen und nach gesicherten Variablen durchsucht werden.
Empfehlungen
- Verwenden Sie einen dedizierten Geheimnis-Manager und referenzieren Sie diese Variablen im Code.
- Überprüfen Sie sorgfältig Bitbucket-Artefaktobjekte, um sicherzustellen, dass keine Geheimnisse im Klartext gespeichert werden.
- Setzen Sie Code-Scans während des gesamten Lebenszyklus der Pipeline ein, um Geheimnisse im Code zu identifizieren, bevor sie in die Produktion gelangen.
Dieser Bericht zeigt, wie einfache Aktionen zu ernsthaften Sicherheitsproblemen führen können. Es reicht oft ein einziger Fehler, um Geheimnisse durch die Pipeline nach außen zu leiten und sie so für Angreifer zugänglich zu machen.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: