Kodlama Tarzın Seni Ele Verebilir—Ama İşin Bir Tuzağı Var

Kodlama Tarzın Seni Ele Verebilir—Ama İşin Bir Tuzağı Var

May 05, 2026 vulnerability detection machine learning security code analysis secure coding static analysis developer tools ai-assisted development cybersecurity research

Yazılan Kod da İmza Gibi: Güvenlik Açıklarını Ortaya Çıkarabilen Yöntemler ve Sınırları

Her programcının kendine özgü bir yazma tarzı vardır. Biri parantezleri mükemmel şekilde hizalar, diğeri değişken isimlerini kısa tutmaktan hoşlanır. Kimi üç seviye derinliğinde döngü yazmaktan çekinmez, kimi ise her şeyi yardımcı fonksiyonlara bölerek düzenler. Binlerce satır kod içerisinde biriken bu minik alışkanlıklar, el yazısı kadar kişiye özgüdür.

UMass Dartmouth'taki güvenlik araştırmacıları ilginç bir soru soruyor: Bu yazma tarzı özelliklerini kullanarak, güvenlik açıklarını kodlar yayına çıkmadan yakalayabilir miyiz?

Riskli Kodun Saklı Dili

Buradaki mantık çok basit ve zarif. Bir geliştirici kötü alışkanlıklarla çalışıyorsa—buffer işlemlerinde özensiz davranan, pointer aritmetiğinde tutarsız olan, değişken isimlerini düzensiz seçen—bu alışkanlıklar kod tabanı boyunca tekrar eder. Riskli yazım tarzı başında ortaya çıkıp sonra aniden düzelişe geçmez; bir aksandan kurtulamamak gibi sürekli devam eder.

Bu noktada devreye VulStyle giriyor. Makine öğrenmesiyle çalışan bu model, kodlama stilini bir güvenlik göstergesi olarak ele alıyor. Bilinen tehlikeli fonksiyonları veya API çağrılarını aramak yerine, daha derin özellikleri analiz ediyor: değişken bildirimlerinin biçimi, ifadelerin yapısı, koşul ve döngülerin oluş şekli. Bunları geleneksel yapısal analizle birleştiriyor.

İlk sonuçlar umut verici görünüyordu. Çeşitli test setlerine karşı test edildiğinde, stil odaklı yaklaşım sadece sözcük ve sözdizimi analiz eden modellerden daha iyi performans gösterdi. Araştırmacılar şunu vurguladılar: yapı kodu ne yaptığını söylerken, stil nasıl yazıldığını gösteriyor. İkisinin birlikte sunduğu resim riskleri daha net ortaya koymaktadır.

Kimsenin Konuşmak İstemediği Testin Sorunları

Fakat burada işler biraz karışıyor.

VulStyle bazı veri setlerinde oldukça başarılı iken, diğerlerinde çok zayıf kalıyor. DiverseVul adlı ve eski veri setlerinin sorunlarını gidermek için tasarlanan yeni bir test seti üzerinde modelo performansı çarpıcı biçimde düşüyor. Araştırmacılar da kendi çalışmalarında pek çok popüler güvenlik testinin hatalı etiketler içerdiğini ve bu sebeple raporlanan doğruluk oranlarının sahte olduğunu kabul ediyorlar.

Bu VulStyle'a özgü bir sorun değil. Makine öğrenmesi güvenlik araştırması genelinde aynı sorun görülüyor: Birinci veri seti üzerinde eğitilen model laboratuvarda başarılı görünüyor, fakat üretim ortamında bambaşka veri seti karşısında başarısız oluyor. Mesele modelde değil, veri setleri nasıl oluşturulduğunun, eğitim verilerinin seçilmesinin ve gerçek dünyayı yansıtıp yansıtmadığının içinde yatıyor.

Güvenlik ekipleri açısından gerçekten dikkat edilmesi gereken bulgu: doğruluk oranları hakkındaki başlıklar sandığınız kadar önemli değildir.

Yapay Zeka Tarafından Üretilen Kodun Fenomeni

Fakat daha temel bir sorun var. Özellikle 2024'te ve sonrasında kod yazanlar için bu çok önemli.

VulStyle'ın bütün varsayımı programcıların ayırt edilebilir, ölçülebilir bir yazma tarzına sahip olmalarına dayanıyor. Oysa günümüzün kod depolarında gittikçe daha fazla kod yapay zeka modellerinin ürettiği kod oluyor. GitHub Copilot, ChatGPT, Claude gibi araçlar şu özelliklere sahip kod üretiyorlar:

  • Düzgün formatlanmış (kişisel tuhaflık yok)
  • Sözdizimi bakımından "güvenli" (alışılmadık iç içe yazım veya tuhaf desenler yok)
  • Bireysel alışkanlıktan arınmış (tasarım gereği)

Kod bir dil modelinden geliyorsa, stilyometrik sinyal kaybolur. Okuması gereken imza hiç orada yoktur.

Araştırmacılar bu sınırlamayı fark etmişler, ancak önemli bir nokta: LLM destekli geliştirme norma haline geldikçe, yazma tarzının güvenlik aracı olarak yararlı olduğu pencere hızla kapanıyor.

Cevaplanmamış Sorular

Başka bir sorun da var. Araştırmacılar stil tabanlı tespit sisteminin çok sayıda sinyali aynı anda değiştirmesi gerektiğinden kaçınılması zor olduğunu söylüyorlar. Teorik olarak doğru, ama test etmemişler.

Ya bir kötü niyetli geliştirici sadece yazılan tehlikeli kodu otomatik bir kod düzelticiyle geçirse, değişken isimlerini değiştirse, birkaç ifadenin yapısını yeniden düzenles? Stil tabanlı sinyal bu durumda hayatta kalır mı? Bilinmiyor. Bu hala araştırılması gereken bir alan.

Altyapınız İçin Ne Anlama Geliyor

VulStyle şu an araştırma aşamasında bir prototiptir. Bunu bugün indirip kodunuza çalıştırabileceğiniz bir araç değil. Ancak alttaki görüş değerlidir: yazma tarzı, yapı ve sözcük seçimi gibi çok sayıda sinyali birleştirmek belirli hata sınıflarını daha iyi tespit edebilir.

Pratikte çıkarılacak dersler daha az iyimser:

  1. Tek bir teste güvenmeyin – Bir güvenlik aracı yüzde 95 doğruluk raporluyor ise, hangi veri seti üzerinde olduğunu sorun. Kendi kodunuzda test edin.

  2. Veri seti önyargısını anlayın – Popüler testler, gerçek dünyada bulunan güvenlik açıkları veya kod depolarını yansıtmayabilir.

  3. Yapay zeka koduna hazır olun – Ekibiniz Copilot ve benzeri araçları benimseye başladıkça, stil analizi daha az faydalı hale gelir. Ek tespit yöntemlerine ihtiyacınız olacak.

  4. Sinyal Zayıflanmasını Bekleyin – İnsan davranış desenlerine bağlı olan tespit yöntemleri, yapay zeka bu desenleri standardize ettikçe sorun yaşayacak.

İleri Gitmek İçin

Güvenlik araştırmaları hızla olgunlaşıyor, fakat olgunluk aynı zamanda rahatsız edici gerçeklerle yüzleşmek demek. Tek özelliğe dayalı sistemler genel çalışmıyor. Testler yanıltıcı olabilir. Ve kodun nasıl yazıldığı konusunda çerçevemiz sürekli değişiyor.

En etkili savunma hala katmanlı bir yaklaşımdır: statik analiz, dinamik testler, kod incelemesi, tedarik zinciri denetimi ve çalışma zamanı izleme. Hiçbir tek sinyal—stil, sözdizimi veya yapı—kendi başına yeterli değildir.

Fakat neden bu sinyallerin önemli olduğunu, nerelerde başarısız olduğunu ve birbirinden nasıl etkilendiğini anlamak? İşte güvenlik ekiplerinin gerçek dayanıklılığını inşa ettiği yer burası.

Read in other languages:

RU BG EL CS UZ SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN