Tedarik Zinciri Tehditleri
Bağımlılıkların nasıl saldırı vektörlerine dönüştüğü.
Tedarik Zinciri Tehditleri, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.
Tedarik Zinciri Saldırısı Nedir
Bir yazılım tedarik zinciri saldırısı, bir kuruluşu doğrudan ihlal ederek değil, kuruluşun güvendiği ve kullandığı bir şeyi bozarak tehlikeye atar: bir kütüphane, derleme aracı, kapsayıcı temel görüntüsü veya güncelleme sunucusu.
Modern yazılımlar yüzlerce üçüncü taraf bileşeninden oluşturulduğu için, zehirlenmiş tek bir bağlantı kendisinden sonraki her kullanıcıya miras kalır. Saldırgan bir kez yatırım yapar ve çok sayıda kurbana ulaşır.
- Güvenin tersine dönmesi — güvenlik sınırı kendi kodunuzun dışına taşınır
- Geçişli etki alanı — tek bir kötü paket binlerce derlemeye yayılır
Bağımlılık Buzdağı
Doğrudan bir bağımlılık eklediğinizde, çoğu zaman hiç seçmediğiniz onlarca geçişli bağımlılığı da çekersiniz. Tipik bir Node veya Python uygulaması birkaç paket tanımlar, ancak sonunda yüzlerce pakete çözümlenir.
Gerçekte ne gönderdiğinizi görmek için yalnızca bildirim dosyasını değil, çözümlenmiş ağacın tamamını listeleyin:
# npm: full resolved dependency tree
npm ls --all
# Python: pinned transitive closure
pip freeze
# count transitive nodes
npm ls --all --parseable | wc -lYazım Hatasıyla Ad Taklidi ve Karışıklık
Saldırganlar, popüler paketlere benzeyen adlara sahip kötü amaçlı paketler yayımlar ve ölümcül bir yazım hatası yapılmasını bekler.
- Yazım hatasıyla ad taklidi —
reqeustsyerinerequests - Bileşimli ad taklidi — gerçek adı taklit eden
python-requests - Bağımlılık karmaşası — genel kullanıma açık bir paketi, kurum içindeki özel paketinizle aynı adla yayımlamak; böylece yanlış yapılandırılmış bir çözümleyici saldırganın sürümünü indirir
Güvenilir bir kurum içi kayıt deposunu sabitleyerek ve kapsamlı ya da ad alanı içeren özel paketler kullanarak savunma sağlayın.
Hesapların ve Paket Bakımcılarının Ele Ge geçirilmesi
Meşru ve geniş ölçüde güvenilen bir paket, bakımcısının hesabı ele geçirilirse veya kötü amaçlı bir katkıcı yayımlama yetkisi kazanırsa tehdit hâline gelebilir.
Yakın zamanda yaşanan gerçek olaylar, saldırganların bakımcıların kimlik bilgilerini kimlik avıyla ele geçirdiğini ve ardından kurulum sırasında belirteçleri dışarı aktaran zehirlenmiş bir yama sürümü yayımladığını gösteriyor.
- Tüm yayımlama hesaplarında iki faktörlü kimlik doğrulamayı zorunlu kılın
- Kapsamlandırılmış yayımlama belirteçlerine ve korumalı sürümlere sahip paketleri tercih edin
- Kritik bağımlılıklarda beklenmedik yeni bakımcılar olup olmadığını izleyin
Kötü Amaçlı Kurulum Betikleri
Birçok ekosistem, uygulamanız daha çalışmadan, kurulum sırasında kod çalıştırır. Bir npm install komutu, ortam değişkenlerini veya SSH anahtarlarını çalan bir postinstall kancasını çalıştırabilir.
Sürekli tümleştirme ortamında keyfi kurulum betiklerini devre dışı bırakın ve bunlara ihtiyaç duyan her paketi denetleyin:
# npm: block lifecycle scripts during install
npm ci --ignore-scripts
# inspect what a package would run
npm view <package> scripts
# pnpm equivalent
pnpm install --ignore-scriptsEle Geçirilmiş Derleme Araçları
Derleme ortamının kendisi yüksek değerli bir hedeftir. Saldırgan bir derleyiciyi, sürekli tümleştirme çalıştırıcısı görüntüsünü veya derleme eklentisini zehirlerse, kaynak kodunuz temiz olsa bile ürettiği her çıktı arka kapı içerir.
Klasik örnek, kötü amaçlı yazılımı meşru bir kod imzalama anahtarıyla imzalayan ve kurbanların bunu gerçek kabul etmesini sağlayan Truva atı yerleştirilmiş bir güncelleme mekanizmasıdır.
- Derleme altyapısını tam anlamıyla sıkılaştırılmış bir üretim ortamı olarak ele alın
- Geçici ve yeniden üretilebilir derleme çalıştırıcıları kullanın
- İmzalama anahtarlarını derleme makinesinden ayırın
Kilit Dosyaları ve Bütünlük Karmaları
Bir kilit dosyası, kesin sürümleri ve içerik karmalarını sabitler; böylece bağımlılıkların yeniden çözümlenmesi farklı bir çıktıyı sessizce araya sokamaz. Bu dosyayı her zaman depoya kaydedin ve bağımlılıkları serbestçe yeniden çözümlemek yerine sürekli tümleştirme ortamının dosyayı doğrulamasını sağlayın.
Bütünlük alanı bir karma depolar; indirilen tar arşivi bu karmayla eşleşmezse kurulum başarısız olur.
# package-lock.json integrity entry
# "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
# "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="
# CI must install from lock, never re-resolve
npm ci
yarn install --frozen-lockfileBağımlılıkların Güvenlik Açığı Taraması
CVE olarak izlenen, bilinen güvenlik açıklarına sahip sürümler, tedarik zincirindeki en yaygın zayıflıktır. Yazılım Bileşimi Analizi (SCA) araçları, çözümlenmiş bağımlılıklarınızı güvenlik açığı veritabanlarıyla karşılaştırır.
Taramaları sürekli tümleştirme ortamında çalıştırın ve kritik bulgular olduğunda derlemeleri başarısız sayın:
# npm built-in audit
npm audit --audit-level=high
# OSV scanner across ecosystems
osv-scanner --lockfile=package-lock.json
# Trivy for filesystem and images
trivy fs --severity HIGH,CRITICAL .Sürüm Sabitleme ve Depoya Dahil Etme
Değişken sürüm aralıkları (^1.2.0), yeni sürümlerin otomatik olarak gelmesine izin verir. Bu kullanışlıdır, ancak sizi kötü amaçlı bir yamaya açık bırakır.
- Kesin sürümlere sabitleyin ve yükseltmeleri bilinçli biçimde gözden geçirin
- Kapsayıcı görüntülerini
latestgibi değiştirilebilir etiketlere göre değil, özet değerine göre sabitleyin - Kritik bağımlılıkları kendi deponuza veya aynanıza dahil edin; böylece üst kaynaktan silinmeleri sizi bozamasın veya zehirleyemesin
# pin a container image by immutable digest
FROM python:3.12-slim@sha256:1d52838af602b4b5a831beb13a0e4d073280665ea7be7f69ce2382f29c5a613fSürekli İzleme ve Köken Bilgisi
Tedarik zincirini güvenceye almak tek seferlik bir tarama değil, sürekli devam eden bir iştir. Ne gönderdiğinizi, nereden geldiğini ve ne zaman güvenlik açığı hâline geldiğini bilmeniz gerekir.
- Her sürüm için bir SBOM oluşturun (sonraki ders)
- Bir çıktının nasıl üretildiğini kanıtlayabilmek için derleme köken bilgilerini kaydedin
- Yeni açıklanan bir CVE'nin daha önce gönderilmiş derlemelerin yeniden değerlendirilmesini tetiklemesi için güvenlik duyurularına abone olun
İşlem Hattının Tehdit Modellemesi
Güvenilmeyen girdinin girdiği her aşamayı haritalayın: geliştirici makineleri, kaynak kod yönetimi, bağımlılık kayıt depoları, derleme sistemi, çıktı depolama alanı ve güncelleme kanalı. Bunların her biri olası bir enjeksiyon noktasıdır.
Her aşama için şunları sorun: buraya kim yazabilir, bir ele geçirme ona ne yapma olanağı tanır ve bunu nasıl tespit edebilirim? Böylece genel bir kontrol listesi yerine önceliklendirilmiş bir denetim listesi elde edersiniz.
Kısa Kontrol: Bağımlılık Karmaşası
Yaygın bir tedarik zinciri saldırısı türü hakkındaki anlayışınızı sınayın.
Özet: Tedarik Zinciri Tehditleri
Bağımlılıkların neden saldırı vektörleri olduğunu ve bu maruziyeti nasıl azaltacağınızı öğrendiniz.
- Güvenin tersine dönmesi, güvenliğinizin denetlemediğiniz üçüncü taraflara bağlı olması anlamına gelir
- Temel tehditler: yazım hatasıyla ad taklidi, bağımlılık karmaşası, bakımcı hesabının ele geçirilmesi, kötü amaçlı kurulum betikleri ve ele geçirilmiş derleme araçları
- Temel savunmalar: bütünlük karmaları içeren kilit dosyaları, SCA taraması, özet değerine göre kesin sürüm sabitleme, yayımcılarda iki faktörlü kimlik doğrulama ve sürekli izleme
Sonraki derste yazılımınızın tam olarak neler içerdiğini bir SBOM ile envantere alacaksınız.
Yapay zeka eğitmeniyle Cyber Security Academy öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 76
- Dersler
- 303
Sıkça Sorulan Sorular
“Tedarik Zinciri Tehditleri” dersi ücretsiz mi?
Evet — “Tedarik Zinciri Tehditleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.
“Tedarik Zinciri Tehditleri” dersinde ne öğreneceğim?
Bağımlılıkların nasıl saldırı vektörlerine dönüştüğü. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Tedarik Zinciri Tehditleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tedarik Zinciri Tehditleri
- Yazılım Malzeme Listesi (SBOM)
- Bağımlılık ve Yapıt İmzalama
- CI/CD İşlem Hatlarını Güvenceye Alma