Haberler

15 Yıllık Güvenlik Açığı, Yapay Zekâ Modellerinde Hâlâ Yaşıyor

GitHub üzerinde 2010 yılında paylaşılan ve “path traversal” açığı içeren bir kod örneği, aradan geçen 15 yıla rağmen hâlâ yazılım dünyasında ciddi bir güvenlik sorunu oluşturmaya devam ediyor. Bu açık, zaman içinde Stack Overflow, MDN Web Docs gibi platformlara yayıldı ve eğitim kaynaklarında da yer aldı. Hatalı kod örneği, yapay zekâ modellerinin eğitim verileri arasında yer bulunca sorun daha da büyüdü.

Leiden Üniversitesi’nden doktora öğrencisi Jafar Akhoundali, bu açığı tespit edip onarmak için özel bir otomasyon sistemi geliştirdi. Sistem, GitHub üzerindeki projeleri tarayarak açığı buluyor, sömürülebilir olup olmadığını test ediyor ve gerekiyorsa onarım önerisi üretiyor.

Güvenlik Açığı Kod Üreten Sistemleri de Etkiliyor

Akhoundali ve araştırma ekibi, Copilot, Claude, Gemini, GPT-3.5, GPT-4 ve GPT-4o gibi büyük dil modellerine iki farklı senaryo sundu. İlk senaryoda modellerden üçüncü taraf kütüphane kullanmadan statik bir dosya sunucusu yazmaları ve ardından bunu güvenli hâle getirmeleri istendi. İkinci senaryoda doğrudan güvenli bir dosya sunucusu kodlamaları istendi.

İlk senaryoda yapılan 80 denemenin 76’sında modeller güvensiz kod üretti. Güvenli hâle getirme talebine rağmen bu sayı yalnızca 42’ye düştü. İkinci senaryoda ise 80 denemenin 56’sı yine güvenlik açığı barındıran kod örnekleri oluşturdu. Bazı modeller hatalı kodları güvenli olarak işaretlerken, bazılarıysa açık olduğunu fark etti ancak sunduğu çözüm yine güvenlik açığı içerdi. Elde edilen sonuçlar, modellerin eğitildiği verilerde bulunan hatalı örneklerin, üretilen kodların kalitesini doğrudan etkilediğini gösteriyor.

join() İşleviyle Tetiklenen CWE-22 Açığı Yaygınlaşıyor

Tespit edilen açık, Common Weakness Enumeration 22 (CWE-22) sınıfında yer alıyor. join() işlevinin iki dosya yolunu birleştirme şekli nedeniyle, uygulamanın hizmet verdiği dizin dışındaki dosyalara yetkisiz erişim mümkün hâle geliyor. Geliştiricilerin çoğu, bu açığın riskini yeterince fark etmiyor. Bunun nedeni, istemci taraflı araçların hatayı doğrudan göstermemesi olabilir. Bu açık, yalnızca geliştiricilerin ihmaliyle değil aynı zamanda eğitim verilerinde yer alan hatalı örnekler nedeniyle LLM tabanlı araçlar tarafından da yayılıyor.

Açığı Tarayan ve Onaran Otomatik Sistem Geliştirildi

Akhoundali ve ekibi, GitHub’daki açık kaynak projeleri tarayan bir otomasyon altyapısı kurdu. Sistem, önce kodu inceliyor ardından açığın sömürülebilirliğini kontrol ediyor. Eğer güvenlik açığı varsa GPT-4 yardımıyla otomatik bir yama oluşturuluyor ve proje geliştiricilerine özel olarak iletiliyor.

Toplamda 40.546 proje incelendi. Bu projelerde yer alan 41.870 dosyada açık olabileceği belirlendi. Statik güvenlik testleri sonrası sayı 8.397’ye indirildi. Bunların 1.756’sı doğrudan sömürülebilir çıktı. Bu dosyalara yönelik 1.600 geçerli yama oluşturuldu.

GPT-4 kod onarım önerisinin ekran görüntüsü

Ancak açığın kapatılması konusunda düşük bir başarı oranı gözlemlendi. Yalnızca yüzde 14’lük bir düzeltme oranına ulaşıldı. Bu durum, birçok projenin artık aktif olarak geliştirilmemesinden ya da bildirimlere gereken önemin verilmemesinden kaynaklanıyor.

Araştırmacılar, açık tespit edilen büyük projelere doğrudan GitHub üzerinden bildirimde bulunmadı. Nedeni, kötü niyetli kişilerin açığı fark edip yama uygulanmadan önce sistemi istismar etmesini engellemekti. Bu nedenle bildiriler e-posta aracılığıyla doğrudan proje sahiplerine iletildi.

Ancak geri dönüş oranı düşük kaldı. Bu durum, açık kaynak dünyasında güvenlik bildirimlerinin yeterince dikkate alınmadığını gösteriyor. Ayrıca kötü yazılmış otomatik raporların oluşturduğu bilgi kirliliği de bu ilgisizliği artırıyor.

İlgili Makaleler

Bir yanıt yazın

Başa dön tuşu