EF Blogu

ETH üst arkaplan başlangıç görseli
ETH alt arkaplan bitiş görseli
İçeriğe atla

Bu gönderi, 25 dil dilinde mevcuttur:

Türkçe

Triyaj üründür: yapay zeka ajanlarını Ethereum'un protokol koduna karşı çalıştırmak

Nikos Baxevanis tarafından 9 Temmuz 2026 tarihinde gönderilmiştir

Triyaj üründür: yapay zeka ajanlarını Ethereum'un protokol koduna karşı çalıştırmak

Ethereum Vakfı'nın Protokol Güvenliği ekibinden, koordineli yapay zeka ajanlarını gerçek protokol koduna karşı çalıştırma üzerine notlar; işi nasıl organize ettiğimizi, inceleme altında nelerin ayakta kaldığını ve istemci ekipleri ile güvenlik araştırmacılarının bundan neler çıkarabileceğini içeriyor. Bu yazı kendi başına bağımsızdır; sonraki yazılar bireysel istemciler üzerinde daha derinlemesine duracaktır.

Neler çalıştırıyoruz ve bizi neler şaşırttı

Ethereum Vakfı'nın Protokol Güvenliği ekibinde, ağın bağlı olduğu sistem yazılımları, kriptografik kodlar ve doğru olması gereken sözleşmeler gibi sistemlere karşı koordineli yapay zeka ajanları çalıştırıyoruz. Ajanlar gerçek hatalar buldu. Bunlardan biri artık herkese açık: Ethereum mutabakat istemcilerinin üzerinde çalıştığı eşler arası katmanın temel bir parçası olan libp2p'nin gossipsub'ında uzaktan tetiklenebilen bir panik durumu; bu hata düzeltildi ve ekibe atıfta bulunularak CVE-2026-34219 olarak açıklandı.

Ajanların hata bulması sürpriz değildi. Sürpriz olan, işin ne kadar azının onları bulmaya, ne kadar çoğunun ise gerçek hataları sadece gerçekmiş gibi görünenlerden ayırmaya gitmesiydi.

Bu yazı, aynı şeyi yapmak isteyen istemci ekipleri ve güvenlik araştırmacıları içindir. Ajanları nasıl organize ettiğimizi, bir adayın bulgu sayılmadan önce aşması gereken çıtayı ve sonuçları güvenilir kılan alışkanlıkları kapsamaktadır.

Başka yerlerdeki ekipler de aynı tarif üzerinde birleşiyor. Anthropic'in Frontier Kırmızı Ekibi, özellik tabanlı testler yazan ve Python ekosisteminde gerçek hatalar bulan bir ajan geliştirdi. Cloudflare, kendi sistemlerine karşı bir güvenlik araştırması donanımı aracılığıyla bir Frontier modeli çalıştırdı. Herkes aynı döngüye varıyor: yetenekli bir modeli bir kod tabanına yönlendirin, arama yapmasına izin verin ve geri dönenleri triyajdan geçirin. Dolayısıyla asıl soru, kulağa kendinden emin gelen bir gürültüde boğulmadan bunun nasıl yapılacağıdır.

Baştan bir uyarı: ajan destekli denetimler için araçlar çok hızlı gelişiyor ve herhangi bir spesifik kurulum birkaç hafta içinde güncelliğini yitiriyor. Bu nedenle bu yazı, araçlardan ziyade kalıcı olan yöntemler hakkında kasıtlı olarak yazılmıştır. İfşa (disclosure) başlı başına ayrı bir konudur ve muhtemelen kendi başına bir yazı olacaktır.

Bir ajan bir arama aracıdır, bir kâhin değil

Bir kod tabanına yönlendirilen bir ajan, tıpkı bir fuzzer (bulanıklaştırıcı) gibi bir arama aracıdır. Fark, geri dönen şeydedir. Bir fuzzer size bir çökme ve bir yığın izlemesi (stack trace) verir. Bir ajan ise size bir yazılı rapor (çağrı zinciri, etki talebi, önerilen ciddiyet) ve bunu destekleyecek, gerçek koda karşı çalıştırabileceğiniz bir kavram kanıtı (proof-of-concept) gibi çok daha fazlasını sunar.

Tüm bunlar, en başta çalışan kavram kanıtı olmak üzere, sonucun okunmasını ve güvenilmesini kolaylaştırır. Bu yüzden bir ajanın kaç aday ürettiğini saymayın. Kaç tanesinin gerçek çıktığını sayın.

İş nasıl organize ediliyor

Bir hedefe karşı paralel olarak birçok ajan çalıştırıyoruz. İşi dağıtan merkezi bir süreç olmadan, sürüm kontrolündeki paylaşılan durum ile doğrudan depo (repository) üzerinden koordine oluyorlar. Bir ajan, diğerlerinin görebileceği bir yere bir talep yazar, işi yapar ve işler (commit eder).

Bu yaklaşımı, aynı şekilde koordine olan Anthropic'in bir ajan filosuyla bir C derleyicisi oluşturma hakkındaki yazısından aldık. Kurulacak veya sürdürülecek merkezi bir koordinatör yoktur ve ters gidebilecek daha az şey vardır.

Roller, keşfedilen iş tarafından oluşturulur:

  • Keşif (Recon), bir saldırı yüzeyini somut, test edilebilir hipotezlere dönüştürür. "Kod çözücüyü denetle" değil, "bu alana bu noktadan sonra güveniliyor; işte koruması gereken özellik, bozulabileceği yol ve bunu çözecek kanıt."
  • Avlanma (Hunting), bir hipotezi alır, kod yolunu izler ve bir yeniden üretici (reproducer) oluşturmaya çalışır.
  • Boşluk doldurma (Gap-filling), neyin kabul edilip neyin reddedildiğine bakar, bir sonraki hipotez grubunu yazar ve ajanların aynı zemin üzerinden geçmeye devam etmemesi için kapsamı izler.
  • Doğrulama (Validation), her adayı bağımsız olarak yeniden kontrol eder, kopyaları kaldırır ve karar verir.

Bu boru hattını (pipeline) biz icat etmedik. Cloudflare de aynı aşamaları; keşif, paralel avlanma, bağımsız doğrulama, tekilleştirme, raporlama olarak tanımlıyor ve onların yazısı bizimkini şekillendirmeye yardımcı oldu.

Bir adayın bulgu sayılmadan önceki görünümü şöyledir:

hedef:             bir saldırganın gerçekten ulaşabileceği bileşen ve giriş noktası
değişmez:          korunması gereken özellik
mekanizma:         bozulmasına neden olabilecek spesifik yol
başarı:            gözlemlenebilir kanıt: bir panik, bir duraksama, kabul edilmiş geçersiz bir girdi
yeniden üretici:   gerçek koda karşı çalışan kendi kendine yeten bir eser
tekilleştirme:     bir anahtar, böylece iki ajan aynı şeyin peşine düşmez

Şemanın orada olmasının bir nedeni var. Spesifik, test edilebilir bir talep ve net bir "tamamlandı" tanımı zorunlu kılar. Gözlemlenebilir bir kanıt yazmak zorunda olan bir ajan, "bu riskli görünüyor" bahanesine sığınamaz.

Yeniden üretilebilir olmalı, yoksa yaşanmamıştır

Bir kural diğerlerinden daha fazla önem taşır. Gerçek koda karşı hatayı yeniden üreten ve onu yazmayan biri için de çalışan kendi kendine yeten bir eser (artifact) olana kadar, bir aday bulgu sayılmaz.

Yeniden üretici yazılı raporu okumaz ve modelin kulağa ne kadar kendinden emin geldiğini umursamaz. Ya çalışır ya da çalışmaz.

Değerinin çoğu, yakaladığı yanlış pozitiflerdedir (false positives). Bunlardan üçü tekrar tekrar ortaya çıkar ve her biri ajanın yanlış bir nedenden dolayı geçer not almasıdır:

  • Sadece bir hata ayıklama (debug) derlemesinde meydana gelen bir panik. Yazılımı gerçekten piyasaya sürüldüğü şekilde derleyip çalıştırdığınızda, değer sadece başa sarar (wraps around). Hiçbir şey çökmez. Bir çökme gibi görünür, ama öyle değildir.
  • Hiçbir gerçek girdinin asla üretemeyeceği bazı dahili değerleri elle oluşturan bir yeniden üretici, çünkü bir saldırganın kontrol ettiği her yol bunu daha önce reddeder. Hata yalnızca, ulaşılabilir hiçbir şeyin o şekilde çağırmadığı bir işleve karşı "yeniden üretilir".
  • Biçimsel doğrulama (formal-verification) çalışmalarında, geçen ancak istediğiniz anlama gelmeyen bir kanıt. İfade, kodun ne yaptığına bakılmaksızın önemsiz derecede doğrudur veya yakalamak istediğiniz özellikten daha zayıftır. Doğrulayıcı tatmin olmuştur, ancak teorem aslında önemsediğiniz davranışı kısıtlamaz.

Bunların hiçbiri yeni değil. Aslında hiçbir şeyi kontrol etmediği için geçen bir testle aynı şeydir. Yeni olan şey hacimdir. Bir ajan, işe yaramaz versiyonu gerçeği kadar hızlı ve aynı derecede kendinden emin bir şekilde yazar. Bu yüzden kontrol otomatik olmalıdır. Ajanın kendi kendini yakalamasına güvenemezsiniz.

Sinyal-gürültü oranı işin büyük kısmıdır

Çoğu aday yanlış, kopya veya kapsam dışıdır. Bu, yöntemle ilgili bir sorun değildir; işleyiş şekli böyledir. Amaç, yanlış olanları hızlıca reddetmek ve gerçek olanları itiraz etmesi zor kanıtlarla desteklemektir.

Hayatta kalan her aday iki bağımsız kontrolden geçer. Gerçek bir saldırgan normal bir yapılandırmada buna gerçekten ulaşabilir mi? Ve işe yararsa ağa maliyeti ile karşılaştırıldığında, bunu gerçekleştirmenin saldırgana maliyeti nedir? Herhangi bir tekil eşin tetikleyebileceği bir hata, özel erişim veya büyük miktarda kaynak gerektiren bir hatadan çok farklıdır.

Her şey, halihazırda bilinen, düzeltilen veya reddedilenlerin yer aldığı güncel bir listeye karşı kontrol edilir. Bu olmazsa, ajanlar aynı kapatılmış sorunu yeniden keşfetmeye ve tekrar tekrar raporlamaya devam eder.

Kabul oranları hedeften hedefe çok değişir ve bu varyasyon kendi başına faydalıdır. Bunu olgun, yoğun bir şekilde denetlenmiş koda karşı çalıştırdığınızda neredeyse hiçbir şey hayatta kalmaz, ki bunu bilmek bile değerlidir. "Çok aradık ve hiçbir şey bulamadık" gerçek bir sonuçtur. Bunu daha az keşfedilmiş koda veya makine tarafından kontrol edilen bir kanıtın bir modeli kapsadığı ve dağıtılan baytkodun yalnızca bununla eşleştiğinin varsayıldığı biçimsel olarak doğrulanmış koda karşı çalıştırdığınızda, daha fazlası geçer.

Triyajın (önceliklendirmenin) zor kısım olduğunu bulan sadece biz değiliz. Cloudflare'in ana çıkarımı, dar bir kapsamın geniş taramadan daha iyi olduğuydu. Anthropic'in özellik tabanlı test ajanı yaklaşık bin aday raporu üretti, ardından zamanın yaklaşık yüzde 86'sında ayakta kalan en üst seviyeye inmek için sıralama ve uzman incelemesi kullandı. Üretim kısmı işin kolay tarafıydı. Kendi rakamlarımızı burada yayınlamayacağım; belirli bir hedefe bağlı olduklarından, yöntemden çok hedef hakkında bir şeyler söylerlerdi.

Ajanların iyi olduğu şeyler ve yanılttıkları yerler

Her iki yönde de abartı (hype) var, bu yüzden işte ajanların neleri iyi yaptığının ve nerelerde yanılttığının sade bir listesi.

İyi olduklarıYanılttıkları
Spesifikasyonu ve kodu birlikte okumakUlaşılabilir görünen ancak olmayan çağrı zincirleri
Gerçek bir değişmezi belirtmek ve kontrol etmekBaşarı kontrolünü atlatmak (yanlış bir nedenden dolayı geçmek).
Tek satırlık bir fikirden bir yeniden üretici taslağı hazırlamakCiddiyeti, yazılı raporun kulağa ne kadar dramatik geldiğiyle eşleşecek şekilde şişirmek
Siz bakmadan önce bir kök neden önermekBir dizi geçerli adımı kapsayan hatalar

Bu ayrım bir görevden diğerine sabit bile değildir. Gerçek güvenlik açıkları üzerinde bir dizi modeli test eden Stanislav Fort, bunu pürüzlü bir sınır (jagged frontier) olarak adlandırıyor; yani bir kod tabanında tam bir istismar zincirini kurtaran bir model, diğerinde temel veri akışı izlemesinde başarısız olabilir. İyi bir sonucun bir sonrakinin de geçerli olacağı anlamına geldiğini varsayamazsınız, ki bu da her adayın kendi başına kontrol edilmesinin bir başka nedenidir.

Son satır önemli olandır. Tek bir ajan oturumu, tek seferlik akıl yürütmede iyidir ve her adımın geçerli olduğu ve yalnızca sıranın yanlış olduğu, bir dizi adımı kapsayan hatalarda kötüdür. Bunlar için ajan bir arama aracı değildir. Görevi, hangi dizilerin durumlu bir test donanımı (stateful test harness) üzerinden çalıştırılmaya değer olduğunu önermektir. Bu şekilde kullanıldığında iyi çalışır. Donanımın yerine kullanıldığında, var olan en pahalı hataları, yani yalnızca bir dizi boyunca ortaya çıkanları gözden kaçırır.

Dürüst tutmak

Birkaç alışkanlık, ajan bulgularını güvenilir kılma işinin çoğunu yapar ve bunların hiçbiri karmaşık değildir.

  • Her eserde köken (provenance): onu neyin, hangi bağlamda, hangi revizyona karşı ürettiği. Bir bulgu, aylar sonra yeniden çalıştırabileceğiniz bir şey olmalıdır.
  • Önemli olan yerlerde determinizm: tek bir ortam, derlemenin ve çalıştırmanın tek bir yolu; böylece "yeniden üretir" ifadesi sadece bulunduğu makinede değil, her makinede aynı anlama gelir.
  • Komut dosyaları (scripts) değil, normlar: ajanlara numaralandırılmış bir prosedür yerine neyin önemli olduğunu, değişmezleri ve gerçek bir bulgu için çıtayı söyleyin. Aşırı komut dosyası yazılmış ajanlar, aşırı belirtilmiş testlerin bozulduğu şekilde bozulur; adımlar mantıklı olmayı bıraktıktan sonra bile adımları izlemeye devam ederler. Depo bağlam dosyaları üzerine yapılan bir çalışma da aynı şeyi buldu: ekstra gereksinimler görev başarısını düşürdü ve maliyeti %20'den fazla artırdı; yazarlar bağlamı minimum gereksinimlerde tutmayı önermektedir.
  • Son kararı bir insan verir: ajanlar önerir. Neyin gerçek olduğuna, neyin bilinen bir sorunun kopyası olduğuna veya neyin ne zaman ifşa edileceğine onlar karar vermez.

Darboğaz yer değiştirdi

Yapay zeka güvenlik araştırmacısının yerini almadı. İşi başka bir yere taşıdı. Eskiden hipotezler üretmeye ve bunların peşinden gitmeye harcanan zaman, artık kâhini oluşturmak, triyajı yürütmek, bilinen sorunların listesini tutmak ve ifşayı ele almak da dahil olmak üzere bunları geniş ölçekte değerlendirmeye harcanıyor.

Darboğaz ortadan kalkmadı. Hata bulmaktan sonuçlara güvenmeye doğru yer değiştirdi, ki bu onun için daha iyi bir yerdir, çünkü insan yargısının gerçekten önemli olduğu yer burasıdır. Ancak bu hala bir darboğazdır ve bunu görmezden gelmek, yanlış bir "her şey yolunda" kararı vermenize neden olur.

Bu işi sağlayan uygulamalar yeni değil. Yeniden üretilebilir hatalar, gerçek kâhinler ve dikkatli triyaj, son on beş yılda fuzzing'i (bulanıklaştırmayı) bir araştırma konusundan standart bir uygulamaya dönüştüren aynı uygulamalardır. Araçlar yenidir. Uygulamalar ise değil.

Araçların ne kadar hızlı değişmeye devam edeceği ucu açık bir sorudur. Dikkatli ve bir zamanlar kendisi de şüpheci olan Nicholas Carlini, üzerinde geniş hata payları bıraksa bile üstel durumun ciddiye alınmaya değer olduğunu savunuyor. Eğer üretim tarafı bu kadar hızlı tırmanırsa, yargı tarafı da onunla birlikte tırmanmak zorundadır, aksi takdirde üretilen ile gerçekten doğrulanan arasındaki uçurum sadece genişler.

Ethereum'un bağlı olduğu sistemler için önemli olan kısım budur. Ajanlar, elle yapabileceğimizden çok daha fazla alanı kapsamımıza olanak tanır. Buna karşılık, kulağa kendinden emin gelen çok daha büyük bir talep yığını karşısında daha dikkatli bir yargı talep ederler. Yargının gerçek ürün olduğunu hatırladığınız sürece, bu yapmaya değer bir takastır.

Bu gönderi İngilizce'den çevrilmiştir. Sonuç olarak tümüyle doğru ya da güncel olmayabilir. Orijinal versiyonunu İngilizce bağlantısında bulabilirsiniz.

Stay Updated

Subscribe to get email notifications about the topics you care about. Choose from research, events, security updates, and more.


Kategoriler