Tedarik Zinciri Saldırısı
Supply Chain Attack
- İngilizcesi
- Supply Chain Attack
- Okunuşu
- sıplay çeyn ıtek
Günlük kullanımda iki ad da yaygın.
Kısaca
Tedarik zinciri saldırısı, uygulamanın kendisini değil, açık kaynak paketi, derleme aracı veya güncelleme sunucusu gibi dayandığı bir bileşeni ele geçirir.
Yazılım tedarik zinciri saldırısı nedir?
Modern uygulamalar yüzlerce, hatta binlerce üçüncü taraf parçadan bir araya getirilir: açık kaynak paketleri, container temel imajları, CI/CD servisleri, derleme eklentileri ve satıcı güncellemeleri. Yazılım tedarik zinciri saldırısı, bu parçalardan birine kötü amaçlı kod sızdırır; böylece kod, onu kullanan her projeye aşağı akış yönünde ulaşır. Kod güvenilir bir kanaldan, çoğu zaman imzalı ve otomatik olarak yüklenerek geldiği için aynı anda binlerce kuruluşa ulaşabilir.
Yaygın teknikler arasında; popüler bir paketin adına yakın bir adla kötü amaçlı bir paket yayımlamak anlamına gelen typosquatting, derlemenin yanlış kaynağı seçmesi için bir şirketin dahili paketiyle aynı ada sahip herkese açık bir paket yayımlamak anlamına gelen dependency confusion, zehirli bir sürüm yayımlamak için bir bakımcının hesabını ele geçirmek ve resmî sürümlerin bir arka kapı içermesi için bir derleme sistemini ele geçirmek yer alır. Bilinen örnekler arasında saldırganların bir satıcının yazılım güncellemesini değiştirdiği 2020 SolarWinds ihlali ve bir katılımcının yaygın kullanılan bir sıkıştırma kütüphanesine kötü amaçlı kod gizlemeden önce güven kazanmak için iki yıldan fazla zaman harcadığı 2024 xz Utils arka kapısı vardır.
Savunmalar, gönderdiğiniz şeyi bilmeyi, sabitlemeyi ve doğrulamayı hedefler. Ekipler derlemelerin tam sürümleri kullanması için lockfile'ları commit eder, yeni bağımlılıkları eklemeden önce inceler, bilinen CVE'ler için tarar, her bileşeni listeleyen bir yazılım malzeme listesi (SBOM) üretir, paketlerin ve imajların imzalarını ve kökenini (provenance) doğrular ve CI hatlarını en az ayrıcalıklı token'larla sağlamlaştırır. Bu, mutfağını tertemiz tutan ama yine de kirlenmiş bir teslimat yüzünden misafirlerini hasta eden bir restorana benzer: yemeğin güvenliği yalnızca aşçıya değil, her tedarikçiye bağlıdır.
Tedarik zinciri saldırısı sıklıkla sıradan savunmasız bir bağımlılıkla karıştırılır. Savunmasız bir bağımlılık, saldırganların istismar edebileceği kazara bir hata içerir; tedarik zinciri saldırısı ise kasıtlıdır: biri güvenilir bir bileşene bilerek kötü amaçlı kod ekler. İkisi de iyi bağımlılık hijyeniyle yönetilir, ancak tedarik zinciri saldırıları kodunuzu kimin yayımladığını ve nasıl derlendiğini de denetlemeyi gerektirir.
Önemli noktalar
- Tedarik zinciri saldırıları, kullanıcılarına ulaşmak için güvenilir bir bağımlılığı, aracı veya güncellemeyi ele geçirir.
- Typosquatting, dependency confusion, hesap ele geçirme ve derleme ele geçirme yaygın yöntemlerdir.
- Lockfile'lar ve sabitlenmiş sürümler, derlemeleri yeniden üretilebilir ve kurcalanması daha zor kılar.
- SBOM, yeni bir zafiyete maruziyetin hızla kontrol edilebilmesi için her bileşeni listeler.
- İmzaları ve kökeni doğrulayın, CI hatlarına yalnızca ihtiyaç duydukları izinleri verin.
Örnek
# Install exactly what the lockfile says; fail if it doesn't match package.json
npm ci
# Check installed dependencies for known vulnerabilities
npm audit --audit-level=high
# Verify registry signatures and provenance attestations of installed packages
npm audit signatures
# Generate a software bill of materials (SBOM) in CycloneDX format
npm sbom --sbom-format cyclonedx > sbom.jsonSık sorulan sorular
Dependency confusion nedir?
Dependency confusion, birinin herkese açık bir kayıt defterine, çoğu zaman daha yüksek bir sürüm numarasıyla, bir şirketin özel dahili paketiyle aynı ada sahip bir paket yayımladığı saldırıdır. Yanlış yapılandırılmış derleme araçları da dahili paket yerine herkese açık, kötü amaçlı paketi indirir.
SBOM nedir?
Yazılım malzeme listesi, bir yazılımdaki her bileşenin ve sürümün, çoğunlukla SPDX veya CycloneDX biçiminde makine tarafından okunabilir bir envanteridir. Yeni bir zafiyet duyurulduğunda SBOM, ekiplerin etkilenen sistemleri dakikalar içinde bulmasını sağlar.
Projemi tedarik zinciri saldırılarından nasıl korurum?
Lockfile'lar ve sabitlenmiş sürümler kullanın, bağımlılıkları idareli ekleyip inceleyin, paket kayıt defteri hesaplarında iki faktörlü kimlik doğrulamayı etkinleştirin, zafiyetleri tarayın ve mümkün olduğunda imzaları doğrulayın. CI'da token izinlerini sınırlayın ve üçüncü taraf action'ları veya eklentileri tam sürümlere sabitleyin.
İlgili sayfalar
- CVEGüvenlik, s. 6CVE, bilinen tek bir güvenlik zafiyetine verilen, CVE-2021-44228 gibi benzersiz ve herkese açık bir tanımlayıcıdır; herkes aynı açığa aynı adla başvurur.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- Dijital İmzaGüvenlik, s. 8Dijital imza, özel anahtarla üretilen, bir mesajı ya da dosyayı kimin oluşturduğunu ve imzalandığından beri değişmediğini kanıtlayan kriptografik değerdir.
- Container RegistryDevOps ve Bulut, s. 10Container registry, konteyner imajları için bir depolama ve dağıtım hizmetidir; ekipler derlenmiş imajları push eder, onları çalıştıran her sunucuya pull eder.
- En Az Ayrıcalık İlkesiGüvenlik, s. 9En az ayrıcalık ilkesi, her kullanıcıya, programa ve servise yalnızca işini yapması için gereken asgari erişimin verilmesini öngören güvenlik kuralıdır.
- OWASP Top 10Güvenlik, s. 25OWASP Top 10, kâr amacı gütmeyen OWASP'nin yayımlayıp düzenli güncellediği, web uygulamalarındaki en kritik on güvenlik riskini sıralayan yaygın bir listedir.
- Kötü Amaçlı YazılımGüvenlik, s. 20Kötü amaçlı yazılım, veri çalarak, casusluk yaparak, dosyaları bozarak ya da sistemi ele geçirerek bilgisayara veya kullanıcısına zarar veren her programdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin