Kwaadaardige GitHub Actions-workflows stelen secrets uit tienduizenden repositories

Aanvallers kaapten twee maintainer-accounts en verspreidden een workflow die cloud-, AI- en SaaS-sleutels steelt uit tienduizenden GitHub-repo's.

Een aanvaller heeft op 8 oktober kwaadaardige GitHub Actions-workflows geplant in tienduizenden repositories, nadat hij de accounts van twee gevestigde open source-maintainers had overgenomen. Beveiligingsbedrijf StepSecurity bestempelt de aanval als een nieuwe golf van GhostAction, de campagne die vorig jaar september al 3.325 geheimen uit 817 repositories stal via een gekraakt FastUUID-maintaineraccount.

Het eerste slachtoffer was Takashi Kitao, bekend van het populaire project pyxel. Vanaf 13:20 UTC pushte de aanvaller via zijn account een kwaadaardige workflow naar 27 repositories. Acht uur later, tussen 21:10 en 21:26 UTC, trof dezelfde truc het account van Henry Wu (henrywoo): in nog geen zestien minuten belandde de workflow in 318 repositories, 39 eigen projecten en 279 forks daarvan, waaronder uber/athenadriver.

Een werkboom vol gevoelige sleutels

De workflow draagt meestal de naam security-audit.yml en start bij elke push naar een branch of tag, en ook handmatig. Hij verzamelt eerst de benoemde Actions-secrets van de repository en doorzoekt vervolgens de hele werkboom en de volledige git-geschiedenis op dertien soorten inloggegevens, van cloud-sleutels tot AI-provider- en SaaS-tokens. Dat laatste is nieuw ten opzichte van de golf van vorig jaar: toen werd niet de hele git-geschiedenis doorzocht en werden AWS-sleutels niet gekoppeld aan hun bijbehorende secrets. De buit gaat onversleuteld via HTTP naar een vast IP-adres, zonder tussenkomst van een DNS-opzoeking.

Dat de diefstal daadwerkelijk werkt, is in meerdere gevallen terug te zien in de workflowlogs zelf. Bij uber/athenadriver bevestigde de server de ontvangen data binnen vier seconden na de start van de run. Bij kitao/pyxel startte de aanvaller de workflow zelfs handmatig opnieuw om zeker te zijn van de buit. Alleen bij typecho-fans/plugins liep de aanval vast, omdat die repository een goedkeuringsstap voor workflowruns had ingesteld.

Tienduizenden repositories, honderden accounts

Beveiligingsbedrijf Socket telt inmiddels meer dan 500 GitHub-accounts die de kwaadaardige workflow sinds 7 oktober naar tienduizenden repositories hebben gecommit. StepSecurity zag op 9 oktober nog 378 repositories waar de workflow actief op de hoofdbranch stond. Kwaadaardige pakketversies zijn nog niet opgedoken, maar gestolen publicatietokens blijven een risico zolang niemand ze intrekt.

  • Roteer alle Actions-secrets en elke credential die ooit in een branch is gecommit
  • Trek gecompromitteerde GitHub-tokens en sessies in
  • Verwijder de kwaadaardige workflow uit alle branches en controleer forks
  • Vereis goedkeuring voor workflowruns van nieuwe of onbekende bijdragers
  • Bescherm .github/workflows met branchbeveiliging en verplichte pull-request-review

Voor Nederlandse ontwikkelteams die op open source-pakketten bouwen is dit vooral een herinnering dat een kwaadaardige commit niet in de eigen code hoeft te zitten. Een gekaapt maintaineraccount van een afhankelijkheid is al genoeg om secrets te verliezen. Neem de stappen hierboven serieus, ook als geen van de getroffen repositories bekend in de oren klinkt.

Update 15 oktober: Beveiligingsbedrijf GitGuardian, dat de volledige golf in kaart bracht, komt uit op aanzienlijk hogere cijfers dan de eerste schattingen. In totaal zijn zo’n 1.900 GitHub-accounts gecompromitteerd, waardoor de kwaadaardige workflow bij ongeveer 3.000 gebruikers en organisaties in meer dan 30.000 repositories terechtkwam. De aanvaller probeerde daarmee 3.174 secrets uit publieke CI-omgevingen te stelen. GitGuardian ziet de grootste piek op 8 en 9 oktober: na een eerste uitrol naar 160 al eerder getroffen repositories volgde twintig minuten later de grootste batch in één klap, 28.000 nieuwe repositories. GitHub blokkeert de kwaadaardige workflow sinds 9 oktober, waardoor latere golven op 10 en 12 oktober met dezelfde payload geen secrets meer konden buitmaken. GitGuardian onderzoekt de golf nog verder en kondigt een vervolgupdate aan.

Bron: The Hacker News

Wat betekent dit voor jouw bedrijf?

Beheert u een GitHub-repository met Actions-workflows? Controleer op onbekende workflow-bestanden in .github/workflows, ook op zelden bekeken branches en in forks van projecten waarvan u afhankelijk bent, en roteer bij twijfel alle secrets.

Beveiligingscontent geverifieerd door Fortivox SecurityNederlandse cybersecurity-specialist voor het MKB — fortivoxsecurity.nl

Blijf op de hoogte

Meld je aan voor de nieuwsbrief: spoedalerts bij kritieke dreigingen en een wekelijks overzicht. Geen mail achterlaten? Volg ons dan via RSS.