GH Actions - Cache Poisoning

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Vir verdere besonderhede, kyk na die oorspronklike berig https://scribesecurity.com/blog/github-cache-poisoning/

Cache Vergiftiging

Die Git-aksie action/cache stel 'n kasgeheue-meganisme in die voortdurende integrasie (CI) proses in, wat twee kritieke fases behels:

  1. Voer Aksie Uit: Hierdie fase behels die soek na en ophaling van gekasde data gedurende die CI-uitvoering. Die soektog maak gebruik van 'n unieke kas sleutel, wat twee uitkomste lewer:

  • Kas-tref: Die versoekte data word in die kas gevind en word dus onmiddellik opgehaal vir gebruik.

  • Kas-mis: Geen ooreenstemmende data word in die kas gevind nie, wat 'n vars aflaai van die vereiste lêers en gidslyne veroorsaak, soortgelyk aan 'n eerste versoek.

  1. Na Werkvloeiaksie: Hierdie fase is toegewy aan die kas van data na die CI-werkvloei. Spesifiek, as 'n kas-mis voorkom gedurende die uitvoeringsaksie, word die huidige toestand van die gespesifiseerde gidslyne gekas met behulp van die voorsiene sleutel. Hierdie proses is outomaties en vereis nie eksplisiete aanroeping nie.

Sekuriteitsmaatreëls: Kas Isolasie en Toegangsbeperkings

Om sekuriteit te handhaaf en kas-isolasie te verseker, word toegangsbeperkings afgedwing wat 'n logiese skeiding tussen verskillende takke skep. Byvoorbeeld, 'n kas wat geskep is vir tak Feature-A (met sy basis in die hooftak) sal nie toeganklik wees vir 'n trekversoek vir tak Feature-B (ook gebaseer in die hooftak nie).

Die kas-aksie volg 'n spesifieke soekvolgorde:

  • Dit soek eers na kas-treffers binne dieselfde tak as die werkvloei-uitvoering.

  • As dit nie suksesvol is nie, word die soektog uitgebrei na die ouertak en ander stroomop takke.

Belangrik, kas-toegang is tak-gebaseerd en strek oor alle werkvloei en uitvoerings van 'n spesifieke tak. Daarbenewens dwing GitHub 'n slegs-lees-beleid vir kasinskrywings af nadat hulle geskep is, wat enige wysigings verbied.

Werklike Implikasie: Van Lae na Hoë-Permissie Werkvloei-Aanval

'n Verduidelikende CI-scenario demonstreer hoe 'n aanvaller kasvergiftiging kan benut om voorregte van 'n lae-permissie werkvloei na 'n hoë-permissie een te verhoog:

  • Die Unit-toets werkvloei, verantwoordelik vir die uitvoering van eenheidstoetse en kode-dekkingstelsels, word veronderstel om 'n gekompromitteerde of kwesbare instrument te gebruik. Hierdie werkvloei maak gebruik van die action/cache Git-aksie, wat die kas toeganklik maak vir enige werkvloei.

  • Die Vrystelling werkvloei, wat belas is met die bou en vrystelling van die aansoekartefak, optimaliseer sy werksaamhede deur Golang-afhanklikhede te kas.

In hierdie scenario stel die eenheidstoets-werkvloei 'n kwaadwillige kasinskrywing voor deur 'n wettige Golang-logbiblioteek (`go

Last updated