Endor Labs araştırmacıları Cris Staicu ve Kiran Raj tarafından yayımlanan rapora göre, npm kayıt defteri son iki yıldır sistematik olarak yayılan 67.579’dan fazla sahte paketle doldu. SourceCodeRED güvenlik araştırmacısı Paul McCarty’nin ilk kez işaret ettiği bu kampanya, geleneksel veri hırsızlığı veya kötü amaçlı yazılım saldırılarından farklı olarak, npm ekosistemini gereksiz paketlerle boğmayı hedefliyor.
IndonesianFoods: Solucan Benzeri Yayılma Mekanizması
Kampanya, Endonezya isimleri ve yiyecek terimlerinden oluşan ayırt edici paket adlandırma şeması nedeniyle IndonesianFoods olarak adlandırıldı. Sahte paketler, Next.js projelerine benzer şekilde tasarlanmış ve solucan benzeri bir yayılma mekanizması kullanıyor. Bu solucan, her pakette “auto.js” veya “publishScript.js” gibi tek bir JavaScript dosyası içeriyor ve bu dosya, kullanıcı tarafından manuel olarak “node auto.js” komutu ile çalıştırılana kadar pasif kalıyor. Bu pasif tasarım, otomatik tespit araçlarından kaçınmak için bilinçli bir tercih olarak değerlendiriliyor.
Manuel Yürütme ve Sosyal Mühendislik Potansiyeli
Endor Labs güvenlik araştırma başkanı Henrik Plate, 43.000’den fazla paketin varlığının, çok sayıda kullanıcının merak veya kazara scripti çalıştırdığını ya da saldırganların kayıt defterini doldurmak için kendilerinin bu işlemi gerçekleştirdiğini gösterdiğini belirtti. Araştırmacılar, sosyal mühendislik kampanyasına dair doğrudan kanıt bulamasa da, sahte blog yazıları, öğreticiler veya README dosyaları aracılığıyla kullanıcıların “node auto.js” komutunu çalıştırmaya ikna edilebileceğini vurguladı. Ayrıca CI/CD boru hatlarında joker karakterlerle tüm JavaScript dosyalarının çalıştırılması da risk oluşturuyor.
Spam Paketlerin Teknik İşleyişi
Script, sonsuz döngü içinde “package.json” dosyasından “private”: true ayarını kaldırıyor; bu ayar genellikle özel paketlerin yanlışlıkla yayımlanmasını engeller. Ardından dahili bir sözlük kullanılarak rastgele paket isimleri oluşturuluyor ve npm’nin sürüm tekrarı engelini aşmak için rastgele sürüm numaraları atanıyor. Son aşamada, “npm publish” komutu ile paketler npm kayıt defterine yükleniyor. Bu süreç her 7-10 saniyede bir yeni paket yayımlanmasına olanak tanıyor, yani dakikada yaklaşık 12, saatte 720 ve günde 17.000 paket yayımlanıyor.
Kayıt Defterine Etkileri ve Tedarik Zinciri Riskleri
Paul McCarty, bu saldırının npm kayıt defterini gereksiz paketlerle doldurarak altyapı kaynaklarını tükettiğini, arama sonuçlarını kirlettiğini ve geliştiricilerin bu paketleri yanlışlıkla yüklemesi durumunda tedarik zinciri riskleri oluşturduğunu belirtti. Endor Labs ayrıca, kampanyanın Nisan 2024’te Phylum (şimdi Veracode’un parçası) ve Sonatype tarafından tespit edilen ve Tea protokolünü kötüye kullanarak otomatik kripto madenciliği yapan saldırının devamı olduğunu ifade etti.
Bağımlılık Ağı ve TEA Token Manipülasyonu
Spam paketler birbirlerini bağımlılık olarak referans göstererek kendini çoğaltan bir ağ oluşturuyor. Böylece bir kullanıcı bir spam paketi yüklediğinde, npm tüm bağımlılık ağacını indiriyor ve bu da kayıt defteri bant genişliğini zorlayarak ekosisteme ek yük getiriyor. Endor Labs, saldırganların bazı paketlerde (örneğin arts-dao ve gula-dao) beş farklı TEA hesabını listeleyen tea.yaml dosyaları bulduğunu ve bu sayede TEA tokenlerini yapay olarak artırarak para kazanmayı hedefleyebileceğini belirtti.
Güvenlik Tarayıcılarının Sınırlamaları
Buluntular, kurulum sırasında kötü amaçlı kod çalıştıran paketleri tespit eden güvenlik tarayıcılarının, bu kampanyadaki pasif tasarım nedeniyle etkisiz kaldığını ortaya koydu. Endor Labs, mevcut güvenlik tarayıcılarının yaşam döngüsü kancalarını ve sistem çağrılarını analiz ederek bu tür tehditleri tespit etmesi gerektiğini vurguladı.
Uzman Görüşleri ve GitHub’ın Yanıtı
Sonatype baş güvenlik araştırmacısı Garrett Calpouzos, IndonesianFoods kampanyasını devasa ölçekli, kendi kendini yayımlayan bir solucan olarak tanımladı ve bu durumun güvenlik veri sistemlerini aşırı yüklediğini belirtti. Calpouzos, saldırının teknik karmaşıklığının yüksek olmadığını ancak otomasyon ve ölçeğin alarm verici olduğunu ifade etti. GitHub sözcüsü ise ilgili paketlerin npm’den kaldırıldığını ve kötü amaçlı paketlerin tespiti ve kaldırılması için manuel inceleme ve makine öğrenimi tabanlı yöntemlerin kullanıldığını açıkladı.
Analiz ve Sonuç
IndonesianFoods kampanyası, npm gibi açık kaynak paket kayıt defterlerinin kötüye kullanımına yönelik yeni bir tehdit modeli sunuyor. Geleneksel kötü amaçlı yazılımların aksine, bu saldırı doğrudan zararlı kod yaymaktan çok ekosistemi spam ile doldurarak tedarik zinciri güvenliğini dolaylı yoldan tehdit ediyor. MCP istemcileri ve Pydantic AI gibi modern yazılım bileşenlerinin yaygın kullanıldığı günümüzde, bu tür spam paketlerin otomatik analiz ve tespiti zorlaşıyor. Ayrıca, konteyner ortamlarında rastgele SSH portlarının açılması veya AsyncRAT benzeri uzaktan erişim araçlarının kullanımı gibi karmaşık saldırı vektörleriyle birleştiğinde, tedarik zinciri güvenliği daha da kritik hale geliyor.
Bu nedenle, güvenlik profesyonellerinin npm gibi kayıt defterlerinde yayımlanan paketlerin bağımlılık ağlarını dikkatle incelemesi, yaşam döngüsü kancalarını ve paket içi scriptleri analiz etmesi önem taşıyor. Ayrıca, CVE veritabanlarında npm ve ilgili paketlerde bildirilen zafiyetlerin (örneğin CVE-2023-XXXX) takip edilmesi ve güncel güvenlik yamalarının uygulanması gerekmektedir.
Sonuç olarak, IndonesianFoods kampanyası, yazılım tedarik zinciri güvenliğinin sadece zararlı kod tespitiyle sınırlı kalmayıp, aynı zamanda ekosistemin spam ve kaynak tüketimi saldırılarına karşı da korunması gerektiğini gösteriyor.
