Yaygın olarak kullanılan Axios JavaScript kütüphanesini hedef alan gelişmiş bir tedarik zinciri saldırısı, güvenlik firması Wiz'in tahminlerine göre bulut ve kod ortamlarının yüzde 80'ine platformlar arası bir uzak erişim truva atı (RAT) enjekte etti. Kötü amaçlı npm paket sürümlerinin yaklaşık üç saat boyunca yayında kaldığı bu olay, Axios'un haftalık 100 milyon indirilme sayısı göz önüne alındığında, açık kaynak ekosistemindeki en önemli ihlallerden birini temsil ediyor.
Google Tehdit İstihbarat Grubu (GTIG) baş analisti John Hultquist yaptığı açıklamada, "Kuzey Koreli hackerlar, geçmişte kripto para çalmak için kullandıkları tedarik zinciri saldırıları konusunda derin bir deneyime sahipler" dedi. "Bu olayın tam kapsamı henüz net değil, ancak tehlikeye giren paketin popülaritesi göz önüne alındığında, geniş kapsamlı etkileri olmasını bekliyoruz." GTIG, saldırıyı Kuzey Koreli tehdit aktörü UNC1069'a bağladı.
Saldırı, 31 Mart'ta tehdit aktörünün kötü amaçlı [email protected] ve [email protected] sürümlerini npm kayıt defterinde yayınlamasıyla başladı. Bu, projenin ana geliştiricisinin npm hesabının ele geçirilmesi ve projenin daha güvenli olan OIDC tabanlı yayınlama iş akışını atlamak için eski, uzun ömürlü bir jetonun kullanılmasıyla gerçekleştirildi. Kötü amaçlı paketler, RAT'ı indirmek için bir yükleme sonrası betiği içeren plain-crypto-js adlı sahte bir bağımlılık içeriyordu.
İhlal, yaklaşık 175.000 bağımlı projesi olan bir kütüphanede yazılım tedarik zincirindeki kritik bir güvenlik açığını vurguluyor. Saldırının geliştirici ortamları ve CI/CD süreçleri üzerindeki etkisi, önemli kimlik bilgisi hırsızlığına ve kurumsal ağlar içinde yanal hareketlere yol açabilir. Wiz ve Snyk gibi şirketler için bu olay, daha sıkı bağımlılık yönetimi ve çalışma zamanı doğrulaması ihtiyacını vurgulayarak, güvenlik tarama ve tehdit istihbaratı hizmetlerine olan talebi potansiyel olarak artırabilir.
Saldırı Nasıl Gerçekleşti
Saldırganlar önemli bir operasyonel karmaşıklık sergiledi. Ana saldırıdan yaklaşık 18 saat önce, nrwise adlı bir hesap, npm kayıt defterinde meşru bir geçmiş oluşturmak için [email protected] adlı temiz bir yem paketi yayınladı. Axios ihlalinden kısa bir süre önce, bunu kötü amaçlı içerik barındıran 4.2.1 sürümüne güncellediler.
Ele geçirilen Axios sürümleri, bu kötü amaçlı paketi bağımlılık olarak ekledi. Geliştiriciler Axios'u kurduğunda veya güncellediğinde, plain-crypto-js içindeki postinstall betiği çalışarak platforma özgü kötü amaçlı yazılımı indirmek için sfrclak.com adresindeki komuta ve kontrol (C2) sunucusuyla iletişime geçti.
Kötü amaçlı yazılım; Windows, macOS ve Linux varyantları olan platformlar arası bir RAT idi.
- macOS üzerinde, ikili dosya
/Library/Caches/com.apple.act.mond dizinine yazıldı ve Gatekeeper'ı atlamak için enjekte edilen yüklere kendi kendine imza atabiliyordu.
- Windows üzerinde, Windows Terminal (
wt.exe) kılığına girmiş bir PowerShell betiği %PROGRAMDATA% dizinine kopyalandı ve kayıt defteri Run anahtarı aracılığıyla kalıcılık sağlandı.
- Linux üzerinde, bir Python betiği
/tmp/ld.py olarak saklandı ve çalıştırıldı.
İçeriği dağıttıktan sonra betik, kötü amaçlı package.json dosyasını temiz bir sürümle değiştirerek izlerini silmeye çalıştı ve yüklü paketlerini inceleyebilecek geliştiricileri yanılttı.
Yaygın Etki ve İyileştirme
Kötü amaçlı paketler üç saat içinde npm kayıt defterinden kaldırılmış olsa da, Axios'un yüksek indirme hızı, önemli sayıda sistemin tehlikeye girdiği anlamına geliyor. Wiz, izlediği etkilenen ortamların yaklaşık yüzde 3'ünde kötü amaçlı yazılımın çalıştığını gözlemlediğini bildirdi. Güvenlik firması Huntress da 100'den fazla etkilenen cihaz bildirdi.
Güvenlik uzmanları acil eylem çağrısında bulunuyor. Kuruluşların, [email protected], [email protected] veya [email protected] izlerini bulmak için proje kilit dosyalarını (lockfiles) ve CI/CD günlüklerini denetlemeleri öneriliyor.
Snyk araştırmacıları, "Tehlikeye girmiş sistemleri temizlemeye çalışmayın. Bilinen temiz bir anlık görüntüden (snapshot) yeniden oluşturun" tavsiyesinde bulundu. Bu sürümlerin kurulu olduğu her ortam tamamen ele geçirilmiş olarak kabul edilmelidir. npm jetonları, bulut sağlayıcı anahtarları ve SSH anahtarları dahil tüm kimlik bilgileri iptal edilmeli ve yeniden düzenlenmelidir.
Uzun vadeli savunma için güvenlik ekipleri, kötü amaçlı betiklerin çalışmasını önlemek amacıyla otomatik derleme süreçlerinde npm ci --ignore-scripts komutunu zorunlu kılmayı düşünmelidir. Yeni yayınlanan paketlerin kurulumunu engelleyen paket yaşı politikalarının uygulanması da bu saldırıyı engelleyebilirdi; zira kötü amaçlı plain-crypto-js bağımlılığı bir günden daha kısaydı.
Bu makale sadece bilgilendirme amaçlıdır ve yatırım tavsiyesi teşkil etmez.