Yazılım Tedarik Zinciri Güvenliği: Log4Shell Sonrası Dünya

Log4Shell, event-stream ve dependency confusion olaylarının öğrettikleri: SBOM, kilit dosyası disiplini, CI tarama, sürüm politikası ve tedarik zinciri savunması.

CI hattında bağımlılık taraması ve SBOM üretimini gösteren pipeline yapılandırma dosyası

Tedarik zinciri saldırısı nedir?

Tedarik zinciri saldırısı, hedefin kendi kodunu değil; kullandığı kütüphaneleri, paket depolarını, derleme araçlarını veya güncelleme kanallarını ele geçirerek içeri girmektir. Modern bir uygulamada kodun büyük bölümü dışarıdan gelir — bu, üretkenliğin bedelidir: bağımlılık ağacınızın tamamı sizin saldırı yüzeyinizdir.

Ders veren beş gerçek vaka

Vaka

Yıl

Mekanizma

Ders

event-stream (npm)

2018

Bakım devri alan saldırgan zararlı alt paket ekledi

Bakımcı değişimi bir risk sinyalidir

dependency confusion

2021

İç paket adlarının kamuya yüklenmesiyle derlemelerin zehirlenmesi

İç kayıt defteri ve ad alanı koruması şarttır

ua-parser-js (npm)

2021

Bakımcı hesabı ele geçirilip zararlı sürümler yayımlandı

Sürüm sabitleme ve gecikmeli güncelleme değerlidir

Log4Shell (Java)

2021

Yaygın kütüphanede kritik zafiyet (CVE-2021-44228)

Envanter yoksa müdahale hızı da yoktur

colors/faker (npm)

2022

Bakımcının kendi paketlerini bilinçli bozması

Tek kişiye bağımlılık kırılganlıktır

SBOM: "hangi sürümü kullanıyoruz?" sorusunun saniyeler içinde cevabı

Log4Shell gecesinin gerçek ayrımı şuydu: bazı ekipler hangi servisin hangi Log4j sürümünü kullandığını dakikalar içinde listeledi; bazıları günlerce depo taradı. Aradaki fark SBOM'du — her derlemede otomatik üretilen, CycloneDX veya SPDX formatında yazılım malzeme listesi. SBOM tek başına koruma sağlamaz; sağladığı şey, zafiyet duyurusu ile müdahale arasındaki süreyi kapatan görünürlüktür.

Kilit dosyaları ve sürüm disiplini

Java tarafında sürümlerin BOM/dependencyManagement ile merkezî sabitlenmesi, npm tarafında package-lock dosyasının sürüm kontrolünde olması pazarlık konusu değildir: derlemeler tekrarlanabilir olmalıdır. Güncelleme stratejisinde denge önemlidir — güvenlik yamaları hızlı alınmalı, ama yeni yayımlanan sürümler için kısa bir bekleme penceresi (ele geçirme vakalarının çoğu ilk saatlerde yakalanır) riski düşürür. Otomasyon botları (Dependabot/Renovate) bu dengeyi insan onaylı PR'larla kurar.

CI hattı: taramanın doğru yeri

Bağımlılık zafiyet taraması (OWASP Dependency-Check, Trivy vb.) geliştiricinin makinesinde değil, CI hattında zorunlu adım olmalıdır; kritik bulguda derlemenin kırılması, politikayı tartışmadan çıkarıp otomatiğe bağlar. Aynı hatta iki tamamlayıcı kontrol daha eklenir: paket kurulum script'lerinin kısıtlanması ve üretilen artefaktın (imaj/jar) imzalanarak dağıtım kanalında doğrulanması.

Yama SLA'sı: iyi niyetten ölçülebilir sürece

"Zafiyetleri hızlı kapatıyoruz" bir süreç değildir; süreç şudur: kritiklik başına tanımlı yama süresi hedefi (örn. kritik: 48-72 saat, yüksek: 2 hafta), istisnaların kayıt altına alınması ve gecikmelerin mühendislik metriği olarak raporlanması. Tedarikçi denetimlerinde sorulan da tam olarak budur.

İş etkisi: müşterileriniz artık zincirinizi soruyor

Kurumsal satın almalarda güvenlik anketleri artık SBOM paylaşımını, bağımlılık politikanızı ve yama SLA'nızı soruyor; kamu ve finans sektörlerinde bu talepler sözleşme maddesine dönüşüyor. Tedarik zinciri disiplinini belgeleyebilen yazılım evi, güvenlik değerlendirmesini hızla geçer — belgeleyemeyen, her satışta aynı sorularla yeniden boğuşur. Bu yatırımın getirisi hem risk azaltımı hem satış hızıdır.

Sık sorulan sorular

SBOM'u müşteriyle paylaşmalı mıyım?

Talep gelen kurumsal senaryolarda evet — NDA altında paylaşım yaygın pratiktir. Paylaşamıyorsanız bile iç kullanım için üretiyor olmanız müdahale hızınızı belirler.

Her güncellemeyi hemen almalı mıyım?

Güvenlik yamalarını hızla, özellik sürümlerini kısa bir gözlem penceresinden sonra almak dengeli stratejidir. Kritik olan, kararın otomasyona ve yazılı politikaya bağlanmasıdır.

İç paketlerimi dependency confusion'dan nasıl korurum?

İç kayıt defterini önceliklendirin, iç paket ad alanlarını (scope/groupId) kamu depolarında rezerve edin ve derleme yapılandırmasında kamu deposuna düşmeyi engelleyin.

Açık kaynak kullanmak riskli mi?

Sorun açık kaynak değil, yönetilmeyen bağımlılıktır. Şeffaflığı sayesinde açık kaynak, doğru süreçle kapalı alternatiflerden daha denetlenebilirdir.

Tedarik zinciri kontrol listesi

  1. Her derlemede SBOM üretimi (CycloneDX/SPDX)

  2. Kilit dosyaları / BOM sürüm kontrolünde; derlemeler tekrarlanabilir

  3. CI'da zafiyet taraması; kritik bulguda derleme kırılıyor

  4. Güncelleme botu insan onaylı; yeni sürümler için bekleme penceresi tanımlı

  5. İç paket ad alanları korunuyor; iç kayıt defteri öncelikli

  6. Kritiklik bazlı yama SLA'sı yazılı ve raporlanıyor

  7. Artefakt imzalama ve dağıtımda doğrulama uygulanıyor

SSH Yazılım, tedarik zinciri güvenliği süreçlerinin kurulumunda — SBOM, CI tarama, sürüm ve yama politikası — uçtan uca destek verir. Zincirinizi birlikte sağlamlaştıralım.