Shai Hulud Saldırısı: NixOS Tedarik Zinciri Saldırılarına Ne Kadar Dayanıklı?
Haziran 2026’da BleepingComputer bir saldırı haberi yayımladı: Shai Hulud. Biyoinformatik alanında kullanılan 19 PyPI paketi trojanize edilmiş, 37 zararlı sürüm yayınlanmıştı. Dynamo, Spateo, CoolBox, U-FISH gibi araçlar hedef alınmıştı.
Haberi okuyunca ilk sorum şuydu: Bu beni etkiler mi?
Saldırı Nasıl Çalışıyor?
Mekanizma zarif ve tehlikeli: *.pth dosyası.
Python’un site-packages dizinine yerleştirilen bir .pth dosyası, Python her başlatıldığında otomatik olarak yüklenir. Saldırganlar bunu kullanarak obfuscated bir JavaScript payload gömdü — _index.js. Bu dosya, GitHub üzerinden Bun JavaScript runtime’ını indiriyor ve çalıştırıyor.
Bir paket kurulumu, anında aktif bir saldırıya dönüşüyor.
Hedefler:
- SSH anahtarları
- GitHub token ve CI/CD secret’ları
- AWS, GCP, Azure credential’ları
.env,.npmrc, shell geçmişi- PyPI, npm, RubyGems yayın token’ları
NixOS Neden Yapısal Olarak Koruyor?
Bu sorunun cevabı Nix’in temel tasarımında yatıyor.
Nix store read-only ve content-addressed. nixpkgs’ten kurulan her paket /nix/store/[sha256hash]-paket-versiyon/ altında yaşıyor. Bu dizin değiştirilemez — ne bir kullanıcı scripti ne de bir paket hook’u buraya yazabilir.
Sistem paketleri pip’ten geçmiyor. Python’ı Nix üzerinden kuruyorsam, site-packages dizinine erişim yoktur. .pth dosyası enjekte etmenin bir yolu yok.
Hash doğrulaması zorunlu. flake.lock ve Nix store, tüm bağımlılıkların SHA256 hash’ini bilir. Bir paketin içeriği değişirse, hash uyuşmaz ve build başarısız olur. Trojanize bir paket Nix aracılığıyla kurulursa ya hash değişmesi gerekir (ki bu fark edilir) ya da hash’i önceden değiştirmek gerekir (ki bu nixpkgs’e PR açmak demektir).
Gerçek Risk Noktaları
NixOS sihirli bir kalkan değil. İki alanda klasik pip/npm saldırı yüzeyim mevcut:
localmind/.venv — Bu dizin, pip ile yönetilen bir Python virtual environment. Nix’in dışında. Paketler (chromadb, fastmcp, fastapi, onnxruntime…) doğrudan PyPI’dan geliyor. Shai Hulud’un spesifik hedefleri burada yok — biyoinformatik paketler değil bunlar. Ama .pth enjeksiyonu mekanizması olarak hâlâ geçerli.
pnpm projeleri — xmrah.com gibi projelerde pnpm install çalıştırıldığında npm ekosistemi devreye giriyor.
Sistemi analiz ettim: localmind/.venv’de hiçbir .pth dosyası yok. Temiz.
Önlemler
Teorik koruma yetmez. Pratikte ne yapmalı:
pip-audit:
pip install pip-audit
pip-audit # venv içinde
Bilinen CVE’leri ve şüpheli paketleri tarar.
Requirement pinning:
# requirements.txt
chromadb==1.5.8
fastmcp==3.2.4
pip install --upgrade yerine versiyonları sabitlemek, beklenmedik sürüm değişikliklerini engeller.
pnpm audit:
pnpm audit
shell.nix kalkanı zaten aktif: PNPM_CONFIG_IGNORE_SCRIPTS=true ile postinstall scriptleri çalışamaz.
Sonuç
Shai Hulud biyoinformatik araştırmacıları hedef aldı — beni doğrudan değil. Ama saldırının mekanizması herhangi bir pip paketiyle çalışabilir.
NixOS’un yapısal avantajı gerçek: sistem paketleri tamamen güvende. Kör nokta ise her zaman aynı yer — Nix dışı paket yöneticileri. pip, pnpm, Docker imajları, hepsi kendi güven zincirine sahip.
Bu noktada savunma stratejisi basit: Nix ile yönetilen şeylere güven, dışarıdakileri düzenli denetle.
İlgili: NixOS: Siber-Kalkan, pnpm Göçü ve Sıfır Entropi Mimarisi