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
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 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 soru | Dar karşılığı |
|---|---|---|
| Kimlik | Bu çağrı kimin adına yürüyor | Çağıran kullanıcının kimliği; uygulamanın ortak servis hesabı değil |
| Kapsam | Hangi kayıt kümesine dokunabilir | Kullanıcının zaten görebildiği kümeyle kesişim; kesişim sorgunun içinde uygulanır |
| Eylem | Okuma mı, yazma mı | Okuma ve yazma ayrı araçlar, ayrı kimlik bilgileri |
| Parametre kaynağı | Kritik parametreyi kim üretti | Kayıt kimliği aynı oturumdaki bir okuma sonucundan; serbest metin yalnızca gerçekten gerekli alanda |
| Geri alınabilirlik | Yanlış çağrı nasıl geri alınır | Geri alınamayan çağrı iki aşamalı; ilk aşama yalnızca taslak üretir |
| Bütçe | Bir oturumda kaç çağrı, ne kadar hacim | Sayı 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#
{
"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#
- 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.
- 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.
- 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.
- 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.
- 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
- 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Ç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.
- 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.
- 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.
- 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.
- 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.
