Cyber Security Academy · Ders

Tedarik Zinciri Tehditleri

Bağımlılıkların nasıl saldırı vektörlerine dönüştüğü.

1. ders / 413 adım

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 -l

Yazı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 — reqeusts yerine requests
  • 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-scripts

Ele 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-lockfile

Bağı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 latest gibi 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:1d52838af602b4b5a831beb13a0e4d073280665ea7be7f69ce2382f29c5a613f

Sü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.

Başlamak ücretsiz

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

  1. Tedarik Zinciri Tehditleri
  2. Yazılım Malzeme Listesi (SBOM)
  3. Bağımlılık ve Yapıt İmzalama
  4. CI/CD İşlem Hatlarını Güvenceye Alma
← Cyber Security Academy Sayfasına Dön