JavaScript ekotizimiga keng ko‘lamli kiberhujum: TanStack npm paketlari orqali minglab tizimlar komprometatsiya qilingan bo‘lishi mumkin

So‘nggi kunlarda dasturiy ta’minot xavfsizligi sohasida katta xavotir uyg‘otayotgan navbatdagi supply-chain hujumi aniqlanib, mashhur npm platformasidagi TanStack paketlari nishonga olingani ma’lum bo‘ldi. Tadqiqotchilar ushbu hodisani so‘nggi yillardagi JavaScript ekotizimiga qarshi amalga oshirilgan eng xavfli ta’minot zanjiri (supply-chain) hujumlaridan biri sifatida baholamoqda.

Ma’lumotlarga ko‘ra, hujumchilar TanStack nom maydoniga tegishli jami 84 ta zararli npm paket versiyasini registry’ga joylashtirishga muvaffaq bo‘lgan. Ushbu zararli versiyalar orasida millionlab dasturchilar foydalanadigan mashhur kutubxonalar, jumladan @tanstack/react-router ham mavjud bo‘lib, mazkur paketning o‘zi haftasiga 12 milliondan ortiq yuklab olinadi.

Mutaxassislar fikricha, ushbu hujumning eng xavfli jihati — zararli paketlarning nafaqat to‘g‘ridan-to‘g‘ri, balki boshqa kutubxonalar orqali tranzitiv tarzda ham minglab loyihalarga kirib borish imkoniyatiga ega ekanidadir. Shu sababli hujumning ta’sir doirasi nihoyatda katta bo‘lishi mumkin.

Hujum qanday amalga oshirilgan?

Tahlillarga ko‘ra, zararli paketlar npm registry’ga juda qisqa vaqt oralig‘ida — UTC bo‘yicha taxminan 19:20 dan 19:30 gacha yuklangan. Hujumchilar paketlar tarkibiga maxsus zararli payload joylashtirgan bo‘lib, uning asosiy maqsadi CI/CD infratuzilmalaridan maxfiy ma’lumotlarni o‘g‘irlashdan iborat bo‘lgan.

Xususan, zararli kod quyidagi ma’lumotlarni qo‘lga kiritishga uringan:

  • Amazon Web Services (AWS) credential’lari,
  • Google Cloud (GCP) kalitlari,
  • Kubernetes konfiguratsiyalari,
  • HashiCorp Vault tokenlari,
  • GitHub tokenlari,
  • SSH kalitlari,
  • .npmrc fayllari,
  • CI runner muhit o‘zgaruvchilari.

Bu esa hujumchilarga bulut infratuzilmalari, GitHub repozitoriylari hamda ishlab chiqarish serverlariga noqonuniy kirish imkonini yaratishi mumkin edi.

2,3 MB hajmdagi yashirin zararli kod

Har bir komprometatsiya qilingan paket versiyasi ichiga “router_init.js” nomli taxminan 2,3 MB hajmdagi qo‘shimcha fayl joylashtirilgan. Tahlilchilar ushbu faylda kuchli obfuskatsiya usullari qo‘llanganini aniqlagan.

Zararli kod quyidagi usullar yordamida yashirilgan:

  • string-array rotation,
  • hex formatdagi identifikatorlar,
  • control-flow flattening,
  • dead-code injection,
  • while(!![]) ko‘rinishidagi state-machine konstruktsiyalari.

Mutaxassislarning ta’kidlashicha, bu oddiy minimizatsiya emas, balki professional darajadagi zararli JavaScript yashirish texnikalaridir.

Kod tahliliga ko‘ra, payload:

  • fon rejimida daemon sifatida ishlaydi,
  • GitHub Actions muhit o‘zgaruvchilariga murojaat qiladi,
  • vaqtinchalik kataloglarda maxfiy fayllarni yig‘adi,
  • yig‘ilgan ma’lumotlarni masofaviy serverlarga uzatadi.

“prepare” hook orqali avtomatik ishga tushirilgan zararli kod

Hujumning eng xavfli qismlaridan biri package.json fayliga qo‘shilgan “optionalDependencies” va “prepare” lifecycle hook hisoblanadi.

Hujumchilar quyidagi ko‘rinishdagi bog‘lanishni kiritgan:

"@tanstack/setup": "github:tanstack/router#79ac49ee..."

Mazkur commit alohida shubhali GitHub commit’iga bog‘langan bo‘lib, unda “tanstack_runner.js” nomli zararli skript mavjud bo‘lgan.

Eng xavotirli jihati shundaki, “prepare” hook sababli:

  • dasturchi paketni o‘rnatishi bilan,
  • yoki CI runner build jarayonini boshlashi bilan

zararli kod avtomatik ravishda ishga tushgan.

Bu esa foydalanuvchi hech qanday zararli faylni qo‘lda ishga tushirmasdan turib ham komprometatsiya sodir bo‘lishiga olib kelgan.

GitHub Actions infratuzilmasi qanday buzilgan?

TanStack jamoasi tomonidan e’lon qilingan postmortem hisobotiga ko‘ra, hujum bir nechta GitHub Actions zaifliklari zanjiri orqali amalga oshirilgan.

Hujumchilar quyidagi texnikalardan foydalangan:

1. “Pwn Request” usuli

pull_request_target workflow mexanizmidan noto‘g‘ri foydalanish orqali hujumchi kodi ishonchli workflow kontekstida bajarilgan.

2. GitHub Actions cache poisoning

Fork va asosiy repozitoriy o‘rtasidagi ishonch chegarasi buzilib, zararli cache ma’lumotlari workflow’ga kiritilgan.

3. OIDC tokenlarini xotiradan ajratib olish

CI runner jarayonlari xotirasidan OIDC tokenlari o‘g‘irlangan va ular orqali npm registry’ga zararli paketlar publish qilingan.

Mutaxassislarning qayd etishicha, bu hujumda npm tokenlari to‘g‘ridan-to‘g‘ri o‘g‘irlanmagan. Aksincha, hujumchilar GitHub OIDC trusted publisher mexanizmini suiiste’mol qilgan.

Hujum ortida account takeover ehtimoli

Zararli commit “voicproducoes” nomli GitHub akkaunti orqali amalga oshirilgan. Tadqiqotchilar ushbu akkauntning ommaviy repozitoriylarida ilgari ham zararli npm kampaniyalari bilan bog‘liq iboralar uchraganini aniqlagan.

Xususan:

“A Mini Shai-Hulud has Appeared”

nomli loyiha avvalgi malware kampaniyalari bilan bog‘lanmoqda.

Bu esa hujum account takeover yoki oldindan tayyorlangan zararli infratuzilma orqali amalga oshirilgan bo‘lishi mumkinligini ko‘rsatmoqda.

TanStack va npm qanday choralar ko‘rdi?

Hodisa aniqlanganidan so‘ng TanStack jamoasi va npm xavfsizlik bo‘limi zudlik bilan quyidagi choralarni amalga oshirdi:

  • barcha 84 zararli paket versiyasi deprecated qilindi;
  • SECURITY warning e’lon qilindi;
  • zararli tarball fayllar registry’dan olib tashlandi;
  • GitHub Actions cache ma’lumotlari tozalandi;
  • workflow’lar qayta tuzildi;
  • repository-owner tekshiruvlari qo‘shildi;
  • uchinchi tomon GitHub Action’lari pin qilindi.

Dasturchilar uchun xavfli vaqt oralig‘i

Mutaxassislar ta’kidlashicha, kimda-kim:

  • UTC bo‘yicha 19:20–19:30 oralig‘ida,
  • @tanstack/* paketlarini o‘rnatgan bo‘lsa,

o‘z tizimini komprometatsiya qilingan deb hisoblab, zudlik bilan xavfsizlik tekshiruvlarini boshlashi kerak.

Himoyalanish bo‘yicha tavsiyalar

Kiberxavfsizlik mutaxassislari quyidagi choralarni tavsiya qilmoqda:

1. Credential’larni almashtirish

Quyidagilar darhol yangilanishi kerak:

  • AWS/GCP kalitlari,
  • GitHub tokenlari,
  • SSH kalitlari,
  • Vault credential’lari.

2. Cloud loglarini audit qilish

Bulut servislaridagi shubhali:

  • loginlar,
  • API chaqiruvlari,
  • yangi access key’lar,
  • privilege escalation holatlari

tekshirilishi lozim.

3. Lockfile’larni qayta yaratish

Loyihadagi dependency daraxti to‘liq qayta tekshirilib, ishonchli versiyalarga pin qilish tavsiya etiladi.

4. CI/CD pipeline’larni segmentatsiya qilish

CI runner’lar minimal huquqlar asosida ishlashi kerak.

5. GitHub Actions workflow’larini qayta ko‘rib chiqish

Ayniqsa:

  • pull_request_target,
  • cache reuse,
  • OIDC permission’lari

qat’iy nazorat ostiga olinishi zarur.

TanStack npm paketlariga qarshi amalga oshirilgan ushbu supply-chain hujumi zamonaviy dasturiy ta’minot ekotizimi qanchalik nozik va o‘zaro bog‘langanligini yana bir bor namoyish etdi.

Oddiy JavaScript kutubxonasiga joylashtirilgan zararli kod millionlab qurilmalar, CI/CD tizimlari va bulut infratuzilmalariga tahdid solishi mumkinligi bugungi kunda ochiq manbali ekotizim xavfsizligi eng dolzarb masalalardan biriga aylanganini ko‘rsatmoqda.

Mutaxassislar fikricha, kelajakda bunday hujumlar soni yanada ortishi mumkin. Shu sababli tashkilotlar dependency monitoring, SBOM nazorati, CI/CD xavfsizligi hamda supply-chain himoyasiga alohida e’tibor qaratishi zarur.