Maxfiy ma'lumotlarning sizib chiqishi har doim ham yomon kod yoki zaif kutubxonalar bilan bog'liq emas. Ba'zan, bu CI ishga tushirish paytida sirlarni qanday boshqarishimizga bog'liq va CVE‑2025‑30066 bu qanday qilib yon tomonga ketishi mumkinligining darslik misolidir. O'zgartirilgan fayllarni aniqlash uchun keng qo'llaniladigan GitHub Action tj‑actions/changed‑files. pull requests, maxfiy oqish uchun jim kanalga aylandi. Mana nima bo'ldi va siz uni qanday qulflashingiz mumkin CI/CD sirlari pipeline.
CVE‑2025‑30066 da nima bo'ldi?
2025-yil mart oyi o'rtalarida tj-actions/o'zgartirilgan fayllar buzib kirildi. Hujumchi zararli dasturga ishora qilish uchun mavjud versiya teglarini (v45.0.7 gacha) qayta yozdi commitBu ishlab chiquvchilar sezmagan holda Action xatti-harakatlarini o'zgartirdi; yangi versiya chiqarilmadi, shunchaki ko'rinmas teglar o'zgartirildi.
Foydali yuklama oddiy, ammo xavfli edi: u masofaviy Base64-kodlangan Python skriptini tortib oldi, bu skript yuguruvchi xotirasini hisob ma'lumotlarini skanerladi, ularni jurnallarga tashladi yoki filtrladi. Bu tj-actions/o'zgartirilgan fayllardagi mantiqiy kod kamchiligi emas edi; bu qayta ishlatiladigan harakat yordamida CI ish oqimlarida maxfiy oqish qanday sodir bo'lishi mumkinligini suiiste'mol qilish edi. CVE-2025-30066 bufer toshib ketishi haqida emas edi; bu sirlarning oqib ketishiga imkon bergan CI dizaynidagi nosozlik haqida edi.
Ta'sir: tj-actions/o'zgartirilgan fayllarning ta'sirlangan versiyalaridan foydalanadigan har qanday repo, ayniqsa, fayl naqshlarida yoki CI chiqishlarida maxfiy tokenlar yoki fayllar xavfsiz tarzda ishlamasa, maxfiy ma'lumotlarning oqib ketishi xavfini tug'dirardi.
Nima uchun bu qayta ishlatiladigan harakatlarga tayanib ish jarayonlariga ta'sir qiladi
DevSecOps ish oqimlari tj-actions/o'zgartirilgan fayllarga juda ko'p ishonaman:
- Avtomatlashtirish pull request cheklar
- Muayyan yo'llarda o'zgartirilgan fayllarni aniqlang
- Ortiqcha CI ishlaridan qoching
Lekin bu ish oqimlari ko'pincha bitta narsani e'tibordan chetda qoldiradi: glob naqshlari qanday qilib maxfiy ma'lumotlarni o'z ichiga olishi mumkin. Ishlab chiquvchilar tj-actions/o'zgartirilgan fayllar sukut bo'yicha xavfsiz ishlaydi deb taxmin qilishadi. Biroq, agar siz glob qilsangiz konfiguratsiyalar/** va sirlar saqlanadi configs/secrets.env, siz hozirgina CI chiqishlariga yoki jurnallariga maxfiy fayl qo'shdingiz. Bu Amaldagi xato emas; bu CI/CD maxfiy oqishlarga olib keladigan dizayndagi nosozlik. CVE‑2025‑30066 bunga yaqqol misol bo'la oladi.
Yashirin oqish qanday sodir bo'ldi (zaiflikning tahlili)
Keling, CVE‑2025‑30066 ortidagi asosiy nosozlikni ko'rib chiqaylik:
- Globbing naqshlari kabi **/*.env maxfiy fayllar tasodifan mos keldi
- tj-actions/o'zgartirilgan fayllar ushbu sirlarni o'zgartirilgan fayllar sifatida ko'rib chiqdi
- Sirlar bosqichma-bosqich chiqishlarda, jurnallarda yoki keyingi ishlarda paydo bo'ldi
Bu sirlar versiyalar tomonidan boshqariladigan yo'llarda saqlangani (yomon fikr) va CI konfiguratsiyasi ularni globbingdan aniq chiqarib tashlamaganligi (shuningdek, yomon) tufayli sodir bo'ldi. Shunday qilib, bu kod xatosi emas, balki tj-actions/changed-file chiqishlari bilan maxfiy ma'lumotlarning oqishiga olib keladigan CI dizayn gigienasining yomonligi.
Amaliy ekspluatatsiya yo'li: CI ishi bilan ishonchli ma'lumotlarga ta'sir qilishgacha
tj-actions/o'zgartirilgan fayllar orqali maxfiy ma'lumotlarning oqishiga sabab bo'lgan CI sozlamalariga misol:
If configs/secrets.env o'zgartirildi:
- Bu tj-actions/changed-files tomonidan belgilangan
- U tarkibiga kiritilgan qadamlar.o'zgartirilgan.chiqishlar.barcha_o'zgartirilgan_fayllar
- Keyingi qadamlar uni qayd qildi yoki skriptlarga uzatdi, sirlarni oshkor qildi
Bu oqish CI mantig'i sirlarni oddiy fayllar kabi qayta ishlagani uchun sodir bo'ldi. Maxfiy oqish shu yerdan boshlanadi, bu buferning toshib ketishi tufayli emas, balki nuqsonli CI dizaynida tj-actions/o'zgartirilgan fayllardan noto'g'ri foydalanish tufayli.
Ko'paytirish quyidagi kabi natijalar bilan amalga oshiriladi:
If sirlar.env Ushbu ro'yxatda bo'lsa, uning fayl nomi va ehtimol tarkibi qurilish jurnallarida paydo bo'lishi mumkin. Hatto shartli mantiq kabi:
Maxfiy artefaktlarni fosh qilishi mumkin. Bu CI/CD maxfiy oqish imkonini beruvchi dizayndagi xato, bu Harakatlar kodidagi kamchilik emas.
Qayta ishlatiladigan ish oqimlaridan qanday qilib xavfsiz foydalanish va oqishning oldini olish mumkin
Siz tj-actions/o'zgartirilgan fayllardan voz kechishingiz shart emas. Siz qayta ishlatiladigan amallardan sirlarni birinchi o'ringa qo'yish tafakkuri bilan foydalanishingiz kerak:
Sirlarni boshqarishning eng yaxshi amaliyotlari
- Versiyalarni boshqarish sirlarini hech qachon qilmang
- Nozik yo'llarga mos keladigan sharsimon naqshlardan saqlaning
- Atrof-muhitga asoslangan sirlardan foydalaning (GITHUB_ENV, omborlar, GitHub sirlari)
CI/CD konfiguratsiya Guardrails
- Har doim amallarni teglarga emas, balki o'zgarmas SHAlarga pinlang (hech qachon ishlatmang) @v45)
- tj-actions/o'zgartirilgan fayllar chiqishini buzilgan deb hisoblang, dezinfektsiya qiling yoki filtrlang
- Chiqishlarni faqat dezinfektsiya qilingan taqdirda o'rnating
⚠️ Xavfsiz misol:
Yuqoridagilar maxfiy oqish va CVE‑2025‑30066 ortidagi noto'g'ri foydalanishdir.
Xavfsiz alternativa:
Buni amalga oshirish orqali siz bundan qochasiz CI/CD tj-actions/o'zgartirilgan fayllar orqali maxfiy oqishlarga olib keladigan dizayndagi xato.
Bundan tashqari:
- Sirlar paydo bo'lishi mumkin bo'lgan joylarda jurnal yozishni o'chirib qo'ying yoki cheklang
- GitHub’ning maxfiy niqoblash xususiyatlaridan foydalaning
- Qurilish jurnallari va artefaktlariga kirishni cheklash
Tezkor sirlar - Xavfsiz CI foydalanish nazorat ro'yxati
| Eng yaxshi amaliyot |
|---|
| Sirlarni versiya nazoratidagi fayllarda saqlamang |
| Hisob ma'lumotlari uchun omborlardan yoki GitHub Secretsdan foydalaning |
| Har doim tj-actions/o'zgartirilgan fayllarni o'zgarmas SHAlarga pinlash |
| tj-actions/o'zgartirilgan fayllardan chiqishlarni filtrlash yoki tozalash |
| Hech qachon glob naqshlariga maxfiy yo'llarni qo'shmang |
| Maxfiy ma'lumotlarni oshkor qilishi mumkin bo'lgan jurnallarni niqoblash yoki cheklash |
| Ko'pincha meros qilib olingan CI konfiguratsiyalarini audit qilish |
Xygeni roli: CI sirlarini keng miqyosda amalga oshirish
Xygeniy xavfsizligi CI/CD pipelinediqqatni jamlash orqali sirlar real hayotda qanday qo'llaniladi, ishlatiladi va fosh qilinadi DevOps ish oqimlari. Gap shunchaki kodni skanerlash haqida emas; gap jonli efir orqali maxfiy boshqaruvning eng yaxshi amaliyotlarini amalga oshirish haqida. pipeline tahlil.
Xavfli chiqishdan foydalanishni aniqlash
- GitHub harakatlarini skanerlaydi foydalanish uchun echo, run va chiqishlar, bu yerda ${{ steps.*.outputs.* }} sezgir qiymatlarni o'z ichiga olishi mumkin
- Sirlar to'g'ridan-to'g'ri, qasddan yoki xato bilan havola qilinganida yoki chop etilganda aniqlaydi
Sizib chiqqan sirlarni monitoring qilish
- Jurnallar va bosqichli chiqishlar ichidagi yuqori entropiya qiymatlarini (API kalitlari, tokenlar) aniqlaydi
- Sirlar paydo bo'lganda ogohlantirishlarni ishga tushiradi pipeline hatto oqim ostida niqoblangan bo'lsa ham, loglar
Noto'g'ri sozlangan harakatdan foydalanish
- Barcha GitHub harakatlarini kuzatib boradi pipelinebuzilgan versiyalardan foydalanishni aniqlash uchun (masalan, tj-actions/o'zgartirilgan fayllar@v45)
- Potensial sirlarni o'z ichiga olgan fayllarni moslashtirish naqshlarini tekshiradi, masalan **/*.env, *.key yoki .env.*
Siyosatga asoslangan CI Guardrails
- Uchinchi tomon harakatlari uchun SHA-pinlashni amalga oshiradi
- Maxfiy ma'lumotlarni jurnallarga o'tkazishi mumkin bo'lgan xavfli fayl globlaridan foydalanishni bloklaydi
- Oldini oladi pipelines ish oqimining chiqishining bir qismi sifatida sezgir qiymatlarni chiqarishdan
Ish jarayonlarini tahdid yuzasining bir qismi sifatida ko'rib chiqish orqali Xygeni maxfiy gigiena nafaqat eng yaxshi amaliyot, balki o'rnatilgan himoya vositasi ekanligini ta'minlaydi.
Xulosa: Yashirin oqish oddiy harakatlardan noto'g'ri foydalanish bilan boshlanishi mumkin
CVE‑2025‑30066 kutubxona xatosi emas edi; bu a edi CI/CD tj-actions/o'zgartirilgan fayllardan noto'g'ri foydalanish natijasida yuzaga kelgan dizayndagi xatolik. DevSecOps jamoalari nimani yo'q qilishi kerak:
- CIdagi har bir glob/fayl ma'lumotnomasini potentsial oqish nuqtasi sifatida ko'rib chiqing
- Sirlarni tasodifiy kiritish uchun ish jarayonlarini muntazam ravishda tekshirib turing
- Xavfsiz omborlar yoki atrof-muhit sirlaridan foydalaning, hech qachon sirlarni versiya boshqaruviga kiritmang
- Barcha ish jarayoni chiqishlarini dezinfektsiya qiling yoki filtrlang
- Auditlash imkoniyatini saqlab qolish uchun sezgir ish oqimi faoliyatini qayd eting
CI bu kod. Ish oqimlari bu kod. Jurnallar va chiqishlar bu kod. Sirlaringizni har bir qadamda saqlang, aks holda xakerga muhtoj bo'lmagan, shunchaki yomon maxfiy ma'lumotlarning oqib ketishi xavfi tug'iladi. CI/CD dizayn tanlovi.





