06 Nisan 2024 04:53

XZ arka kapısı ve açık kaynağın zaafları

Görsel: Pixabay

Paylaş

XZ, yaygın Linux dağıtımlarının hemen hepsinde ve MacOS’ta dosya sıkıştırma amacı ile kullanılan bir yazılım paketi. Geçen hafta, başka bir vakada kolayca tekrarlanamayacak bir tesadüfler zinciri sonucunda paketin 5.6.0 ve 5.6.1 sürümlerine bir arka kapı yerleştirildiği ortaya çıktı. XZ 5.6.x paketleri henüz yeni sayılabilecek paketlerdi ve henüz sadece en yeni paketleri kullanmayı adet edinmiş birkaç Linux dağıtımına ulaşabilmişti. Eğer keşfedilmeseydi ve daha sakin bir şekilde yazılımlarının paketlerini yükselten dağıtımlara da ulaşsaydı saldırganlar dünyadaki aktif Linux sunucuların büyük bir çoğunluğunda tam yetki ile komut çalıştırabilecek bir olanağa sahip olacaktı. CVE 2024-3094 kodu verilen arka kapı risk puanlaması yapılan CVSS sisteminde 10 tam puan ile “kritik” olarak değerlendiriliyor.  Web’i var eden sunucuların yüzde doksandan fazlasının Linux tabanlı olduğu göz önünde bulundurulduğunda tehlikenin büyüklüğü de biraz daha anlaşılır olacaktır. Tehlikenin büyüklüğü hem vakayı daha detaylı analiz etmemizi hem de modern dijital altyapımızın en önemli payandalarından olan açık kaynaklı yazılım ekosisteminin kapitalizm içindeki durumunu tartışmamızı zorunlu kılıyor.

Arka kapının teknik detayları bu köşenin sınırlarını aşacaktır ancak keşfedilmesinin ne kadar tesadüfi olduğunun anlaşılması önemli. Hikaye, Microsoft’ta yazılım mühendisi olarak çalışan aynı zamanda da yaygın veri tabanı uygulamalarından PostgreSQL’in geliştiricilerinden olan Andres Freund’un Linux sistemlere konsol tabanlı uzaktan erişim için kullanılan sshd’nin gereğinden fazla işlemci gücü kullandığını fark etmesi ile başlıyor. “Gereğinden fazla” derken aslında devasa farklardan bahsetmiyoruz. Sshd’de 0,3 saniye sürmesi gereken işlem 0,8 saniyede tamamlanıyor. Freund, normal şartlarda çok da dikkat çekmeyecek, çekse bile umursanmayacak bu yarım saniyelik gecikmeyi seziyor ve gecikmenin kaynağını tespit etmek için uğraşmaya başlıyor. Çeşitli araçlarla yaptığı analizlerde kullanılan işlemci zamanının çoğunluğunun XZ paketinin bir parçası olan liblzma’da geçtiğini tespit ediyor. Birkaç hafta önce bir PostgreSQL kullanıcısının otomatik Valgrind testlerine dair şikayeti aklına geliyor. Özetle bir yazılım mühendisinin yarım saniyeyi kafasına takması PostgreSQL’de gördüğü bir şikayet ve birkaç tesadüfi denk geliş ile birleşerek XZ’ye gömülü arka kapının bulunmasını sağlıyor.

Gizlemek ve kodunu anlaşılmaz kılmak için epeyce çaba sarfedilmiş olan arka kapıya dair teknik analizler sürüyor ancak arka kapının bir de “sosyal” kısmı var. XZ birkaç yıl önceye kadar tek bir geliştirici tarafından normal işinden arta kalan zamanlarda geliştirilen bir yazılım. İki yıl kadar önce geliştiricinin kendi yaşamının gidişatındaki sorunlarla da bağlantılı olarak XZ’ye çok zaman ayıramaması Jia Tan adını kullanan bir kullanıcı tarafından tartışmaya açılıyor. Jia Tan mahlaslı geliştirici bir şekilde güven kazanarak projeye dahil oluyor ve iki yıl boyunca projeye katkıda bulunuyor. İki yılın sonunda Jia Tan birkaç farklı seferde parçalara ayrılmış arka kapı kodunu kimseye fark ettirmeden projeye eklemeyi başarıyor. Kodu gizleme çabasının büyüklüğüne, operasyonun süresine ve JiaTan’ın iki yıl boyunca kod eklemelerinin mesai saatlerine denk gelen bir düzende olmasına varana dek çeşitli parametreleri göz önünde bulundurduğumuzda elimizde uzunca bir süre üzerinde çalışılmış devlet seviyesinde bir aktörce desteklenen bir operasyon olduğundan şüphelenecek kadar veri var.

Bu operasyonun tespit edilmiş olması daha bu şekilde tespit edilmemiş kaç operasyon olduğu sorusunu ister istemez gündeme getiriyor. Mevcut dijital altyapımızın bel kemiğinde bir ya da birkaç kişi tarafından bir karşılık beklemeden normal işlerinin dışında kalan zamanlarda geliştirilen XZ gibi çeşitli “hobi” projeleri mevcut. Hemen her yerde kullanılan Curl’ü tek kişi geliştiriyor. Sayısı 1 trilyonu aşan veri tabanı, geliştirilmesi 3 kişi tarafından sürdürülen SQLite’a dayanıyor. Güncel video teknolojilerinin neredeyse tamamının belkemiği olan FFMpeg’in bir avuç geliştiricisi var. Öte yanda ise bu yazılımların üzerinde trilyon dolarlık dev şirketler yükseliyor. Bu şirketlerin açık kaynak geliştiricilere sundukları sınırlı ya da tek seferlik mali katkılar geliştiricilerin hayatlarını sürdürmesini sağlayacak kadar büyük değil. Ticari başarıya ulaşan az sayıda projedeki geliştiricileri dışarda bırakırsak açık kaynak geliştiricilerin ezici çoğunluğu hayatlarını sürdürmek için çalıştıkları bir işe ek olarak açık kaynak projelerde gönüllü olarak yer alıyor. XZ örneğinde yaşanan şekli ile açık kaynak geliştiricinin tükenmişlik sendromuna girmesi de kötü niyetli bir saldırganın bu boşluğu doldurması da bu mevcut modelin olağan sonucu.

Açık kaynağın güvenilirliğine dair en önemli argümanlardan biri Linus Kanunu olarak da anılan, ilk kez Erich S. Raymond tarafından “Katedral ve Pazar” makalesinde dile getirilen “Bakan yeterince göz varsa tüm açıklar sığdır” cümlesidir. İdeal şartlar altında doğru olan bu argüman zaten kendisinin işlemeyeceği koşulu baştan belirtir: Bakan yeterince göz olmaması. Pek çok açık kaynaklı proje bakacak yeterince göze sahip olmanın henüz çok uzağında.

YAZARIN DİĞER YAZILARI
Sefer Selvi Karikatürleri
Evrensel Gazetesi Birinci Sayfa