Yazılım tedarik zinciri: Kodunuzun çoğunu siz yazmıyorsunuz
Modern bir projede kodun büyük kısmı bağımlılıklardan gelir. xz-utils olayı bu güvenin ne kadar kırılgan olduğunu gösterdi. Küçük ekipler için uygulanabilir tedarik zinciri önlemlerini derledim.
Bir web projesinin node_modules ya da vendor klasörüne bakın: yazdığınız koddan kat kat fazlası orada. Her bağımlılık, tanımadığınız birilerine projenize kod ekleme yetkisi vermek demek.
xz-utils uyarısı
2024'ün başında, birçok Linux dağıtımında bulunan sıkıştırma kütüphanesi xz-utils'e arka kapı yerleştirildiği ortaya çıktı (CVE-2024-3094). Saldırgan yıllarca güvenilir bir katkıcı gibi davranıp sonunda bakımcı yetkisi almıştı. Kod, bir geliştiricinin SSH girişlerindeki küçük bir yavaşlamayı fark etmesiyle yakalandı.
Çıkarılacak ders şu: saldırı her zaman "kötü paket" şeklinde gelmiyor. Bazen güvendiğiniz paketin kendisi zamanla ele geçiriliyor.
Yaygın saldırı biçimleri
- Typosquatting: Popüler paketin adına çok benzeyen sahte bir paket (
reqeustsgibi). - Hesap ele geçirme: Bakımcının paket deposu hesabı çalınır, zararlı bir sürüm yayımlanır.
- Bağımlılık karışıklığı: Şirket içi paketle aynı ada sahip herkese açık bir paket, yükleyiciyi kandırır.
- Kurulum betikleri: Paket yüklenirken çalışan betikler, geliştirici makinesinde kod çalıştırır.
Küçük ekipler için uygulanabilir önlemler
- Kilit dosyasını depoya ekleyin.
package-lock.json,composer.lockgibi dosyalar herkesin aynı sürümü kurmasını sağlar. - Her bağımlılığı sorgulayın. 10 satırlık bir iş için paket eklemek, 10 satırlık riski binlerce satıra çevirir.
- Otomatik güvenlik taraması açın. Bilinen açıkları bildiren araçlar ücretsiz ve kurulumu dakikalar sürüyor.
- Güncellemeleri gözden geçirin. Otomatik güncelleme isteklerini körü körüne birleştirmeyin; değişiklik notuna ve diff'e bakın.
- Yayın hesaplarında iki adımlı doğrulama kullanın. Kendi paketlerinizi yayımlıyorsanız bu artık zorunluluk.
SBOM nedir, işime yarar mı?
SBOM (Software Bill of Materials), uygulamanızdaki tüm bileşenlerin ve sürümlerinin listesidir. Yeni bir açık duyurulduğunda "bundan etkileniyor muyuz?" sorusuna dakikalar içinde cevap vermenizi sağlar. Birçok derleme aracı bu listeyi otomatik üretebiliyor.
Sonuç
Tedarik zinciri güvenliği büyük şirketlere özgü bir konu değil. En küçük projede bile kilit dosyası, otomatik tarama ve bilinçli bağımlılık seçimi riskin büyük kısmını azaltıyor.