2025 State of Open Source raporuna göre, ankete katılan şirketlerin %96’sı; geniş seçkisi, özelleştirme seçenekleri ve sıfır lisanslama maliyetleri ile oldukça cazip olan açık kaynaklı uygulamalar kullanıyor. Bununla birlikte, ankete katılan firmaların yarısından fazlası açık kaynaklı uygulamaların sürekli bakımı konusunda önemli zorluklarla karşılaşıyor. Şaşırtıcı bir şekilde %63’ü çözümleri güncel tutmakta ve yamaları uygulamakta zorlanıyor. Hemen arkasından siber güvenlik, mevzuata uygunluk ve artık desteklenmedikleri anlamına gelen kullanım ömrü dolmuş (EoL) açık kaynaklı uygulamaların varlığı ile ilgili sorunlar geliyor. Peki, bu sorunların ortaya çıkma olasılığını nasıl en aza indirebilirsiniz ve uygulama için açık kaynaklı yazılımlar (OSS) seçerken nelere dikkat etmelisiniz?
Güncellemeler ve yamalar
Açık kaynaklı yazılımların zamanında güncellenmesi en yaygın sorun olduğundan, benimsenecek potansiyel açık kaynaklı yazılım adaylarını bu açıdan çok dikkatli bir şekilde inceleyin. Güncellemelerin sıklığını, kapsamını ve içeriğini doğrudan uygulamanın genel havuzundan kontrol etmek kolaydır. Güncellemelerin ne kadar iyi belgelendirildiğine, ne tür sorunları çözdüğüne, hangi yeni özellikleri eklediğine, küçük düzeltmelerin ana sürümden sonraki günlerde veya haftalarda ne sıklıkla yayınlandığına ve hatalarla ilgili taleplerin ne kadar hızlı sonuçlandırıldığına dikkat edin.
Git Insights gibi standart araçların yanı sıra Is it maintained?, Repology ve Libraries.io gibi tamamlayıcı hizmetler de bu soruların yanıtlanmasına yardımcı olabilir. Libraries.io, geçerli sürümün hangi eski bağımlılıkları kullandığını hemen gösterir.
Güvenlikle ilgili güncellemelere özellikle dikkat edin. Bunlar ayrı olarak mı yayınlanıyor yoksa işlevsellik güncellemeleriyle birlikte mi veriliyor? Genellikle geliştiriciler ikinci yolu seçerler. Bu durumda, güvenlik güncellemelerinin yayınlanmak için ne kadar süredir bekliyor olabileceğini anlamanız gerekir.
Ayrıca, güncellemeleri yükleme sürecinin ne kadar karmaşık olduğunu da göz önünde bulundurun. Resmi dokümantasyon ve destek bir başlangıç noktası olabilir, ancak yeterli değildir. Kullanıcı topluluğu geri bildirimlerini kapsamlı bir şekilde incelemek muhtemelen burada daha yararlı olacaktır.
Tüm bunlar, ürünün bakımı için ne kadar çaba harcayacağınızı anlamanıza yardımcı olacaktır. Destek için iç kaynakları kullanmanız gerekecektir. Sadece sorumluluk vermek yeterli değildir; bu ve ilgili görevler için özel çalışma saatleri gerekecektir.
Güvenlik açıkları
Siber güvenlik sorunlarıyla ne sıklıkta karşılaşacağınızı doğru bir şekilde tahmin etmek için, ürünün mühendislik kültürünü ve siber güvenlik hijyenini en başından itibaren değerlendirmek en iyisidir. Bu yoğun emek gerektirse de, başlangıçta üst düzey bir analiz gerçekleştirmek için otomatik araçlar kullanabilirsiniz.
Popüler ürünler ve paketler için, OpenSSF Scorecard gibi araçların mevcut sezgisel değerlendirme sonuçlarını kontrol etmek iyi bir yaklaşımdır; yamanmamış güvenlik açıklarının sayısı ve güvenlik ilkelerinin varlığından bulanıklaştırma testleri ve bağımlılık sabitleme kullanımına kadar çeşitli siber güvenlik hijyeni verileri sağlar.
Buna ek olarak, projede kaç açık keşfedildiğini, bunların ne kadar kritik olduğunu ve ne kadar hızlı düzeltildiğini anlamak için NVD ve GitHub tavsiyeleri gibi halka açık güvenlik açığı veri tabanlarını inceleyin. Çok sayıda güvenlik açığı, kendi başına kötü geliştirme uygulamalarından ziyade projenin popülerliğine işaret edebilir. Ancak asıl önemli olan, kusur türleri ve geliştiricilerin bunlara nasıl yanıt verdiğidir.
Bağımlılıklar ve tedarik zinciri
Neredeyse her açık kaynaklı yazılım projesi, genellikle belgelenmemiş olan üçüncü taraf açık kaynak bileşenlerine dayanır. Bu bileşenler kendi programlarına göre güncellenir ve hatalar, güvenlik açıkları, hatta kötü amaçlı kod içerebilirler. Buradaki kilit soru, yamalı bileşen güncellemelerinin düşündüğünüz projeye ne kadar hızlı girdiğidir.
Bunu değerlendirmek için SBOM (yazılım materyalleri listesi) veya SCA (yazılım kompozisyon analizi) araçlarına ihtiyacınız olacaktır. OWASP Dependency-Check veya Syft gibi mevcut açık kaynak çözümleri bir projenin bağımlılık ağacını oluşturabilir, ancak bunlar genellikle halihazırda çalışmakta olan, kendi havuzlarınızda veya kapsayıcı görüntülerinde konuşlandırılmış projeler için tasarlanmıştır. Bu nedenle, bağımlılık analizine derinlemesine bir bakış, en iyi şekilde ön değerlendirmeyi geçmiş ve altyapınızda yer almaya ciddi bir aday olan bir ürün üzerinde gerçekleştirilir.
Güvenilir ve iyi incelenmiş havuzlardan sağlanıp sağlanmadıklarını, popüler olup olmadıklarını ve dijital imzaları olup olmadığını belirlemek için bağımlılık listesini iyice inceleyin. Esasen, burada söz konusu riskleri değerlendirmiş olursunuz.
Teorik olarak bağımlılıklardaki zayıflıkları manuel olarak kontrol edebilseniz de, bir açık kaynaklı yazılım projesi zaten bir test ortamında dağıtılmışsa, Grype gibi araçları kullanmak çok daha kolaydır.
Büyük bir gizli zorluk, güncellemeleri izlemektir. Teorik olarak, bir proje için her bağımlılık güncellemesinin yeniden kontrol edilmesi gerekir. Pratikte bu sadece otomatik tarayıcılarla mümkündür; diğer yaklaşımlar çok pahalıdır.
Bir proje eski bağımlılıkları kullanıyorsa ve genellikle siber güvenlik açısından ideal değilse, bir alternatif aramak kesinlikle daha iyidir. Peki ya işletme temel işlevselliği nedeniyle belirli bir çözümde ısrar ediyorsa? Cevap her zamanki gibi aynıdır: Daha derin bir risk analizi yapmak, düzeltici kontroller geliştirmek ve en önemlisi sürekli bakım için önemli kaynaklar ayırmak. İç kaynaklar genellikle yetersizdir, bu nedenle söz konusu ürün için profesyonel teknik destek seçeneklerini başlangıçtan itibaren değerlendirmek akıllıca olacaktır.
Dahili ve düzenleyici gerekliliklere uygunluk
Şirketiniz için geçerli olan düzenleyici ilkeler, seçtiğiniz yazılımı ve içindeki verileri kapsıyorsa, uyumluluk denetimleri için hemen bir plan geliştirin. Çok büyük kurumsal sınıf açık kaynak uygulamaları bazen belirli denetim türlerini basitleştirebilecek destekleyici belgelerle birlikte gelir. Aksi takdirde, tüm bunları kendiniz geliştirmeniz gerekecektir ki bu da yine önemli miktarda zaman ve kaynak ayırmanız anlamına gelir.
Her sektördeki neredeyse her yazılım parçası bir lisans uygunluk denetimi gerektirecektir. Bazı açık kaynaklı bileşenler ve uygulamalar, AGPL gibi kısıtlayıcı lisanslar altında dağıtılır ve bu da yazılımı nasıl dağıtabileceğinizi ve kullanabileceğinizi sınırlar. SBOM/SCA analizi sayesinde, yazılımınız ve bağımlılıkları için tüm lisansların envanterini çıkarabilir ve ardından kullanım durumunuzun bunlardan hiçbirini ihlal etmediğini doğrulayabilirsiniz. Bu süreçler OSS Review Toolkit gibi özel araçlarla büyük ölçüde otomatikleştirilebilir, ancak otomasyon, geliştirme ekibinizin net ilkeler ve çaba göstermesini gerektirecektir.
Destek maliyetleri
Tüm bu hususları analiz ettikten sonra, uygulama desteğindeki farklı yaklaşımları karşılaştırmanıza olanak tanıyan net bir tablo elde edebilirsiniz. Kurum içi bir ekip tarafından destek için, ilgili uzmanlara saat ayırmanız gerekir. Ekibiniz gerekli uzmanlığa sahip değilse, bu uzmanlığa sahip olan birini işe almanız gerekecektir. Açık kaynaklı yazılım desteği ve güvenliğinden birincil derecede sorumlu olanların da sürekli mesleki gelişim için zamana ve bütçeye ihtiyacı olacaktır.
İç ekibinizin kaynaklarının, sınırlı personel veya uzmanlık nedeniyle destek için yetersiz olması durumunda, en az iki tür profesyonel dış kaynaklı teknik destek vardır: Red Hat gibi uygulama operasyonlarında uzmanlaşmış firmalar ve belirli uygulamalar için (Kube Clusters, MongoDB Atlas ve benzerleri) yönetilen barındırma sağlayıcıları.
Zaman ve uzmanlığın ötesinde, teknik desteğin maliyeti ve karmaşıklığı da kuruluşun yaygın açık kaynak kullanımına genel olarak hazır olup olmamasından etkilenir:
- Siber güvenlik ekibinizde Açık Kaynaklı Güvenlik (OSS) sistemlerine iyi adapte edilmiş zafiyet tarayıcıları ve risk yönetim araçları var mı?
- BT varlık izleme ve takip araçlarınız açık kaynaklı yazılım projelerini ve bileşenlerini destekliyor mu?
- Kurum içi geliştirme ekipleri için imaj, havuz ve diğer kod kaynağı tarama süreçleri CI/CD işlem hattınıza dahil mi? Kaspersky Hybrid Cloud Security gibi özel güvenlik çözümleri bu konuyu otomatikleştirebilir.
- Şirketiniz açık kaynaklı yazılım kullanımını düzenleyen bir ilke geliştirdi mi ve kararları kimin verdiği ve operasyonel konulardan kimin sorumlu olduğu konusunda net bir anlayış var mı?
Ayrıca, projenin aniden durdurulması, küçük bağımlılıkların çoğalması ve diğer tedarik zinciri riskleri de dahil olmak üzere geniş açık kaynak riskleri yelpazesini dikkate almak çok önemlidir.