Software geliştirme, süreçleri kolaylaştırmak için büyük ölçüde önceden oluşturulmuş, bazıları açık kaynak olan üçüncü taraf bileşenlerden yararlanmaya dayanır. Bu bileşenler modern web uygulamalarının yapı taşlarıdır, ancak aynı zamanda siber suçlulara sisteminize potansiyel giriş noktaları sunarak güvenlik açıklarına neden olabilir.
Bileşenler hakkında görünürlük kazanmak ve yazılımınızı oluşturan bağımlılık açıklarını yönetmek için SBOM (yazılım malzeme listesi) adı verilen bir listenin tutulması, uygulamanızın güvenliğini, risk yönetimini ve uyumluluğunu güçlendirmek için çok önemlidir.
SBOM nedir?
A Software Bill of Materials (SBOM) bir uygulamada kullanılan tüm kapalı ve açık kaynaklı bileşenlerin, kütüphanelerin ve bağımlılıkların ayrıntılı bir envanteridir. Daha basit bir ifadeyle, tıpkı fiziksel bir ürünün bileşen parçalarının ve malzemelerinin bir listesiyle birlikte gelmesi gibi, yazılımın da bileşenleri vardır.
Geliştiriciler ve satıcılar sıklıkla açık kaynak ve ticari kodları birleştirerek yazılım oluşturmaktadır. SBOM, yazılım ürünlerindeki temel kod bileşenlerinin şeffaflığını ve izlenebilirliğini sağlamak için bu bileşenleri sistematik olarak detaylandırarak tedarik zinciri güvenliğini kolaylaştırmaya ve yönetmeliklere uygunluğu sağlamaya yardımcı olur.
SBOM'un Faydaları Nelerdir?
Bir SBOM özünde üç temel fayda sağlar:

Şeffaflık
Yazılımın bileşimine dair net bir görünüm sunarak paydaşların (ister geliştirici, ister denetçi veya son kullanıcı olsun) yazılım yığınlarına giren bileşenleri anlamalarını sağlar.

Vulnerability Management
Güvenlik, yazılım geliştirme alanındaki en önemli sorunlardan biridir. Bir SBOM, bir yazılım ürünündeki bileşenleri hızlı bir şekilde belirleyebilir ve böylece güvenlik açıklarının tespit edilmesini, ele alınmasını ve düzeltilmesini kolaylaştırır.
Bir güvenlik tavsiyesi yayınlandığında, genellikle yazılım bileşenlerindeki güvenlik açıkları hakkında güncel bilgiler içerir. Kuruluşlar, bir SBOM'u en son güvenlik tavsiyeleriyle çapraz referanslandırarak uygulamalarının risk altında olup olmadığını hızlı bir şekilde belirleyebilir ve uygun şekilde güvende olmalarını sağlamak için gerekli hafifletme adımlarını atabilirler.

SDLC'deSoftware Geliştirme Yaşam Döngüsü) Entegrasyon
Yazılım geliştirme sürecinde ilerledikçe, kavramsallaştırma ve tasarımdan dağıtım ve bakıma kadar sürekli olarak güncellenir. Bir SBOM, SDLC'nin her aşamasında yazılımın bileşenlerinin, bağımlılıklarının ve ilişkilerinin net bir resminin olmasını sağlayan dinamik bir kayıt görevi görür.
Kimin SBOM'a İhtiyacı Var?
Genel anlamda bir yazılım tüketicisi, ticari olsun ya da olmasın, üçüncü taraf bileşenlerini ve üçüncü taraf yazılım yardımcı programlarını tedarikçilerden temin eden herhangi bir kuruluş olabilir. Bu tedarikçiler geniş bir yelpazeye yayılmaktadır:
- Ticari yazılım yayıncıları
- Yazılım bileşenlerini teslim eden sözleşmeli yazılım geliştiriciler
- FOSS (Özgür ve Açık Kaynak Software) açık depolarda kod yöneten tedarikçiler veya paket yöneticisi
Özellikle, bu tedarikçiler birden fazla şapka takarlar. Üretici, geliştirici, bakımcı veya sağlayıcı olabilirler. İdeal olarak, bu kuruluşlar kendi yazılım kabiliyetleri için SBOM'ları da oluşturmalıdır. Unutulmaması gereken benzersiz bir ayrım da çoğu tedarikçinin aynı zamanda tüketici olduğudur. Bununla birlikte, herhangi bir yukarı akış bileşeni olmayan bir tedarikçi genellikle bir kök varlık olarak etiketlenir.
Kamu Sektöründe SBOM
Federal kurumlar SBOM standartlarının benimsenmesi ve uygulanmasında çok önemli bir rol oynamaktadır. Bu kurumların gözetimi sadece ölçütleri belirlemekle değil, aynı zamanda daha büyük kamu yararı için bu ölçütlere uygunluğu sağlamakla da ilgilidir. Mayıs 2021'de yayınlanan ABD Yürütme Kararı 14028, NIST (Ulusal Standartlar ve Teknoloji Enstitüsü) de dahil olmak üzere geniş yetki alanlarına sahip birden fazla kurumu, yazılım tedarik zincirinin güvenliği ve bütünlüğü ile ilgili çeşitli girişimler yoluyla siber güvenliği geliştirmekle görevlendirmektedir.
14028 sayılı İcra Emri'nin 10 (j) Bölümü bir SBOM'u "yazılım oluşturmada kullanılan çeşitli bileşenlerin ayrıntılarını ve tedarik zinciri ilişkilerini içeren resmi bir kayıt" olarak tanımlamaktadır. SBOM'lar, federal departmanlar ve kurumlar tarafından güvenlik açıklarının tespit edilip giderilebilmesi için daha fazla şeffaflık, provenans ve hız sağlama potansiyeline sahiptir.
SBOM Türleri ve Tanımları
Yazılım geliştirme ve dağıtım aşamasına bağlı olarak, her biri benzersiz bir amaca hizmet eden ve yazılım bileşenleri hakkında farklı bilgiler sunan farklı SBOM türleri oluşturulur. İşte altı yaygın SBOM belgesi türü.
Tasarım
Bu uygulama geliştirme aşamasında, bazı bileşenler henüz mevcut bile olmayabilir. Bu tür bir SBOM tipik olarak bir tasarım spesifikasyonundan, RFP'den (teklif talebi) veya bir başlangıç konseptinden türetilir.
Kaynak
Doğrudan geliştirme ortamından oluşturulur ve bir ürün eseri oluşturmak için gereken kaynak dosyalar ve bağımlılıklar hakkında içgörüler sunar. Tipik olarak SCA (yazılım kompozisyon analizi) araçlarından üretilir ve zaman zaman manuel açıklamalara ihtiyaç duyar.
İnşa etme
Yazılım oluşturma sürecinin bir parçası olarak üretilen bu belge, kaynak dosyalardan, oluşturulan bileşenlerden ve diğer bağımlılıklardan gelen verileri birleştirir. Bu, yayınlanabilir bir yazılım eseri oluşturulurken üretildiği için özellikle değerlidir.
Analiz edildi
Bu SBOM, yürütülebilir dosyalar veya sanal makine görüntüleri gibi yazılım eserlerinin derleme sonrası analizinden elde edilir. Çeşitli sezgisel yöntemler içerir ve bazen "üçüncü taraf" SBOM olarak adlandırılır.
Konuşlandırıldı
Bir sistemde bulunan yazılımın kapsamlı bir envanteri. Sistemlere yüklenen yazılım bileşenlerinin SBOM'unu belgeleyerek oluşturulan bu envanter, yazılımın gerçek dünyadaki dağıtımına ilişkin bilgiler sunar.
Bir SBOM'un Unsurları Nelerdir?
NTIA'ya (Ulusal Telekomünikasyon ve Bilgi İdaresi) göre, bir SBOM'un asgari unsurları arasında yazılımın tedarikçi adı, bileşenleri, bunların sürümleri, benzersiz tanımlayıcılar, bağımlılıkların ilişkisi, SBOM verilerinin yazarı ve zaman damgası yer almaktadır. Ayrıca, SBOM verilerinin etkili ve kapsamlı olması için aşağıdaki unsurları içermesi gerekir:
- Veri Alanları: Yazılımın bileşen adını, sürümlerini ve niteliklerini detaylandıran açıkça tanımlanmış veri alanlarına sahip olmalıdır. Bu, her paydaşın yazılımın yapısını tam olarak anlamasını garanti eder.
- Otomasyon Desteği: Yazılım geliştirmenin dinamik yapısı göz önüne alındığında, bir SBOM otomatik olarak güncellenebilmeli ve yazılım geliştirme ve dağıtım işlem hatlarına entegre edilebilmelidir. Bu, gerçek zamanlı doğruluk ve verimlilik sağlar.
- Uygulamalar ve Süreçler: Bileşenleri listelemenin ötesinde, bir SBOM, oluşturulmasını, bakımını ve kullanımını yöneten en iyi uygulamalar ve süreçler içine yerleştirilmelidir.
SBOM Biçimleri
Popüler SBOM formatları şunlardır:
- SPDXSoftware Paketi Veri Değişimi)-Linux Vakfı tarafından geliştirilmiştir
- CycloneDX-Yaygın olarak uygulama güvenliği için kullanılır
- SWIDSoftware Tanımlama Etiketlemesi)-ISO/IEC 19770-2 tarafından tanımlanmıştır
Bir SBOM, her bir bileşeni kataloglayarak kuruluşların her bir yazılım parçasıyla ilişkili lisansları net bir şekilde tanımlamasına olanak tanır, böylece lisanslama koşullarıyla uyumlu kalmalarını ve olası yasal tuzaklardan kaçınmalarını sağlar.
SDLC'nizde Uyumlu Kalın ve Secure
Artan tedarik zinciri saldırıları nedeniyle federal hükümet ve özel sektör yazılım tanımlamanın öneminin farkına varmıştır. Bir SBOM, yazılım bileşenlerinin, özellikle de üçüncü taraf bileşenlerinin detaylandırılmasında çok önemlidir. SBOM verileri güvenlik açıklarının önlenmesine yardımcı olur ve SBOM oluşturulmasında şeffaflık sağlar. Güvenlik önlemlerini desteklemek için her yazılım kapsamlı bir SBOM içermelidir.
Bir SBOM, her bir bileşeni kataloglayarak kuruluşların her bir yazılım parçasıyla ilişkili lisansları net bir şekilde tanımlamasına olanak tanır, böylece lisanslama koşullarıyla uyumlu kalmalarını ve olası yasal tuzaklardan kaçınmalarını sağlar.
OPSWAT SBOM ile geliştiriciler bilinen güvenlik açıklarını belirleyebilir, lisansları doğrulayabilir ve OSS (açık kaynaklı yazılım), üçüncü taraf bağımlılıkları ve konteynerler için bileşen envanteri oluşturabilir. Yazılım tedarik zincirinizi güçlü SBOM çözümleriyle güvence altına alma hakkında daha fazla bilgi edinmek için OPSWAT'ın Software Supply Chain Güvenliği çözümünü ziyaret edin.