4 puan yazan GN⁺ 2026-02-24 | 1 yorum | WhatsApp'ta paylaş
  • Yapay zeka tabanlı kötü amaçlı yazılım tespiti olasılığını doğrulamak için, çeşitli açık kaynak sunucu ikili dosyalarına yapay olarak arka kapılar eklendi ve yapay zeka ajanları ile Ghidra kullanılarak tespit deneyi yapıldı
  • Claude Opus 4.6 gibi güncel modeller bazı basit arka kapıları bulsa da, tespit oranı %49, yanlış pozitif oranı %28 ile gerçek kullanım için uygun olmayan bir seviyede kaldı
  • Deneyde lighttpd, dnsmasq, Dropbear, Sozu gibi C ve Rust tabanlı projeler kullanıldı; yapay zeka kaynak kod olmadan yalnızca tersine mühendislik araçlarıyla analiz yaptı
  • Bazı modeller açıkça kötü niyetli çağrıları (execl("/bin/sh", ...)) normal işlev sanarken, bazıları alakasız koda odaklanarak yetersiz muhakeme sergiledi
  • Araştırmacılar, yapay zekanın henüz eksiksiz bir güvenlik aracı olmadığını, ancak uzman olmayan kişilerin de ilk güvenlik kontrolünü yapabileceği bir seviyeye geldiğini değerlendirdi

Araştırmanın arka planı

  • Son dönemdeki Shai Hulud 2.0 tedarik zinciri saldırısı ve Notepad++ ikili dosya ele geçirme olayı gibi vakalar, güvenilmeyen çalıştırılabilir dosyaların riskini öne çıkardı
    • Saldırganlar meşru yazılımlara kötü amaçlı kod ekleyerek kimlik bilgisi hırsızlığı veya uzaktan komut çalıştırma gerçekleştirebiliyor
  • Donanım yazılımı veya donanım cihazlarında da gizli iletişim modülleri ya da arka kapı hesapları bulunduğuna dair örnekler bildirildi
  • Bu tehditlere karşılık, yapay zekanın ikili dosya seviyesinde kötü niyetli davranışları tespit edip edemeyeceği test edildi

İkili analizine genel bakış

  • Genel programlama kaynak kod ile uğraşırken, kötü amaçlı yazılım analizi makine dili seviyesindeki ikili dosyaları yorumlamak zorundadır
  • Derleme sürecinde işlev adları, değişken adları gibi üst düzey bilgiler kaybolur ve optimizasyon nedeniyle kod yapısı bozulur
  • Analiz, makine dili → assembly → sözde C kodu dönüşümünü içeren bir tersine mühendislik sürecinden geçer
    • Açık kaynak araçlar: Ghidra, Radare2
    • Ticari araçlar: IDA Pro, Binary Ninja
  • Bu araçlar kodun anlamını yeniden kurmaya çalışsa da, çıktılar FUN_00130550, bVar49 gibi anlamsız tanımlayıcılarla doludur

BinaryAudit benchmark yapısı

  • Birden fazla açık kaynak sunucuya (lighttpd, dnsmasq, Dropbear, Sozu) test amaçlı arka kapılar eklendi
    • Örnek: HTTP başlığı üzerinden komut çalıştırmak veya DHCP seçeneği üzerinden shell komutu yürütmek
  • Yapay zekaya kaynak kod olmadan yalnızca derlenmiş çalıştırılabilir dosyalar verildi ve Ghidra, Radare2, binutils gibi araçlarla analiz yaptırıldı
  • Hedef, arka kapının varlığını ve ilgili işlevin başlangıç adresini belirlemekti
  • Bazı görevler, birden çok ikili dosya arasından yalnızca hangisinin enfekte olduğunu ayırt edecek şekilde tasarlandı

Başarılı tespit örnekleri

  • lighttpd sunucusuna eklenen X-Forwarded-Debug başlığı tabanlı arka kapı, Claude Opus 4.5 tarafından 5 dakika içinde tespit edildi
    • popen() çağrısı bulundu ve Radare2 ile tersine mühendislik yapılarak komut yürütme mantığı doğrulandı
    • Sonuçların X-Request-Trace yanıt başlığıyla geri döndürüldüğü yapı da ortaya çıkarıldı
  • Model, nm, strings, grep, r2 komutlarını birleştirerek otomatikleştirilmiş bir analiz süreci yürüttü

Başarısız tespit örnekleri

  • dnsmasq'ın DHCP işleme koduna eklenen /bin/sh çalıştırma arka kapısı, Claude Opus 4.6 tarafından normal işlev diye yanlış değerlendirildi
    • execl("/bin/sh", "sh", "-c", ...) çağrısını bulmasına rağmen, bunu DHCP betiği çalıştırma sanarak yorumladı
    • Oysa gerçekte bu, istemci paketinin içeriğini olduğu gibi çalıştıran savunmasız bir koddu
  • Model doğru konumu bulmasına rağmen tehlikeyi reddedip başka işleve geçtiği için tespiti kaçırdı

Yapay zekanın sınırları ve yanlış pozitif sorunu

  • Ortalama yanlış pozitif oranı %28 ile, temiz ikili dosyalarda da arka kapı varmış gibi raporlama sık görüldü
    • Örnek: Gemini 3 Pro, normal bir komut satırı seçenek ayrıştırma kodunu “komut çalıştırma arka kapısı” sanarak yanlış değerlendirdi
  • Güvenlik topluluğunda da yapay zeka tarafından üretilen raporların düşük kalitesi sorun olarak gösteriliyor
    • curl projesi, yapay zeka üretimi hata raporlarının çoğunun anlamsız olduğunu belirtti
  • Pratik bir güvenlik aracı olarak kullanılabilmesi için %0,001'in altında bir yanlış pozitif oranı gerekiyor

Açık kaynak araçların kısıtları

  • Ghidra ve Radare2, C kodu analizinde faydalı olsa da, Rust ve Go ikili dosyalarında performans düşüyor
    • Örnek: Go tabanlı Caddy sunucusunda (50 MB) Ghidra'nın yüklemesi 40 dakika sürdü ve sonuçlar isabetsizdi
    • IDA Pro ise 5 dakika içinde yükleyip doğru kod sağladı
  • Deney, araç kalitesi farkını dışarıda bırakmak için ağırlıklı olarak C tabanlı ikili dosyalarla yürütüldü

Sonuçlar ve görünüm

  • Claude Opus 4.6: %49, Gemini 3 Pro: %44, Claude Opus 4.5: %37 tespit oranına ulaştı
  • Büyük ikili dosyalara veya normal davranışı taklit eden arka kapılara karşı zayıf kaldılar
  • Buna rağmen yapay zeka, Ghidra'yı doğrudan kullanarak tersine mühendislik yapabilecek bir seviyeye ilerledi
    • Uzman olmayan kişiler de şüpheli çalıştırılabilir dosyaları ilk aşamada inceleyebilir
  • Gelecek yönelimler olarak ticari araç entegrasyonu ve yerel model tabanlı güvenlik analizi öne çıkıyor
  • Tüm benchmark ve sonuçlar GitHub'daki QuesmaOrg/BinaryAudit deposunda yayımlandı

1 yorum

 
GN⁺ 2026-02-24
Hacker News görüşleri
  • Obfuscation yapmadıklarını söylüyorlar ama import veya sembolleri gizleyip string’leri obfuscate ederseniz tespit başarısı hemen sıfıra iner
    Bu durumda LLM’in tespit ettiği şey, yalnızca kötü amaçlı davranışla ilişkili dilsel anomali kalıpları olur; bu da o kadar etkileyici değil

    • Makalenin yazarlarından biriyim. Bu görevler giriş seviyesi işlerdi; buna rağmen yalnızca ikili kodu görerek bazı kalıpları yakalayabilen modeller olması şaşırtıcıydı
      Örneğin Ghidra ya da Radare2 gibi araçları anlayabilen modeller yalnızca Opus 4.5, 4.6, Gemini 3 Pro ve GLM 5 civarında
      İlgili benchmark’a buradan bakabilirsiniz
      Bu, yapay zekanın binary’lerle çalışabilmesi için sadece bir başlangıç noktası ve tam bir çözüme hâlâ çok uzağız
    • LLM’ler için ghidra-cli aracını geliştirirken test olarak crackme kullandım; prompt’ta söylenirse obfuscate edilmiş kodu da iyi geçti
      Gerçek yazılım reverse engineering işlerinde bir süre boş yere oyalanıp bunun obfuscation olduğunu fark ettikten sonra, sonuçları CLAUDE.md gibi belgelere güncelleyerek akıcı biçimde ilerliyor
    • Makalede de sembollerin kaldırıldığı açıkça belirtilmiş. Gerçek backdoor’lar zaten asgari kodla obfuscate edilmiş oluyor
      Örnek olarak dnsmasq-backdoor ve dropbear-brokenauth yamalarına bakılabilir
    • Opus 4.5 ve 4.6 ile Claude Code için Ghidra eklentisini kullanıp obfuscate edilmiş kötü amaçlı yazılımı tamamen reverse ettim
      Ama benim incelediğim şey devlet düzeyinde bir backdoor değil, daha çok yazılım crack’i seviyesindeydi
    • LLM’lerin bu tür tuhaf kalıpları oldukça iyi kavradığını gördüm. Çünkü çeşitli şifreleme ve obfuscation tekniklerini öğrenmiş durumdalar
      Asıl LLM’leri zorlayan şey karmaşık mantık, fakat iyi modeller bu karmaşıklığı kendileri fark edip işaretleyebiliyor
  • ghidra-cli projemi tanıtıyorum
    Ghidra ile Altium dosya formatını (Delphi kısmını) reverse ettim ve etkisi şaşırtıcıydı
    Modeller sıfırdan eksiksiz bir parser yazamıyor ama LLM öncesinde böyle bir denemeye bile girişmezdim
    Güvenlik denetimi için güvenmezdim ama güncel modeller dosya formatı reverse engineering’i için yeterince işe yarıyor

    • Son zamanlarda agent’ları yardımcı araç olarak kullanma yaklaşımını görüyorum. Tamamen bağımlı olmadan, yetenek artırımı için kullanılıyorlar
      Örneğin diyagram üretimi, saldırı yüzeyi haritalama, kod keşfi gibi işleri onlara verip ben manuel analize odaklanıyorum
      LLM’ler sıkıcı tekrar işlerini üstlendiği için hız artıyor. Ama onlara fazla şey verirseniz verimlilik tuzağına düşülüyor
      Doğru “skill” setine sahip agent kombinasyonları kullanılırsa verim belirgin biçimde artıyor
    • Biz PyGhidra kullanıyoruz ama CLI erişilebilirliği daha iyi olabilir
      Ghidra’nın en büyük sınırlaması, Go dili analizinde çok yavaş olmasıydı
    • Bu gerçekten harika bir proje. Benim Ghidra + LLM ile yaptıklarımdan çok daha rafine
    • İlgili ekosistem canlı. Yakın zamanda bir MCP sunucusu örneği de vardı
      Ben GhidrAssistMCP, analyzeHeadless, PyGhidra vb. kullandım,
      özellikle açık bir SKILL.md içeren yaklaşımın yapay zeka agent’larıyla entegrasyonu yüksek
    • Bu yaklaşımın çeşitli Ghidra MCP sunucularına kıyasla nasıl olduğunu merak ediyorum
  • Bu başlığın özü bir metodoloji tartışması
    “Obfuscation eklenirse başarı oranı %0 olur” sözü doğru olabilir ama deneyin amacı, yapay zekanın yetkin bir reverse engineer gibi obfuscation’sız binary’leri ele alıp alamadığını görmekti
    Bu, iç denetim ya da legacy kod analizi gibi gerçekten kullanılabilir bir senaryo
    Asıl önemli olan tehdit modelinin tanımı. Otomatik saldırgan seviyesinde düşünülürse zaten yeterince faydalı,
    ama AI tabanlı tespiti hesaba katan gelişmiş bir saldırgan için bu test yetersiz kalır
    Asıl anlamlı doğrulama, hafif obfuscation düzeyinde performansa bakmak olur; örneğin import gizleme ve string kodlama

    • Ama obfuscate edilmiş binary’leri tanıyamamak, CAPTCHA’yı geçememek gibi bir şey
      Hava bulutlu olduğunda elma toplayamayan bir robota “uzman elma toplayıcısı” denebilir mi diye düşündürüyor
  • GPT, %0 false positive oranıyla istikrarlı ama tespit oranı yaklaşık %18
    Buna karşılık Claude Opus 4.6’nın tespit oranı %46 ile daha yüksek ama false positive oranı %22
    Birden fazla model birleştirilip biri doğrulama prosedürünü tasarlasa, diğeri de gerçek exploit testi yapsa daha ilginç sonuçlar çıkabilir

    • Aslında bu tür ikili sınıflandırma performansı ölçüm metodolojileri 100 yıldır var
      Ama üretken modeller ortaya çıkınca herkes unutmuş gibi görünüyor
  • Esas nokta şu: “AI tam kapsamlı malware tespiti yapmakta zorlanabilir ama geliştiricilerin ilk güvenlik denetimini yapmasını çok kolaylaştırdı”
    Reverse engineering deneyimi olmayan geliştiriciler bile şüpheli binary’ler üzerinde ilk analizi yapabilir hâle geldi
    Bu yalnızca güvenlikte değil, optimizasyon, debugging, donanım reverse engineering’i, mimari portlama gibi alanlara da yayılabilir
    Sonuçta önemli olan, AI’a kusursuz bir analizör olarak değil hipotez üretme aracı olarak bakmak

  • Benchmark’taki yürütülebilir dosyalar yüzlerce ila binlerce fonksiyondan oluşuyor ve backdoor yalnızca birkaç satırdan ibaret
    Bu yüzden ağ parser’ları ya da girdi işleme rutinleri gibi kritik yolların stratejik biçimde keşfedilmesi gerekiyor
    Bu tür stratejileri .md dosyası olarak LLM’e vermek de bir yöntem olabilir

    • Ama bunu yaparsanız deney kirlenebilir. “Bir backdoor olabilir” dediğiniz anda zaten ipucu vermiş olursunuz
      Prompt’taki ince bir kelime seçimi bile sonucu değiştirebilir
      Sonunda deney tasarımının karmaşıklığı patlar ve sonucun sağlamlığı düşer
    • Yine de bu çalışmadaki görevlerin basit olduğunu hesaba katarsak sonuçlar zaten etkileyici
      Uzman rehberliği eklenirse güçlü bir performans çarpanı etkisi doğabilir
    • Yalnız stratejiyi belge olarak verdiğinizde model çoğu zaman bunu aynen taklit edip “stratejik düşünüyor” gibi yapıyor
      İnsanların stratejik düşünmesini AI’ın gerçekten uygulamasını sağlamak hâlâ zor
  • Benchmark bağlantısının doğrudan adresi burada,
    açık kaynak kodu ise GitHub deposunda görülebilir

  • Gemini’nin en yüksek false positive oranına sahip çıkması benim deneyimimle örtüşüyor
    ChatGPT, Claude ve Gemini’nin hepsini kullandım; en olumlu yanlı olan Gemini
    Her zaman en iyimser cevabı veriyor
    Bu özelliği sayısal olarak gösteren bir benchmark arıyordum; bu sonuçlar buna dayanak olabilir

  • Uzman değilim ama false positive sorununu azaltmak için modele backdoor’u doğrudan çalıştırıp doğrulatmak nasıl olur diye düşünüyorum

    • Ama çoğu model güvenlik politikaları nedeniyle böyle davranmayı reddediyor
      Bu yüzden modeller arası karşılaştırma zorlaşıyor; bunun yerine modelden backdoor’un yerini açıkça belirtmesi isteniyor
      Modeli doğrudan özelleştirir veya fine-tune ederseniz, önerdiğiniz yöntem faydalı olabilir
  • En iyi performanslı modelin ancak yaklaşık %50 tespit etmesi kötü değil. İnsandan daha iyi bile olabilir
    Ama kalan %50’yi neden kaçırdığını merak ediyorum
    Claude Opus 4.6’nın backdoor’u bulup yine de “sorun yok” sonucuna varması ilginç
    Sonuçta bu, AI’ın insan muhakemesi desteği olmadan tam anlayışa ulaşmakta zorlandığını gösteriyor