İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
DersOrta40 dakikaAI Güvenlik Mühendisi · 3. ders

Araç yetkisi ve ajan sınırları

Araç çağrısını kimlik, kapsam, parametre kaynağı ve bütçe alanlarına ayırarak bir yetki sözleşmesi kurar. Geri alınamaz eylemleri iki aşamaya bölmeyi ve yetkiyi işlevi bozmadan daraltmayı gösterir.

Önkoşul: Prompt Injection, Context Window

BU DERSİN SONUNDA

  • Bir araç sözleşmesini kimlik, kapsam, parametre kaynağı ve bütçe alanlarına ayırmak
  • Geri alınamaz eylemleri taslak ve yürütme diye iki aşamaya bölmek
  • Gerçek çağrı kayıtlarından yola çıkarak yetkiyi işlevi bozmadan daraltmak
  • Dış kaynaklı araç tanımlarının neden güvenilmez içerik sayıldığını gerekçelendirmek
  1. 1

    Teori

    Kavramın çalışma mantığı

  2. 2

    Örnek

    Gerçek bir senaryo üzerinde gösterim

  3. 3

    Lab

    Uygulamalı alıştırma

  4. 4

    Test

    Kısa ölçüm

  5. 5

    Proje

    Rotadaki projeye katkı

Kısa cevap

Bir önceki ders enjeksiyonun sıfırlanamayacağını gösterdi; bu ders kesimin yapıldığı yeri kuruyor. Model bir istekçidir, yetkili değildir: hangi çağrının yürüyeceğine modelin ürettiği metin değil, o metni değerlendiren politika katmanı karar verir. Sözleşme dört soruyu yanıtlar — bu çağrı kimin adına yürüyor, hangi kayıt kümesine dokunuyor, parametreleri nereden geliyor ve yanlışsa nasıl geri alınıyor.

Teori: model istekçidir, yetkili değil#

Araç çağrısı arayüzü modele bir yetki vermez; bir istek biçimi verir. Yetki, isteği alan tarafın neyi kabul ettiğiyle tanımlanır. Bu ayrım pratikte kolayca bulanıklaşır, çünkü aracı tek bir servis hesabıyla ve geniş kapsamla bağlamak en az dirençli yoldur. O noktada ajanın yetkisi, onu kullanan en yetkisiz kullanıcının yetkisi değil, servis hesabının yetkisidir.

Bunun adı karıştırılmış vekil sorunudur: geniş yetkili bir bileşen, yetkisiz birinin girdisiyle yönlendirilebiliyorsa o girdi fiilen yetki kazanmış olur. Enjeksiyon bu sorunun model katmanındaki en kolay tetikleyicisidir. Çözüm istemde değil kimliktedir: kullanıcı adına yürüyen çağrılar kullanıcının kimliğiyle yapılır, arka plan işleri ise ayrı ve dar kapsamlı bir kimlik kullanır.

İkinci yapısal nokta parametrelerin kaynağıdır. Model bir kayıt kimliğini serbestçe üretebiliyorsa, yetki kontrolü yalnızca o kimliğin kullanıcıya ait olup olmadığına bakan bir ek kontrole kalır. Daha sağlam kalıp, kritik parametrelerin yalnızca aynı oturumdaki bir okuma çağrısının sonucundan gelebilmesidir. Böylece model neyin üzerinde işlem yapacağını uydurmaz, yalnızca kendisine gösterilenler arasından seçer.

Sözleşmenin yetki alanları#

Sözleşme alanıSorulacak soruDar karşılığı
KimlikBu çağrı kimin adına yürüyorÇağıran kullanıcının kimliği; uygulamanın ortak servis hesabı değil
KapsamHangi kayıt kümesine dokunabilirKullanıcının zaten görebildiği kümeyle kesişim; kesişim sorgunun içinde uygulanır
EylemOkuma mı, yazma mıOkuma ve yazma ayrı araçlar, ayrı kimlik bilgileri
Parametre kaynağıKritik parametreyi kim ürettiKayıt kimliği aynı oturumdaki bir okuma sonucundan; serbest metin yalnızca gerçekten gerekli alanda
Geri alınabilirlikYanlış çağrı nasıl geri alınırGeri alınamayan çağrı iki aşamalı; ilk aşama yalnızca taslak üretir
BütçeBir oturumda kaç çağrı, ne kadar hacimSayı ve hacim üst sınırı; aşımda sessiz kırpma değil, açık durma
KayıtÇağrı sonradan kime ve neye bağlanabilirİstek kimliği, kullanıcı, parametre özeti, sonuç kodu

Geri alınamaz eylemleri ayırmak#

  • Eylemi iki araca bölün: taslak üreten çağrı ile taslağı yürüten çağrı. Yürütme aracı yalnızca taslak kimliğini alsın, taslağın içeriğini yeniden yazamasın.
  • Onay ekranında görünen özeti taslağın kendisinden türetin. Modelin "bu güvenli bir işlem" açıklaması onay metni değildir; onay, yürütülecek veriyi göstermelidir.
  • Her yürütmeye bir idempotens anahtarı bağlayın; aynı taslağın tekrar yürütülmesi tek etki üretsin. Yeniden deneme mantığı olan her ajan bunu gerektirir.
  • Yürütmeden önce prova sonucu üretin: kaç kayıt etkilenecek, hangi alanlar değişecek. Belirlediğiniz eşik aşılırsa çağrı insan onayına düşsün.
  • Geri alma yolunu araçla birlikte tasarlayın; geri alınamayan her eylemin karşılığında tanımlı en az bir telafi işlemi bulunsun.

Sözleşme örneği#

json
{
  "arac": "musteri_kaydi_guncelle",
  "kimlik": "cagiran_kullanici",
  "kapsam": {
    "kiraci": "cagiran_kullanicinin_kiracisi",
    "alanlar": ["adres", "telefon"]
  },
  "parametreler": {
    "kayit_kimligi": { "tip": "uuid", "kaynak": "ayni_oturumdaki_okuma_sonucu" },
    "alan": { "tip": "secim", "degerler": ["adres", "telefon"] },
    "deger": { "tip": "metin", "en_fazla_karakter": 200 }
  },
  "geri_alinabilir": true,
  "onay": "gerekmez",
  "butce": { "oturum_basina_cagri": 5 },
  "kayit": ["istek_kimligi", "kullanici", "kayit_kimligi", "alan", "onceki_deger_ozeti"]
}

Karar: işlevi bozmadan daraltma#

  1. 1Gerçek kullanımı çıkar

    Kayıtlardan çağrıları dökün; her araç için fiilen doldurulan parametre alanlarını ve aldıkları değer kümesini listeleyin. Hiç kullanılmamış alanlar en ucuz kazanımdır.

  2. 2Sözleşmeyi kullanıma indir

    Kullanılmayan alanları çıkarın, serbest metin alanlarını gözlenen değer kümesine çevirin, kritik kimlikleri okuma sonucuna bağlayın.

  3. 3Gölge modda çalıştır

    Yeni sözleşmeyi reddetmeden açın; yalnızca "bu çağrı reddedilecekti" kaydı üretsin. Üretim işlevi bozulmadan daraltmanın maliyetini görürsünüz.

  4. 4Reddedilecekleri ayır

    Her kaydı iki kutuya koyun: gerçek işlev, yani sözleşme genişletilecek; ve gereksiz genişlik, yani kapatılacak. Kutulama kararını tek kişi değil, aracın sahibi ve güvenlik birlikte versin.

  5. 5Zorunlu kıl ve geri bildir

    Reddi devreye alın. Ret mesajı modele hangi alanın neden kabul edilmediğini ve kabul edilen biçimi söylesin ki model kendini düzeltebilsin; sessiz ret, ajanı döngüye sokar.

Sık yapılan hata#

Yaygın hata, ajana kolaylık olsun diye tek ve geniş yetkili bir servis hesabı vermek, sonra bu genişliği istem metnindeki kurallarla dengelemeye çalışmaktır. Bu düzenlemede kontrol, saldırganın yazabildiği düzlemdedir; yetki ise onun yararlanabileceği düzlemde. İkinci hata, araç sayısını artırırken sözleşmeleri gözden geçirmemektir: her yeni araç yalnızca yeni bir yetenek değil, tehdit haritasında yeni bir kenardır.

LAB · UYGULAMALI ALIŞTIRMA

Bir araç sözleşmesini daraltın

  1. 1Sisteminizdeki araçlardan geri alınamaz etkisi olan birini seçin ve mevcut sözleşmesini tek sayfaya yazın: ad, parametreler, hangi kimlikle yürüdüğü, hangi kayıt kümesine eriştiği.
  2. 2Çağrı kayıtlarından elli çağrı örnekleyin; kayıt tutmuyorsanız aracı kullanan tipik akışları elle yürütüp aynı sayıda çağrı toplayın. Her parametrenin fiilen aldığı değerleri tablolayın ve hiç doldurulmamış alanları işaretleyin.
  3. 3Sözleşmeyi yeniden yazın: kullanılmayan alanları çıkarın, serbest metin alanlarını gözlenen değer kümesine indirin, kimliği çağıran kullanıcıya bağlayın ve kayıt kimliğini aynı oturumdaki okuma sonucundan gelme koşuluna bağlayın.
  4. 4Aynı elli çağrıyı yeni sözleşmeye karşı küçük bir doğrulama betiğiyle sınayın; reddedilenleri sayın ve her reddi gerçek işlev ya da gereksiz genişlik diye ayırın.
  5. 5Geri alınamaz eylemi iki aşamaya bölün ve akışı yazın: taslak üreten çağrının çıktısı, yürütme çağrısının aldığı tek girdi ve idempotens anahtarının nereden geldiği.
  6. 6Ret mesajını yazın; mesaj hangi alanın neden kabul edilmediğini ve kabul edilen biçimi söylesin, ardından bu mesajla modelin kendini düzeltip düzeltemediğini üç örnek üzerinde deneyin.

Beklenen çıktı

Bir aracın daraltılmış sözleşmesi, elli gerçek çağrıya karşı ret analizi ve geri alınamaz eylem için iki aşamalı akış tasarımı.

Sık sorulan sorular

Her araç çağrısını insan onayına bağlamak en güvenlisi değil mi?

Güvenli ama sürdürülemez. Her çağrı onaylanınca onay bir refleks haline gelir ve fiilen hiçbir şey okunmaz; o noktada onay kapısı güvenlik değil, gecikme üretir. Onayı seçici yapın: geri alınamazlık ve etki büyüklüğü eşiğini aşan çağrılar onaya düşsün, geri kalanı sözleşmeyle sınırlansın.

Ajan kendi kimliğiyle mi çalışmalı, kullanıcının kimliğiyle mi?

Kullanıcı adına yapılan işlerde kullanıcının kimliğiyle. Aksi halde ajanın geniş yetkisi, kullanıcının veya onun verisinin yönlendirebildiği bir kaynağa açılır ve karıştırılmış vekil durumu doğar. Zamanlanmış arka plan işleri için ayrı, yalnızca o işin ihtiyaç duyduğu kapsama sahip bir kimlik tanımlayın.

Model zaten araç açıklamasındaki kurala uyuyor; politika katmanı fazladan iş değil mi?

Açıklamaya uyma olasılıksaldır ve açıklama, dış kaynaklı araçlarda saldırganın etkileyebildiği bir alandır. Politika katmanı ise deterministiktir ve modelin metnine bakmadan karar verir. Fazladan iş, aynı kontrolü iki kez yapmak değil; kontrolü ilk kez saldırganın erişemediği yere koymaktır.

LEARN

AI Güvenlik Mühendisi rotasına devam et

Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.