Avtomatlashtirilgan kampaniya o'g'irlangan GitHub tokenlaridan foydalanib, repozitoriy sirlarini GitHub Actions loglariga chop etadigan ish oqimlarini joylashtirmoqda, so'ngra hujumchilar ishga tushirishlarni o'chirishdan oldin ularni yuklab olishadi. Bulut xavfsizligi kompaniyasi Wiz tahliliga ko'ra, hujumlar shaxsiy repozitoriylarda va GitHub Enterprise muhitlarida muvaffaqiyatli bo'lgan.

Shubhali ish oqimi ishga tushirishlarini to'xtatadigan GitHub himoyasi Wiz tekshirgan har bir ommaviy repozitoriya ishga tushirishini to'xtatdi, ammo u shaxsiy repozitoriyalar yoki GitHub Enterprise Serverni qamrab olmaydi.

Har bir ish oqimi ci-sync- va olti tasodifiy belgidan iborat yangi tarmoqda joylashadi. Tarmoqni yoki u boshlagan ishga tushirishni o'chirish ta'sirni bekor qilmaydi. Repozitoriya o'qishi mumkin bo'lgan har bir sir aylantirilishi va tarmoqni surgan token bekor qilinishi kerak.

Wiz kampaniyani 15-sentabrdan kuzatib kelmoqda va uni hujumchilarning vositasi GitHub API so'rovlarida yuboradigan gheist foydalanuvchi agenti nomi bilan Gheist deb ataydi.

Wiz 850 dan ortiq buzilgan hisobdan 13 500 dan ortiq joylashtirilgan tarmoqni tiklagan — shaxsiy loyihalardan tortib korporativ tashkilotlarning shaxsiy repozitoriyalarigacha. Wiz tahlili nechta tashkilot sirlarini fosh qilganini aytmaydi.

Shaxsiy repozitoriylarda va GitHub Enterprise Serverda GitHub audit loglari joylashtirilgan tarmoqlarda ishga tushirishlar tugallanganini va keyin gheist foydalanuvchi agenti tomonidan o'chirilganini ko'rsatadi. AWS CloudTrail loglari tashkilotning o'z ish oqimlari ham o'sha tarmoqlarda ishlaganini va AWS rollarini qabul qilganini ko'rsatadi — bu GitHub Actions u yerda tasdiqlanmasdan ishlaganining belgisi.

Korporativ tashkilotlarda vosita bir necha foydalanuvchi va avtomatlashtirish hisoblarining tokenlari orqali bir necha daqiqa ichida aylangan va shaxsiy repozitoriyalarni klonlagan, so'ngra ish oqimini joylashtirgan. Bir necha soat o'tgach, o'sha tashkilotdan bulut ma'lumotlari AWS Secrets Managerni tekshirish uchun ishlatilgan. Wiz tahlili bu ma'lumotlar qayerdan kelganini yoki ularni kim ishlatganini aytmaydi.

24-oktabr holatiga ko'ra, kampaniya hali ham ishlamoqda va o'zgarib bormoqda. Ishtirok etgan hisoblarning taxminan uchdan ikki qismi GitHubda endi mavjud emas. Wiz faoliyatni GitHubga xabar qilgan va ularning yo'qolishi ehtimol javobni aks ettiradi, deydi.

GitHub hujjatlariga ko'ra, GitHub repozitoriyasiga yozish huquqiga ega har kim unda sozlangan har bir sirni o'qishi mumkin. Bunday kirish huquqiga ega o'g'irlangan token yetarli.

Token yetadigan har bir repozitoriya uchun vosita ci-sync- tarmog'ini yaratadi va bitta faylni, .github/workflows/sync-check.yml ni, ci: sync config xabari bilan joylashtiradi. Kommit imzolanmagan va token egasining nomini o'z ichiga oladi; uni surish ish oqimini boshlaydi.

Ish oqimi ish muhitini va ish o'qishi mumkin bo'lgan har bir sirni base32 bilan kodlangan holda chop etadi. GitHub loglarda sirlarni yashiradi, ammo uning hujjatlarida aytilishicha, qiymat kodlangan yoki boshqa tarzda o'zgartirilganidan keyin bu kafolatlanmaydi. Wiz aytishicha, base32 matni endi asl sirga mos kelmaydi, shuning uchun u to'liq chop etiladi.

Ish oqimi bo'sh ruxsatlar blokini o'rnatadi. Bu ishning GITHUB_TOKEN ini cheklaydi, hujumchilarga kerak emas, va ish sirlarni o'qishdan to'xtamaydi.

Vositaning bir versiyasi repozitoriydagi har bir joylashtirish muhiti uchun ham ishni ishga tushiradi, shuning uchun o'sha muhitlarga cheklangan sirlar ham chop etiladi. Wiz aytishicha, bular ko'pincha ishlab chiqarish ma'lumotlari.

So'ngra vosita logni GitHub API orqali yuklab oladi va bir necha soniya o'tgach ishga tushirishni o'chiradi. Sirlar GitHubning o'zi orqali chiqib ketgani uchun, hujumchi serveri yoki bloklanadigan tashqi ulanish yo'q.

28-iyuldan beri GitHub potentsial zararli deb aniqlagan ish oqimi ishga tushirishlarini yozish huquqiga ega hamkor tasdiqlaguncha ushlab turadi. GitHub aytishicha, bu ushlab turish "hozirda faqat github.com dagi ommaviy repozitoriyalarga tegishli" va GitHub Enterprise Server hozircha buni qo'llab-quvvatlamaydi.

Wiz tekshirgan har bir ommaviy Gheist ishga tushirishi, vositaning barcha versiyalarida, hali ham tasdiqlashni kutmoqda, shuning uchun uning yuklamasi hech qachon ishlamagan.

Ushlab turish faqat GitHub belgilagan ishga tushirishlarni ushlaydi. GitGuardian xavfsizlik kompaniyasi tadqiqotiga ko'ra, alohida kampaniya GhostActionning yangi varianti GitHub 9-oktabrda uni bloklashni boshlaguncha ommaviy repozitoriylarda ishlagan. Wiz aytishicha, Gheist GhostActiondan farq qiladi, u turli ish oqimi fayllaridan foydalanadi.

19-oktabr atrofida vositaning bir versiyasi o'z-o'zini boshqaradigan ishchilar, ya'ni tashkilotlar GitHub Actions ishlarini qayta ishlash uchun o'zlari ishlatadigan mashinalar uchun mo'ljallangan ikkinchi ishni surishni boshlagan. U faqat bunday ishchi ro'yxatdan o'tgan repozitoriyalarga qaratilganga o'xshaydi.

Ish ishchi mashinasida ma'lumotlarni qidirish uchun yozilgan, jumladan 31 turdagi tokenlar: shaxsiy kalitlar, jarayon muhitlari, AWS misol roli ma'lumotlari, ishchi ma'lumot fayllari va Kubernetes xizmat hisobi tokeni. Wiz bu ishni xato deb ta'riflaydi va uning tahlili muvaffaqiyatli ishga tushirishni xabar qilmaydi.

Wiz kuzatgan o'g'irlangan tokenlar manbalari infostealer loglari va oldingi ta'minot zanjiri hujumlarida fosh qilingan tokenlarni o'z ichiga oladi, masalan, mart oyida Trivy zaiflik skaneri buzilishi.

Boshqa hujumchilar ham o'sha hisoblardan foydalanadi. 6-oktabrda 391 ta hisob, ularning ko'pchiligi Gheist tomonidan ham ishlatilgan, taxminan 1 461 ta repozitoriyani buzilgan dasturiy ta'minotga o'xshatish va zararli dastur tarqatish uchun nomini o'zgartirgan. Nom o'zgartirish 610 ta joylashtirilgan tarmoqni o'chirgan.

Ba'zi jabrlanuvchilar ham Shimoliy Koreya bilan bog'langan PolinRider zararli dasturi bilan zararlangan ko'rinadi. 19 va 20-oktabrda ularning uchtasi o'zlarining Gheist kommitlarini vite.config.js fayliga yuklovchi qo'shilgan holda qayta surgan.

May oyida minglab GitHub repozitoriyalariga sir o'g'irlovchi ish oqimlarini joylashtirgan Megalodon kampaniyasi ham 57 ta hisobni urgan.

Repozitoriylaringizni Qanday Tekshirish Kerak

Wiz quyidagi tekshiruvlarni tavsiya qiladi:

  • ci-sync- va olti belgidan iborat tarmoqlarni qidiring, u yerda yagona o'zgarish — ci: sync config xabari bilan yangi .github/workflows/sync-check.yml fayli.
  • GitHub audit loglarida tugallanganidan bir daqiqa ichida o'chirilgan ci-sync-* tarmoqlaridagi ish oqimi ishga tushirishlarini va gheist foydalanuvchi agentidan har qanday faoliyatni qidiring.
  • Agar ish oqimlaringiz OIDC bilan bulut provayderiga kirsa, bulut audit loglarida mavzusi ci-sync- tarmog'ini o'z ichiga olgan rol qabul qilishlari yoki token almashishlarini tekshiring. Bu hatto GitHub loglarini yig'masangiz ham ishlaydi.
  • O'z-o'zini boshqaradigan ishchilarda .gdmppat, .gdmppatg va .gdmp_sweep fayllarini va ish loglarida gdmp-pivot qatorini qidiring.

OIDC ish oqimlariga saqlangan bulut kalitlari o'rniga qisqa muddatli tokenlar bilan kirish imkonini beradi. GitHub OIDC hujjatlariga ko'ra, ish joylashtirish muhitidan foydalanmasa, token mavzusi sukut bo'yicha faqat tarmoq nomini o'z ichiga oladi.

E'lon qilingan indikatorlar:

  • Foydalanuvchi agenti: gheist
  • Tarmoq: ^ci-sync-[0-9a-z]{6}$
  • Kommit xabari: ci: sync config, faqat .github/workflows/sync-check.yml qo'shadi
  • Qator: toJSON(secrets) }}' | base32 -w 120
  • Qator: ===== gdmp-pivot:
  • Fayl: .gdmp_pat
  • Fayl: .gdmp_patg
  • Fayl: .gdmp_sweep
  • Git blob SHA (oddiy ish oqimi): f3da2b8b357dcda02fd455d314be2a95007516a6
  • Git blob SHA (vaqt tugashi versiyasi): d09535857a741bbb976bdc084a9a021713133291
  • Git blob SHA (ajratgich versiyasi): 1dc5af9cce950aad1eb1546ecce8565b117540c4
  • Git blob SHA (o'z-o'zini boshqaradigan ish versiyasi): c665b778b2d822453293003e7ca0bbb2cb08e39d

Repozitoriyaning joylashtirish muhitlarini ro'yxatga oladigan ish oqimi versiyalari repozitoriyaga qarab farq qiladi, shuning uchun ular doimiy hashga ega emas.

Agar ci-sync Tarmog'ini Topsangiz Nima Qilish Kerak

Wiz ta'sirlangan repozitoriya uchun quyidagi qadamlarni tavsiya qiladi:

  • Repozitoriya, tashkilot va muhit foydalanishi mumkin bo'lgan har bir sirni aylantiring.
  • Kommitlarni surgan tokenlarni bekor qiling va ularning egalarining qurilmalarini infostealerlar uchun tekshiring.
  • Agar ci-sync tarmog'i o'z-o'zini boshqaradigan ishchida ishlagan bo'lsa, mashinani va uning bulut misol rolini buzilgan deb hisoblang.
  • Ushlab turilgan sync-check ishga tushirishlarini tasdiqlamang va ci-sync tarmoqlaridan kodni ishga tushirmang.

O'g'irlangan tokenni kamroq foydali qilish uchun Wiz quyidagi qadamlarni ham tavsiya qiladi:

  • Ishlab chiqarish sirlarini saqlaydigan muhitlarda tekshiruvchilarni talab qiling.
  • OIDC ishonch siyosatlarini himoyalangan tarmoqlar yoki muhitlar bilan cheklang.
  • Shaxsiy kirish tokenlari o'rniga GitHub Apps yoki qisqa muddatli nozik donali tokenlardan foydalaning.
  • O'z-o'zini boshqaradigan ishchilarni Docker soketiga kirishsiz yoki bulut metama'lumotlariga ochiq kirishsiz qisqa muddatli mashinalar sifatida ishga tushiring.

GitHub hujjatlariga ko'ra, ish kerakli tekshiruvchi tasdiqlaguncha muhit sirlarini o'qiy olmaydi.