Leki leyndarmála snýst ekki alltaf um slæman kóða eða viðkvæm bókasöfn. Stundum snýst það um hvernig við stjórnum leyndarmálum meðan á keyrslum CI stendur, og CVE-2025-30066 er kennslubókardæmi um hvernig það getur farið úrskeiðis. GitHub aðgerðin tj-actions/changed-files, sem er mikið notuð til að greina breyttar skrár í pull requests, varð þögull rás fyrir leyndarmál. Þetta gerðist og hvernig þú getur læst CI/CD leyndarmál pipeline.
Hvað gerðist í CVE-2025-30066?
Um miðjan mars 2025 var tj-actions/changed-files brotist inn. Árásarmaðurinn endurskrifaði núverandi útgáfumerki (allt að v45.0.7) til að benda á illgjarn hugbúnað. commitÞetta breytti hegðun aðgerðarinnar án þess að forritarar tóku eftir því; engin ný útgáfa var gefin út, bara ósýnileg breyting á merkjum.
Notkunin var einföld en hættuleg: hún dró upp fjarlægt Base64-kóðað Python forskrift sem skannaði minni keyrsluforritsins í leit að innskráningarupplýsingum, dró þær inn í skrár eða tók þær út. Þetta var ekki rökréttur kóðagalli í tj-actions/changed-files; þetta var misnotkun á því hvernig leki í leynilegum kerfum getur átt sér stað innan CI vinnuflæðis með því að nota þessa endurnýtanlegu aðgerð. CVE-2025-30066 snerist ekki um yfirflæði í biðminni; þetta snerist um hönnunargalla í CI sem gerði leynilegum kerfum kleift að leka.
Áhrif: Öll geymslur sem nota viðkomandi útgáfur af tj-actions/changed-files voru í hættu á leka leynilegra gagna, sérstaklega ef viðkvæm tákn eða skrár voru meðhöndlaðar á óöruggan hátt í skráarmynstrum eða CI-úttaki.
Af hverju þetta hefur áhrif á verkflæði sem treysta á endurnýtanlegar aðgerðir
DevSecOps vinnuflæði treysta mjög á tj-actions/changed-files til að:
- Sjálfvirkan pull request eftirlit
- Greinið breyttar skrár í tilteknum slóðum
- Forðastu óþarfa CI störf
En þessi vinnuflæði gleyma oft einu: hvernig glob-mynstur geta innihaldið viðkvæmar upplýsingar. Forritarar gera ráð fyrir að tj-actions/changed-files hegði sér örugglega sjálfgefið. Hins vegar, ef þú glob... stillingar/** og leyndarmál eru geymd í stillingar/leyndarmál.umhverfi, þú bættir rétt í þessu leyniskrá við CI úttak eða skrár. Þetta er ekki villa í aðgerðinni; þetta er CI/CD Hönnunargalla sem leiðir til leka í leynilegum gögnum. CVE-2025-30066 er skýrt dæmi um þetta.
Hvernig leynileki varð til (sundurliðun varnarleysis)
Við skulum skoða kjarnabilunina á bak við CVE-2025-30066:
- Kúlulaga mynstur eins og **/*.umslag samsvörun við leyniskrár óvart
- tj-actions/changed-files meðhöndluðu þessi leyndarmál sem breyttar skrár
- Leyndarmál lentu í skrefúttaki, skrám eða niðurstreymisverkum
Þetta gerðist vegna þess að leyndarmál voru geymd í útgáfustýrðum slóðum (slæm hugmynd) og CI stillingin útilokaði þau ekki sérstaklega frá globbing (líka slæmt). Þannig að þetta er ekki kóðavilla, heldur léleg hönnun CI sem veldur leka leyndarmála með úttaki tj-actions/changed-files.
Hagnýt nýtingarleið: Frá CI starfi til afhjúpunar á vottorðum
Dæmi um CI uppsetningu sem olli leka leynilegra upplýsinga í gegnum tj-aðgerðir/breyttar skrár:
yaml jobs: detect_changes: runs‑on: ubuntu‑latest steps: ‑ uses: actions/checkout@v3 ‑ name: Check changed files id: changed uses: tj‑actions/changed‑files@v45 with: files: configs/** If stillingar/leyndarmál.umhverfi breytt:
- Það var flaggað af tj-actions/changed-files
- Það varð hluti af skref.breytt.úttak.allar_breyttar_skrár
- Síðari skref skráðu það eða sendu það til forskrifta, sem leiddi til leka á leyndarmálum
Þessi leki varð vegna þess að CI-rökfræði meðhöndlaði leyndarmál eins og venjulegar skrár. Það er þar sem lekinn í leyndarmálinu byrjar, ekki vegna yfirflæðis í biðminni, heldur misnotkunar á tj-aðgerðum/breyttum skrám í gallaðri CI-hönnun.
Fjölgun á sér stað með úttaki eins og:
yaml ‑ name: Use changed file list run: echo "Changed files: ${{ steps.changed.outputs.all_changed_files }}" If leyndarmál.umhverfi er á þeim lista, gæti skráarnafn hans og hugsanlega innihald birst í byggingarskrám. Jafnvel skilyrt rökfræði eins og:
yaml if: contains(steps.changed.outputs.all_changed_files, 'secrets.env') Getur afhjúpað viðkvæma gripi. Þetta er CI/CD Hönnunarbilun sem leyfir leka leynilegs efnis, ekki galli í aðgerðakóðanum.
Hvernig á að nota endurnýtanleg vinnuflæði á öruggan hátt og koma í veg fyrir leka
Þú þarft ekki að hætta að nota tj-actions/changed-files. Þú ættir að nota endurnýtanlegar aðgerðir með leyndarmál í huga:
Bestu starfsvenjur við meðhöndlun leyndarmála
- Ekki nota leyndarmál útgáfustýringar, aldrei
- Forðastu glob-mynstur sem passa við viðkvæmar slóðir
- Nota umhverfisbundin leyndarmál (GITHUB_ENV, vaults, GitHub Secrets)
CI/CD Stillingar Guardrails
- Festið alltaf aðgerðir við óbreytanleg SHA, ekki merki (notið aldrei @v45)
- Meðhöndla úttak tj-actions/changed-files sem spillt, hreinsa það eða sía það
- Setja úttak aðeins ef það er hreinsað
⚠️ Óöruggt dæmi:
yaml jobs: detect_changes: runs‑on: ubuntu‑latest steps: ‑ uses: actions/checkout@v3 ‑ name: Detect all changes id: changed uses: tj‑actions/changed‑files@v45 with: files: '**/*' # ⚠️ This glob includes secrets.env, which may leak credentials Þetta er einmitt misnotkunin sem liggur að baki leka leka og CVE-2025-30066.
Öruggur valkostur:
yaml jobs: detect_changes: runs‑on: ubuntu‑latest steps: ‑ uses: actions/checkout@v3 ‑ name: Detect non‑sensitive file changes id: changed uses: tj‑actions/changed‑files@<SHA> # pinned to SHA with: files: 'src/**' files‑ignore: '**/secrets.env' # ⚠️ Excludes secret file Með því að gera þetta forðast þú að CI/CD Hönnunarbilun sem leiðir til leka á leyniupplýsingum í gegnum tj-aðgerðir/breyttar skrár.
Að auki:
- Slökkva á eða takmarka skráningu þar sem leyndarmál gætu birst
- Notaðu leynilegar grímuaðgerðir GitHub
- Takmarka aðgang að byggingarskrám og gripum
Gátlisti fyrir fljótleg leyndarmál - örugg notkun CI
| Besta æfingin |
|---|
| Ekki geyma leyndarmál í útgáfustýrðum skrám |
| Notaðu hvelfingar eða GitHub Secrets fyrir innskráningarupplýsingar |
| Festa alltaf tj-aðgerðir/breyttar skrár við óbreytanleg SHA-gögn |
| Sía eða hreinsa úttak úr tj-aðgerðum/breyttum skrám |
| Aldrei taka með leynilegar slóðir í glob-mynstrum |
| Gríma eða takmarka skrár sem gætu afhjúpað viðkvæmar upplýsingar |
| Endurskoða oft erfða CI stillingar |
Hlutverk Xygeni: Framfylgd leyndarmála upplýsingakerfa í stórum stíl
Xygeni tryggir CI/CD pipelinemeð því að einbeita sér að hvernig leyndarmál eru meðhöndluð, notuð og afhjúpuð í raunveruleikanum DevOps vinnuflæði. Þetta snýst ekki bara um að skanna kóða; þetta snýst um að framfylgja bestu starfsvenjum í leynilegri stjórnun í gegnum lifandi kerfi. pipeline greiningu.
Óörugg notkunargreining á úttaki
- Skannar GitHub aðgerðir til notkunar á bergmál, keyra og gefur út þar sem ${{ skref.*.úttak.* }} gæti innihaldið viðkvæm gildi
- Greinir hvenær vísað er til leyndarmála eða þau prentuð beint, af ásettu ráði eða fyrir mistök.
Eftirlit með lekum leyndarmálum
- Greinir gildi með háu óreiðu (API-lykla, tákn) í skrám og skrefúttaki
- Kveikir á viðvörunum þegar leyndarmál birtast í pipeline skrár, jafnvel þótt þær séu duldar niðurstreymis
Rangstillt aðgerðanotkun
- Fylgist með öllum GitHub aðgerðum á öllum pipelinetil að greina notkun á útgáfum sem hafa verið skemmdar (t.d. tj-aðgerðir/breytt-skrár@v45)
- Endurskoðar skráarsamsvörunarmynstur sem innihalda hugsanleg leyndarmál eins og **/*.umslag, *.lykill eða .umslag.*
Stefnubundin CI Guardrails
- Framfylgir SHA-festingu fyrir aðgerðir þriðja aðila
- Lokar fyrir notkun óöruggra skráarklumpa sem gætu sópað leyndarmálum inn í skrár
- Kemur í veg fyrir pipelinefrá því að gefa út viðkvæm gildi sem hluta af úttaki verkflæðis
Með því að meðhöndla vinnuflæði sem hluta af ógnunarsvæðinu þínu tryggir Xygeni að leynileg hreinlæti sé ekki bara besta starfshættir, heldur innbyggð vörn.
Niðurstaða: Leynileg leki getur byrjað með einföldum aðgerðum, misnotkun
CVE-2025-30066 var ekki galli í bókasafni; það var CI/CD Hönnunarbilun sem stafar af óviðeigandi notkun á tj-aðgerðum/breyttum skrám. Það sem DevSecOps teymi ættu að læra:
- Meðhöndlið allar tilvísanir í glob/skrá í CI sem hugsanlegan lekapunkt
- Gerðu reglulega úttekt á vinnuflæði til að finna út hvort leyndarmál séu óvart innifalin
- Notið örugg geymslur eða leyndarmál umhverfisins, skráið aldrei leyndarmál inn í útgáfustýringu.
- Hreinsa eða sía öll úttak verkflæðis
- Skrá viðkvæma verkflæðisvirkni til að viðhalda endurskoðunarhæfni
CI er kóði. Verkflæði eru kóði. Skrár og úttak eru kóði. Gættu leyndarmála þinna í hverju skrefi, eða hættaðu á leyndarmálsleka sem þarfnast ekki tölvuþrjóta, bara slæms. CI/CD hönnunarval.




