GitHub-Schwachstelle ermöglicht Repositories-Übernahmen
Ein neu entdeckter Angriffsvektor in GitHub Actions-Artefakten mit dem Namen ArtiPACKED könnte ausgenutzt werden, um Repositories zu übernehmen und Zugang zu Cloud-Umgebungen von Unternehmen zu erhalten.
„Eine Kombination aus Fehlkonfigurationen und Sicherheitslücken kann dazu führen, dass Artefakte Token, sowohl von Drittanbieter-Cloud-Diensten als auch GitHub-Token, preisgeben, die dann von jedem mit Lesezugriff auf das Repository genutzt werden können“, erklärt Yaron Avital, Security-Experte bei Palo Alto Networks Unit 42, in einem kürzlich veröffentlichten Bericht. „Dies ermöglicht es böswilligen Akteuren mit Zugang zu diesen Artefakten, die Dienste zu kompromittieren, auf die diese Geheimnisse Zugriff gewähren.“
Das Cybersicherheitsunternehmen stellte fest, dass hauptsächlich GitHub-Tokens (zum Beispiel GITHUB_TOKEN und ACTIONS_RUNTIME_TOKEN) geleakt werden, was böswilligen Akteuren nicht nur unautorisierten Zugriff auf die Repositories verschaffen könnte, sondern ihnen auch die Möglichkeit bietet, den Quellcode zu manipulieren und über CI/CD-Workflows in die Produktion zu bringen.
Artefakte in GitHub
In GitHub sind Artefakte Dateien oder Daten, die während eines Workflows erzeugt und gespeichert werden. Sie ermöglichen es, Informationen zwischen verschiedenen Jobs in einem Workflow zu teilen und diese Daten nach Abschluss des Workflows für eine bestimmte Zeit zu speichern. Hier sind einige Details dazu:
- Nutzung:
- Artefakte können verschiedene Arten von Daten enthalten, wie zum Beispiel Build-Ergebnisse, Protokolldateien, Core-Dumps, Testergebnisse und Bereitstellungspakete.
- Speicher- und Abrufdauer:
- Standardmäßig werden Artefakte nach Abschluss eines Workflows für 90 Tage gespeichert, können jedoch je nach Bedarf kürzer oder länger aufbewahrt werden.
- Beispiele:
- Wenn ein Workflow ein Software-Build durchführt, können die erzeugten Binärdateien als Artefakte gespeichert werden.
- Testergebnisse oder Protokolldateien, die während des Testens erstellt werden, können als Artefakte gespeichert werden, um später analysiert zu werden.
- Vorteile:
- Artefakte ermöglichen es, Daten zwischen verschiedenen Schritten eines Workflows zu teilen, ohne dass diese Daten explizit in ein Repository eingecheckt werden müssen.
- Sie erleichtern die Nachverfolgbarkeit und Wiederherstellung von Workflow-Ausführungen, insbesondere bei komplexen Build- und Deployment-Prozessen.
- Sicherheit:
- In Open-Source-Projekten sind Artefakte potenziell öffentlich zugänglich, was bedeutet, dass sensible Daten oder Tokens, die in Artefakten gespeichert sind, sorgfältig geschützt werden müssen.
- Es ist wichtig, sicherzustellen, dass Artefakte keine sensiblen Informationen enthalten oder dass der Zugriff auf sie ordnungsgemäß eingeschränkt ist.
Durch die Verwendung von Artefakten können Entwickler und Teams effizienter arbeiten, da sie den Workflow optimieren und eine bessere Nachverfolgbarkeit und Verwaltung der erzeugten Daten ermöglichen.
Das Cybersicherheitsunternehmen stellte fest, dass hauptsächlich GitHub-Tokens (zum Beispiel GITHUB_TOKEN und ACTIONS_RUNTIME_TOKEN) geleakt werden, was böswilligen Akteuren nicht nur unautorisierten Zugriff auf die Repositories verschaffen könnte, sondern ihnen auch die Möglichkeit bietet, den Quellcode zu manipulieren und über CI/CD-Workflows in die Produktion zu bringen.
Artefakte in GitHub ermöglichen es Benutzern, Daten zwischen Jobs in einem Workflow zu teilen und diese Informationen für 90 Tage nach Abschluss des Workflows zu speichern. Dazu können Builds, Protokolldateien, Core-Dumps, Testergebnisse und Bereitstellungspakete gehören.
Das Sicherheitsproblem besteht darin, dass diese Artefakte im Falle von Open-Source-Projekten öffentlich zugänglich sind, was sie zu einer wertvollen Ressource für die Extraktion von Geheimnissen wie GitHub-Zugriffstokens macht.
Das Hauptproblem ist, dass die Artefakte eine versteckte Umgebungsvariable namens ACTIONS_RUNTIME_TOKEN enthalten. Dieses Token ist etwa sechs Stunden gültig und kann genutzt werden, um ein Artefakt durch eine bösartige Version zu ersetzen, bevor es abläuft.
Dies könnte dazu führen, dass ein Entwickler das manipulierte Artefakt herunterlädt und ausführt, oder ein späterer Workflow-Job ein schädliches Artefakt verwendet.
Obwohl das GITHUB_TOKEN nach dem Job ungültig wird, könnten Angreifer Verbesserungen in der Artefakt-Funktion der Version 4 ausnutzen, um das Token während eines laufenden Workflows zu stehlen und weiter zu verwenden.
Mit dem gestohlenen Token könnten Angreifer bösartigen Code in das Repository pushen, indem sie einen neuen Branch erstellen. Dafür muss der Workflow jedoch die Berechtigung „contents: write“ haben.
Ein wichtiger Punkt ist, dass die GitHub-Tokens nicht Teil des Repository-Codes sind, sondern nur freigelegt werden, wenn eine CI/CD-Pipeline ausgelöst wird und ein Artefakt, das die Tokens enthält, hochgeladen wird. Dadurch kann ein Angreifer das Artefakt herunterladen, auf das Token zugreifen und es verwenden, um schädlichen Code in das Repository einzuschleusen.
Mehrere Open-Source-Repositories von Amazon Web Services (AWS), Google, Microsoft, Red Hat und Ubuntu sind anfällig für diesen Angriff. GitHub hat das Problem als informativ eingestuft und fordert die Benutzer auf, ihre hochgeladenen Artefakte selbst zu sichern.
Avital meint: „Die Abschaffung von Artifacts V3 durch GitHub sollte Organisationen dazu bringen, ihre Nutzung des Artefakte-Mechanismus zu überdenken. Oft werden übersehene Elemente wie Build-Artefakte zu bevorzugten Zielen für Angreifer.“