İçeriğe atla
0 XP 0
12 dkderinleşmeyle 13 dk60 XP6 etkinlik

Ajanı sınırlamak

Bu derste
  • Ajanı güvenli yapan şey daha iyi bir istem değil, daha dar bir çerçevedir; beş sınırı bu derste birlikte kurmayı öğrenirsin.
  • En az yetki, onay kapısı, kum havuzu, geri alınabilirlik ve bütçe sınırını birlikte kurmayı öğrenirsin.
  • Sonunda geri alınamaz bir eylemin güvenli akışını sıraya dizecek ve bir tasarımda her kararın hangi sınıra girdiğini bulacaksın.

Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +60 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

Önceki derslerde ajanın nasıl kandırıldığını gördün. Şimdi çerçeveyi kur. Temel varsayım şu: ajan kandırılacak. Asıl soru, ajanın kandırılıp kandırılmayacağı değil, kandırıldığında ne kadar zarar vereceğidir.

Sistem promptundaki yasak listesi bu soruya cevap vermez, çünkü kandırılan model onu da yok sayabilir. Sınırlar modelin dışında, kodda ve ortamda durur. Bu derste beş sınır kuracaksın: en az yetki, onay kapısı, kum havuzu, geri alınabilirlik ve bütçe. Her sınırı ayrı ayrı tanıyacak, sonunda bir eylemin bu sınırlardan nasıl geçtiğini sıraya dizeceksin.

Birinci sınır: en az yetki

Birinci sınır en az yetkidir. NIST tanımıyla sistem, kullanıcının ya da onun adına çalışan sürecin erişimini görevin gerektirdiği en aza indirir. Ajanda bunun iki anlamı var.

Araç listesi göreve göre daralır. Her aracın kapsamı da eylem düzeyinde daralır: okuma yeten yerde yazma, tek kayıt yeten yerde tablo erişimi verilmez. Daraltma, kandırılma olasılığından bağımsız çalışır, çünkü ajan elinde olmayan bir aracı kötüye kullanamaz.

# Genis
izinler = ["crm:*", "mail:send", "fs:rw"]

# Dar
izinler = ["crm:bilet.oku", "crm:bilet.durum_yaz"]
# mail ve dosya sistemi bu ajanda hic yok
Kapsamı araç adıyla değil, eylem düzeyinde daralt.

İki listeyi karşılaştır. Geniş listede crm üstünde yıldız var, yani bütün işlemler açık; posta gönderme ve dosya sistemine okuma-yazma da ekli. Dar listede yalnız iki yetki kaldı: bilet okuma ve bilet durumu yazma. Posta ve dosya sistemi bu ajanda hiç yok.

OWASP bir adım daha ister: aracı ajanın ortak süper hesabıyla değil, isteği yapan kullanıcının yetkisiyle çalıştır. Kullanıcının göremediği kaydı ajan da göremez. ATLAS bu ilkeyi tek kullanıcılı ajan yetkilendirmesi adıyla AML.M0027 koduyla toplar.

Kapsamı daraltmanın bir de kimlik boyutu var. Ajan çoğu zaman bir kullanıcının adına çalışır. Onu ortak bir yüksek yetkili hesapla koşturursan, bir kullanıcının isteği başka bir kullanıcının verisine uzanabilir. Buna karışmış vekil (confused deputy) sorunu denir.

Çözüm, ajanın her isteği, isteği açan kullanıcının yetkisiyle yürütmesidir. Böylece kullanıcının göremediği kayıt ajana da kapalı kalır ve aşırı izin kendiliğinden daralır. Çok kullanıcılı üründe bu, en az yetkinin en kritik parçasıdır.

Etkinlik 1 / 6

En az yetki ilkesi ajan tasarımında ilk olarak neye uygulanır?

İkinci sınır: onay kapısı

İkinci sınır onay kapısıdır. OWASP'ın ajan güvenliği rehberi eylemleri dört risk düzeyine ayırır: düşük, orta, yüksek ve kritik. Rehberin örneğinde belge arama ve dosya okuma düşük, dosya yazma orta risklidir. E-posta gönderme ve kod çalıştırma yüksek, veritabanından silme ve para transferi kritik düzeydedir.

Yüksek etkili ve geri alınamaz eylem, açık insan onayı ister. Rehber bir uyarı da ekler: listede olmayan bir araç varsayılan olarak yüksek riskli sayılır ve onaya düşer. Yani sistem belirsizlikte kapalı tarafa yanılır.

Kapıyı kurarken en çok atlanan ayrıntı onay metnidir. Onay metnini model yazarsa, kandırılmış model yanıltıcı bir özet gösterir. Kullanıcı ekranda bir taslak kaydı görür, arkada ödeme talimatı geçer. Bu yüzden metni araç çağrısının argümanlarından kod üretir.

Ekranda gerçek tutar, gerçek alıcı ve gerçek eylem görünür. Görünmez karakterlerle gizlenen bir metin de ekrandaki eylemi çalışan eylemden ayırabilir. OWASP'ın 2026 listesi bu yüzden onaya özet değil, çalışacak eylemin kendisini koymayı ister.

Etkinlik 2 / 6

Doğru mu, yanlış mı?

Onay ekranındaki açıklamayı modelin yazması, kullanıcıya daha anlaşılır bilgi verdiği için tercih edilir.

Onayın kendisi de sınırlanır. OWASP rehberi karar ile yürütmeyi ayırır: model eylemi önerir, ayrı bir denetim bileşeni kapsamı, yetkiyi ve onay durumunu doğrular. Onay kaydı tam eyleme bağlanır.

Kayıtta eylemi yapan, araç adı, hedef kaynak, normalleştirilmiş parametreler, zaman ve geçerlilik süresi yer alır. Böylece bir iade için verilen onay başka bir tutarda ya da ertesi gün kullanılamaz. ATLAS bu insan onayı kontrolünü AML.M0029 koduyla sayar ve nihai kararın bir insanda kalmasını ister.

Etkinlik 3 / 6

Ajan 1.840 TL'lik bir iade önerdi ve kullanıcı onayladı. Onay kaydında hangi bilgilerin bulunacağını tek cümlede yaz.

Üçüncü sınır: kum havuzu

Üçüncü sınır kum havuzudur. Ajanın çalıştığı ortam, erişebildiği her şeyi belirler. Kod çalıştıran ajan ayrı bir kapsayıcıda ve ayrı bir kullanıcıyla çalışır. Kök dosya sistemi salt okunur bağlanır, bellek ve işlemci sınırı konur.

Ağ tarafında izinli liste kurulur: ajan yalnız tanımlı alan adlarına istek atar. Bu tek kural, önceki derste gördüğün sızdırma zincirinin son halkasını kırar. Veri okunur ama dışarı çıkamaz. ATLAS, güvenilmez veri bağlama girdiğinde araç çağrısını kısıtlamayı AML.M0030 koduyla önerir.

Ağ izin listesi neden bu kadar önemli? Önceki derste gördüğün sızdırma zinciri, okunan veriyi dış bir adrese taşıyarak tamamlanıyordu. Ajan yalnız tanımlı alan adlarına istek atabiliyorsa, bu son adım çalışmaz.

Veri okunur ama çıkacak kapı yoktur. Kum havuzu bu yüzden tek bir ayar değil, bir katmandır: ayrı kapsayıcı, ayrı kullanıcı, salt okunur kök, kaynak tavanı ve ağ izin listesi birlikte durur. Biri eksikse kalanlar da zayıflar, çünkü saldırgan en zayıf halkadan geçer.

Etkinlik 4 / 6

Kod çalıştıran bir ajanın kum havuzunda hangi sınırlar bulunmalı?

Birden fazla doğru var.

Dördüncü ve beşinci sınır: geri alınabilirlik ve bütçe

Dördüncü sınır geri alınabilirliktir. Mümkün olan her eylemi geri alınabilir biçimde tasarla. Silme yerine işaretle, gönderme yerine kuyruğa al, doğrudan yazma yerine taslak üret. Kuyruk ve taslak, insanın araya girmesi için zaman kazandırır.

Geri alınamayan araç için telafi yolu yaz: gönderilen e-posta için düzeltme akışı, başlatılan iade için iptal penceresi. OWASP rehberi de kullanıcının ajanı durdurabilmesini ve işlemi geri sarabilmesini ister. Geri alınabilir bir tasarım, bir hatayı felaketten ayıran en ucuz sigortadır.

Beşinci sınır bütçe ve döngüdür. Döngüye giren ajan hem zarar hem fatura üretir. OWASP rehberi bu riske cüzdan tüketme (denial of wallet) der, ATLAS ise maliyet hasadı adıyla AML.T0034 koduyla sayar.

Her koşuya üç sayaç koy: en çok kaç tur, en çok kaç saniye, en çok kaç birim maliyet. Araç başına da sayaç ekle. Sayaçlardan biri dolunca koşu durur ve insana devredilir.

Geri alınamaz eylem bu sınırlardan sırayla geçer: önce kod kapsamı doğrular, sonra sayaçlara bakılır, en son insan onay verir. Onaylanan eylem kuyruktan çalışır ve sonucu kökeniyle günlüğe yazılır.

sinirlar = {
  "tur": 12, "sure_sn": 90, "maliyet_birim": 500,
  "arac_basina": {"mail_gonder": 3, "web_getir": 20},
}
# sinir dolunca: kos = durdur, durum = "insana devredildi"
Sayaçlar koşu başına sıfırlanır. Sınır dolunca hata değil, devir üretilir.

Sayaçları satır satır oku. Koşu en çok 12 tur sürer, en çok 90 saniye çalışır ve en çok 500 birim maliyet harcar. Araç başına da ayrı tavan var: posta en çok üç kez, web getirme en çok yirmi kez çağrılır.

Sayaçlardan biri dolunca koşu hata vermez, çünkü hata akışı saldırgana ipucu verir. Koşu durur ve iş insana devredilir. Sayaçların koşu başına sıfırlanması önemlidir; aksi hâlde uzun bir oturum tavanı sessizce aşar ve bütçe bir anda tükenir.

Bu sınırların neden gerektiğini bir olay iyi anlatır. 2025 Temmuz'unda bir kod asistanı, kullanıcının kod dondurma talimatına rağmen üretim veritabanını sildi. Talimat büyük harflerle defalarca yazılmıştı, ama o bir istekti, bir engel değildi. Platformda dondurmayı zorlayan bir mekanizma yoktu.

OWASP bu olayı hedef ele geçirme ve güven istismarı başlıklarının yanında başıboş ajan riskine, yani ASI10'a da bağlar. Ders açıktır: sistem promptundaki bir yasak, kodda uygulanan bir sınırın yerini tutmaz. Silme işi bir onay kapısının ve geri alınabilir bir tasarımın arkasında olsaydı, tek bir sapma felakete dönmezdi.

Etkinlik 5 / 6

Geri alınamaz bir eylemin güvenli akışını sırala.

Sürükleyip doğru sıraya koy.

Bir öğeye odaklan, yukarı ve aşağı ok tuşlarıyla taşı. Home tuşu en üste, End tuşu en alta alır.

  • 1Eylem kuyruğa alınır ve çalışır
  • 2Kullanıcı kodla yazılmış onay ekranını görür
  • 3Sonuç köken bilgisiyle günlüğe yazılır
  • 4Model eylemi önerir
  • 5Denetim bileşeni izni ve kapsamı doğrular
  • 6Bütçe sayaçları kontrol edilir

İkili kural ve bir başka ajan

Bu beş sınır ayrı ayrı değil, birlikte çalışır. En az yetki saldırının menzilini daraltır, kum havuzu kaçış yolunu kapatır, onay kapısı geri alınamaz eylemi insana bağlar, geri alınabilir tasarım hatayı ucuz kılar, bütçe de döngüyü durdurur. Biri eksik kalırsa kalanlar da zayıflar, çünkü saldırgan en açık kapıdan geçer. Bu yüzden bir ajanı değerlendirirken beş sınırı tek tek değil, bir bütün olarak sorarsın ve eksik kalanı en büyük risk sayarsın.

Beş sınırı tek bir kurala bağlayan bir çerçeve var. Bir yapay zekâ şirketinin güvenlik ekibi onu 2025 Ekim'inde ikili kural (Rule of Two) adıyla önerdi. Bir ajan oturumunda üç yetenek yüksek risklidir: güvenilmez girdi işleme, hassas veriye erişim ve durum değiştirme ya da dış iletişim.

Kural, bir oturumda bunların en çok ikisinin bir arada bulunmasını ister. Üçü birden gerekiyorsa ve yeni bir temiz oturum açılamıyorsa, ajan tek başına çalışmaz; insan onayı ya da güvenilir başka bir doğrulama altında çalışır. OWASP'ın 2026 listesi bu kuralı bir alt sınır sayar.

Üç yeteneği birden taşıyan ajan için eylem başına insan onayı ister. Güvenilmez girdiyi diğer iki yetenekten biriyle birleştiren ajan için de açık bir artık risk değerlendirmesi ister.

Derinleş:Enjeksiyona dirençli tasarım kalıpları

Çerçeveyi koda indiren altı tasarım kalıbı var ve hepsi ortak bir ilkeye dayanır: ajan güvenilmez veri okuduktan sonra, o verinin sonuçlu bir eylemi tetiklemesi imkânsız kılınır. Eylem seçici kalıbında ajan yalnız önceden tanımlı eylemlerden birini seçer ve araç çıktısı plana geri dönmez. Planla sonra yürüt kalıbında ajan önce sabit bir plan kurar, sonra onu uygular; dış veri planı değiştiremez.

Eşle ve indirge kalıbında her güvenilmez belge ayrı bir yalıtılmış alt ajanda işlenir. İkili model kalıbında yetkili model araçları kullanır ama veriyi hiç okumaz, okumayı araçsız bir karantina modeli yapar. Kod yazıp çalıştır kalıbı bunu bir programa döker.

Bağlam en aza indirme kalıbı ise yanıttan önce kullanıcı istemini bağlamdan düşürür. Bu kalıplar fayda ile güvenlik arasında bir denge ister, ama enjeksiyona kanıtlanabilir bir direnç kazandırır.

Beş sınırı başka bir ajana taşı. Muhasebe ekibi, tedarikçi faturalarını okuyup ödeme listesi hazırlayan bir ajan istiyor. Aşağıdaki kararların her biri farklı bir soruyu yanıtlar: ajan ne yapabilir, nerede çalışır, ne kadar çalışır, hangi eylemde insanı bekler.

Her kararı doğru sınıra koyduğunda, çerçevenin tek bir ajanda nasıl birleştiğini görürsün. Yanlış bir yere koyduğun karar da o sınırın neyi kaçırdığını açığa çıkarır.

Etkinlik 6 / 6

Muhasebe ajanı için alınan her kararı ilgili sınıra yerleştir.

Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.

0/6 seçenek yerleşti.

Bu derste bir hata mı gördün? Bildir