Homebrew Kurulumlarınızın İçinde Gizlenen Lisans Riski
GPL ve AGPL gibi açık kaynak lisansları, ticari yazılımlar için gerçek bir hukuki risk taşır — ve bu risk, kimsenin incelemediği bağımlılıkların arasından sessizce içeri sızar. Geliştiricileri yavaşlatmadan bu açığı nasıl kapatırsınız?
Homebrew üzerine yapılan güvenlik konuşmalarının hemen hepsi CVE'lere ve tehlikeli araçlara kadar gider. Lisanslama konusuna neredeyse hiç gelinmez — ta ki hukuk departmanı, ticari bir ürünün içinde copyleft lisanslı bir kütüphane bulana kadar. Bu genelde bir denetim sırasında, daha da kötüsü bir şirket satın alma sürecinin durum tespiti (due diligence) aşamasında ortaya çıkar.
Bunu öğrenmek için kötü bir zamandır. Aynı zamanda baştan önlenebilecek bir durumdur.
Kimsenin Takip Etmediği Risk
Bir geliştirici bir paket kurduğunda, farkında olsun ya da olmasın, o paketin geldiği lisansı da kabul etmiş olur. Çoğu zaman sorun yoktur: MIT, Apache, BSD. Ama bazen sorun vardır. GPL veya AGPL lisanslı bir bağımlılık, yazılımınızı nasıl dağıtabileceğinize dair gerçek hukuki yükümlülükler getirir — ve bu yükümlülükler, kod tabanınıza eklenmeden önce sizden izin istemez.
Çoğu şirketi hazırlıksız yakalayan nokta şu: sorun genelde geliştiricinin doğrudan kurduğu paket değildir. O paketin sessizce bağımlı olduğu başka bir şeydir. Kimse onu seçmemiştir, kimse incelememiştir — ve bir denetimde ortaya çıktığında iş işten geçmiş, zaten bir ürünün içine girmiştir.
Paket bazlı kontroller bunu yakalamaz, çünkü yanlış soruyu cevaplarlar. nmap'i bir ağ tarama aracı olduğu için engellemek, tek bir araçla ilgili güvenlik kararıdır. Bu modelde hiçbir şey, üç bağımlılık ötede gömülü duran bir lisans şartını izlemez.
Bunun Neden Pahalıya Patladığı
Lisans riski bir olay (incident) olarak karşınıza çıkmaz. Karşınıza duran bir satın alma süreci, kolay çözümü olmayan bir uyumluluk bulgusu ya da mühendislik ekibine "bu bağımlılığı sök ve değiştir" talimatı olarak çıkar — üstelik ürün çoktan müşteriye gitmişken. Bunların hepsi, kurulumu baştan engellemekten çok daha zor ve çok daha maliyetlidir. Üstelik bu, IT'nin tek başına karar verebileceği bir konu da değildir; hangi lisansların kabul edilebilir olduğuna hukuk karar verir.
Asıl açık burada: politikayı hukuk belirler, ama bunu gerçekten önemli olduğu tek noktada — kurulum anında — uygulatacak bir yolu yoktur.
Bu Açığı Kapatmak
EnterpriseBrew, bir lisans politikasını yalnızca kağıt üzerinde kalan bir kural olmaktan çıkarıp gerçekten uygulanan bir kurala dönüştürür. Hukuk ekibi hangi lisans şartlarının kabul edilemez olduğuna karar verir — GPL, AGPL, politika ne diyorsa — ve şirket genelindeki her kurulum, o paketin arkasından sessizce gelen her şey dahil olmak üzere, otomatik olarak bu kurala göre kontrol edilir. İsterseniz tam tersi bir modelle de çalışabilirsiniz: engellenecek lisansları değil, onaylı lisansları tanımlarsınız; listede olmayan her şey varsayılan olarak durdurulur.
Hangi modeli seçerseniz seçin, bu kişinin isteğe bağlı çıkabileceği bir ekip ayarı değil, şirket genelinde geçerli bir kuraldır. Bir mühendis için güvenlik istisnası tanımlamak mantıklıdır. Tek bir bilgisayar için hukuki istisna tanımlamak mantıklı değildir — çünkü yükümlülük, birisi fark ettiği anda değil, kod kullanıldığı anda doğar.
Sonuç
Bir lisans sorununu ürün sevk edildikten sonra öğrenmek yerine, o paket hiç kurulmaz. Hukuk politikayı bir kez tanımlar. IT bunu elle takip etmek zorunda kalmaz, geliştiriciler de uyumlu kalmak için lisans uzmanı olmak zorunda değildir — kontrol, herhangi bir makineye ulaşmadan önce otomatik olarak yapılır.
Bir sonraki denetimde artık "neyin kurulu olduğunu ve bizi neyle karşı karşıya bıraktığını" son anda anlamaya çalışmazsınız. Cevap zaten baştan uygulanmıştır.