NPM deposundaki paketlere yönelik ikinci bir saldırı tespit edildi. Bu saldırı, kendi kendine yayılan ve bağımlılıklara kötü amaçlı yazılım ekleyen Shai-Hulud solucanının bir modifikasyonu kullanılarak gerçekleştirildi. Saldırı sonucunda, toplamda 100 milyondan fazla indirmeye ulaşan 605 paketin kötü amaçlı sürümleri yayımlandı.
Saldırganlar, saldırıyı gerçekleştirmek için kimlik avı yöntemini kullanarak, birçok başka paket için bağımlılık olarak kullanılan popüler bir paketin hesap yöneticisinin kimlik bilgilerini ele geçirdiler. Ele geçirilen hesabı kullanarak, etkilenen paket bağımlılık olarak yüklendiğinde solucanı etkinleştiren kodu içeren bir paket sürümü yayınladılar. Solucan, başlatıldıktan sonra mevcut ortamda kimlik bilgilerini arar ve TruffleHog yardımcı programını indirip çalıştırır.
Bir NPM dizin bağlantı belirteci tespit edilirse, solucan mevcut ortamda geliştirilen paketler için otomatik olarak yeni kötü amaçlı yazılım sürümleri yayınlar. Bu, tüm bağımlılık ağacını zincirleme olarak enfekte eder. NPM belirtecine ek olarak, solucan GitHub ve AWS, Azure ve GCP (Google Cloud Platform) bulut hizmetlerine erişim anahtarlarının yanı sıra ortam değişkenlerini ve TruffleHog tarayıcısı tarafından tespit edilebilen diğer hassas verileri de depolar.
Sistemde bulunan hassas veriler, rastgele adlara sahip (örneğin, "qzx15djl71alh6p80h") ve açıklamasında "Sha1-Hulud: The Second Coming" ifadesi bulunan depolar oluşturularak GitHub'a yerleştirilir. Veriler ayrıca şifrelenir ve GitHub Actions günlüklerine aktarılır. Oluşturulan depo, base64 kodlu sistem bilgileri, ortam değişkenleri ve yakalanan verileri içeren bir dize içeren bir JSON dosyası (örneğin, jsonactionsSecrets.json veya contents.json) içerir. GitHub tabanlı sürekli entegrasyon sistemlerinden harici bilgi aktarımı için solucan, ".github/workflows/formatter_123456789.yml" adlı bir GitHub Actions işleyicisi oluşturur ve SHA1HULUD adlı bir çalıştırıcı yapılandırır.
Benzer bir Eylül saldırısından farklar, pakete kötü amaçlı kod yerleştirmenin farklı bir yönteminden kaynaklanıyor. Solucanın oluşturduğu kötü amaçlı yazılım sürümleri, Bun JavaScript platformunu desteklediğini iddia ediyor. package.json dosyasının "preinstall" bölümüne, kurulumdan önce çalıştırılacak betikleri tanımlayan "node setup_bun.js" komutu ekleniyor.

"setup_bun.js" dosyası, solucanın kodunu içeren gizlenmiş "bun_environment.js" betiğini çalıştırmak için kod içerir. Solucan, yayılmak için paket kodunu bulur, package.json dosyasını değiştirir (sürüm numarasını artırır ve setup_bun.js'ye bir çağrı ekler), setup_bun.js ve bun_environment.js dosyalarını ekler, paketi yeniden paketler ve yeni sürümü dağıtmak için "npm publish" komutunu çalıştırır.
Tehlikeye atılan popüler paketler arasında şunlar yer alıyor: @zapier/zapier-sdk (haftada 2.8 milyon indirme), @posthog/core (2.8 milyon), posthog-node (1.5 milyon), @asyncapi/specs (1.4 milyon) ve @postman/tunnel-agent (1.2 milyon). Saldırının, paket bakımcısı @asyncapi/specs'in tehlikeye atılmasıyla başladığı düşünülüyor.
Kaynak: opennet.ru
