GitHub Acties-artifacts met gelekte authenticatietokens in populaire projecten gevonden

Meerdere prominente open-source projecten, waaronder die van Google, Microsoft, AWS en Red Hat, bleken GitHub-authenticatietokens te lekken via GitHub Actions-artefacten in CI/CD-workflows.

Aanvallers die deze tokens stelen, kunnen ongeautoriseerde toegang krijgen tot privérepository’s, broncode stelen of kwaadaardige code injecteren in projecten.

De ontdekking door Unit 42 van Palo Alto Networks leidde tot acties door eigenaren van populaire repository’s waar geheimen werden gelekt via GitHub Actions-artefacten. De onderliggende problemen blijven echter onopgelost omdat GitHub heeft besloten het risico niet aan te pakken, waardoor de verantwoordelijkheid bij gebruikers ligt om hun artefacten te beveiligen.

Gezien de situatie moeten GitHub-gebruikers de risico’s begrijpen, hun blootstelling evalueren en maatregelen nemen om lekken in de toekomst te voorkomen.

Artifact gemaakt door GitHub Actions
Artifact gemaakt door GitHub Actions
Bron: Unit 42

GitHub-tokens lekken

Het rapport van Unit 42 benadrukt een combinatie van factoren, waaronder onveilige standaardinstellingen, gebruikersfouten bij de configuratie en onvoldoende beveiligingscontroles, die kunnen leiden tot het lekken van GitHub-tokens in wat zij een “ArtiPACKED”-aanval noemen.

Het eerste risicopunt is de ‘actions/checkout’-actie, die vaak wordt gebruikt in GitHub-workflows om de repository-code te klonen, zodat deze beschikbaar is tijdens de workflow-uitvoering.

Standaard slaat deze actie het GitHub-token op in de lokale .git-map (verborgen), zoals vereist voor geauthenticeerde bewerkingen binnen de workflow.

Als een gebruiker per ongeluk de gehele checkout-map uploadt als onderdeel van een artefact, wordt het GitHub-token in de git-map nu blootgesteld.

Openbaar blootgesteld GitHub-token
Openbaar blootgesteld GitHub-token
Bron: Unit 42

Andere gevoelige informatie die in die map kan zitten, zijn API-sleutels, toegangstokens voor cloudservices en verschillende accountinloggegevens.

Een soortgelijke blootstelling door verkeerde artefactuploads kan plaatsvinden door artefacten die tijdens het CI/CD-proces worden gegenereerd, zoals bouduitvoeren en testresultaten, die worden opgeslagen en gedurende maximaal drie maanden toegankelijk zijn.

Een ander faalpunt zijn CI/CD-pijplijnen die omgevingsvariabelen gebruiken om GitHub-tokens op te slaan. Als acties of scripts binnen de workflow deze variabelen loggen, hetzij opzettelijk of per ongeluk, worden de logs als artefacten geüpload.

Unit 42 merkt op dat de ‘super-linter’-actie gedetailleerde logs kan maken die omgevingsvarianten bevatten wanneer de ‘CREATE_LOG_FILE’-eigenschap is ingesteld op ‘True.’

Het uitbuiten van de lekken

Uiteindelijk zouden aanvallers specifieke race-omstandigheden willen uitbuiten waarin de tijdelijke GitHub-tokens uit logs moeten worden geëxtraheerd en gebruikt voordat ze verlopen.

GitHub-tokens blijven geldig voor de duur van de workflow-uitvoering, dus het exploitatiescenario varieert per geval.

Het ‘Actions_Runtime_Token’, dat intern door GitHub wordt gebruikt voor het cachen en beheren van artefacten, is doorgaans zes uur geldig, dus het exploitatievenster is klein.

Aangepaste geheimen en tokens, zoals API-sleutels of toegangstokens voor cloudservices, hebben variërende levensduren, van enkele minuten tot nooit verlopen.

Unit 42 presenteert een aanvalsscenario dat projecten of openbare repository’s identificeert die GitHub Actions gebruiken, en geautomatiseerde scripts gebruikt om ze te scannen op criteria die de kans op artefactgeneratie vergroten.

Een andere reeks scripts kan automatisch artefacten downloaden van de CI/CD-pijplijnen van gerichte repository’s, wat een eenvoudig proces is in het geval van openbare repository’s. Vervolgens zou het ze onderzoeken op geheimen.

Aanvalsflow
Aanvalsflow
Bron: Unit 42

Mitigatie

Unit 42 identificeerde de volgende 14 gevallen van grote open-source projecten die artefacten met GitHub-tokens blootstelden en rapporteerde dit aan de betrokken partijen voor remediëring:

  • Firebase (Google)
  • OpenSearch Security (AWS)
  • Clair (Red Hat)
  • Active Directory System (Adsys) (Canonical)
  • JSON Schemas (Microsoft)
  • TypeScript Repos Automation, TypeScript Bot Test Triggerer, Azure Draft (Microsoft)
  • CycloneDX SBOM (OWASP)
  • Stockfish
  • Libevent
  • Guardian for Apache Kafka (Aiven-Open)
  • Git Annex (Datalad)
  • Penrose
  • Deckhouse
  • Concrete-ML (Zama AI)

In het algemeen wordt GitHub-gebruikers aanbevolen om te vermijden dat volledige mappen worden opgenomen in geüploade artefacten, logs te saneren en CI/CD-pijplijnconfiguraties regelmatig te herzien.

De standaardinstellingen voor gevaarlijke acties zoals ‘actions/checkout’ moeten worden aangepast zodat inloggegevens niet persistent zijn. Bovendien moeten de tokenrechten die in workflows worden gebruikt, worden ingesteld op het minimale vereiste recht om schade te beperken als ze worden blootgesteld.

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
Opzoek naar de laatste updates uit onze securitylog?
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----