Yazılım Malzeme Listesi (İng. SBOM – Software Bill of Materials), bir kod tabanında bulunan tüm açık kaynak ve üçüncü taraf bileşenlerin listesidir. Yazılım Malzeme Listesi, açık kaynak kullanımı durumunda, güvenlik, lisans ve operasyonel risklere hızlı bir şekilde yanıt verebilmenizi sağlar.
SBOM ayrıca bu bileşenlerin lisanslarını, kod tabanında kullanılan bileşenlerin sürümlerini ve düzeltme yamalarının durumlarını, güvenlik ekiplerinin ilişkili güvenlik veya lisans risklerini hızlı bir şekilde tanımlamasına olanak tanıyacak şekilde listeler.
Yazılım Malzeme Listesi (SBOM), bir kod tabanında bulunan tüm açık kaynak ve üçüncü taraf bileşenlerin listesidir. SBOM ayrıca bu bileşenlerin lisanslarını, kod tabanında kullanılan bileşenlerin sürümlerini ve düzeltme yamalarının durumlarını, güvenlik ekiplerinin ilişkili güvenlik veya lisans risklerini hızlı bir şekilde tanımlamasına olanak tanıyacak şekilde listeler.
Yazılım Malzeme Listesi kavramı, endüstriyel üretimde, bir ürüne dahil edilen tüm maddelerin ayrıntılı envanterinden türetilmiştir. Örneğin, otomotiv endüstrisinde üreticiler her araç için ayrıntılı bir malzeme listesi tutarlar. Bu malzeme listesi, orijinal ekipman üreticisinin kendisi tarafından üretilen parçaları ve üçüncü taraf tedarikçilerden gelen parçaları listeler. Arızalı bir parça keşfedildiğinde, otomobil üreticisi hangi araçların etkilendiğini tam olarak bilir ve araç sahiplerine onarım veya değiştirme için geri çağırma duyurusu yapabilir.
Benzer şekilde, yazılım geliştiren akıllı kuruluşlar, kodlarının yüksek kaliteli, uyumlu ve güvenli olduğundan emin olmak için üçüncü taraf ve açık kaynaklı bileşenlerin envanterini içeren doğru, güncel bir yazılım Malzeme Listesi tutarlar.
Kuruluşlar neden bir Yazılım Malzeme Listesi’ne ihtiyaç duyar?
2021’de Codecov, Kaseya ve en son Apache Log4j dahil olmak üzere birçok yüksek profilli güvenlik ihlali gerçekleşti. Bu tür tedarik zinciri saldırıları, ABD Başkanı Biden’ı federal departmanların, ajansların ve hükümetle iş yapan yüklenicilerin yazılımlarını nasıl güvence altına alması gerektiğine dair ayrıntılı yönergeler içeren bir siber güvenlik yürütme emri (EO – cybersecurit executive order) yayınlamaya sevk etti. Öneriler arasında, federal hükümet tarafından kullanılan yazılım uygulamalarının güvenliğini ve bütünlüğünü sağlamak üzere SBOM’lar için bir gereklilik vardı.
Siber Güvenlik Yürütme Emri, sadece hükümetle iş yapan kuruluşlara yönelik olsa da, SBOM’lar da dahil olmak üzere bu yönergeler, tüm kuruluşların yazılım uygulamalarını nasıl oluşturdukları, test ettikleri, güvenli hale getirdikleri ve işletmeleri için fiili bir temel haline gelecektir.
Yazılım geliştiren her kuruluşun, kod tabanları için bir SBOM tutması gereklidir. Kuruluşlar yazılım oluşturmak için genellikle, özel yapım kod, ticari kullanıma hazır kod ve açık kaynak bileşenlerinin bir karışımını kullanır. Önde gelen bir yazılım tedarik zinciri sağlayıcısının baş mimarlarından birinin belirttiği gibi, “Yüzden fazla ürüne sahibiz ve bu ürünlerin her biri yüzlerce, hatta binlerce farklı üçüncü taraf ve açık kaynaklı bileşene sahiptir.” Bir yazılım Malzeme Listesi, kuruluşların kod üslerindeki tüm bileşenleri izlemelerini sağlar.
Yazılım Malzeme Listesinde ne var?
SBOM, bir kod tabanına ait, tüm açık kaynak bileşenlerinin, bu açık kaynak bileşenlerin lisans ve sürüm bilgilerinin ve bu bileşenlerde bilinen güvenlik açıklarının tam bir envanteridir.
Açık kaynak bileşenleri
Yazılım geliştiricileriniz kodunuzda açık kaynaklı bileşenler kullanıyor mu? Açık kaynak, geliştirme süresini kısaltmaya, yürütme hızını artırmaya ve ürünlerinizi müşterilerinize karlı bir şekilde teslim etmenize yardımcı olur. 2021 “Açık Kaynak Güvenlik Riski ve Analizi” (OSSRA) raporuna göre, taranan kod üslerinin %98’i açık kaynak içeriyor.
Açık kaynak kullanımının, özel koddan daha fazla veya daha az riskli olduğunu söyleyemesek de, yeterince güvenli hale getirilmemesi kuruluşunuzun genel güvenliği için daha fazla risk oluşturacağını söyleyebiliriz. Çok az şirket kullandıkları açık kaynak hakkında çok fazla görünürlüğe sahiptir ve daha da azı açık kaynak bileşenleri içeren doğru, güncel bir malzeme listesi üretebilirler. Kapsamlı bir SBOM, uygulamalarınızdaki tüm açık kaynak bileşenlerinin yanı sıra bu bileşenlerin lisanslarını, sürümlerini ve düzeltme yamaları ile ilgili durumu listeler.
Açık kaynak lisansları
Uygulamalarınızın açık kaynaklı bileşenlerinin lisanslarının izin veren (İng. permissive) veya viral olup olmadığını biliyor musunuz? En iyi açık kaynak lisanslarından birini mi, yoksa bir kerelik bir varyasyonu mu kullanıyorsunuz?
Açık kaynaklı lisanslarına uyulmaması, işletmeleri önemli bir dava ve fikri mülkiyet gaspı (IP) riskine maruz bırakabilir. OSSRA raporunda denetlenen kod tabanının %65’inden fazlası, genellikle GNU Genel Kamu Lisansı’nı içeren açık kaynaklı yazılım lisansı çakışmaları içermekte. Bu çakışmalar birleşme ve satın almalar, satıcı anlaşmazlıkları ve dağıtım sorunları ile ciddi etkilere yol açabilir. Bu noktada, bir yazılım Malzeme Listesi, kullandığınız bileşenlerin açık kaynak lisanslarını listeleyerek yasal ve IP riskinizi tam olarak belirlemenize ve değerlendirmenize olanak sağlar.
Açık kaynak sürümleri
Kod tabanınızdaki açık kaynak bileşenlerinin korunup korunmadığını biliyor musunuz? Ekipleriniz, zamanı geçmiş bileşenleri, yeni geliştirme etkinliği olmayan bileşenleri veya kodu korumak için yeterli geliştirici topluluğuna sahip olmayan bileşenleri kullandıklarında, operasyonel risk ortaya çıkabilir. Düşük kod kalitesi, güvenilirlik ve bakım sorunlarının yanı sıra, operasyonel risk de güvenlik risklerine yol açabilir. Hataları bulan ve düzelten geliştiriciler yoksa, güvenlik hatalarını bulan, açıklayan ve düzelten geliştiriciler de yoktur, bu da onu tehdit aktörleri için daha kolay bir hedef haline getirir. SBOM , kodunuzda bulunan ve eski, güvenilmeyebilecek herhangi bir kod kullanıp kullanmadığınızı belirlemeye yardımcı olmak için kullanılabilecek açık kaynak bileşenlerinin sürümlerinin bir listesini sağlar.
Açık kaynak güvenlik açıkları
Kullandığınız açık kaynak bileşenlerinin bilinen bir güvenlik açığı olup olmadığını biliyor musunuz? OSSRA raporunda, denetlenen 1.500 kod tabanının %84’unun en az bir açık kaynak açığına sahip olduğu ortaya kondu. Kötü bir şöhrete sahip Apache Struts veya OpenSSL’i gibi yalnızca bir avuç açık kaynaklı güvenlik açığı yaygın olarak istismar yaratabilir. Ancak böyle bir istismar meydana geldiğinde, açık kaynak güvenliği ihtiyacı, 2017’nin Equifax veri güvenliği ihlalinde olduğu gibi ön sayfa haberi haline gelir. Equifax’ın ihlaline önemli bir katkıda bulunan faktör, şirketin kapsamlı bir BT varlık envanterine sahip olmamasıydı, başka bir deyişle bir SBOM bulunmamasıydı. Olayla ilgili bir rapor, “Bu, Equifax’ın ağlarında güvenlik açıkları olup olmadığını bilmesini imkansız olmasa bile zorlaştırdı.” diyerek sonlandırdı. “Bir güvenlik açığı bulunamazsa, düzeltme eki de uygulanamaz.”
2021’in sonunda Log4j, bir SBOM’a sahip olmanın önemini vurgulayan bir başka ders oldu. Güvenlik açığı açıklandıktan hemen sonra, kötü niyetli aktörler bunları istismar etmesin diye bir yama uygulama yarışı başlamıştı. Her saniyenin önemli olduğu bir durumda, bir yazılım Malzeme Listesine sahip olmak, kod tabanınızdaki riskleri hızlı bir şekilde belirlemenize ve değerlendirmenize yardımcı olabilir.
Nasıl Yazılım Malzeme Listesi oluşturabilirim?
Synopsys Black Duck® gibi güçlü bir yazılım kompozisyon analizi (SCA) aracı tam bir açık kaynak SBOM oluşturabilir ve hatta üçüncü taraf ve özel bileşenleri ekleme yeteneği de sunar. En önemlisi, SCA araçları bu bilgileri sürekli olarak sağlayabilir ve açık kaynaklı risklerinizin en güncel resmine sahip olmanızı sağlayabilir .
Açık kaynağın günümüzde uygulama geliştirmenin önemli bir bileşeni olduğu göz önüne alındığında, her yazılım geliştirme ekibinin, kodlarındaki açık kaynak ve üçüncü taraf bileşenlerin envanterini çıkarmak için etkili bir SCA aracı kullanması elzemdir.
Açık kaynaklı yazılım kullanımını yanında, güvenlik, lisans ve operasyonel risklere hızlı bir şekilde yanıt vermek istiyorsanız, güncel bir yazılım Malzeme Listesi’nine sahip olmak çok önemlidir.
Kaynak: