Açık Kaynağın Geleceği Tehdit Altında mı?

Yayınlanan: 2023-01-24

Açık Kaynak Yazılım (OSS), günümüzün uygulama mimarisinin bel kemiğidir. Açık kaynak, pazara sürüm süresini hızlandırarak ve genellikle fazla çalışan geliştiricilerin üzerindeki yükü azaltarak DevOps ortamındaki devrim niteliğindeki konumunu sağlamlaştırdı. Açık kaynak kopyala ve yapıştır, modern uygulamaların gelişimi için derinden dönüştürücü olsa da, hem kuruluşlar hem de bireyler için büyük bir güvenlik riski oluşturmaya devam ediyor. Bununla mücadele etmek, ya açık kaynak kodunun tamamen kara listesini ya da yeni nesil bir WAF çözümü gibi karşı önlemlerin proaktif bir şekilde uygulanmasını gerektirir.

Üçüncü Taraf Kodu, Uygulama Geliştirme İçin Çok Önemlidir

Kitaplıklar, web veya mobil uygulama bileşenleri için inanılmaz derecede kullanışlı kaynak kod depolarıdır. Bu kitaplıklar açık kaynak olabilir - ücretsiz olarak herkes tarafından kullanılabilir - veya ödemenin ardındaki kodu kilitleyen tescilli olabilir. Açık kaynak, ihtişamın çoğunu talep etse de, özel kod, kurumsal uygulamaların sürekli işleyişinde de rol oynar.

Bu üçüncü taraf yazılım, sorumlu bir şekilde kullanıldığında, geliştiricilerin sürekli olarak tekerleği yeniden icat etme zorunluluğunu ortadan kaldırır. Bu, yüksek kaliteli nihai ürünün üretimine yardımcı olurken, geliştirme sürecinin verimliliğini büyük ölçüde artırır. Nihayetinde, açık kaynak kodunun özgür ve liberal kullanımı, olumlu bir geri bildirim döngüsü yaratarak geliştiricilerin minimum uygulanabilir ürünlerini daha hızlı piyasaya sürmelerine olanak tanır ve bu da kullanıcı geri bildirimi ve değerlendirmesinin hızlı bir şekilde toplanması ve uygulanmasının yolunu açar. Geliştiriciler, açık kaynağın DevOps sürecindeki kritik konumunun derinden farkında olsalar da yöneticiler, modern uygulamaları destekleyen kodun %80'inin önceden var olan koddan kaynaklandığını öğrenince genellikle şaşırırlar.

Geçişli Bağımlılıkların Gölgeli Tehlikesi

Açık kaynak kodunun riskli olduğu yeni bir haber değil. Log4j ve HeartBleed gibi son zamanlarda yaygın olan zayıflıklar, açık kaynak riskini geri dönülmez bir şekilde haritaya yerleştirdi. Büyüyen bir anlayış alanı olmaya devam eden şey, açık kaynağın kullanıldığı katıksız sıklık ve güvenlik açıklarının aktif bir projeye sızabileceği gizliliktir. Açık kaynak projelerinin sunduğu devam eden riske rağmen, açık kaynağın sunduğu belirli risk türleri hakkında çok az araştırma yapılmıştır. Endor Labs'tan araştırmacılar, büyük OSS tehditlerinin kaynağını açıklığa kavuşturarak bunu değiştirmek için yola çıktı.

Yazılım içinde geçişli bağımlılıklar, iki bileşen arasındaki benzersiz şekilde dolaylı bir ilişkiyi tanımlar. Örneğin, geliştirici ekibinizin devam eden bir projeye B paketini eklediğini varsayalım. Buna karşılık B Paketi, C paketini otomatik olarak indirir. Bu senaryoda, gelişen yazılım B paketiyle doğrudan bir ilişkiye sahipken, C paketi arka planda gizlenmeye devam eder – ayrılmaz ama büyük ölçüde görünmez. Daha güvenli geliştirme uygulamalarına yönelik herhangi bir girişimi hayal kırıklığına uğratan şey, açık kaynak yazılım bağımlılıklarının yalnızca %5'inin DevOps sürecinde uygulama için manuel olarak seçilmesidir. Bu şekilde, çoğu bağımlılık basitçe otomatik olarak kod tabanına çekilir. Bu, geçişli bir güvenlik açığının kaynağını açıklar. Endor Labs'ın yakın tarihli bir raporu , açık kaynak güvenlik açıklarının şaşırtıcı bir şekilde %95'inin geçişli bağımlılıklardan kaynaklandığını ortaya koydu.

Veriler, Core Infrastructure'ın en popüler ücretsiz açık kaynaklı yazılımları listeleyen Census II raporundan derlendi. Bu veriler daha sonra Endor araştırmacılarının popüler paket yöneticilerini ve OSS kitaplıklarını taramasına izin veren diğer kaynaklarla zenginleştirildi. Araştırmacılar, Census II verilerinde bahsedilen 254 paketten çoğunun ortalama 14 geçişli bağımlılıktan muzdarip olduğunu keşfettiler. Bir boşlukta, 14 şaşırtıcı derecede yüksek görünmeyebilir, ancak çoğu uygulama düzinelerce - yüzlerce değilse de - doğrudan bağımlılığa dayanır; geçişli muadilleri katlanarak ölçeklenir.

Araştırmacılar tarafından dile getirilen en büyük endişe, endüstrinin sorunu yaygın bir şekilde hafife almasına dayanıyor. Yöneticiler, geliştirme sürecinde kullanılan kaynak kodu miktarını baltalamaya devam ediyor - geçişli bağımlılıklar henüz radarda bile değil. Güvenlik sorunlarının katıksız derinliği, yüzeyin altında gizlenmeye devam ederek yazım hatası ve uzaktan kod yürütme saldırılarının patlama yarıçapını artırıyor. Açık kaynak kodunun sürekli olarak yeniden kullanılması, potansiyeline tam olarak ulaşacaksa, DevOps sürecinde güvenliğin daha yüksek bir öncelik haline gelmesi gerekir.

Gizlenen Güvenlik Açıklarına Karşı Nasıl Korunulur?

Güvenli bir teknoloji yığınını koruma süreci hiç bu kadar karmaşık olmamıştı. Yama uyarılarının hızla bunaltıcı hale gelmesiyle, kurumsal güvenliğin otomatikleştirilmiş, yamasız korumaya öncelik vermesinin zamanı geldi. Statik ve dinamik analizin yanı sıra çevre güvenliğine öncelik veren geleneksel önlemler, manuel güncellemelere dayanır, yani sıfır güne karşı koruma yoktur. Saldırganların kötü şöhretli SolarWinds saldırısında kullandıkları arka kapı kodu, teknik olarak herhangi bir hata olmadığı için herhangi bir statik analiz tarafından tespit edilemedi.

İstismar girişiminin belirlenmesi ve engellenmesi, küçük bir birbirine bağlı yazılım paketi gerektirir. Öncelikle bir uygulamanın çevresini tanımlamaya ve korumaya yardımcı olmak için yeni nesil bir Web Uygulaması Güvenlik Duvarı (WAF) dağıtılabilir. Harici ve dahili arasındaki sınırda oturan WAF, bir uygulamaya gelen ve bir uygulamadan akan tüm trafiği izler. Yeni nesil özellik, bu WAF'ın yeni politikaları otomatik olarak uyarlamasını ve uygulamasını sağlar. Bu sürekli evrimin otomatik konuşlandırılması, güvenlik ekibi için eski tarz bir WAF'ın aksi takdirde tüketeceği önemli miktarda zaman ve enerji tasarrufu sağlar.

WAF, herhangi bir harici kod yürütme girişimini kontrol altında tutarken, Çalışma Zamanı Uygulama Kendi Kendini Koruması (RASP), dahili zayıflıklara ve kod enjeksiyonlarına karşı koruma sağlar. Bu koruma düzeyi, tüm yükleri (SQL sorguları ve işletim sistemi komutları gibi) gerçek zamanlı olarak değerlendirir. Bu süreç, imza veya öğrenme aşaması gerektirmez ve tamamen uygulama bağlamında gerçekleşir. Bu, uygulama içinde çalıştığı için neredeyse tüm bağlamları kapsar. Bu, bir açıktan yararlanma çevrenin aşılmasına izin verse bile, herhangi bir şüpheli uygulama davranışı bir RASP kapatmasını tetikleyeceğinden, bir saldırganın yatay olarak hareket etmesinin engellendiği anlamına gelir. Bu, şüpheli etkinliği sonlandırır ve güvenlik ekiplerini uyarır. Bu şekilde RASP, yeni nesil bir WAF'ı tamamlayıcı niteliktedir; WAF, kötü trafiğin dışarıda tutulmasına yardımcı olurken, gizlenen, geçişli istismarların oluşturduğu risk, RASP tarafından hafifletilir. Bir teknoloji yığınını koruyan bu bileşenlerle, OSS'nin şu anda güvenliğe yüklediği yük önemli ölçüde hafifliyor.