npm Eko-Sistemində Təchizat Zənciri Təhlükəsi: Təkmilləşdirilmiş Shai-Hulud Worm-unun Dərin Texniki Analizi
Node Package Manager (npm), müasir proqram təminatı inkişafının mərkəzi hissəsini təşkil edir. Milyonlarla proqramçı tərəfindən istifadə edilən bu registri hədəf alan təchizat zənciri hücumları, son illərin ən kritik kiber təhlükələrindən biri hesab olunur. Təhlükəsizlik tədqiqatçıları bu yaxınlarda Shai-Hulud adlı tanınmış bir Worm-un modifikasiya olunmuş yeni ştammını aşkar ediblər. Bu təkmilləşdirmə, təhdid aktyorlarının paket menecerləri üzərindəki fokusunun nə qədər intensiv olduğunu bir daha sübut edir.
Giriş (Hadisənin mahiyyəti)
Aşkar edilən Malware ştammı əvvəlki dalğada müşahidə edilən Shai-Hulud variantından cüzi fərqlərlə, əsasən, yeni bir Payload sınaqdan keçirmək məqsədi daşıyır. Hücumun mərkəzində dayanan npm paketi “@vietmoney/react-big-calendar” adlanır. Bu paket, ilk dəfə 2021-ci ilin mart ayında “hoquocdat” adlı istifadəçi tərəfindən npm registrinə yüklənmiş və daha sonra təhdid aktyorları tərəfindən dəyişikliyə məruz qalmışdır. Paketin köhnə tarixə malik olması, onun əvvəlcə qanuni məqsədlə yükləndiyini, lakin sonradan ya hesabı ələ keçirilmiş, ya da zərərli kodun sonradan yerləşdirildiyi “Poisoning” ssenarisini ehtimal etməyə imkan verir.
Təchizat zənciri hücumlarının bu növü, son istifadəçini deyil, proqram təminatının inkişaf prosesini hədəf alır. Nəticədə, paketə etibar edən hər bir proqramçı və onların layihələri avtomatik olaraq risk altına düşür. Bu cür Worm-lar adətən, daxil olduğu mühitdə sürətlə yayılmaq və etimadnamələri (credentials) oğurlamaq üçün hazırlanır.
Texniki Detallar (Hücum necə baş verir?)
Shai-Hulud Worm-unun əsas fəaliyyət mexanizmi, npm paketlərinin avtomatik icra xüsusiyyətlərindən sui-istifadə etmək üzərində qurulub. Təhlükənin əsas texniki vektoru, paket manifest faylında (.json) yerləşdirilmiş zərərli skriptlərdən istifadədir. Ən çox istifadə olunan mexanizm “postinstall” skriptidir. Bir developer bu paketi layihəsinə daxil edib npm install əmrini icra etdikdə, paket icra olunmamışdan dərhal sonra, postinstall skripti istifadəçinin sistemində avtomatik işə düşür.
Modifikasiya olunmuş Shai-Hulud ştammının əsas məqsədi inkişaf mühitinə daxil olaraq qiymətli məlumatları, xüsusilə də aşağıdakıları toplamaqdır:
- Etimadnamə Oğurluğu: Əsas hədəf
.npmrcfayllarıdır. Bu fayllarda adətən digər özəl (private) npm registrlərinə, GitHub-a və ya digər bulud xidmətlərinə aid avtorizasiya tokenləri yerləşir. - Backdoor Mexanizmi: Oğurlanmış etimadnamələrdən istifadə edərək digər layihələrə və ya daxili şəbəkələrə giriş əldə etmək üçün ikinci mərhələli Payload yerləşdirmək.
- Sistem Məlumatlarının Toplanması: Əməliyyat sistemi, istifadəçi adı və mühit dəyişənləri (environment variables).
Bu Worm-un təkmilləşdirilmiş versiyası, əvvəlki nəsil Shai-Hulud-u aşkarlayan imzaları (signatures) və heuristik aşkarlama mexanizmlərini (heuristic detection mechanisms) yan keçməyə çalışır. Tədqiqatçılar bu modifikasiyaların xüsusilə Command and Control (C2) serveri ilə əlaqə qurma və məlumatları şifrələmə üsullarına toxunduğunu bildirirlər. Bu tip hücumlar birbaşa *Vulnerability* istismar etmədən, daha çox etibar modelinin zəifliyini hədəf alır.
Təhlükənin Miqyası (Kimlər risk altındadır?)
npm ekosistemindəki hər bir təchizat zənciri hücumu geniş yayılma potensialına malikdir. Risk altında olanlar yalnız paketi birbaşa quraşdıranlar deyil, həm də həmin paketi dependency (asılılıq) kimi istifadə edən bütün proqram təminatlarıdır. Əgər bir şirkətin bütün Framework-u zərərli paketə bağlıdırsa, həmin şirkətin bütün inkişaf mühiti və potensial olaraq, istehsal (production) mühitinə belə təsir göstərə bilər. Əsas risk qrupları bunlardır:
- Node.js və React layihələri üzərində işləyən bütün proqramçılar.
- Həssas API açarları və ya məxfi tokenləri lokal inkişaf mühitində saxlayan DevOps komandaları.
- Daxili və özəl npm registrlərini idarə edən şirkətlər. Çünki oğurlanmış etimadnamələr daxili şəbəkələrə Exploit etmək üçün istifadə oluna bilər.
Müdafiə və Həll Yolları (İstifadəçilər nə etməlidir?)
Təchizat zənciri hücumlarından qorunmaq çox səviyyəli və davamlı bir proses tələb edir. Bu təhdidə qarşı proqramçılar və təhlükəsizlik mütəxəssisləri aşağıdakı tədbirləri görməlidirlər:
- Paket Auditləri: Bütün layihə asılılıqları üzrə mütəmadi olaraq təhlükəsizlik auditləri aparılmalıdır. Npm audit vasitələrindən istifadə edərək şübhəli paketləri (bu halda “@vietmoney/react-big-calendar” paketi və onun modifikasiyalarını) dərhal müəyyənləşdirmək və silmək.
- Ən Az İmtiyaz Prinsipi (Principle of Least Privilege): İstifadə edilən avtorizasiya tokenləri və API açarları mümkün qədər məhdud hüquqlara malik olmalıdır. Məsələn, build (yığma) prosesi üçün istifadə olunan tokenlər yalnız oxumaq (read-only) icazəsi ilə təmin edilməlidir ki, Worm tokeni oğurlasa belə, yeni paket yükləyə bilməsin.
postinstallSkriptlərinin Məhdudlaşdırılması: Mümkün olduqca, etibar edilməyən paketlər üçünpostinstallskriptlərinin avtomatik icrasını disable etmək. Yaxud, npm v6 və yuxarı versiyalarda istifadə olunan--ignore-scriptsparametri ilə zərərli skriptlərin işə düşməsinin qarşısını almaq olar.- İzolasiya və Sandboxing: Həssas inkişaf proseslərini izolyasiya edilmiş mühitlərdə (məsələn, Sandboxing və ya konteynerlər) aparmaq. Bu, zərərli kodun yerli sistemə və ya şəbəkəyə çıxışını məhdudlaşdırır.
- Qanuni Patch-lərin Tətbiqi: Təhlükəsizlik tədqiqatçıları tərəfindən aşkar edilmiş bu kimi Vulnerability-ləri aradan qaldıran yeniləmələri və Patch-ləri vaxtında tətbiq etmək, xüsusilə paket menecerinin özündə aşkarlanan Vulnerability-lər.
Shai-Hulud Worm-unun modifikasiya olunmuş ştammının aşkar edilməsi, kiber təhlükəsizlik mütəxəssislərinə inkişaf alətlərinin və asılılıqlarının yoxlanılmasına daha ciddi yanaşmağın zəruriliyini xatırladır. Təchizat zəncirindəki hər hansı bir zəiflik, bütün bir şirkət infrastrukturunun kompromitasiyasına gətirib çıxara bilər.