Yazılım tedarik zinciriniz, bir uygulamaya dokunan veya onun montajında, geliştirilmesinde ve dağıtımında rol oynayan her şeyi içerir. Ayrıca, geliştirme ekibiniz tarafından oluşturulan özel kod ve bileşenlerin yanı sıra, bu yazılımı oluşturmak ve son kullanıcıya sunmak için kullanılan altyapıyı da içerir.
Güvenlik faaliyetlerinizi yönlendirmesi gereken beş alanı aşağıda bulabilirsiniz. Bu beş soruyu yanıtlamak, tedarik zincirinizi güvence altına almanın başarılı ve zayıf olduğu alanlar hakkında önemli bilgiler sağlayacaktır.
1.) Kullandığınız açık kaynak güvenli mi?
Açık kaynak, kontrolsüz bir kaynaktan gelir: kuruluşunuzun dışındaki geliştiriciler. Tedarik zincirinizi güvence altına almak, özellikle harici kaynaklardan geldiğinde uygulamalarınızın oluşturduğu her şeyin görünürlüğünü korumak anlamına gelir.
Geliştiricilerin çalışmalarına hem kasıtlı hem de kasıtsız olarak açık kaynağı dahil ettiklerini unutmamak önemlidir. Aynı şey satıcılarınız için de geçerlidir; geliştiricileri bilmeden açık kaynağı projelerine dahil edebilir. Bu doğası gereği kötü bir şey olmasa da, yukarı yöndeki risklerin uygulamalarınıza girmesi için bir yol sunar. Tedarik zincirinizde açık kaynak bileşenlerini, lisanslarını, güvenlik açıklarını ve bunlarla ilişkili riskleri takip etmek sizin sorumluluğunuzdadır.
2.) Yazılım Malzeme Listesini sağlamanız gerekiyor mu?
Yazılımın bir uygulamaya girebileceği birçok yol vardır. Kasıtlı ve kasıtsız (yani geçişli bağımlılıklar) eklemeler şu yollarla girebilir:
- Paket yöneticileri
- Yapay zeka tarafından oluşturulan parçacıkları kopyala/yapıştır
- Paket yöneticisi olmayan C/C++ gibi diller
- Konteyner görüntüleri, dinamik bağlantı kitaplıkları ve diğer üçüncü taraf ikili dosyalar veya kitaplıklar
Bunların hepsi geniş bir risk yüzeyi ve belirsiz bir görünürlük yaratıyor. Uygulamalarınızda ne olduğuna dair eksiksiz ve dinamik bir görünüm olmadan ne siz, satıcılarınız ne de tüketicileriniz hangi riske maruz kaldığınızı güvenle belirleyemezsiniz. Yazılım Malzeme Listesinin (SBOM) bakımı en iyi uygulamadır ve başarılı bir tedarik zinciri güvenlik programının temel taşıdır.
3.) Yazdığınız kod güvenli mi?
Uygulamalara yanlışlıkla kodlanan güvenlik kusurları ve zayıflıkları, arabellek taşmaları, SQL enjeksiyonu ve siteler arası komut dosyası çalıştırma gibi saldırılara kapı açar. Bir sistem ihlali meydana geldiğinde, bu güvenlik kusurları hassas verileri açığa çıkmaya açık hale getirir.
Bu sorunlardan kaçınmaya yönelik çabalar genellikle kaynak kodu üzerinde daha fazla inceleme yapılmasının sorunların belirlenmesine yardımcı olacağı umuduyla kod incelemelerini içerir. Ancak çoğu yazılım geliştiricisi güvenli kodlama konusunda eğitimli değildir ve birçok güvenlik kusuru, manuel kod incelemesi sırasında tespit edilip izlenemeyecek kadar karmaşıktır.
Statik analiz çözümleri Kod yürütmeyi ve veri yollarını otomatik olarak inceleyebilen ve güvenlik zayıflıklarını tanımlayabilen bu araçlar, herhangi bir aşağı yönde risk oluşturmadığınızdan emin olmanızı sağlamak için önemli araçlardır.
4.) Geliştirme ve dağıtım altyapınız güvenli mi?
Konteynerler Bir uygulamanın veya mikro hizmetin hızla dağıtılmasını, yamalanmasını ve ölçeklendirilmesini kolaylaştırır, ancak aynı zamanda tehditlerin tedarik zincirine girmesi için ek yollar da sunar. Uygulamaları kapsayıcı hale getirirken geliştiricilerin benimsediği en yaygın yaklaşım, genellikle açık kaynak olan bir temel görüntüyle başlamak ve bunun üzerine inşa etmektir. Bu temel görüntünün üstüne ek üçüncü taraf ve özel kod katmanları eklenir ve ardından son görüntü yürütülürken ikili dosya olarak temsil edilen tek bir dosya sisteminde birleştirilir.
Yalnızca gerçek ikili analiz Konteyner görüntüsünün bir parçası, bir konteyner görüntüsünün içinde bulunan hassas verilerin yanı sıra, kökenlerine bakılmaksızın tüm açık kaynak bileşenlerini tanımlamak için bileşen imzalarını inceleyebilir.
Sanallaştırmayı ve konteyner orkestrasyonunu desteklemek için sunucular artık ihtiyaca göre spesifikasyonlara göre oluşturulan geçici bir şekilde çalışıyor. Daha önce BT operasyon mühendisleri tarafından oluşturulup bir araya getirilen sunucu yapılandırmaları artık, oluşturdukları uygulamalara yönelik yapılandırmaları kolayca belirtmek için kod olarak altyapı (IaC) kullanan geliştirme ekipleri tarafından oluşturulmaktadır.
Uygulama kaynak kodunu güvenlik zayıflıkları açısından analiz etmek için bir statik analiz aracının kullanılması gerektiği gibi, aynı zamanda geliştiricilerin genellikle dikkat edecek kadar eğitimli veya deneyimli olmadığı maliyetli yapılandırma hatalarını ortaya çıkarmak için IaC dosyalarını taramak için de kullanılmalıdır.
5.) Düzenlemeye tabi bir sektörde yazılım mı oluşturuyorsunuz veya kullanıyor musunuz?
ABD Gıda ve İlaç İdaresi (FDA) bunu zorunlu kılıyor Tümü Yazılım çalıştıran tıbbi cihazların bir SBOM oluşturması ve sürdürmesi gerekir. Eğer Linux üzerinde geliştirme yapıyorsanız, yazılımınız muhtemelen ara katman yazılımı ve ön uç çerçeveleri gibi diğer açık kaynak bileşenlerini de içeriyor ve bunların hepsinin bir SBOM aracılığıyla düzenli olarak FDA’ya bildirilmesi gerekiyor.
Ulusal Standartlar ve Teknoloji Enstitüsü (NIST), federal hükümet içindeki siber güvenliği artırmak için Güvenli Yazılım Geliştirme Çerçevesini (SSDF) geliştirdi. Sonunda, federal hükümet tarafından alınan tüm yazılımlarÜcretsiz yazılımlar veya dahili olarak geliştirilen yazılımlar hariç olmak üzere, SSDF’ye uyum sağlamak için gerekli olacaktır.
Sıradaki ne
Mevcut güvenlik faaliyetlerinizi burada sorulan sorularla birlikte incelemek, tedarik zinciri güvenliğinizin zayıf ve dikkat edilmesi gereken alanlarını belirlemenize yardımcı olacaktır.
Synopsys’in uçtan uca yazılım tedarik zinciri güvenliğine ulaşmanıza nasıl yardımcı olabileceğini öğrenin.