Agent Sandboxing
Ajan korumalı alanı, bir yapay zeka ajanının komutlarını ve oluşturduğu kodu; dosyalarını, ağ erişimini, kimlik bilgilerini ve işlem kaynaklarını sınırlayan yalıtılmış bir ortamda çalıştırır.
Ajan sandbox'ı, bir AI ajanının kabuk komutları, üretilen kod, dosya düzenlemeleri ve web'de gezinme gibi eylemlerini; bu eylemlerin erişebileceği dosyaları, ağları, kimlik bilgilerini ve işlem kaynaklarını sınırlayan yalıtılmış bir ortamda çalıştırma uygulamasıdır. Büyük dil modeli (LLM) üzerine kurulu bir ajan, okuduğu metne göre her komutu seçer; bu metin yanlış veya kötü amaçlı olabilir. Sandbox, sınırlarını işletim sistemi ya da hipervizör düzeyinde uygular. Böylece model bir web sayfasında veya README'de gizlenmiş bir istem enjeksiyonunu izlese ya da yalnızca bir hata yapsa bile bu sınırlar geçerliliğini korur.
Ajanların Sandbox'lara Neden İhtiyacı Var#
İşlev çağırma ve araç kullanımı, bir modelin metnini gerçek eylemlere dönüştürür; dolayısıyla kabuk komutları çalıştırabilen bir ajan dosyaları silebilir, SSH anahtarlarını okuyabilir veya kaynak kodu yükleyebilir. OWASP AI Agent Security Cheat Sheet, ajanların sandbox olmadan rastgele kod çalıştırmasına izin vermeyi kaçınılması gereken uygulamalar arasında sayar. Aralık 2025'te yayımlanan OWASP Agentic Applications için En İyi 10 listesi, beklenmedik kod çalıştırmayı ajan sistemlerinin başlıca on riskinden biri olarak belirtir. Sandbox'lar ajanların kullanımını da kolaylaştırır: Her komut için bir kişiden onay istemek onay yorgunluğuna yol açar; Anthropic, kendi iç kullanımında Claude Code'u sandbox'a almanın izin istemlerini %84 azalttığını buldu; çünkü sınırlar içinde kalan komutlar artık izin istemeyi gerektirmiyor.
Sandbox Neleri Kısıtlar#
Bir ajan sandbox'ı genellikle beş şeyi denetler:
- Dosya sistemi: Ajan, çoğu zaman salt okunur bir temel imaj üzerinde bulunan geçici bir çalışma alanını veya tek bir depoyu görür; kimlik bilgilerini, tarayıcı profillerini ya da diğer projeleri okuyamaz.
- Ağ: Giden trafik engellenir veya yalnızca paket kayıt sistemi gibi izin verilen alan adlarına erişim sağlayan bir vekil sunucu üzerinden yönlendirilir. Böylece ele geçirilen bir ajan, verileri saldırganın sunucusuna gönderemez.
- Kimlik bilgileri: Gizli bilgiler sandbox'ın dışında tutulur veya tek bir görevle sınırlandırılmış kısa ömürlü belirteçler olarak sağlanır; bu, veri güvenliğinin en az ayrıcalık ilkesidir.
- İşlem kaynakları: CPU süresi, bellek, işlem sayısı ve geçen süre üzerindeki sınırlar, kontrolden çıkan döngüleri ve çatal bombalarını durdurur.
- Sistem çağrıları: seccomp gibi filtreler, ajanın araçlarının hiçbir zaman ihtiyaç duymadığı çekirdek arayüzlerini engeller.
Yalıtımın gücü, sınırın nerede olduğuna bağlıdır. Docker kapsayıcıları ana makinenin çekirdeğini paylaşır; bu nedenle bir çekirdek açığı kapsayıcıdan kaçışa yol açabilir. gVisor, her kapsayıcının sistem çağrılarını yakalayan bir kullanıcı alanı çekirdeği ekler. AWS'nin Lambda için geliştirdiği Firecracker gibi mikroVM'ler ise her sandbox'a kendi asgari çekirdeğini verir; 125 ms'den kısa sürede başlarken 5 MiB'den az bellek ek yükü oluşturur. Barındırılan kod yorumlayıcıları ve bulut tabanlı kodlama ajanları genellikle her görevi sonrasında yok edilen yeni bir kapsayıcıda veya mikroVM'de çalıştırır. Geliştirici makinelerinde Claude Code sandbox'ı, macOS'te Seatbelt'i, Linux'ta bubblewrap'i kullanır; kabuk komutlarının yalnızca çalışma dizinine ve geçici bir dizine yazmasına izin verir ve ağ trafiğini her ana makineyi izin listesine göre denetleyen bir vekil sunucu üzerinden gönderir.
Sandbox, modelin araç çağrılarını yürüten yazılım olan ajan altyapısının bir katmanıdır. Altyapı, önerilen her eylemi politikaya göre denetler, izin verilen eylemleri sandbox içinde çalıştırır ve ödemeler, dağıtımlar veya kuruluş dışına gönderilen mesajlar gibi geri alınamaz eylemlerden önce bir kişiden onay almak için duraklatır:
Üretilen Kodu Sandbox'ta Çalıştırma#
Veri analizi yardımcılarından ajan tabanlı kodlama araçlarına kadar kod yazıp çalıştıran ajanlar en sıkı kısıtlamalara ihtiyaç duyar; çünkü üretilen kod, yorumlayıcının yapabildiği her şeyi yapabilir. En iç katman, Python'ın standart kitaplığının gösterebildiği sıradan süreç yalıtımıdır: Bu betik, modelin yazdığı kodu atılabilir bir dizinde, boş bir ortamla ve resource modülü üzerinden ayarlanmış CPU süresi sınırıyla çalıştırır (Linux ve macOS).
import os
import resource
import subprocess
import sys
import tempfile
os.environ["API_KEY"] = "sk-live-123" # Ajanın kendi sürecinin tuttuğu bir sır
# Modelin yazdığı kod: ortamı okur, ardından sonsuza dek döngüye girer
generated = "import os\nprint('API_KEY =', os.environ.get('API_KEY'), flush=True)\nwhile True: pass"
def limit_cpu():
"""Stop the child process after 2 seconds of CPU time."""
resource.setrlimit(resource.RLIMIT_CPU, (2, 2))
# Yalıtılmış modda, atılabilir bir dizinde ve boş bir ortamla çalıştır
cmd = [sys.executable, "-I", "-c", generated]
with tempfile.TemporaryDirectory() as workspace:
proc = subprocess.run(cmd, cwd=workspace, env={}, capture_output=True, text=True, preexec_fn=limit_cpu)
print(proc.stdout.strip())
print("exit code:", proc.returncode)Alt süreç API_KEY = None yazdırır; çünkü boş bir ortamla başlar ve üst sürecin gizli bilgisine erişemez. Ardından -24 koduyla çıkar; bu, sonsuz döngüsü 2 saniyelik CPU sınırına ulaşınca çekirdeğin süreci SIGXCPU ile sonlandırdığı anlamına gelir. Bir kapsayıcı veya mikroVM, bu sürecin çevresine dosya sistemi ve ağ sınırlarını da ekler.
Korumalı Alana Alma ve İlgili Denetimler#
- AI güvenlik bariyerleri: Çalıştırılmadan önce girdileri, çıktıları veya önerilen eylemleri tarayan sınıflandırıcılar ve kurallar. Bir eyleme güvenlik bariyerinden geçtikten sonra ne olursa olsun sandbox bunu sınırlar.
- İzinler: Erişim denetimi, bir ajanın hangi araçları ve kaynakları kullanabileceğine karar verir. Sandbox, bu kararları modelin ikna yoluyla aşabileceği tüm denetimlerin altında, işletim sistemi düzeyinde uygular.
- Kapsayıcılaştırma: Yazılımı ve bağımlılıklarını tekrarlanabilir dağıtım için paketleme. Ayrıcalıkları kaldırılmış, bağlamaları kısıtlanmış ve dışarı giden trafik kuralları belirlenmiş bir kapsayıcı, çalıştırıldığında sandbox görevi görür.
- Test sandbox'ları: Yazılımın güvenle denendiği, üretim dışı sistem kopyaları. Ajan sandbox'ları, hem üretimde hem geliştirme sırasında ajanın yaptığı her eylemi sınırlar.
Ajan Sandbox'larının Kullanıldığı Yerler#
- Kodlama ajanları: Her görevde tek bir depo içeren yeni bir kapsayıcı veya sanal makine açılır; ajan burada bağımlılıkları kurar, testleri çalıştırır ve insan incelemesi için bir diff döndürür.
- Bilgisayar kullanımı ajanları: Ekran görüntüleri ve tıklamalarla masaüstü veya tarayıcı kullanan ajanlar, kendi hesaplarına sahip bir sanal makinede çalışır; çünkü görüntüledikleri herhangi bir sayfada onlara yönelik talimatlar bulunabilir.
- Kod yorumlayıcıları: Yüklenen elektronik tabloları veya görüntüleri analiz eden yardımcılar, Python kodlarını genellikle internet erişimi olmayan, oturum başına ayrılmış bir sandbox'ta çalıştırır.
- MCP sunucuları ve ajan becerileri: Üçüncü taraf araçları ve beceri betikleri kullanıcının kimlik bilgileriyle çalışır; bu nedenle dikkatli ana makineler yerel sunucuları ve betikleri, ajanın kabuğuyla aynı sınır içinde başlatır.
Barındırılan ajan platformları, kendi iş akışlarına da aynı kısıtlamaları uygular. Ultralytics Platform Agents, YOLO26 algılamasını, görme-dil modellerini ve uyarı bloklarını birbirine bağlar; paylaşılan her deneme çalışmasını 60 saniye, 20 girdi görüntüsü ve 20 model veya sağlayıcı çağrısıyla sınırlar. Webhook bloğu yalnızca herkese açık HTTPS URL'lerine gönderi yapar, yönlendirmeleri izlemez ve 5 saniye sonra zaman aşımına uğrar.










