Bu araç ne yapar, ne yapmaz?
Ne yapar:
- package.json, package-lock.json, yarn.lock (classic v1 ve Berry v2/v3) veya pnpm-lock.yaml dosyanızı tarayıcınızda parse eder.
- Doğrudan ve dolaylı tüm bağımlılıkları çıkartır.
- İki tür veritabanına karşı karşılaştırır:
- Tedarik zinciri saldırıları (paket içeriğine yerleştirilen zehirli kod).
- Kritik framework açıkları (React2Shell, vb. — sürüm aralığı eşleşmesi).
- Eşleşme bulursa: zehirli/şüpheli paketleri listeler, hangi olayla bağlantılı olduğunu gösterir, adım adım kurtarma talimatı verir.
- Hiçbir paket bulunamazsa size temiz raporu sunar.
Ne yapmaz:
- Bilinmeyen sıfır-gün (zero-day) saldırıları tespit edemez — yalnızca veritabanındaki kayıtlı olaylar taranır.
- Çalışan üretim ortamınızı taramaz, sadece dosyayı analiz eder.
- Bağımlılık ağacınızdaki performans/lisans/güncellik sorunlarını analiz etmez.
- npm audit veya Snyk gibi kapsamlı zafiyet veritabanını yerine geçmez — onları tamamlayıcıdır.
Tarama tarayıcınızda yapılır — sunucumuza hiçbir şey gönderilmez
Hassas bilgi olan bağımlılık ağacınızı dış sunuculara göndermek yerine, tüm tarama mantığını JavaScript ile tarayıcı tarafında çalıştırıyoruz:
- Dosya yüklendiğinde File.text() ile tarayıcı içinde okunur.
- Format tespit edilir (npm / yarn / pnpm), uygun parser ile bağımlılık listesi çıkartılır.
- Build sırasında sayfaya gömülen zehirli paket veritabanıyla karşılaştırma yapılır.
- Sonuç tarayıcınızda render edilir.
Hiçbir aşamada Zeisoft veya üçüncü taraf sunucularına veri gitmez. İsterseniz internet bağlantınızı kestikten sonra bile taramayı çalıştırabilirsiniz.
Zehirli paket bulunduysa, kritik adımlar
Çok önemli: GitHub token’ı paniğe kapılıp hemen iptal etmeyin. TanStack ve Shai-Hulud 2.0 saldırılarındaki “dead-man’s switch” tam olarak bu davranışı bekliyor — token revoke edildiğinde home dizininizi siliyor.
Doğru sıra:
- Etkilenen makineyi internetten izole edin — Wi-Fi’yi kapatın, ethernet kablosunu çıkarın. Watcher process’in dış komut alamayacağından emin olun.
- Süreçleri öldürün:
ps aux | grep nodeile şüpheli node süreçlerini bulupkill -9 <PID>ile sonlandırın. - Local cache ve bağımlılıkları silin:
rm -rf node_modules ~/.npm/_cacache && npm cache clean --force. - package-lock.json içinden zehirli sürüm referanslarını manuel temizleyin ve önceki bilinen-temiz sürüme rollback yapın.
- Temiz başka bir makineden (saldırının değmediği) GitHub token’larınızı, npm token’larınızı, AWS/cloud secret’larınızı revoke edip yeniden üretin.
- CI/CD pipeline cache’lerini sıfırlayın. Cloudflare/GitHub Actions/CircleCI hepsi paket cache tutar — zehirli versiyon orada da olabilir.
- Logları inceleyin: Token kullanım geçmişi, son commit history, beklenmedik webhook çağrıları. Sızıntı boyutunu ölçün.
Eğer üretim sisteminiz etkilendiyse veya nereden başlayacağınızdan emin değilseniz, bizimle iletişime geçin. Incident response konusunda yardımcı olabiliriz.
Sürekli koruma için pratikler
Bu araç bir teşhis aracı — gerçek koruma süreç ve disiplinle gelir:
npm cikullanın,npm installdeğil. CI/CD’de her zaman lock dosyasını birebir takip edin.- Bağımlılıkları kilitleyin: package.json’da
^ve~yerine kesin sürüm pin yapabilirsiniz, en azından kritik paketler için. - Otomatik audit:
npm audither build’de çalışsın, kritik bulgularda build kırılsın. - min-release-age=7 ayarı: .npmrc dosyasına eklerseniz npm yalnızca en az 7 gündür yayında olan paketleri yükler — son dakika saldırılarına karşı koruma.
- ignore-scripts=true: .npmrc’de bu ayar postinstall/preinstall script’lerini engeller, çoğu payload bu hook’lardan çalışır.
- 2FA + hardware key: Maintainer hesaplarınız için TOTP yerine FIDO2 (YubiKey vb.) kullanın.
- Bağımlılık sayısını düşürün: Bir paket yerine 4-5 satır kod yazılabiliyorsa, paket eklemekten kaçının.
- Socket.dev veya benzeri statik tarayıcılar: PR’larınızda bağımlılık değişikliklerini otomatik tarayın.
E-ticaret sitenizin veya iç yazılımınızın CI/CD pipeline’ında bu pratikleri nasıl uygulayacağınızı konuşmak isterseniz, ekibimizle görüşebilirsiniz.