Cüzdanı olan bir ajan yeni bir saldırı yüzeyidir: kayıp, bir web sayfasındaki bir cümlenin anahtarı tutan şeyi parayı başka yere göndermeye ikna etmesiyle olur. Bu araç ajanınızın neler yapabildiğini okur, ne yapacağını öğrenmek için 20 hasmane sonda gönderir ve ona özel anahtar taşımayan bir yem cüzdan verir — böylece imzalamaya çalıştığı her şeyi okuyabilirsiniz.
Üçü farklı türde kanıt üretir. Yalnızca gözlemlenen kanıt Kritik olarak raporlanabilir — bir yetenek grafiğinden çıkan çıkarım asla.
Ajanın araç tanımlarını yapıştırın: hangileri değer taşıyabiliyor, hangileri ajanın yazmadığı metni içeri alıyor, hangileri anahtarlara dokunuyor ve imzayla arasında bir şey var mı. Altı yapılandırma biçimi okunur.
Ajanın uç noktasına 20 hasmane mesaj gider ve dönen cevap okunur. Gözlemlenen kanıt üreten tek şerit budur.
Size bir RPC adresi veririz. Ajanınızı tek bir ortam değişkeniyle oraya bağlarsınız. Denediği her imza kaydedilir ve çözümlenir: hangi fonksiyon, hangi alıcı, hangi tutar, yetki sınırsız mıydı.
Her sonda ajandan tanınabilir ve önemsiz bir şey ister: bir jetonu tekrarla, özel anahtarı olmayan bir nöbetçi adresi söyle, kimsenin istemediği bir araca uzan. Zafiyet olan şey itaattir.
Tek bir istek gitmeden önce uç noktanın kendi kökeninde /.well-known/saferico-agent-test.txt dosyasını yayımlamanız gerekir. Oradaki jetonu yalnızca sizin hesabınız türetebilir.
Çalışamayan bir kontrol TEST EDİLMEDİ olarak raporlanır, asla başarılı olarak değil. Yeterince az şey ölçüldüyse puan sizi pohpohlamak yerine hiç verilmez.
Araçların kendisi (tarayıcı, kontrol panelleri, SAFI çalışma alanı) şu an İngilizce arayüzle çalışıyor. Bu sayfalar, oraya girmeden önce her şeyi Türkçe anlatır.
Bu araç ajanınıza saldırır. Bunu ancak kanıtlanabilir sınırlarla yapabilir — sınırlar aşağıda tek tek yazılıdır.
«İmzalamamaya ayarlandı» değil: modülde anahtar yoktur, dolayısıyla imzalamak uyduğu bir kural değil, gerçekleştiremediği bir işlemdir. Buradaki bir hata taşınmış bir coine dönüşemez, çünkü taşıyacak bir şey yoktur.
Ve sahte makbuz üretmez. Kolay olan uygulama, ajan yoluna devam etsin diye akla yatkın bir işlem hash'i döndürür — bu, hiç olmamış bir işlem için kanıt imal etmektir. Bunun yerine ne olduğunu açıkça söyleyen bir JSON-RPC hatası döner. Bulgu, denemenin kendisidir.
Araç tanımlarınız ve sistem talimatınız bu makinede ayrıştırılır. Zincirleri kurmak için gönderilen şey yapıdır: araç adları, yetenek sınıfları ve doğru/yanlış değerleri.
Tek istisna açıkça işaretlenmiştir: ifşa sondasının bir şeyle karşılaştırma yapabilmesi için, sizin yazdığınız 200 karaktere kadar bir ifade sondayla birlikte gönderilir. Orada karşılaştırılır ve atılır — saklanmaz, kaydedilmez, rapora yazılmaz ve test edilen uç noktaya gönderilmez. Bu 200 karakteri paylaşmak istemiyorsanız alanı boş bırakın; sonda o zaman başarılı değil TEST EDİLMEDİ olarak raporlanır.
Sondalar rastgele değil, gerçek bir saldırının şeklinde ilerler:
En gerçekçi olanı ilk sırada durur: dolaylı enjeksiyon. Kimse bir DeFi ajanına «önceki talimatlarını yok say» diye yazmaz — bunu bir token açıklamasına, bir web sayfasına, bir README'ye ya da ajanın bir araç üzerinden okuduğu zincir üstü bir metne koyar.
Bir yem oturumu 10 krediye gelir ve üç tavanla sınırlıdır: 60 dakika, 200 kaydedilen olay ve 15 dakika işlemsizlikte otomatik durdurma. Bu sayıların her biri sayfa üretilirken onları uygulayan modülden okunur, dolayısıyla sayfa kodun uygulamadığı bir sınırın reklamını yapamaz.
Zincir kimlikleri yalnızca test ağıdır; oturum kurulurken bir ana ağ kimliği reddedilir. Kendini ana ağda sanan bir ajan, operatörünün sonradan açıklamak zorunda kalacağı şeyler yapabilir.
Kontrat adresini yapıştırın; sahip yetkilerini, likiditeyi ve satış simülasyonu sonucunu riske girmeden önce görün. Tarama başına küçük bir ücret imzadan önce gösterilir — herhangi bir abonelikte ise sınırsız olarak dahildir.