Gheist krade GitHub tajne kroz Actions workflow-e

Kampanja Gheist zloupotrebljava ukradene GitHub tokene da u privatnim repozitorijumima i okruženjima GitHub Enterprise postavi workflow koji ispisuje dostupne tajne u GitHub Actions logove. Kompanija Wiz prati aktivnost od 15. septembra i pronašla je više od 13.500 podmetnutih grana na više od 850 kompromitovanih naloga.
Napad se oslanja na činjenicu da je za čitanje svih tajni koje repozitorijum može da koristi dovoljan token sa pravom upisa. GitHub-ova zaštita koja zadržava sumnjiva izvršavanja za odobrenje zaustavila je sve proverene slučajeve u javnim repozitorijumima, ali trenutno ne obuhvata privatne repozitorijume niti GitHub Enterprise Server.
Kako workflow iznosi tajne
Alat za svaki dostupni repozitorijum stvara novu granu oblika ci-sync- sa šest nasumičnih znakova. Zatim dodaje samo fajl .github/workflows/sync-check.yml, uz poruku komita ci: sync config. Potiskivanje grane aktivira workflow.
Workflow ispisuje okruženje posla i svaku tajnu koju posao može da pročita, ali vrednosti prethodno kodira u base32. GitHub maskira prepoznate tajne u logovima, dok dokumentacija upozorava da maskiranje nije zagarantovano kada se vrednost kodira ili na drugi način promeni. Prema nalazima Wiza, base32 zapis više ne odgovara izvornoj vrednosti, pa se prikazuje u celosti.
Nakon izvršavanja, alat preko GitHub API-ja preuzima log i briše izvršavanje u roku od nekoliko sekundi. Pošto tajne napuštaju organizaciju kroz sam GitHub, nema posebnog napadačevog servera niti odlazne mrežne veze koju bi bilo moguće blokirati na klasičan način. Brisanje grane ili izvršavanja ne poništava već nastalo otkrivanje vrednosti.
Tragovi kompromitacije i dodatni rizik
U audit zapisima GitHub-a treba tražiti workflow izvršavanja na granama ci-sync-* koja su obrisana u roku od jednog minuta po završetku, kao i zahteve sa user-agent oznakom gheist. Objavljeni pokazatelji uključuju poruku komita ci: sync config i fajl .github/workflows/sync-check.yml.
Za workflow-e koji koriste OIDC prijavu u cloud, cloud audit zapisi mogu pokazati preuzimanje uloga ili razmenu tokena čiji subject sadrži ci-sync- granu. Wiz je u AWS CloudTrail zapisima video da su legitimni workflow-i organizacija na takvim granama preuzimali AWS uloge. Jedna varijanta pokušava i pretragu samostalno hostovanih runnera za 31 tip poverljivih podataka, uključujući privatne ključeve, procesna okruženja i AWS kredencijale.
Koraci nakon pronalaska grane
Ako se pronađe pogođena grana, potrebno je rotirati svaku tajnu repozitorijuma, organizacije i deployment okruženja kojoj je repozitorijum mogao da pristupi. Treba opozvati tokene koji su poslali komite i proveriti uređaje njihovih vlasnika na infostealer malver.
Kada je grana pokrenuta na samostalno hostovanom runneru, Wiz preporučuje da se mašina i njena cloud instance uloga tretiraju kao kompromitovane. Sumnjiva sync-check izvršavanja ne treba odobravati niti pokretati kôd sa tih grana. Za smanjenje posledica ukradenih tokena, poslovni timovi treba da uvedu obavezne odobravaoce za okruženja sa produkcionim tajnama, ograniče OIDC politike poverenja na zaštićene grane ili okruženja i koriste kratkotrajne, fino ograničene tokene ili GitHub Apps.

