სწრაფი პასუხი: Npm მიწოდების ჯაჭვის შეტევები მუშაობს სანდო მომვლელის ანგარიშის ან... CI/CD ტოკენი, პაკეტის მავნე ვერსიის გამოქვეყნება, რომელსაც დეველოპერები უკვე ენდობიან და ამ პაკეტის ინსტალაციის სკრიპტებს ან ჭიის ლოგიკას დანარჩენის გაკეთების ნება დართეს. 2025 წლის აგვისტოდან 2026 წლის შუა პერიოდამდე, ამ ნიმუშმა რეესტრის ისტორიაში npm პაკეტების მიწოდების ჯაჭვზე თავდასხმების ყველაზე დიდი ტალღა გამოიწვია, მათ შორის ცარცის/გამართვის გატაცება, შაი-ჰულუდის ჭიადა ეროვნული-სახელმწიფოებრივი მავნე პროგრამა, რომელიც დამალულია კვირაში 100 მილიონჯერ გადმოწერილ პაკეტში. გამოსწორება არ გულისხმობს კოდის სკანირებას მისი ჩამოტვირთვის შემდეგ. ის იჭერს მავნე პაკეტებს მათ ინსტალაციამდე და აკვირდება მათ. pipeline ზუსტად იმ ქცევისთვის, რომელსაც ეს შეტევები იზიარებს.
ყოველი ინსტალაცია ნდობის აქტია და თავდამსხმელებმა ეს იციან
დეველოპერი მუშაობს npm ინსტალაციაამ ერთი ბრძანების უკან დგას დამოკიდებულების ხე, რომელიც ასობით, ზოგჯერ ათასობით პაკეტს შეიცავს, რომელთა უმეტესობას დეველოპერი ვერასდროს შეხვდება და ინარჩუნებს. არავინ ამოწმებს ამ ხეს ხაზ-ხაზად. არავის აქვს დრო.
სწორედ ეს ნდობაა სამიზნე. თავდამსხმელისთვის უფრო იაფია ერთი npm-ის შემნახველის ფიშინგ-ფაილირება 2.6 მილიარდი ყოველკვირეული ჩამოტვირთვით, ვიდრე Fortune 500-ის firewall-ში ნულოვანი დღის პოვნა. Npm მიწოდების ჯაჭვის შეტევები სწორედ ამ ასიმეტრიას იყენებს და 2025-2026 წლების ტალღა აჩვენებს, თუ რამდენად მასშტაბური გახდა ეს ექსპლოიტი: იზოლირებული ტიპოსკუატინგი თვითგამრავლებად ჭიებამდე რომლებიც საკუთარ მავნე პაკეტებს უფრო სწრაფად აქვეყნებენ, ვიდრე ნებისმიერ ადამიანს შეუძლია რეაგირება.
რა ითვლება npm მიწოდების ჯაჭვის შეტევად
npm მიწოდების ჯაჭვის შეტევა არის ნებისმიერი ინციდენტი, როდესაც თავდამსხმელი npm დისტრიბუციაში მავნე კოდს აყენებს. pipeline სამიზნე პროგრამის საკუთარ კოდურ ბაზაში შეღწევის ნაცვლად, მავნე პროგრამა რუტინული დამოკიდებულების განახლების სახით შენიღბული შემოვა. შესვლის წერტილი, როგორც წესი, სამიდან ერთ-ერთია: მომვლელის მოპარული ავტორიზაციის მონაცემები, მოპარული გამოქვეყნების ან CI/CD ტოკენი ან კომპრომეტირებული ბილდი pipeline რომელიც თავდამსხმელის სახელით ტყუილად ქვეყნდება. რადგან npm პაკეტები ავტომატურად იზიდავს გარდამავალ დამოკიდებულებებს, ერთ კომპრომეტირებულ პაკეტს შეუძლია მიაღწიოს იმ აპლიკაციებს, რომლებმაც ის საერთოდ არ გამოაცხადეს, როგორც პირდაპირი დამოკიდებულება.
ქრონოლოგია: 2025-2026 წლების ყველაზე დიდი npm მიწოდების ჯაჭვის შეტევები
ყველა npm პაკეტის მიწოდების ჯაჭვის შეტევის უკან არსებული ნიმუში
თუ დეტალებს გამორიცხავთ, ზემოთ ჩამოთვლილი თითქმის ყველა ინციდენტი იმავე ოთხ ნაბიჯს მიჰყვება:
- დათმეთ კომპრომისი იდენტობაზე და არა სისტემაზე. ფიშირებული მხარდამჭერი, გაჟონილი npm ტოკენი, მოპარული GitHub PAT ან ამოღებული OIDC ტოკენი CI/CD მორბენლის მეხსიერება. თავდამსხმელი არ არღვევს რეესტრს. ისინი სხვისგან იღებენ გასაღებს.
- გამოაქვეყნეთ სახელით, რომელსაც დეველოპერები უკვე ენდობიან. როდესაც პაკეტის ნამდვილი სახელი მუშაობს, შეცდომის შეტანა საჭირო არ არის. სწორედ ეს ხდის ამ შეტევებს ასე ეფექტურს ავტომატური განახლების წინააღმდეგ. pipelines: განახლება სრულიად ლეგიტიმურად გამოიყურება.
- გაუშვით, სანამ ვინმე გადახედავს. მავნე ინსტალაციის სკრიპტები, დაბნეული დატვირთვები ან „მძინარე“ კოდი, რომელიც მხოლოდ კონკრეტულ პირობებში აქტიურდება, შესრულების მომენტში npm ინსტალაცია ხშირად დეველოპერის ლეპტოპზე, დიდი ხნით ადრე, სანამ დაგეგმილი უსაფრთხოების სკანირება მას დაინახავს.
- გააგრძელე და, სულ უფრო და უფრო გავრცელდე. შაი-ჰულუდი და მისი შთამომავლები იყენებენ მოპარულ ავტორიზაციის მონაცემებს შემდეგი მოწამლული პაკეტის ავტომატურად გამოსაქვეყნებლად, რაც ერთ კომპრომეტირებას დამოკიდებულების გრაფიკში ჯაჭვურ რეაქციად აქცევს.
რატომ ვერ ახერხებენ ჩვეულებრივი დაცვა ამას
AppSec-ის ხელსაწყოების უმეტესობა შეიქმნა საცავში არსებული ინფორმაციის გასაანალიზებლად: ცნობილი CVE-ები, სტატიკური კოდის ნიმუშები, ლიცენზიის პრობლემები. ეს აუცილებელია, მაგრამ სტრუქტურულად ის ძალიან გვიან მოდის ამ შეტევის კლასისთვის. როდესაც სკანერი ხედავს დამოკიდებულებას, ინსტალაციის სკრიპტი შეიძლება უკვე შესრულებული იყოს დეველოპერის მანქანაზე. ტრადიციული ანტივირუსული და EDR აკვირდებიან ოპერაციულ სისტემას და არა პაკეტების რეესტრებს, ამიტომ მათ არ აქვთ „ახალი npm გამოშვების“ კონცეფცია, როგორც რისკის ერთეული. და როგორც TanStack-ისა და Red Hat-ის ინციდენტები აჩვენებს, build-integrity-ის დადასტურებებიც კი, როგორიცაა SLSA provenance ნუ დაეხმარებით, როდესაც თავდამსხმელმა ლეგიტიმურად მოიპოვა მასზე ხელმომწერი ვინაობა: ხელმოწერა ძალაშია, პაკეტი კი კვლავ მავნეა.
ეს npm მიწოდების ჯაჭვის შეტევები იყენებს ხარვეზს, რომელიც კონკრეტულად გამოქვეყნებისა და ინსტალაციის დროს ვლინდება, სანამ მავნე პროგრამის ხელმოწერა არსებობს და პაკეტი არ გაეშვება იქ, სადაც ტრადიციული სკანერი მოძებნის.
როგორ შევაჩეროთ შემდეგი npm მიწოდების ჯაჭვის შეტევა
ნაწილობრივ, ეს არის პროცესის დისციპლინა, რომლის დანერგვაც დღეს ყველა საინჟინრო გუნდს შეუძლია:
- Pin-ის დამოკიდებულებები და commit დაბლოკვის ფაილები, ამიტომ ავტომატურ განახლებას არ შეუძლია ჩუმად შეიტანოს ახლახან გამოქვეყნებული მავნე ვერსია.
- ინსტალაციის შემდგომი სკრიპტების გამორთვა ან საცდელ გარემოში განთავსება ნაგულისხმევად; პაკეტების უმეტესობას ინსტალაციის დროს არ სჭირდება თვითნებური კოდის შესრულება.
- npm გამომცემლობის ანგარიშებისთვის აპარატურულად მხარდაჭერილი MFA-ს აღსრულება, რითაც იხურება ზუსტად ის ფიშინგის გზა, რომელმაც საფრთხე შეუქმნა Chalk-ს, debug-ს და Qix-ის ანგარიშს.
- მასშტაბი და როტაცია CI/CD ტოკენები აგრესიულადდა მორბენლის მეხსიერებაში არსებული OIDC ტოკენები განიხილეთ, როგორც დაცვის ღირსი სერთიფიკატი და არა იმპლემენტაციის დეტალი.
- დააკვირდით განბლოკვა-ინექცია-ხელახლა დაბლოკვის ნიმუშს in CI/CD: ფილიალის დაცვის წესი გამორთულია, ა commit დაჭერილი, წესი ხელახლა ჩართული, ყველაფერი ეს მოკლე დროში. ეს არის განმეორებადი ხელმოწერა pipelineმიწოდების ჯაჭვის დონის კომპრომისი.
სადაც პროცესის დისციპლინა იწურება
პროცესის დისციპლინა ამცირებს ექსპოზიციას. ის არ იჭერს მავნე პაკეტს მისი გამოქვეყნებისთანავე და არ იჭერს ჭიას, რომელიც ისედაც უფრო სწრაფად ვრცელდება გრაფიკში, ვიდრე ადამიანს შეუძლია მისი დახარისხება. სწორედ ამ ფენისთვისაა შექმნილი Xygeni-ის მიწოდების ჯაჭვის უსაფრთხოება.
ქსიგენი MEW (მავნე პროგრამების ადრეული გაფრთხილება) მუდმივად აანალიზებს npm-ში, PyPI-სა და Maven-ში გამოქვეყნებულ ახალ პაკეტებს, აფიქსირებს მავნე პროგრამებს ხელმოწერის არსებობამდე და არა მის შემდეგ, და აწვდის დადასტურებულ საფრთხეებს... ქსიგენი საკუთარი დეტექციის ძრავა. დამოკიდებულების ფაირვოლი რეალურ დროში სკანირებს npm, PyPI, Maven, NuGet და RubyGems ფაილებს და ბლოკავს მავნე ინსტალაციებს, სანამ ისინი დეველოპერის მანქანამდე ან ბილდამდე მიაღწევენ. CI/CD ანომალიის გამოვლენა საათები pipelineზუსტად იმ ქცევითი ნიმუშისთვის, რომელიც TanStack-ის კომპრომეტირების მსგავსი ინციდენტების უკან დგას, მათ შორის განბლოკვა-ინექცია-ხელახლა დაბლოკვის თანმიმდევრობა, სრული აუდიტის კვალით. და რადგან Xygeni-ს ხელოვნური ინტელექტით მართული ტრიაჟი და რემედიაცია მესამე მხარის სკანერებიდან მიღებულ დასკვნებზეც ვრცელდება, გუნდებს ამ ხარვეზის შესავსებად არსებული ინსტრუმენტების ამოღება არ მოუწევთ.
ხშირად დასმული კითხვები: npm მიწოდების ჯაჭვის შეტევები
რა არის npm მიწოდების ჯაჭვის შეტევა?
ეს არის შეტევა, რომლის დროსაც მავნე კოდი სამიზნე აპლიკაციას სანდო npm დამოკიდებულების მეშვეობით აღწევს და არა სამიზნე პროგრამის საკუთარი კოდის მეშვეობით, როგორც წესი, რადგან თავდამსხმელმა საფრთხე შეუქმნა მომწოდებლის ანგარიშს, გამოქვეყნების ტოკენს ან... CI/CD pipeline-ის ვინაობა.
რა იყო npm მიწოდების ჯაჭვზე ყველაზე მასშტაბური თავდასხმა?
აფეთქების რადიუსის მიხედვით, 2025 წლის სექტემბრის ცარცის/დებაგის გატეხვა ერთ-ერთი ყველაზე მასშტაბურია: ერთი ფიშირებული მომვლელის ანგარიშის მეშვეობით კომპრომეტირებული იქნა 18 პაკეტი, რომელთა ყოველკვირეული ჩამოტვირთვა ჯამში 2.6 მილიარდს შეადგენდა. ტექნიკური სიახლის მიხედვით, Shai-Hulud უფრო მნიშვნელოვანი გარდამტეხი მომენტი იყო, როგორც npm-ის ისტორიაში პირველი თვითგავრცელებადი ჭია.
როგორ იწყება ჩვეულებრივ npm პაკეტის მიწოდების ჯაჭვის შეტევა?
თითქმის ყოველთვის მოპარული პირადობით: ფიშირებული მომწოდებელი, გაჟონილი გამოქვეყნების ტოკენი ან მოპარული CI/CD სერთიფიკატი, როგორიცაა მორბენლის მეხსიერებიდან ამოღებული OIDC ტოკენი და არა თავად npm-ში ტექნიკური შეღწევა.
შეუძლია თუ არა ანტივირუსს ან EDR-ს npm მიწოდების ჯაჭვის შეტევის შეჩერება?
არასანდო. EDR აკონტროლებს ოპერაციულ სისტემას და არ ესმის პაკეტების რეესტრები, ხოლო ანტივირუსი ხელმოწერაზე დაფუძნებულია, რაც ვერ უმკლავდება ხელმოწერის არსებობამდე გამოქვეყნებულ მავნე პროგრამებს. ამ შეტევის კლასის შეჩერება მოითხოვს მონიტორინგს გამოქვეყნებისა და ინსტალაციის ეტაპზე და არა მხოლოდ საბოლოო წერტილში.
Does SLSA provenance ან შექმენით ატესტაცია, რათა თავიდან აიცილოთ ეს?
ეს ადასტურებს, pipeline თავად აწყობის დროს არ მომხდარა მისი ხელყოფა. ეს არ ადასტურებს, რომ აწყობის გამომწვევი იდენტობა არ იყო კომპრომეტირებული, როგორც ეს TanStack-ისა და Red Hat-ის ინციდენტებმა აჩვენა მავნე პაკეტებთან დაკავშირებული ვალიდური დადასტურებებით.
როგორ შეუძლია გუნდს მავნე npm პაკეტის აღმოჩენა მის ინსტალაციამდე?
ახლად გამოქვეყნებულ პაკეტებზე მავნე პროგრამების ხელმოწერამდელი უწყვეტი ანალიზის გაშვებით, რაც მავნე პროგრამების ადრეული გაფრთხილების სისტემისა და დამოკიდებულების firewall-ის შექმნილია, იმის ნაცვლად, რომ მხოლოდ საცავში უკვე არსებული კოდის შემდგომი დაუცველობის სკანირებაზე დაყრდნობით იყოს შესაძლებელი.
სად უნდა დავიწყოთ
Npm მიწოდების ჯაჭვის შეტევები არ ნელდება და შაი-ჰულუდის შემდეგ ტენდენცია უფრო მეტ ავტომატიზაციაზე მიუთითებს და არა ნაკლებზე. შემდეგი კამპანიისთვის საუკეთესო პოზიციაში მყოფი გუნდები არიან ისინი, ვინც შეწყვიტა ყველა npm ინსტალაციის რუტინულ მოვლენად აღქმა და რეესტრის თვალყურის დევნება დაიწყო. pipelineდა ბოლო წერტილი, როგორც ერთი დაკავშირებული შეტევის ზედაპირი.
Xygeni-ის დეველოპერის გეგმა მოიცავს MEW-სა და Dependency Firewall-ის დაფარვას 25-მდე საცავის უფასოდ. ეს გონივრული ადგილია იმის სანახავად, თუ რა არის უკვე დამოკიდებულების ხეში.







