Ana Sayfa/Teknolojiler/SBOM Nedir? Yazılım Malzeme Listesi ile Güvenlik ve Tedarik Zinciri Kontrolü
Teknolojiler

SBOM Nedir? Yazılım Malzeme Listesi ile Güvenlik ve Tedarik Zinciri Kontrolü

SBOM (Yazılım Malzeme Listesi), yazılım projelerinin tüm bileşenlerini ve bağımlılık ilişkilerini belgeleyerek güvenlik ve şeffaflık sağlar. Güvenlik açıklarının tespit edilmesini kolaylaştırır, tedarik zinciri yönetimine katkı sunar. SBOM'un ne olduğu, nasıl oluşturulduğu ve siber güvenlikte neden vazgeçilmez olduğu bu içerikte detaylı şekilde açıklanıyor.

2 Eyl 2026
11 dk
SBOM Nedir? Yazılım Malzeme Listesi ile Güvenlik ve Tedarik Zinciri Kontrolü

SBOM (Yazılım Malzeme Listesi), modern yazılım güvenliğinde giderek daha önemli bir araç haline geliyor. Günümüzde yazılımlar nadiren sıfırdan yazılır; bir uygulamanın içinde onlarca hatta yüzlerce üçüncü parti kütüphane, framework, paket ve diğer bileşenler kullanılabilir. Her biri geliştiricilerin işini kolaylaştırır, ancak aynı zamanda güvenlik zincirinin de bir parçası haline gelir.

SBOM Nedir ve Yazılımda "Malzeme Listesi" Ne İşe Yarar?

SBOM (Software Bill of Materials), bir yazılımın hangi parçalardan oluştuğunu gösteren detaylı ve yapılandırılmış bir listedir. Temel olarak, bir yazılım ürününün tüm bileşenlerinin, sürümlerinin ve bağımlılık ilişkilerinin belgelenmesidir. Herhangi bir kütüphanede güvenlik açığı tespit edildiğinde, SBOM sayesinde bu bileşenin uygulamada kullanılıp kullanılmadığı ve hangi ürünlerin risk altında olduğu kolayca anlaşılır.

Malzeme Listesine Benzetme

SBOM'un işleyişi genellikle bir gıda ürününün ambalajındaki içindekiler listesi ile kıyaslanır. Tüketici içeriği kontrol edebilir; aynı şekilde SBOM da geliştiriciye yazılımda hangi kütüphane, paket ve modüllerin kullanıldığını gösterir.

Modern yazılımların büyük kısmı dış kod içerdiğinden, SBOM özellikle karmaşık projelerde kritik öneme sahiptir. Ana işlevselliği geliştirici yazsa da, veritabanı bağlantısı, şifreleme, görsel işleme veya arayüz için hazır kütüphaneler tercih edilir.

Software Bill of Materials'ın Anlamı

"Bill of Materials" (malzeme listesi) kavramı aslında üretim sektöründen gelir. Örneğin, bir otomobilin üretiminde hangi parçalara ihtiyaç duyulduğu, bu listeyle belirlenir. SBOM, aynı yaklaşımı yazılım geliştirmeye taşır: vidalar, devreler yerine yazılım kütüphanelerini ve bağımlılıklarını listeler.

Bir web servisi; framework, şifreleme kütüphanesi, veritabanı sürücüsü ve onlarca ek paket kullanabilir. Her bileşenin kendi bağımlılıkları olabilir; böylece projedeki gerçek bileşen sayısı ilk bakışta görünenden çok daha fazladır. SBOM bu yapıyı şeffaflaştırır.

SBOM'da Hangi Bilgiler Bulunur?

SBOM'un içeriği kullanılan formata ve araçlara göre değişiklik gösterse de, temel olarak aşağıdaki bilgiler yer alır:

  • Kütüphane veya paket adı
  • Bileşen sürümü
  • Geliştirici veya tedarikçi
  • Pakete özel benzersiz tanımlayıcılar
  • Lisans bilgisi
  • Diğer bağımlılıklarla ilişkiler
  • Bileşenin kaynağı

En kritik unsur sürümlerdir. Bir kütüphanenin eski sürümünde bilinen bir açık olabilir, yeni sürümde ise bu giderilmiş olabilir. Ayrıca, transitif bağımlılıklar da önemlidir: Uygulamanız doğrudan değil, başka bir paket aracılığıyla tehlikeli bir bileşeni projeye dahil etmiş olabilir.

Örneğin, uygulamanız A kütüphanesini kullanıyor, A ise B'ye, B de C'ye bağlı. Geliştirici C'yi doğrudan eklememiş olsa da, kodu yazılımın bir parçası haline gelir. SBOM ile bu zincir görünebilir.

SBOM ile Basit Bağımlılık Listesi Arasındaki Farklar

İlk bakışta SBOM, projelerde yaygın olan bağımlılık dosyalarına (ör. JavaScript'te package.json, Python'da requirements.txt) benzer. Ancak, bu dosyalar esas olarak projenin derlenmesi veya çalıştırılması için gerekli paketleri paket yöneticisine bildirir.

SBOM ise standartlaştırılmış ve makine tarafından okunabilir bir yapıda hazırlanır; siber güvenlik sistemleri, tedarik zinciri yönetimi ve açık analiz platformları tarafından kullanılabilir. Ayrıca, elle eklenen bağımlılıkların ötesinde, yazılımın derin yapısını da tanımlar ve otomatik analiz için uygun hale getirir.

SBOM ile Güvenlik Açıkları Nasıl Tespit Edilir?

SBOM kullanmanın en büyük nedenlerinden biri, yeni bir güvenlik açığı ortaya çıktığında hangi programların risk altında olduğunu hızlıca tespit edebilmektir. SBOM olmadan, geliştiricilerin her projedeki bağımlılıkları tek tek incelemesi gerekir ki, bu büyük sistemlerde yüzlerce bileşeni kontrol etmek anlamına gelir.

Özellikle açık kaynak kütüphanelerin yoğun kullanıldığı projelerde, güvenlik açığı şirketin kendi kodunda değil, ekibin bile farkında olmadığı küçük bir bağımlılıkta olabilir. SBOM, bu bileşenleri görünür kılar.

Bir Kütüphanedeki Açığın Birçok Uygulamayı Etkilemesi

Popüler kütüphaneler binlerce projede kullanılır. Bir bileşendeki hata, çok sayıda uygulamayı, sunucuyu ve servisi etkileyebilir. Diyelim ki geliştiriciler 3.4 sürümünü kullanıyor, sonra 3.4.1'de kritik bir açık gideriliyor. SBOM sayesinde, hangi ürünlerde eski sürümün olduğu hızla tespit edilebilir.

SBOM olmadan, depoları, bağımlılık dosyalarını, konteyner imajlarını ve diğer altyapı unsurlarını incelemek gerekir. Ayrıca, transitive bağımlılıklar ek risk taşır: Güvenli görünen bir kütüphane, içinde başka bir pakette bulunan açık nedeniyle tehlikeli olabilir.

Benzer bir sorun, Sıfır Gün Açıkları: Zero-Day Saldırıları ve Koruma Yöntemleri başlığında detaylıca açıklanır. Bu tür açıklar duyurulduğunda, sistemlerde hızla tespit edilip yamanması hayati önem taşır.

Yeni Güvenlik Açığı Ortaya Çıkınca SBOM Nasıl Hızlandırıcı Rol Oynar?

Yeni bir güvenlik açığı duyurulduğunda, kullanılan bileşenin varlığı, hangi ürünlerde bulunduğu ve sürümü gibi sorulara hızlıca yanıt bulmak gerekir. Güncel bir SBOM mevcutsa, bu süreç otomatikleştirilebilir: Sistem, ilgili bileşen ve sürümü tüm SBOM'larda arar ve potansiyel olarak etkilenen uygulamaların listesini çıkarır.

Özellikle büyük şirketlerde, yüzlerce iç servisin yönetildiği ortamlarda bu büyük kolaylık sağlar. Her ekibe bağımlılıkları manuel kontrol ettirmek yerine, merkezi ve hızlı bir analiz yapılabilir.

Tabii ki, bir bileşenin varlığı her zaman uygulamanın savunmasız olduğu anlamına gelmez; bazen tehlikeli bir fonksiyon hiç kullanılmaz. Ancak, SBOM araştırma alanını daraltır, nihai risk analizi için ek inceleme gerekebilir.

SBOM ve Bağımlılık Açıklarının Otomatik Analizi

SBOM en çok, bilinen açıklar veritabanları ve otomatik güvenlik tarayıcılarıyla birlikte kullanıldığında faydalı olur. Temelde, sistem SBOM'daki bileşen ve sürümleri alır, bunları güvenlik açıklarıyla kıyaslar. Eğer belirli bir sürümde açık varsa, ilgili proje işaretlenir.

Böylece, yayınlanmış yazılımlar düzenli olarak analiz edilebilir. Çünkü bir bileşen yayınlandığı gün güvenli olabilir, ancak aylar sonra bir güvenlik açığı duyurulabilir. Uygulama derlendikten sonra bile bağımlılıkların güvenliği takip edilmelidir.

SBOM burada kesin bir envanter görevi görür: "Yazılımda ne var?" sorusuna yanıt verir, güvenlik analiz sistemleri ise hangi bileşenlerin riskli olduğuna karar verir. Liste ne kadar güncel ve detaylıysa, aksiyon o kadar hızlı alınabilir.

SBOM Uygulamada Nasıl Oluşturulur?

Pratikte SBOM'lar genellikle geliştirme, derleme veya yayınlama sırasında otomatik olarak oluşturulur. Geliştiricinin her kütüphaneyi elle listelemesi gerekmez; özel araçlar projeyi tarar, bileşenleri ve sürümlerini çıkarır ve yapılandırılmış bir dosya oluşturur.

Bu yaklaşım, SBOM'u yazılımın yaşam döngüsünün bir parçası haline getirir. Uygulamanın bileşimi değişirse, SBOM da yeni derleme ile güncellenir.

Geliştirme ve Derleme Sürecinde SBOM Oluşturma

SBOM çeşitli aşamalarda üretilebilir: Bir araç bağımlılık dosyalarını analiz eder, bir diğeri derlenmiş konteyner veya paketi tarar, bir diğeri doğrudan derleme sisteminden bilgi alır.

Örneğin, geliştirici projeye yeni bir kütüphane ekler; bir sonraki derlemede sistem otomatik olarak bu bileşeni tespit eder, sürümünü belirler ve yeni SBOM'a ekler. Bu süreç CI/CD otomasyonu ile testler, derleme ve güvenlik kontrolleri gibi süreçlerle entegre edilebilir.

Her sürüm için ayrı SBOM saklanabilir; böylece aylar sonra bile, bir programın belirli bir versiyonunda hangi bileşenlerin olduğu tespit edilebilir.

Bileşenlerin ve Sürümlerinin Kontrolü

SBOM oluşturulduktan sonra, güvenlik analiz sistemine aktarılabilir. Sistem, bileşen adlarını, sürümlerini ve diğer kimlik bilgilerini çıkarır, bunları bilinen açıklar veritabanı ile karşılaştırır.

Bir uygulamada 2.7.4 sürümünde bir kütüphane tespit edildi diyelim; eğer bu sürümde bilinen bir açık varsa, sistem bu bileşeni otomatik olarak işaretler. Kontrolün doğruluğu ise verinin kalitesine bağlıdır; yanlış sürüm veya eksik kimlik bilgisi, analiz güvenilirliğini düşürür.

Riskli Bir Bağımlılık Tespit Edilirse Ne Olur?

Tehlikeli bir bileşen bulunduğunda, ilk adım etki alanını belirlemektir: Hangi uygulama ve sürümlerde bu bağımlılık var? Ardından gerçek risk değerlendirilir. Bazen kütüphanenin varlığı bile acil güncelleme gerektirir, bazen de risk düşüktür.

Düzeltilmiş sürüm mevcutsa, bağımlılık güncellenir, uygulama tekrar derlenir ve test edilir. Yeni SBOM, güncellenmiş bileşenleri yansıtmalıdır. Henüz bir düzeltme yoksa, geçici olarak bazı işlevler kapatılabilir, yapılandırma değiştirilebilir veya alternatif kütüphanelerle risk azaltılabilir.

Sonuç olarak, SBOM riskli bir bileşeni bulmakla kalmaz; nerede güncelleme yapılması gerektiğini de hızla gösterir.

SBOM Neden Sürekli Güncellenmeli?

SBOM ancak yazılımın gerçek durumunu yansıtıyorsa faydalıdır. Bir yıl önce oluşturulmuş, ancak bağımlılıkları değişmiş bir SBOM ile güvenlik analizi yapmak tehlikelidir.

Bu nedenle, SBOM bir defalık bir belge değil, her sürümün ayrılmaz parçası olmalı. Yeni bir kütüphane eklendiğinde SBOM güncellenir, bir paket güncellendiğinde SBOM yine yenilenir. Böylece yazılım bileşenlerinin geçmişi de izlenebilir, yeni açıklar ortaya çıktığında hem güncel hem de eski sürümlerde riskli bileşenler hızla tespit edilir.

SBOM Formatları: CycloneDX ve SPDX

SBOM belirli bir dosya türü değildir. Farklı araçların SBOM üretebilmesi ve analiz edebilmesi için standart formatlar kullanılır. En yaygın iki format CycloneDX ve SPDX'dir.

CycloneDX

CycloneDX, yazılım tedarik zinciri güvenliğine özel olarak geliştirilmiştir. Kütüphaneler, paketler, servisler, bağımlılıklar ve ilişkileri detaylı şekilde tanımlar. Sadece ad ve sürüm değil, kimlikler, lisanslar, dosya hash'leri ve bağımlılık haritaları da içerir. Böylece otomatik sistemler bileşenleri güvenlik açıklarıyla eşleştirebilir.

Bağımlılık haritası özellikle gelişmiş uygulamalarda hangi paketin hangi yol üzerinden projeye dahil olduğunu gösterir. CycloneDX, bağımlılık ve konteyner analiz araçları tarafından yaygın olarak desteklenir.

SPDX

SPDX (Software Package Data Exchange) esasen yazılım paketleri, lisanslar ve bileşen kökenleri için standarttır. Paketler, dosyalar, sürümler, yazarlar, lisanslar ve ilişkiler hakkında bilgi içerir. Bu nedenle, yalnızca güvenlik değil, açık kaynak kod lisans takibi için de uygundur.

SPDX, büyük ve açık kaynak ağırlıklı projelerde özellikle kullanışlıdır. Aynı zamanda SBOM formatı olarak da işlev görebilir.

SBOM Formatı Seçimi

Çoğu projede formatı geliştirici seçmez; kullanılan araçlar veya kurumun güvenlik altyapısı belirleyici olur. Bir araç CycloneDX, diğeri SPDX ile çalışabilir veya her ikisini de destekleyebilir. Önemli olan, SBOM'un eksiksiz ve güncel olmasıdır.

Eğer bir araç transitive bağımlılıkları atlar veya sürümleri yanlış tespit ederse, en iyi format bile güvenli analiz sağlamaz. Pratikte, gerekirse formatlar arasında dönüştürme yapılabilir. Standart formatlar sistemler arası uyumluluk sağlar.

Tek Başına SBOM Yeterli mi?

SBOM, yazılımın içeriğini şeffaflaştırır; ancak kendi başına güvenlik sağlamaz. Detaylı bir bağımlılık listesine sahip olmak, açıkların otomatik olarak giderileceği veya ürünün güvenli olacağı anlamına gelmez.

SBOM'un ana işlevi, bileşenler hakkında net bilgi sunmaktır. Bu bilgi, açıklar veritabanı ile eşleştirilmeli, risk analiz edilmeli, bağımlılıklar güncellenmeli ve yeni sürümler kontrol edilmelidir.

SBOM Riskleri Kendi Başına Gidermez

SBOM'da tehlikeli bir kütüphane tespit edildiğinde, dosya sorunu çözmez; sadece bileşenin nerede kullanıldığını gösterir. Sonrasında güvenlik ekibi ve geliştiricilerin değerlendirme, güncelleme ve test işlemleri başlar.

Her açık her uygulama için aynı derecede riskli olmayabilir. Problemli kütüphanenin işlevi hiç kullanılmıyorsa risk düşük olabilir. Bazı durumlarda ise, bileşenin varlığı veya belirli bir konfigürasyon tehdit için yeterlidir. Bu yüzden, SBOM üzerindeki bir sürümün açık veritabanıyla eşleşmesi, her zaman kesin bir risk anlamına gelmez; ek değerlendirme gerekebilir.

Güncel Olmayan veya Eksik SBOM'ların Sorunları

SBOM'un zayıf noktası veri kalitesidir. Eğer SBOM gerçeği yansıtmıyorsa, yapılan analizler de yanlış olur. Örneğin, transitive bağımlılıklar listelenmemişse, tehlikeli bir kütüphane uygulamada bulunabilir ama SBOM'da görünmez. Ya da güncel bir SBOM kullanılmazsa, uygulama güvenli bir sürüme güncellense bile analiz sistemi hala riskli olarak algılayabilir.

SBOM'un her derleme veya sürümle bağlantılı olması, manuel iş yükünün az olması gerekir. Ayrıca, tüm bileşenler kolayca tanımlanamayabilir; ticari yazılımlarda özelleştirilmiş veya özel paketler, standart kimlik bilgileri taşımayabilir ve bu dış veritabanlarıyla eşleştirmeyi zorlaştırır.

SBOM ve Yazılım Tedarik Zinciri Güvenliği

Modern yazılım yalnızca kendi kaynak koduna bağlı değildir. Paket yöneticileri, üçüncü taraf kütüphaneler, konteynerler, derleme sistemleri ve geliştirme araçları da süreçte yer alır. Bu unsurlar bir yazılım tedarik zinciri oluşturur. Herhangi bir bileşenin tehlikeye girmesi, birden fazla ürünü etkileyebilir.

Bu nedenle, 2026'da Siber Güvenlik: Yeni Tehditler, Trendler ve Koruma Yöntemleri gibi başlıklar sadece sunucu ve hesap korumasını değil, aynı zamanda yazılımın çalışmasını sağlayan üçüncü parti bileşenlerin sürekli kontrolünü de içerir.

SBOM, hangi bileşenlerin nerede kullanıldığını anlamada kritik rol oynar. Ancak buna ek olarak, bağımlılık taraması, paket kökeninin izlenmesi, dijital imza kontrolü, kütüphane güncellemeleri ve açık analizleri de gereklidir.

Yazılım yayınlandıktan sonra ortaya çıkabilecek yeni güvenlik açıklarını izlemek de önemlidir. Kuruluşlar ürünlerinin güncel SBOM kayıtlarını tutarsa, sorunlu bir bileşen bulunduğunda hangi sürümlerin etkilendiğini kolayca belirleyebilir.

SBOM olmadan, eski depoları ve projeleri manuel olarak incelemek gerekir. SBOM ile analiz alanı baştan daraltılır ve hızlı reaksiyon sağlanır. Esas değer, SBOM'un dosya olarak değil, yazılımın güncel bileşen haritasını oluşturma ve yeni tehdit bilgisiyle hızla eşleştirme imkanı sunmasındadır.

SSS

  1. SBOM nedir, basitçe anlatır mısınız?

    SBOM, bir programın hangi bileşenlerden oluştuğunu gösteren yapılandırılmış bir listedir. Kütüphaneler, paketler, sürümleri ve bağımlılık ilişkileri gibi bilgiler içerir. Uygulamanın gerçek yapısını anlamayı ve potansiyel riskli bileşenleri hızla bulmayı sağlar.

  2. SBOM sıradan bir program için neden gereklidir?

    Küçük bir program bile onlarca üçüncü parti kütüphane kullanabilir. Birinde güvenlik açığı çıktığında, SBOM ile hızlıca hangi ürünlerde, hangi sürümün kullanıldığı kontrol edilir. Özellikle uzun ömürlü projelerde eski bağımlılıklar risk oluşturabilir; SBOM bu riski yönetmeyi kolaylaştırır.

  3. SBOM otomatik olarak güvenlik açığı bulabilir mi?

    SBOM tek başına açık bulmaz, sadece yazılımın bileşenlerini listeler. Açık taraması için, SBOM verisi otomatik güvenlik tarayıcıları ve açık veritabanları ile birlikte kullanılır. Bileşen ve sürümler karşılaştırılarak potansiyel riskler işaretlenir. Sonrasında geliştiriciler riski analiz eder ve gerekli önlemleri alır.

  4. CycloneDX ve SPDX arasındaki farklar nelerdir?

    CycloneDX ve SPDX, SBOM'u tanımlamak için yaygın iki standarttır. CycloneDX, tedarik zinciri güvenliğinde ve bağımlılık ilişkilerinin detaylı tanımında öne çıkar. SPDX ise paket kökeni ve lisans yönetimine daha fazla odaklanır. Birçok projede formatın adı değil, SBOM'un eksiksiz ve güncel olması daha önemlidir.

Sonuç

SBOM, bir yazılım ürününün "içindekiler listesi" gibidir: Hangi kütüphaneler, paketler ve bileşenlerin, hangi sürümlerle ve nasıl birbiriyle ilişkili olduğu gösterilir. En büyük avantajı, yeni bir güvenlik açığı tespit edildiğinde, elle her projeyi incelemek yerine SBOM üzerinden riskli bileşenlerin hızlıca tespit edilmesidir. Bu, çok sayıda üçüncü parti ve transitif bağımlılıkla çalışan modern yazılımlar için kritiktir.

Ancak SBOM, tam bir siber güvenlik çözümü değildir; açıkları otomatik olarak düzeltmez ve mutlak güvenlik sağlamaz. Değeri, yazılımın bileşen haritasını şeffaf ve güncel tutmasında yatar. SBOM'un her ürün sürümüyle birlikte oluşturulması ve güncellenmesi, bileşen taraması ve düzenli güncelleme ile birleştirildiğinde yazılım tedarik zincirinin kontrolünü büyük ölçüde kolaylaştırır.

Etiketler:

sbom
yazılım güvenliği
tedarik zinciri
güvenlik açıkları
bağımlılık yönetimi
siber güvenlik
cyclonedx
spdx

Benzer Makaleler