Cyber Security Academy · Ders

Yazılım Malzeme Listesi (SBOM)

Yazılımınızın neler içerdiğini envanterleme.

2. ders / 413 adım

Yazılım Malzeme Listesi (SBOM), CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 2. 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.

SBOM Nedir

Bir Yazılım Malzeme Listesi (SBOM), bir yazılım parçasının içindeki tüm bileşenlerin (kütüphaneler, bunların sürümleri, lisansları ve sağlayıcı bilgileri) makine tarafından okunabilen resmî envanteridir.

Bir gıda etiketinin içerikleri listelemesi gibi, bir SBOM şu soruyu saniyeler içinde yanıtlamanızı sağlar: bu ürün X'in güvenlik açığı içeren sürümünü barındırıyor mu? Böyle bir liste olmadan bu soru, elle yürütülen araştırmalarla günler sürebilir.

SBOM'ler Neden Şimdi Önemli

Kritik bir güvenlik açığı ortaya çıktığında, operasyon açısından ilk soru maruziyettir: etkilenen bileşeni ürünlerimizin hangileri içeriyor?

Log4Shell olayı sırasında SBOM'leri olan kuruluşlar envanterlerini sorgulayıp birkaç saat içinde önceliklendirme yaptı. SBOM'si olmayanlar ise derleme klasörlerinde metin aramak için haftalar harcadı. Düzenleyici kurumlar ve büyük alıcılar, satın alma koşulu olarak SBOM'leri giderek daha fazla zorunlu kılıyor.

  • Güvenlik açığının etkisini hızla analiz etme
  • Lisans uyumluluğu ve yükümlülükleri izleme
  • Müşteriler ve denetçiler için tedarik zinciri şeffaflığı

Standart SBOM Biçimleri

İki açık standart öne çıkar. Araçlar genellikle bu ikisi arasında dönüşüm yapabilir.

  • SPDX — lisanslama konusunda güçlü ve düzenleyici kurumlar tarafından geniş ölçüde kabul edilen Linux Vakfı standardı
  • CycloneDX — güvenliğe odaklanan, güvenlik açığı ve bağımlılık ilişkisi verilerini destekleyen bir OWASP standardı

Kendi biçiminizi icat etmekten kaçının; kullanıcılar ve tarayıcılar bu standartları bekler.

Bir Girdide Neler Bulunur

Her bileşen girdisi, güvenlik açığı akışlarıyla eşleştirilebilmesi için yeterli kimlik bilgisi taşımalıdır. Temel alanlar şunlardır:

  • ad ve sürüm — aralık değil, kesin değer
  • PURL (paket adresi) — pkg:npm/lodash@4.17.21 gibi evrensel bir tanımlayıcı
  • karma — bütünlüğü doğrulamak için
  • lisans — SPDX lisans tanımlayıcısı
  • sağlayıcı — onu kimin ürettiği
# A PURL uniquely identifies a component across ecosystems
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0
pkg:golang/github.com/gin-gonic/gin@v1.9.1

SBOM Oluşturma

SBOM'leri kaynak koddan veya derlenmiş bir çıktıdan otomatik olarak oluşturun. Syft, her iki standardı da üreten, ekosistemler arası yaygın bir oluşturucudur.

# from a project directory (CycloneDX JSON)
syft dir:. -o cyclonedx-json=sbom.cdx.json

# from a container image (SPDX JSON)
syft my-app:1.4.0 -o spdx-json=sbom.spdx.json

# CycloneDX has native generators per ecosystem too
cyclonedx-npm --output-file sbom.json

Kaynak, Derleme ve Çalışma Zamanı SBOM'leri

Farklı aşamalarda oluşturulan bir SBOM, farklı gerçekleri yansıtır.

  • Kaynak SBOM'si — bildirim dosyasının beyan ettikleri; paketlenmiş veya depoya dahil edilmiş kodları gözden kaçırabilir
  • Derleme SBOM'si — derlemenin gerçekte dahil ettiği her şey; sürüm için en doğru seçenektir
  • Çalışma zamanı / dağıtılmış SBOM — OS paketleri de dahil olmak üzere çalışan görüntüde gerçekte bulunanlar

Tedarik zinciri güvencesi için gerçek çıktıyı temel alarak derleme zamanında oluşturun ve son kapsayıcıyı OS düzeyindeki paketler için de tarayın.

SBOM'yi Güvenlik Açıkları İçin Tarama

Bir SBOM, bileşenleri bilinen CVE'lerle eşleştiren bir eşleştiriciye aktarıldığında güçlü hâle gelir. Bu yaklaşım, oluşturmayı analizden ayırır: yeni bir CVE yayımlandığı gün eski bir SBOM'yi tarayabilirsiniz.

# match an SBOM against vulnerability databases
grype sbom:sbom.cdx.json

# OSV scanner consumes SBOMs directly
osv-scanner --sbom=sbom.spdx.json

# fail CI above a severity threshold
grype sbom:sbom.cdx.json --fail-on high

VEX: Nelerin İstismar Edilebilir Olduğunu Belirtme

Bir SBOM, ürününüzde gerçekte istismar edilemeyen bir güvenlik açığına sahip bileşeni gösterebilir (güvenlik açığı içeren işlev hiç çağrılmıyordur). Bir VEX (Güvenlik Açığı İstismar Edilebilirliği eXchange) belgesi bu değerlendirmeyi kaydeder.

VEX gürültüyü azaltır: listelenen her CVE karşısında müşterilerin paniğe kapılmasını beklemek yerine, gerekçesiyle birlikte not_affected veya giderim bilgisiyle affected bildirimini yayımlarsınız. Böylece ham envanter, eyleme dönük bir önceliklendirmeye dönüşür.

SBOM'leri Dağıtma ve İmzalama

Bir SBOM, ancak gerçekliği doğrulanmışsa ve açıkladığı kesin çıktıyla ilişkilendirilmişse güvenilirdir. SBOM'yi imzalayın ve tek başına bir dosya olarak değil, bir doğrulama beyanı olarak ekleyin.

# attach a signed SBOM attestation to an image with cosign
cosign attest --predicate sbom.cdx.json \
  --type cyclonedx \
  my-registry/my-app:1.4.0

# verify the attached SBOM attestation
cosign verify-attestation --type cyclonedx my-registry/my-app:1.4.0

SBOM'leri Sürekli Tümleştirmede Otomatikleştirme

Elle oluşturulan SBOM'ler anında güncelliğini yitirir. Üretimi işlem hattına bağlayın; böylece her sürüm bir tane üretip derleme çıktısı olarak saklasın ve ideal olarak aynı iş içinde imzalayıp tarasın.

  • Yalnızca depodan değil, derlenmiş çıktıdan üretin
  • SBOM'leri sürüme göre anahtarlanmış, sorgulanabilir bir kayıt deposunda saklayın
  • Saklanan SBOM'leri güncel CVE akışlarına karşı belirli aralıklarla yeniden tarayın
  • Sürümleri güvenlik açığı taraması sonucuna göre onaylayın veya engelleyin

Yaygın SBOM Tuzakları

SBOM'ler yalnızca bir kutucuğu işaretleme işi olarak görüldüğünde sessizce başarısız olur.

  • Güncel olmayan — bir kez oluşturulmuş ve bir daha oluşturulmamış
  • Eksik — OS paketlerini, statik olarak bağlanmış veya depoya dahil edilmiş kodları kaçırıyor
  • Doğrulanmamış — onu dağıtılmış çıktıya bağlayan bir karma yok
  • Kullanılmayan — üretilmiş, ancak hiç taranmamış veya sorgulanmamış

Amaç, bir kerelik JSON dosyası değil; doğru, yeniden oluşturulan, imzalanan ve sürekli taranan bir SBOM'dir.

Kısa Kontrol: SBOM'nin Amacı

Öğrendiklerinizi bir olay senaryosuna uygulayın.

Özet: SBOM

Artık yazılımınızın neler içerdiğini envantere alabilir ve buna göre harekete geçebilirsiniz.

  • Bir SBOM, SPDX veya CycloneDX biçimindeki her bileşenin makine tarafından okunabilen listesidir
  • Bileşenleri PURL, sürüm, karma ve lisans ile tanımlayın
  • SBOM'yi derleme zamanında oluşturun, ardından CVE'ler için bir eşleştiriciye (grype, osv-scanner) aktarın
  • Gerçek istismar edilebilirliği belirtmek ve yanlış alarmları azaltmak için VEX kullanın
  • Sürekli tümleştirme ortamında imzalama ve otomatikleştirme yapın; saklanan SBOM'leri yeni akışlara karşı yeniden tarayın

Sıradaki: derleme çıktılarının nereden geldiğini imzalama yoluyla kanıtlama.

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

“Yazılım Malzeme Listesi (SBOM)” dersi ücretsiz mi?

Evet — “Yazılım Malzeme Listesi (SBOM)” 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.

“Yazılım Malzeme Listesi (SBOM)” dersinde ne öğreneceğim?

Yazılımınızın neler içerdiğini envanterleme. 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 2. dersidir.

“Yazılım Malzeme Listesi (SBOM)” 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