TL; DR
Shai-Hulud 3.0 shai-hulud npm მავნე პროგრამის უახლესი ევოლუციაა. თვითგავრცელებადი მიწოდების ჯაჭვის ჭია npm პაკეტების ბოროტად გამოყენება ავტორიზაციის მონაცემების მოსაპარად, ავტომატურად გასავრცელებლად და კომპრომეტირებისთვის. CI/CD გარემო. ადრინდელი ტალღებისგან განსხვავებით, Shai-Hulud 3.0 აუმჯობესებს გავრცელების ლოგიკას, მიზნად ისახავს პოპულარულ ფრონტ-ენდ ბიბლიოთეკებს და აჩქარებს ინფიცირებას მომვლელის მიერ ტოკენების ბოროტად გამოყენების გზით.
შედეგად, ეს shai-hulud მავნე პროგრამა კიდევ ერთხელ ადასტურებს, რომ თანამედროვე npm მიწოდების ჯაჭვის შეტევები აღარ არის დამოკიდებული ნულოვან დღეებზე, არამედ ავტომატიზაციაზე, ნდობის ბოროტად გამოყენებასა და დეველოპერების სამუშაო პროცესებზე.
რა არის შაი-ჰულუდ 3.0?
Shai-Hulud 3.0 shai-hulud npm მავნე პროგრამის კამპანიის მესამე დადასტურებული ტალღაა, რომელიც მოჰყვა ორიგინალ Shai-Hulud ჭიას და მასშტაბურ Shai-Hulud 2.0 აფეთქებას.
თუმცა, ეს ვერსია რადიკალურად ახალ ექსპლოიტს არ წარმოადგენს. სამაგიეროდ, ის აუმჯობესებს ეფექტურობას, ფარულობას და მიზნობრივ მიდგომას. სხვა სიტყვებით რომ ვთქვათ, Shai-Hulud 3.0 ოპტიმიზაციას უკეთებს მიწოდების ჯაჭვის შეტევის მოდელს, მისი ხელახლა გამოგონების ნაცვლად.
რაც მთავარია, მავნე პროგრამა აგრძელებს ფუნქციონირებას როგორც ჭია და არა როგორც ერთჯერადი მავნე პაკეტი.
რატომ არის Shai-Hulud 3.0 მნიშვნელოვანი npm უსაფრთხოებისთვის
ერთი შეხედვით, Shai-Hulud 3.0 შეიძლება „კიდევ ერთ მავნე npm პაკეტს“ ჰგავდეს. თუმცა, სწორედ ეს ვარაუდია, რის გამოც ეს კამპანია წარმატებულია.
რადგან npm ეკოსისტემები დიდად არის დამოკიდებული:
- ირიბი ნდობა
- ავტომატური ინსტალაციები
- მომვლელის ავტორიზაციის მონაცემები
- CI/CD pipelines
ერთი კომპრომეტირებული ტოკენი შეიძლება სწრაფად გადაიზარდოს npm მიწოდების ჯაჭვის სრულ მავნე პროგრამების აფეთქებაში.
შედეგად, shai-hulud მავნე პროგრამას ექსპლოიტები არ სჭირდება. ის ჩვეულებრივ სამუშაო პროცესებს იარაღად აქცევს.
Shai-Hulud 3.0 შეტევის ვექტორი: როგორ ვრცელდება npm მავნე პროგრამა
პირველადი ინფიცირება მავნე npm პაკეტის მეშვეობით
shai-hulud npm მავნე პროგრამა ეკოსისტემაში ტროჯანიზებული პაკეტების საშუალებით შედის, რომლებიც გამოქვეყნებულია ლეგიტიმური ან კომპრომეტირებული მომვლელის ანგარიშების ქვეშ.
Shai-Hulud 3.0 ტალღაში მკვლევარებმა დააკვირდნენ ინფექციას პოპულარული დამოკიდებულებების მეშვეობით, მათ შორის frontend-ზე ორიენტირებული პაკეტების მეშვეობით, როგორიცაა:
@vietmoney/react-big-calendar
რადგან ეს პაკეტები დამოკიდებულების გრაფიკებში მაღალ ადგილს იკავებს, ერთი ინსტალაცია სწრაფად ვრცელდება სხვადასხვა პროექტზე.
სერთიფიკატების შეგროვება და ჭიების გამრავლება
ინსტალაციის შემდეგ, Shai-Hulud 3.0 ასრულებს მავნე სასიცოცხლო ციკლის სკრიპტებს... install or postinstall.
ამ ეტაპზე, მავნე პროგრამა:
- სკანირებს ლოკალურ ფაილებს და გარემოს ცვლადებს
- ამოიღებს npm ტოკენებს და GitHub-ის სერთიფიკატებს
- ახდენს ხელმისაწვდომი საცავებისა და პაკეტების იდენტიფიცირებას
ამიტომ, ინფექცია მყისიერად გადადის ადგილობრივი კომპრომისი to ეკოსისტემის მასშტაბით გავრცელება.
ავტომატური ხელახალი გამოქვეყნება მომვლელი პორტფოლიოების მასშტაბით
რწმუნებათა სიგელების შეგროვების შემდეგ, shai-hulud npm მავნე პროგრამა პროგრამულად ჩამოთვლის კომპრომეტირებული მომვლელის საკუთრებაში არსებულ ყველა პაკეტს.
შემდეგ, ის:
- ახალ ვერსიებში მავნე კოდს შეჰყავს
- ავტომატურად ხელახლა აქვეყნებს ამ ვერსიებს
- თითოეულ მსხვერპლს ახალ განაწილების წერტილად აქცევს
შედეგად, ერთ მოპარულ ტოკენს შეუძლია რამდენიმე საათში ათობით ან ასობით npm პაკეტის დაინფიცირება.
შაი-ჰულუდ 3.0 წინა ტალღების წინააღმდეგ
რა შეიცვალა Shai-Hulud 3.0-ში?
მიუხედავად იმისა, რომ ძირითადი მექანიკა ნაცნობი რჩება, შაი-ჰულუდი 3.0 რამდენიმე მნიშვნელოვან დახვეწას შემოიტანს.
განსაკუთრებით აღსანიშნავია:
- უფრო სწრაფი გავრცელების ლოგიკა
- უფრო სუფთა დატვირთვის სტრუქტურა
- უკეთესი შერწყმა ლეგიტიმურ პაკეტების განახლებებთან
- შაი-ჰულუდთან შედარებით ხმაურის შემცირება 2.0
შესაბამისად, მხოლოდ რეპუტაციაზე ან CVE-ებზე დაფუძნებული აღმოჩენა არაეფექტური ხდება.
| ასპექტის | შაი-ჰულუდი 2.0 | შაი-ჰულუდი 3.0 |
|---|---|---|
| საწყისი ინფექციის ვექტორი | მავნე npm პაკეტები წინასწარი ინსტალაციის სასიცოცხლო ციკლის სკრიპტებით | მავნე npm პაკეტები, რომლებიც ბოროტად იყენებენ სანდო მაღალი ხილვადობის ბიბლიოთეკებს და განახლების გზებს |
| პირველადი სამიზნე | npm ეკოსისტემა და CI/CD pipelines | npm ეკოსისტემა, რომელიც ფოკუსირებულია დეველოპერულ მანქანებსა და შემდგომ მომხმარებლებზე |
| გავრცელების მექანიზმი | ავტორიზაციის ქურდობა, რასაც მოჰყვა პაკეტების ავტომატური ხელახლა გამოქვეყნება | ავტორიზაციის ხელახალი გამოყენება პლუს დამოკიდებულების ნდობის ბოროტად გამოყენება მასშტაბის უფრო სწრაფად გაფართოებისთვის |
| გაშვების დროს ბოროტად გამოყენება | Bun-ის გაშვების დროის მომენტალური ინსტალაცია | Node.js-ის არსებული გაშვების დროისა და სანდო შესრულების გზების ხელახლა გამოყენება |
| CI/CD ჩივილი | დამალული GitHub Actions სამუშაო პროცესები და თვითორგანიზებული მორბენლები | შემცირდა CI/CD ხმაური, მეტი აქცენტი პაკეტის დონის ფარულ შესრულებაზე |
| დატვირთვის ქცევა | დიდი, დაბინდული JavaScript-ის დატვირთვები და გარემოს სკანირება | მცირე, უფრო მიზანმიმართული დატვირთვები, რომლებიც ორიენტირებულია მდგრადობასა და გავრცელებაზე |
| ავტორიზაციის ტარგეტირება | GitHub ტოკენები, npm ტოკენები, ღრუბლოვანი ავტორიზაციის მონაცემები, CI საიდუმლოებები | იგივე სერთიფიკატების სამიზნეები, უფრო სწრაფი ხელახალი გამოყენებით და ნაკლებად თვალსაჩინო ექსფილტრაციით |
| ოპერაციული ხმაური | ძალიან ხმაურიანი: მასობრივი საცავის შექმნა, სამუშაო პროცესის ინექცია, მასობრივი ატვირთვები | დაბალი ხმაური: ნაკლები ხილული არტეფაქტი, უფრო რთული მათი აღმოჩენა ხელით განხილვისას |
| ზემოქმედების სხივი | დიდი, მაგრამ შესამჩნევი მასშტაბისა და არტეფაქტების გამო | პოტენციურად უფრო დიდია ფარულობისა და სანდო პაკეტის ბოროტად გამოყენების გამო |
| თავდაცვითი გამოწვევა | შეჩერება CI/CD ბოროტად გამოყენება და ავტორიზაციის გაჟონვა | სხვაგვარად ლეგიტიმურ პაკეტებში მავნე ქცევის აღმოჩენა |
რატომ არის ეს ისევ იგივე ჭია
ამ ცვლილებების მიუხედავად, Shai-Hulud 3.0 კვლავ იგივე კლასის npm მიწოდების ჯაჭვის ჭიაა..
ის ეყრდნობა:
- ავტორიზაციის ხელახალი გამოყენება
- ავტომატური ხელახლა გამოქვეყნება
- დამოკიდებულების ნდობა
- CI/CD შესრულების
ამიტომ, ნებისმიერი გარემო, რომელიც npm პაკეტებს აყენებს ქცევითი კონტროლის გარეშე, დაუცველი რჩება.
კომპრომისის ინდიკატორები
Shai-hulud მავნე პროგრამის შემსწავლელი უსაფრთხოების ჯგუფებმა შემდეგი სიგნალები უნდა მოძებნონ:
- პაკეტის ვერსიის მოულოდნელი ხარვეზები
- სასიცოცხლო ციკლის სკრიპტები დაემატა დასაბუთების გარეშე
- დაბინდული JavaScript-ის ნაწილაკები
- გამავალი ქსელის მოთხოვნები ინსტალაციის დროს
- npm ან GitHub ინსტალაციის დროს წვდომადი ტოკენები
- CI/CD სამუშაოები მოულოდნელად იქცევა დამოკიდებულების განახლების შემდეგ
მნიშვნელოვანია, რომ არცერთი მათგანის არსებობისთვის CVE არ არის საჭირო.
რატომ აკლია ტრადიციული npm უსაფრთხოების ინსტრუმენტები Shai-Hulud 3.0-ს
CVE-ზე დაფუძნებული აღმოჩენის წარუმატებლობა
რადგან Shai-Hulud 3.0 ბოროტად იყენებს ლეგიტიმურ სამუშაო პროცესებს, სკანერები, რომლებიც მხოლოდ ცნობილ დაუცველობებზე არიან ორიენტირებულნი, ვერაფერ ცუდს ვერ ხედავენ.
Იქ არის:
- დაუცველი ფუნქციის არარსებობა
- არ არის სახიფათო API
- მეხსიერების დაზიანების არარსებობა
სამაგიეროდ, ჩვეულებრივ JavaScript-ში მავნე განზრახვაა ჩადებული.
SBOM ხილვადობა საკმარისი არ არის
ანალოგიურად, SBOMs შემიძლია გითხრათ რა დამოკიდებული ხარ, მაგრამ არა რას აკეთებს ინსტალაციის დროს.
შედეგად, ხილვადობა აღსრულების გარეშე ვერ შეაჩერებს მიწოდების ჯაჭვის ჭიას.
როგორ უშლის Xygeni ხელს Shai-Hulud 3.0 npm მიწოდების ჯაჭვის შეტევებს
სწორედ აქ არის მნიშვნელოვანი Xygeni-ს არქიტექტურა.
მავნე პროგრამების ადრეული გაფრთხილება (MEW): გამოქვეყნების დროს npm მავნე პროგრამების გამორთვა
Xygeni-ს მავნე პროგრამების ადრეული გაფრთხილება (MEW) მუდმივად სკანირებს ახლად გამოქვეყნებულ npm პაკეტებს რეალურ დროში.
MEW აფიქსირებს:
- დაბნეული დატვირთვები
- საეჭვო სასიცოცხლო ციკლის სკრიპტები
- ავტორიზაციის მონაცემების მოპოვების ქცევა
- ფაილურ სისტემაში არანორმალური ჩაწერები
- მოულოდნელი ქსელის აქტივობა
რაც მთავარია, MEW-ს შეუძლია ავტომატურად დაბლოკოს ბილდები, რაც ხელს უშლის shai-hulud npm მავნე პროგრამის შეღწევას. CI/CD.
Guardrailsუსაფრთხო დამოკიდებულების ქცევის აღსრულება
ქსიგენი Guardrails მკაცრი პოლიტიკის გატარება შიგნით pipelines.
ისინი:
- მავნე ან საეჭვო npm პაკეტების დაბლოკვა
- ფარული ინსტალაციის სკრიპტების შესრულების თავიდან აცილება
- შეწყვიტეთ გაშვების დროს ჩამოტვირთვები აწყობის დროს
- დაბლოკვის ფაილის მთლიანობის აღსრულება
შედეგად, pipeline ჭიის შესრულებამდე ჩერდება.
CI/CD უსაფრთხოება: დაცვა Pipelineძალადობისგან
რადგან Shai-Hulud 3.0 ხშირად გარდაიქმნება CI/CD, Xygeni-ის მონიტორები pipelines ამისთვის:
- არაავტორიზებული სამუშაო პროცესის ცვლილებები
- არანორმალური შესრულების ნიმუშები
- ნებართვის ბოროტად გამოყენება
- დამოკიდებულებაზე დაფუძნებული სამუშაო ნაკადის ინექცია
თუ სარისკო ქცევა გამოვლინდება, Xygeni ბლოკავს pipeline დაუყოვნებლივ, გვერდითი მოძრაობის შეწყვეტით.
საიდუმლოებების დაცვა: აფეთქების რადიუსის შემცირება
რადგან shai-hulud მავნე პროგრამა აგრესიულად იპარავს ავტორიზაციის მონაცემებს, ქსიგენი ასევე საიდუმლოებებზეა ფოკუსირებული.
ქსიგენი:
- აღმოაჩენს გამჟღავნებულ საიდუმლოებებს მთელს მსოფლიოში SDLC
- ავტომატურად ახდენს მაღალი რისკის მქონე სერთიფიკატების როტაციას
- უფრო უსაფრთხო ტოკენების პრაქტიკას აწესებს
ამიტომ, მავნე პროგრამის გაშვების შემთხვევაშიც კი, მოპარული საიდუმლოებები სწრაფად კარგავს ღირებულებას.
რატომ ადასტურებს Shai-Hulud 3.0 გრძელვადიან ტენდენციას
საბოლოო ჯამში, Shai-Hulud 3.0 უფრო ფართო რეალობას ადასტურებს.
თანამედროვე npm მიწოდების ჯაჭვის შეტევები:
- ავტომატურად გავრცელება
- იმოძრავეთ უფრო სწრაფად, ვიდრე ადამიანის მიმოხილვა
- ნდობის გამოყენება და არა დაუცველობის
- სამიზნე pipelineს, არა მხოლოდ კოდი
შესაბამისად, shai-hulud npm მავნე პროგრამისგან დაცვა მოითხოვს ქცევით გამოვლენას და აღსრულებას და არა მხოლოდ სკანირებას.
დასკვნითი შენიშვნები: რატომ არის Shai-Hulud 3.0 კვლავ მნიშვნელოვანი
მიუხედავად იმისა, რომ Shai-Hulud 3.0 არ წარმოგვიდგენს ახალ, თვალშისაცემი ექსპლოიტს, ის წარმოადგენს მოწიფულ, განმეორებად და მასშტაბირებად შეტევის მოდელს.
სხვა სიტყვებით რომ ვთქვათ, ეს არ იქნება ბოლო ტალღა.
რეაქტიულ უსაფრთხოებაზე დამოკიდებული გუნდები გააგრძელებენ ინფექციების დევნას. გუნდები, რომლებიც მავნე ქცევას ადრეულ ეტაპზევე ბლოკავენ, ჭიას მთლიანად შეაჩერებენ.
სწორედ ეს არის განსხვავება.







