Clear Sky Science · tr
XLNet tabanlı bir yaklaşımla yazılım açıklarını tespit etmek için uzun menzilli bağlam modelleme
Neden gizli yazılım kusurları önemli
Çevrimiçi bankacılıktan hastane sistemlerine, video oynatıcılardan sohbet uygulamalarına kadar modern yaşam yazılıma dayanıyor. Buna karşın, program kodundaki en küçük hatalar bile korsanlara kapı açabilir ve veri hırsızlığı veya hizmet kesintisi riski yaratabilir. Güvenlik uzmanları giderek milyonlarca satır kodu bu tür zayıflıklara karşı taramak için yapay zekâya yöneliyor. Bu makale, mevcut birçok aracın işleyebildiğinden çok daha geniş kod kesitlerini okuyarak ince yazılım açıklarını tespit etmeye tasarlanmış XLNetVD adlı yeni bir yapay zekâ tabanlı yöntemi inceliyor.

Basit kelime listelerinden bağlamı anlayan koda
Kodu analiz etmek için kullanılmış ilk yapay zekâ yöntemleri, her bir token’i—örneğin bir değişken adı veya sembol—neredeyse sabit anlamı olan bir sözlük kelimesi gibi ele aldı. Word2Vec veya GloVe gibi teknikler, token nerede olursa olsun ona tek bir vektör atadı. Bu doğal dil için makul şekilde işe yarasa da, aynı değişken adının nerede ve nasıl kullanıldığına bağlı olarak çok farklı davranabildiği programlar için yetersiz kaldı. Bağlamsal gömme modelleri olarak bilinen daha yeni modeller ise tüm fonksiyona bir bütün olarak bakar ve her token’in temsilini çevresine göre ayarlar. Bu, veri akışı, kontrol akışı ve değişkenlerin birbirine nasıl bağlı olduğu gibi—genellikle güvenli ve güvensiz kod arasındaki farkı belirleyen—kalıpları yakalamalarını sağlar.
Yapay zekânın dosyayı daha fazlasını okumasına izin vermek
CodeBERT ve GraphCodeBERT gibi popüler kod modelleri zaten bu bağlam farkındalığını kullanıyor, ancak genellikle “görüşlerini” yaklaşık 512 token ile sınırlıyorlar. Uzun fonksiyonlar veya kodun uzak bölümlerinde ipucu veren zayıflıklar için bu pencere çok kısa olabilir. Bir fonksiyonun başına yakın önemli kontroller, sonundaki riskli işlemlerden kesilebilir. Yazarlar bunun yerine Transformer-XL tabanlı XLNet’i temel alıyor; bu model segmentler arasında bilgiyi hatırlayabiliyor ve daha uzun dizileri rahatça işleyebiliyor (denemelerinde 768 token’e kadar). Bu, örneğin bir değerin daha önce doğrulandığını veya aslında hiç doğrulanmadığını anlamak gibi, koddaki uzak olayları birbirine bağlamada daha uygun hale getiriyor.

Güçlü modelleri hafifletip hızlandırmak
Büyük yapay zekâ modelleri genellikle güçlü donanım gerektirir; bu da onları günlük geliştirme ortamlarında kullanımı sınırlar. Bunu ele almak için yazarlar Low-Rank Adaptation (LoRA) adlı bir ince ayar yöntemini uyguluyor. XLNet’in birçok parametresini değiştirmek yerine LoRA, eğitimi ve depolanması çok daha ucuz olan küçük adaptör katmanları ekliyor. Ekip, bellek ve zaman tasarrufunun tespit kalitesindeki olası düşüşe karşı ağırlığını ölçen basit bir skoru, EffScore’u tanıtıyor. Önde gelen birkaç model arasında, LoRA ile XLNet genel olarak en verimli ortaya çıkıyor; önemli ölçüde daha az kaynak kullanırken güçlü bir doğruluk sunuyor.
Gerçek ve sentetik projelerde test
Araştırmacılar XLNetVD’yi iki çok farklı veri kümesinde değerlendiriyor. Birincisi medya kütüphaneleri ve web sunucuları gibi 12 açık kaynak projeden gerçek C kodunu içeriyor ve yaklaşık 1 açık fonksiyon başına 65 kapalı fonksiyon gibi son derece dengesiz bir oranla, büyük yazılım tabanlarının gerçeğini yansıtıyor. Diğeri ise her fonksiyonun bilinen bir zayıflık tipini temsil edecek şekilde oluşturulduğu SARD projesinden dengeli bir sentetik koleksiyon. XLNetVD bu testlerde önceki derin öğrenme sistemleri ve klasik statik analiz araçlarıyla eşleşmekle kalmıyor, aynı zamanda onları geride bırakıyor ve daha önce görmediği bir projede kusurları bulması gereken çapraz proje senaryolarında da iyi performans gösteriyor. Avantajı, uzun bağlamın kritik olduğu uzun fonksiyonlarda ve tamsayı taşmaları, kaynak yönetimi hataları ve hatalı girdi işleme gibi çeşitli zayıflık kategorilerinde özellikle güçlü.
Günlük yazılım güvenliği için anlamı
Uzman olmayan bir okuyucu için temel mesaj, bağlam farkındalıklı daha akıllı yapay zekânın kodu deneyimli bir insan inceleyicisi gibi okuyup akıl yürütebildiği, ancak makine ölçeğinde olduğu yönünde. Modelin her fonksiyondan daha fazlasını görmesine izin vererek ve onu verimli biçimde ince ayarlayarak, XLNetVD devasa bir kod tabanının hangi bölümlerinin daha yakından insan incelemesi gerektirdiğini önceliklendirmek için pratik bir yol sunuyor. Manuel güvenlik denetimlerinin veya formal yöntemlerin yerini almaz ve yazılımın hatasız olduğunu garanti edemez. Ancak, tehlikeli hataları erken yakalama olasılığını, tanımadığı projelerde bile belirgin şekilde artırarak, daha güvenilir ve güvenli dijital altyapılar için umut verici bir yapı taşı oluyor.
Atıf: Zhao, Y., Lin, G. & Liao, Z. Long-range context modeling for software vulnerability detection using an XLNet-based approach. Sci Rep 16, 5338 (2026). https://doi.org/10.1038/s41598-026-36196-9
Anahtar kelimeler: yazılım açıkları, kod güvenliği, derin öğrenme, XLNet, LoRA ince ayarı