Açık kaynak güvenliğinde Python’dan tarihi adım

Python ekosisteminde açık kaynak projelerini etkileyen “görünmez bağımlılıklar” sorunu için yeni bir çözüm adımı atıldı. Python Software Foundation’ın, Open Source Security Foundation’ın “Alpha-Omega” projesi desteğiyle 2023’ten bu yana görev yapan Güvenlik Geliştiricisi Seth Larson, konuyla ilgili 11 sayfalık bir teknik rapor ve kabul edilen yeni bir Python Enhancement Proposal (PEP) yayınladı.

Python PEP 770 ile kritik güvenlik açığını kapatıyor

Görünmez bağımlılıklar (phantom dependencies), paketleme metadatalarında, manifestlerde veya kilit dosyalarında yer almayan, bu nedenle güvenlik tarayıcıları ya da uyumluluk araçları tarafından tespit edilemeyen yazılım bileşenlerini ifade ediyor.

Bu sorun özellikle Python ekosisteminde sık görülüyor. Endor Labs’ın 2023 Bağımlılık Raporu’nda Python, bu durumdan en fazla etkilenen paketleme ekosistemlerinden biri olarak listelendi.

Python’un bu sorundan yoğun şekilde etkilenmesinin üç temel nedeni öne çıkıyor. Birincisi, Python’un C-API veya FFI aracılığıyla Python dışındaki yazılımlarla entegre olabilmesi. Bu yöntemle C, C++, Rust, Fortran, WebAssembly gibi dillerde yazılmış yazılımlar, Python API’leri aracılığıyla kullanılabiliyor.

İkincisi, Python’un bilimsel hesaplama ve yapay zeka alanında yaygın olarak kullanılması nedeniyle, yüksek performanslı ve sistem dillerinde yazılmış kütüphanelere erişim gereksiniminin fazla olması.

Üçüncüsü ise Python paketlerinde “wheel” adı verilen, zip dosyası mantığında dağıtım formatının kullanılması. Bu format, kurulum sırasında derleme adımı içermediği için derlenmiş dillerin önceden binary formatına dönüştürülmesini gerektiriyor.

Yeni kabul edilen PEP 770, bu soruna çözüm olarak Software Bill-of-Materials (SBOM) temelli metadata standardını devreye alıyor. Bu standart, paketlere ek metadata sağlamayı kolaylaştırıyor ve çoğu proje için ek yapılandırma gerektirmeden kullanılabiliyor. SBOM yaklaşımı, yalnızca Python’a değil, benzer sorun yaşayan diğer paketleme ekosistemlerine de uyarlanabilecek yapıda tasarlandı.

PEP 770, metadata’yı yeni bir alan eklemek yerine dosya dizini şeklinde tanımlayarak, paketleme araçlarının bakımını gönüllü olarak üstlenen geliştiricilerin iş yükünü azaltıyor. Python Software Foundation, popüler SBOM ve güvenlik tarama araçlarında bu standart için uyumluluk geliştirmeleri yapılması amacıyla konular açacağını ve zamanla görünmez bağımlılık sorunlarının azalacağını belirtiyor.

Seth Larson’ın raporu, PEP 770’in tasarım sürecini, karşılaşılan zorlukları ve uygulama aşamalarını detaylandırırken, diğer açık kaynak paketleme ekosistemlerinin de bu yaklaşımı benimseyebileceği vurgulanıyor. Python ekibi, bu çözümü uygulamak isteyen diğer ekosistemlere rehberlik desteği vermeye hazır olduklarını açıkladı.

Exit mobile version