Yapay zeka kodları zararlı paketlere açık kapı bırakıyor

Yeni bir araştırmaya göre, yapay zekâ tarafından üretilen kodların %20’ye yakını hayali paketlere referans veriyor. Bu durum, kötü amaçlı yazılımların sisteme sızmasını kolaylaştırarak yazılım tedarik zincirinde ciddi bir güvenlik açığı oluşturuyor. – DEVAMI …

yapay zeka

Yeni bir araştırma, yapay zekâ tarafından üretilen kodların, kötü amaçlı kodlarla etkileşime girmesi için yazılımın kandırılmasına olanak tanıyan uydurma bilgiler içerme olasılığının daha yüksek olduğunu ortaya koydu.

Yapay zekâ tarafından oluşturulan bilgisayar kodları, mevcut olmayan üçüncü taraf kütüphanelere bolca referans içeriyor. Bu durum, yasal programları veri çalan, arka kapılar kuran ve başka zararlı işlemler gerçekleştiren kötü amaçlı paketlerle zehirleyebilecek tedarik zinciri saldırıları için altın değerinde bir fırsat sunuyor.

16 yaygın büyük dil modeli kullanılarak oluşturulan 576.000 kod örneğini içeren araştırma, bu kodların içerdiği bağımlılıkların 440.000’inin “halüsinasyon” olduğunu, yani gerçekte var olmadığını buldu. Açık kaynak modeller en fazla halüsinasyon üretenlerdi; bağımlılıkların %21’i mevcut olmayan kütüphanelere bağlanıyordu. Bir bağımlılık, ayrı bir kod parçasının düzgün çalışması için ihtiyaç duyduğu temel bir kod bileşenidir. Geliştiricileri kodu baştan yazma zahmetinden kurtaran bağımlılıklar, modern yazılım tedarik zincirinin ayrılmaz bir parçasıdır.

Paket Halüsinasyonu Geri Dönüyor

Bu mevcut olmayan bağımlılıklar, yazılım tedarik zincirini “bağımlılık karışıklığı” (dependency confusion) saldırılarını artırarak tehdit ediyor. Bu saldırılar, yazılım paketini yanlış bir bileşen bağımlılığına yönlendirerek çalışır. Örneğin, kötü niyetli bir paketin, yasal olanla aynı isimle ancak daha yeni bir sürüm numarasıyla yayımlanmasıyla… Yazılım, daha yeni görünen kötü amaçlı sürümü seçebilir.

Paket karışıklığı olarak da bilinen bu saldırı türü, ilk olarak 2021 yılında Apple, Microsoft ve Tesla gibi dev şirketlerin ağlarında sahte kodların çalıştırıldığı bir kavram kanıtı ile gösterilmişti. Bu saldırı, yazılımı kaynağından zehirleyip tüm kullanıcıları aşağıdan yukarıya enfekte etmeyi hedefleyen tedarik zinciri saldırılarının bir çeşididir.

“Bir saldırgan, halüsinasyon sonucu oluşan isimle bir paket yayımlayıp içine kötü amaçlı kod yerleştirdikten sonra, modelin bu ismi kullanıcıya önermesine güvenir,” diyor araştırmanın baş yazarı ve Teksas Üniversitesi San Antonio doktora öğrencisi Joseph Spracklen. “Eğer kullanıcı, LLM’nin çıktısına güvenir ve paketi dikkatlice doğrulamadan yüklerse, saldırganın yükü (payload) çalıştırılır.”

Yapay zekâda halüsinasyon, bir LLM’nin gerçek dışı, saçma ya da görevle tamamen alakasız çıktılar üretmesidir. Halüsinasyonlar, uzun süredir LLM’lerin güvenilirliğini ve kullanım değerini düşüren bir sorun olmuştur ve bu sorunu öngörmek ya da düzeltmek oldukça zorlayıcıdır. 2025 USENIX Güvenlik Sempozyumu’nda sunulması planlanan bir makalede bu olguya “paket halüsinasyonu” adı verilmiştir.

Araştırmada, Python programlama dilinde 16, JavaScript’te ise 14 olmak üzere toplam 30 test yapıldı. Her testte 19.200 kod örneği üretildi ve toplamda 576.000 örneğe ulaşıldı. Bu örneklerdeki 2,23 milyon paket referansının 440.445’i, yani %19,7’si mevcut olmayan paketleri gösterdi. Bu hayali paketlerin 205.474’ü benzersiz isimlere sahipti.

Paket halüsinasyonlarını yazılım tedarik zinciri saldırıları için kullanışlı kılan şeylerden biri, bu halüsinasyonların %43’ünün 10 sorgulama boyunca tekrar etmiş olması. Araştırmacılar şöyle yazıyor: “Ayrıca, halüsinasyonlu bir paketin %58 oranında 10 yinelemenin birden fazlasında tekrar etmesi, çoğu halüsinasyonun yalnızca rastgele hatalar değil, birçok yineleme boyunca süren tekrarlanabilir olgular olduğunu gösteriyor. Bu önemlidir çünkü kalıcı bir halüsinasyon, bu güvenlik açığını istismar etmek isteyen kötü niyetli aktörler için daha değerlidir ve saldırı vektörünü daha uygulanabilir kılar.”

Yani, birçok paket halüsinasyonu tek seferlik rastgele hatalar değil. Aksine, mevcut olmayan bazı paket isimleri defalarca tekrar ediliyor. Saldırganlar bu örüntüyü fark edip, sık halüsinasyon yapılan bu hayali paket isimlerini kullanarak zararlı yazılımlar yayımlayabilir ve birçok geliştiricinin bunlara erişmesini bekleyebilir.

Araştırma, en fazla paket halüsinasyonu üreten LLM’ler ve programlama dilleri arasında farklılıklar olduğunu da ortaya koydu. CodeLlama ve DeepSeek gibi açık kaynaklı LLM’lerin ortalama halüsinasyon oranı %22’ye yakınken, ticari modellerde bu oran %5’in biraz üzerinde kaldı. Python ile yazılan kodlarda halüsinasyon oranı yaklaşık %16 iken, JavaScript’te bu oran %21’in üzerine çıktı. Spracklen bu farkların nedenini şöyle açıkladı:

“Bu soruya net cevap vermek zor çünkü büyük dil modelleri son derece karmaşık sistemlerdir. Ancak, ticari modeller (örneğin ChatGPT serisi) ile açık kaynaklı modeller arasında ciddi bir fark gözlemledik. Bunun büyük olasılıkla, ticari modellerin çok daha fazla parametreye sahip olmasından kaynaklandığını düşünüyoruz. Tahminler, ChatGPT modellerinin test ettiğimiz açık kaynaklı modellere kıyasla en az 10 kat daha fazla parametreye sahip olduğunu gösteriyor. İlginç şekilde, açık kaynaklı modeller arasında model boyutu ile halüsinasyon oranı arasında net bir ilişki bulamadık. Çünkü hepsi görece küçük bir parametre aralığında çalışıyor.”

“Model boyutunun yanı sıra, eğitim verisi, ince ayar, talimat eğitimi ve güvenlik ayarları gibi süreçlerin tümü halüsinasyon oranında rol oynuyor olabilir. Bu süreçler, modelin kullanılabilirliğini artırmak ve bazı hata türlerini azaltmak için tasarlanmış olsa da, paket halüsinasyonu gibi sonuçlara beklenmedik etkiler yapabilir.”

“Aynı şekilde, JavaScript paketlerinin Python’a göre daha fazla halüsinasyon üretmesinin kesin nedenini belirlemek de zor. Ancak, JavaScript’in Python’a göre yaklaşık 10 kat daha fazla pakete sahip olması ve daha karmaşık bir adlandırma yapısına sahip olması nedeniyle, modellerin belirli paket adlarını doğru hatırlaması daha zor olabilir. Bu da içsel tahminlerinde daha fazla belirsizlik yaratır ve nihayetinde daha yüksek halüsinasyon oranlarına yol açar.”

Bu bulgular, büyük dil modellerinin çıktılarının doğası gereği güvenilir olmadığını bir kez daha gösteriyor. Microsoft’un CTO’su Kevin Scott’un, önümüzdeki beş yıl içinde kodların %95’inin yapay zekâ ile üretileceğini öngörmesi göz önüne alındığında, geliştiricilerin bu uyarıya kulak vermesi gerekiyor.


İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*


Time limit is exhausted. Please reload CAPTCHA.