JA_NPM

NPM daşqınları ilə bağlı araşdırma: “Dovşan yuvasında çay axtarıram”

At Xygenie, son bir il ərzində şübhəli fəaliyyət və ya zərərli kod üçün ictimai açıq mənbəli paket reyestrlərini izləyən hərtərəfli bir sistemin tətbiqi ilə məşğul olmuşuq.

Bu infrastruktur bizə gündəlik dərc olunan bütün paketləri real vaxt rejimində təhlil etməyə və anomal istifadəçi davranışlarını izləməyə imkan verir.

Paket reyestrlərində zərərli kodun olması hamıya məlum olsa da, bu reyestrlərin müntəzəm istifadəçiləri tərəfindən tamamilə diqqətdən kənarda qalan digər qəribə və ya qeyri-adi davranışlar da mövcuddur. Hətta onları yaxından izləyənlər üçün belə, bu cür davranış üçün bir səbəb və ya izahat tapmaq asan deyil.

Xygeni komandasını xarakterizə edən şey, problemlə qarşılaşdıqda əzmkarlığımızdır, ona görə də bunu daha dərindən araşdırdıq.

Hər şey statistikada kəskin artımla başladı

Daha əvvəl qeyd etdiyim kimi, infrastrukturumuzun bir hissəsi olaraq, açıq mənbəli paket reyestrlərində bir çox fəaliyyət metriklərini izləyirik.

Mart ayının son günlərində iş yoldaşım Karmen həyəcan təbili çaldı. Biz əhəmiyyətli bir sapma müşahidə etməyə başladıq NPM-də dərc olunmuş paketlərin sayı. İlkin araşdırmadan sonra aşkar etdik ki, bu sapma əsasən paket dərc etmə nisbətinin qəfildən kəskin şəkildə artdığı nisbətən az sayda istifadəçi ilə əlaqədardır.

Bu, bizi platforma daxilində prosesimizi və əlaqəli məlumatları nəzərdən keçirməyə sövq etdi. Xoşbəxtlikdən, araşdırmamız məlumatların düzgün göründüyünü müəyyən etdi, lakin bu, bir qədər çaşdırıcı idi!

Əlavə yoxlamalar apardıqdan sonra bu paketlərin bir neçə ortaq xüsusiyyətə malik olduğunu aşkar etdik:

  • Naşirlər yeni yaradılmış, ən çoxu bir və ya iki aylıq olmayan istifadəçilər idi.
  • Paketlərin təsadüfi adları var idi və ehtimal ki, lüğətdən istifadə etməklə yaradılıb. Paket adlarında qəribə adlar tapa bilərik, məsələn nəhəng_mite-smiletea, erick-mangut94-sukiwir, ekzotik_sürünən-appteadev or aşkar_tuna-appteadevTapdığımız aktivlərin bəzi nümunələrini özündə əks etdirən əlavəni əlavə edəcəyik.
  • Bu paketlərin məzmunu çox oxşar, çox vaxt eyni idi.

Bu kontekstdə, paketlərdən birinin Python skriptini ehtiva etdiyini müşahidə etdik. ehtimal ki, təsadüfən, paketləri avtomatik olaraq dərc etmək üçün istifadə edildiyi görünür.

npm

Torun açılması

Bu naşirlərin bəzilərinin son bir ayda nəşr fəaliyyəti aşağıdakı zaman xətti cədvəlinə uyğun olaraq həyata keçirilib:

 

npm hücumu

Bu hadisə ilə bağlı paylaşa biləcəyimiz tam statistika:

npm yoxlaması

Bu istifadəçilərlə əlaqəli bəzi paketlərin fərdi icmalından heç bir müvafiq nəticə çıxmadı. Bu, bizi onların hamısının ümumi mənzərəsini təhlil etməyə və bu uğurla bağlı ipucu verə biləcək nümunələri axtarmağa vadar etdi.

Axı, təhlil etmək üçün bir neçə paketimiz var:

npm hücumu 2

Təhlildən vurğulaya biləcəyimiz əsas məqamlar bunlardır:

  • NPM paketlərinin çoxu bir-biri ilə əlaqəlidir. Bəziləri digərlərindən asılılıq kimi istinad edilir.
  • Qəribə paketlər olmasına və ehtimal ki, heç kimin onların mövcudluğundan xəbəri olmamasına baxmayaraq, bəziləri həftəlik olaraq çoxlu yükləmələrə malikdir. Normal bir istifadəçinin bu kimi paketləri yükləmək istəməsini qəbul etmək çətindir 0mc03esisd. 
  • Bəzilərinin əlaqəli depoları var. Bəzən bu depoların sahibləri npm-dəkilərə bənzər şəkildə saxta hesablar kimi görünürlər.

Qeyd: İstifadəçilər əlavə paketləri waves formatında yükləyirlər, ona görə də təqdim olunan məlumatlar bir qədər dəyişə bilər.

npm hücumu 2

Bu, əlaqəli depolardan birinin nümunəsidir. Buraya dərc olunmuş bəzi paketlərin kodları daxildir. Həmçinin bəzi digər fayllar, məsələn, çay.yaml file.

Aktyor(lar)la görüş

Bunun tək bir müəllifin, yoxsa birdən çox əməkdaşın əsəri olduğunu müəyyən etmək çətindir. Bununla belə, bu fəaliyyətin mənşəyini daraldan bəzi dəlillərimiz var:

  • Dil: Koddakı bəzi şərhlər İndoneziya dilindədir.
npm hücumu 3
  • Yerləşmə: Əlaqəli depoların müəyyən sahibləri yerlərini İndoneziyada göstərirlər.
  • GitHub-dakı fəaliyyət metaməlumatları vasitəsilə müəyyən edə biləcəyimiz yer də İndoneziyaya işarə edir.
NPM_JA

Saat beşdə çay

İndoneziyanın Britaniya müstəmləkəsi olduğunu nəzərə alsaq, burada çay içmək çox uyğun olardı. Lakin bu halda bu, olduqca xüsusi bir çay növüdür.

Yadınızdadırmı? çay.yaml Başlanğıcda hansı fayllara baxdıq? O vaxt onların məzmununu göstərmirdik, amma belə görünürdü:

npm hücumu 4

Bu fayllar əlaqəli görünür Çay protokoluBəs bu nədir? Biz çatdıq https://tea.xyz/blog/250k-grant-for-open-source-developers, məqsəddən danışır:

Tea, açıq mənbəli proqramçılar üçün qeyri-kafi kompensasiya problemini həll etməklə rəqəmsal dünyanı sarsıdır. Bu problemin həlli həmişəkindən daha təcilidir, buna görə də protokolun istifadəyə verilməsindən əvvəl 250 min dollar qrant ayırmaq qərarına gəldik. Bu ilkin mərhələ, açıq mənbəli proqram təminatı ekosisteminə əhəmiyyətli dərəcədə təsir göstərən və Tea Protocol Incentivized Testnet-dən 30-dan çox irəlidə olan açıq mənbəli layihələrin dəstəkləyicilərini dəstəkləməyi hədəfləyir.

Çay protokolu sənədlərinə görə: 

"Layihənin çay protokolunda qeydiyyata alınması üçün layihənin konstitusiyası kimi xidmət edən tea.yaml faylı tələb olunur ki, bu da onun töhfə verənlərin sayını və müəyyən hərəkətləri həyata keçirmək üçün tələb olunan səslərin sayını tənzimləyir."

 

Çay şəbəkəsinə daxil olduqdan sonra nüfuzunun şişirdildiyindən şübhələndiyimiz paketlərdən birini tapmağa çalışdıq. Onu tapdıq:

Görünür, burada baş verənləri izah edən budur: Bəzi istifadəçilər çay Rank-ı ələ keçirmək və çay assosiasiyasının təmin etdiyi üstünlükləri əldə etmək üçün açıq mənbəli layihələrini uydurma populyarlıqla şişirdirlər. Axı pul sekslə yanaşı ən qədim hərəkətverici qüvvədir. 

Nəticə və yekun fikirlər

Bu NPM paketlərində zərərli koda dair heç bir dəlil tapılmasa da və çox güman ki, heç kimin onlardan istifadə etməsini nəzərdə tutmasalar da, potensial olaraq NPM, GitHub və ya çay assosiasiyasının bir neçə Xidmət Şərtlərini (TOS) poza bilərlər. Lakin bu, işimizin əhatə dairəsindən kənardır (lakin onlara məlumat verilib və müvafiq hesab etdikləri tədbirlər görüləcək). Bu platformaların sui-istifadəsi bizə və təşkilatlarımıza müəyyən dərəcədə təsir edəcək.

Aydındır ki, zahirən zərərsiz görünən istənilən açıq mənbəli paket, tam kontekstual məlumat olmadan başa düşülməsi çətin olan davranışları özündə saxlaya bilər.

Bir geliştirici olaraq, müəyyən bir səviyyədə əminliklə hazırladığımız və saxladığımız tətbiqlərdə istifadə olunan bütün açıq mənbəli paketləri əl ilə idarə etməkdə çətinlik çəkirəm. Bu idarəetməni avtomatlaşdıran bir vasitənin köməyi olmadan tapşırıq komandalarımızın saysız-hesabsız saatlarını ala bilər.

Açıq mənbəli aləmlərin təhlükəsiz yerlər olduğuna inanaraq, həmişə başqa tərəfə baxmaq seçimi var. Xoşbəxtlikdən, inanıram ki, bu düşüncə tərzi bu gün çox geniş yayılmayıb; bu hal praktik olaraq zərərsiz olub, amma bu yaxınlarda daha ciddi bir hadisə ilə qarşılaşdıq... XZ Backdoorvə bu olmayıb yalnız bir.

Əgər bura qədər oxumusunuzsa, ümid edirəm ki, bu maraqlı hadisənin bütün incəliklərindən zövq almısınız. Xygeni-nin təşkilatınızın təhlükəsizliyinə nə verə biləcəyini nəzərdən keçirmək üçün bir neçə dəqiqə vaxt ayırmağı unutmayın.

Əlavə: Son məqaləyə daxil ediləcək əlaqəli aktivlərin siyahısını verin

Dərc olunmuş paketlərin sayına əsasən daha uyğun istifadəçilər üçün NPM: vndra, wanzaty, artknight404, seblakkuah, Mikrositer, kellyman17

Əlaqəli paketlərin kiçik bir nümunəsi: mikrositer, cryndex, arts-dao, seblakkuah, vndrabnb, vndrave, depfif, depsik, depeit, depnin, Dopon, kellymanteasproject.

tea.yml fayllarını ehtiva edən bəzi əlaqəli GitHub depoları:

sca-tools-proqram-kompozisiya-analiz-alətləri
Proqram təminatı risklərinizi prioritetləşdirin, aradan qaldırın və təhlükəsizləşdirin
Pulsuz Hesabınızı əldə edin.
Kredit kartı tələb olunmur.

Proqram təminatınızın hazırlanmasını və çatdırılmasını təmin edin

Xygeni Məhsul Dəsti ilə