NPM deposundaki paket bakımcılarına yönelik saldırı yeni bir boyuta ulaştı. Saldırganlar, ödemeleri ve gizli bilgileri ele geçirmek için kötü amaçlı yazılım kullanmanın yanı sıra, bağımlılıklara kötü amaçlı yazılım yerleştirmeyi otomatikleştirmek için ele geçirilmiş paketlere bir solucan enjekte etmeye de başladı. Solucanın kullanımı, haftalık 2.2 milyon indirme sayısına sahip ve 964 pakette doğrudan bağımlılık olarak kullanılan @ctrl/tinycolor NPM paketinin ele geçirilmesinin ardından tespit edildi. Solucanın etkinliği sonucunda, saldırı 187 paketi etkiledi ve bu paketler için kötü amaçlı sürümler oluşturuldu (477 kötü amaçlı sürüm).
Yeni saldırıda, saldırganlar kimlik avı yoluyla bakımcının hesap kimlik bilgilerini elde ettikten sonra, ele geçirilen paket bağımlılık olarak yüklendiğinde etkinleşen bir solucan içeren bir paket sürümü yayınlıyor. Etkinleştirildikten sonra, solucan mevcut ortamda kimlik bilgilerini arıyor ve TruffleHog yardımcı programını indirip çalıştırıyor. Bir NPM dizin erişim belirteci tespit edilirse, solucan otomatik olarak yeni bir kötü amaçlı sürüm yayınlıyor ve bağımlılık ağacını da etkiliyor. NPM erişim belirtecine ek olarak, solucan GitHub ve AWS, Azure ve GCP (Google Cloud Platform) bulut hizmetlerine erişim anahtarlarının yanı sıra TruffleHog tarayıcısı tarafından tespit edilebilen diğer hassas verileri de depoluyor.
Tanımlanan NPM belirteciyle erişilen en popüler 20 paket için kötü amaçlı sürümler oluşturulur. Sürüm yayınlama işlevi, paketin kaynak arşivini indiren, sürüm numarasını değiştiren, package.json dosyasına bir postinstall kancası ekleyen, bundle.js işleyicisini ekleyen, paketi yeniden paketleyen ve yayınlayan NpmModule.updatePackage fonksiyonu kullanılarak uygulanır. Desteklenen iş akışları şunlardır: Linux и macOS.
Solucanın kod adı Shai-Hulud'dur (Dune romanında bahsedilen dev bir solucan). Sistemde bulunan kimlik bilgileri, Shai-Hulud adlı depolar (örneğin, "B611/Shai-Hulud") oluşturularak GitHub'a gönderilir ve ayrıca GitHub Actions günlüklerinde şifrelenir. Oluşturulan depo, sistem, ortam değişkenleri ve ele geçirilen erişim anahtarları hakkında bilgi içeren base64 kodlu bir dize içeren bir data.json dosyası içerir. GitHub tabanlı CI'da, solucan harici bir ana bilgisayara bilgi iletmek için bir GitHub Actions işleyicisi (.github/workflows/shai-hulud-workflow.yml) oluşturur. Saldırının belirtilen 187 paketle sınırlı olmadığı, Shai-Hulud adlı yeni depoların ve data.json dosyasının GitHub'da görünmeye devam ettiği anlaşılıyor.

Diğer şeylerin yanı sıra, solucanın faaliyetleri sonucunda, araçlar geliştiren CrowdStrike şirketine ait 25 paket de etkilendi. saldırılardan korunma Bağımlılıklar (Tedarik Zinciri) yoluyla. CrowdStrike'a göre, tehlikeye atılan paketler Falcon platformunda kullanılmıyordu ve saldırı istemcilere yayılmadı. Ayrıca, solucan virüsü olmadan gerçekleşen önceki NPM'ye yönelik kötü amaçlı yazılım güncellemelerinin, Google tarafından geliştirilen gemini-cli projesini etkilediği de ortaya çıktı.
Kaynak: opennet.ru
