· kaynak Hacker News – Front Page (native)
Plimsoll: kendi kendine barındırılan sandbox, her AI agent kod çalıştırmasını izolasyon kademesiyle damgalıyor
Hacker News'te duyurulan kendi kendine barındırılan bir sandbox olan Plimsoll, güvenilmeyen AI agent kodunu çalıştırıyor ve her çalıştırmanın izolasyon kademesini raporlayarak, çağıran tarafın belirlediği taban sınırının altındaki hiçbir şeyi çalıştırmayı reddediyor.
Gücünü kendisi açıklayan bir sandbox
AI agent'ları tarafından yazılan güvenilmeyen kodu çalıştırmak için kendi kendine barındırılan bir sandbox olan Plimsoll, 12 Ekim'de Hacker News'te duyuruldu ve proje GitHub'da yayınlandı. Ayırt edici fikri, her çalıştırma sonucunun, çalışmanın gerçekte kullandığı izolasyon sınırını tanımlayan makine tarafından okunabilir bir değer taşıması ve çağıran tarafın tek bir komut çalıştırılmadan önce asgari bir güç talep edebilmesidir.
Adı, gemi gövdelerindeki, bir gözlemcinin bir geminin aşırı yüklü olup olmadığını bir bakışta görmesini sağlayan yük sınırı işareti olan Plimsoll çizgisinden alınmıştır. Proje aynı ilkeyi izolasyona uygular: güç, bir veri sayfasına gömülü bir iddia değil, çalıştırma başına birinci sınıf bir özelliktir.
Çağıran tarafından belirlenen taban sınırıyla dört kademe
Projenin GitHub sayfasına göre izolasyon gücü, en zayıftan başlayarak dört kademeden biri olarak ifade edilir: process, container, kernel ve vm. Bir istek, kabul edeceği en zayıf kademenin belirtebilir; sandbox bu taban sınırını karşılayamazsa çalıştırma baştan bir hatayla (ErrInsufficientIsolation) reddedilir ve hiçbir kod çalışmaz. Resmî Go client, sonuç döndüğünde bildirilen kademeyi yeniden doğrular, böylece garanti çağrının her iki tarafında da kontrol edilir.
Proje bu kanıtın sınırları konusunda açık sözlüdür: kademe, daemon'un yapılandırmasını ve kendi başlangıç kontrollerini yansıtır; hangi yazılımın çalıştığına dair donanımdan gelen kriptografik bir kanıttır değil ve pakete dahil hiçbir sağlayıcı bunu sunmaz.
Güvenle yeniden denenebilecek reddetmeler
Otomasyon için "hiçbir şey çalışmadı" ile "çalıştı ve sonra başarısız oldu" arasındaki ayrım önemlidir ve Plimsoll, hiçbir şey çalıştırmayan her reddetmeyi bir nedenle işaretler: request, permission, protocol, isolation, environment veya capacity gibi. Bir yardımcı fonksiyon, backend süreç içinde mi yoksa daemon arkasında mı çalışıyor, işareti okur. İşaret taşımayan hatalar kod başladıktan sonra oluşmuş olabilir; bu yüzden proje, bunların otomatik olarak yeniden denenmesinin asla güvenli olmadığı konusunda uyarır. İşaret ayrıca yalnızca client'ın kendi istek kimliğini taşıyan bir yanıtta geçerlidir; bu da bir proxy'nin gerçekten çalıştırılmış bir çağrıyı hiç gönderilmemiş gibi yeniden etiketlemesini engeller.
Çalıştırmalar ayrıca gönderilen isteğin ve dönen sonucun SHA-256 hash'lerini döndürür ve resmî client'lar bunları yeniden hesaplar. Daemon dışında çalışan ayrı bir program olan plimsoll-attest, doğrulanmış sonuçları imzalar, bir tanesi eksik olan çağrı zincirini reddeder ve bir çalıştırmayı yeniden oynatabilir.
Sandbox'a asla girmeyen kimlik bilgileri
Plimsoll, agent yazılımı kodunun harici API'leri çağırması sorununu da ele alır. Bir grant, tek bir çalıştırmaya listelenmiş yollara erişim izni verir. Sandbox içindeki kod, sandbox'a yerleştirilmiş küçük bir client'ı çağırır; sandbox dışında çalışan bir broker ise çağıranı ve tam yolu doğrular ve kendisi taze, kısa ömürlü, çalıştırma başına bir kimlik bilgisini ekler. Kuralları sandbox içindeki client değil broker uyguladığı için, client'ı atlatıp elle çağrı yapan kod daha ileri gidemez ve kimlik bilgisi sınırı hiçbir zaman geçmez.
Sadece bir container değil, bir sınav
Aynı mekanizma, agent kodunu yalnızca kontrol altında tutmak yerine değerlendirebilir de. Simülasyon imajına gömülü bir deneme çalıştırıcısı, agent'ın programını, programın okuyamadığı senaryolara karşı çalıştırır; her senaryo, çalıştırma başlamadan önce silinen bir dosyada teslim edilir. Yayınlanan demoda, bir AI agent simüle edilmiş bir cart-pole için bir denetleyici yazdı; simülatör sandbox imajının içinde WebAssembly'ye derlendi ve Plimsoll her çalıştırmanın tam yörüngesini bir SHA-256 parmak izine hash'ledi. İki kontrol kazancı yanlış işaretli olan agent'ın ilk taslağı, çubuğu 5,96 saniyede düşürdü ve kabul edilen denetleyicinininkinden farklı bir parmak izi üretti.
Entegrasyon ve bir dakikalık başlangıç
Vercel AI SDK, Google ADK, Agno, CrewAI, Trigger.dev ve Mastra için client paketleri mevcuttur; her biri bir modelin kodunu bir tool veya code executor aracılığıyla Plimsoll'a teslim eder. Minimal bir örnek için daemon, Docker veya kimlik bilgisi gerekmez: çağıran tarafın kendi süreci içinde QuickJS üzerinde JavaScript çalıştıran bir wasm sağlayıcısı kullanır. Bu yol process kademesini bildirir; proje, bu kademede hiçbir işletim sistemi duvarının olmadığını ve düşmanca kod için kullanılmaması gerektiği konusunda uyarır. Bir container'ın kernel isteklerini araya giren bir katman olan gVisor'ı kurmak, aynı kod parçasını kernel kademesine yükseltir.
Neden önemli
Kod yazıp hemen çalıştıran agent'lar artık rutin ve güvenlik sorusu genellikle "sandbox'landı mı?"而非 "bu kez ne kadar güçlü ve kanıtlanabilir biçimde?" oluyor. İzolasyon gücünü uygulanmış taban sınırları, dürüst reddetme semantiği ve hash'lenmiş makbuzlarla çalıştırma başına kontrol edilebilir bir değere dönüştürerek Plimsoll, sandbox'lamayı bir agent hattının güvenebileceği açık bir sözleşmeye dönüştürüyor. Bu donanım kanıtlaması değil ve proje bunu açıkça söylüyor; ama model üretimi kodu orkestre etmek için birleştirilebilir bir ilkel olarak, çoğu agent yığınının şu an varsayımlarla örtbas ettiği bir boşluğu dolduruyor.
- #ai-agents
- #sandboxing
- #security
- #open-source
- #go