· kaynak dev.to (home feed)
NVIDIA OpenShell agent eylemlerini engelledi ama audit export'u sıfır kayıt logladı, değerlendirme ortaya koydu
Bağımsız bir değerlendirme, NVIDIA'nın OpenShell sandbox'ının agent politika ihlallerini engellediğini, ancak dokümante edilmiş OCSF audit export'unun sıfır kayıt ürettiğini buldu; bir geliştirici de bu boşluğu kapatmak için ayrı bir kanıt katmanı geliştirdi.

AI agent'ları için bir sandbox runtime'ı olan NVIDIA OpenShell'ın bağımsız bir değerlendirmesi, uygulamanın işlediğini ama kanıt izinin işlemediğini ortaya koydu: iki koşturmada da dokümante edilmiş OCSF JSON audit export'u tamamen boş geldi. Ölçümler ve yazarın bu boşluğu gidermek için geliştirdiği açık kaynak araç, dev.to'da yayınlanan bir yazıda paylaşıldı.
Test neyi ölçtü
Yazıya göre yazar, OpenShell 0.1.5'i Docker driver ile bir GitHub Actions runner'ında çalıştırdı, export seçeneğini NVIDIA'nın dokümantasyonunun gösterdiği şekilde etkinleştirdi ve sandbox içinde gerçek komutlar icra etti. Ortam hazır durumuna ulaştı ve komutlar çalıştı. Reddedilen bir DNS sorgusu yerel bir kısa olay tetikledi — policy_dns_ineligible gerekçesiyle DENIED olarak işaretlenmiş NET:REFUSE — ama bu yalnızca VM konsolunda göründü.
Buna karşılık dokümante edilmiş OCSF-JSON export'u iki koşturmada da sıfır kayıt üretti. NVIDIA'nın kendi dokümantasyonuna göre supervisor'ın dosya sink'i dış araçların okuyamayacağı bir tmpfs üzerinde bulunduğundan, dahili sink bant dışı da incelenemedi. Yazarın sonucu şu: mevcut build'de runtime, dış bir kanıt sisteminin tüketebileceği hiçbir şeyi export etmiyor. Değerlendirmenin önceki bir aşaması ayrıca engellenen bir DNS sorgusunun hiç olay bırakmadığını bildirmişti.
Yanıt: runtime'dan bağımsız bir kanıt katmanı
Boşluğu kapatmak için yazar, herhangi bir agent runtime'ının yerine geçmek yerine üzerinde duracak şekilde tasarlanmış, Apache-2.0 lisanslı Agent Seatbelt'i yayınladı. Ana bileşenleri:
- Sınırda deterministik politika. Araç çağrıları, ağ çıkışı, DNS, dosya erişimi, bütçeler ve credential yetkilendirmeleri, agent sürecinin dışında çalışan ve karar sürecine model katılmayan OPA/Rego politikalarıyla belirleniyor.
- Yalnızca eklemeli, hash zincirli bir ledger. Her izin ve red, onu üreten politika paketinin hash'iyle damgalanmış bir kayda dönüşüyor; tek bir bayt değiştirilirse çevrimdışı bir doğrulayıcı spesifik kaydı tespit edebiliyor.
- Kapsam muhasebesi. Her adapter bir manifest yayınlar ve bir koşturmadan sonra ledger, bağımsız gerçek verilerle karşılaştırılır; eşleşen bir kaydı olmayan herhangi bir eylem koşturmanın başarısız olmasına yol açar. Sistem kapsamı varsaymak yerine doğrular.
- Kapsamlı credential'lar. Bir broker secret'ları her koşturma, her eylem ve her hedef için verir; model ham değerleri hiç görmez ve ledger, grant'ı ya da reddi loglar, secret'ın kendisini asla.
Bildirilen sonuçlar ve belirtilen sınırlar
Yazar, ilk aşamada yeniden yapılandırılmış bir OCSF akışına karşı ölçülen rakamları bildiriyor: temiz bir koşturmada 11 eylemin 11'inde, yerleştirilmiş ihlallerle 13 eylemin 13'ünde kapsam mutabakatı; yerleştirilmiş beş saldırı — DNS ile secret sızdırma, reddedilen bir araç çağrısı, bütçe sınırı ihlali, kapsam dışı dosya yazımı ve credential istismarı — tamamı engellendi ve kaydedildi; ve temiz koşturmada sıfır yanlış engelleme. Karar gecikmesi 50 milisaniyelik bütçeye karşı p95'te 27,5 milisaniyede kaldı ve tek baytlık bir oynama, doğrulayıcıyı başarısız kıldı ve değiştirilen kaydı adıyla işaretledi. Harness, yazarın kendi örnek kodundaki bir hatayı bile yakaladı; bir istemci no_proxy ayarı üzerinden proxy'yi sessizce atlıyor ve bir fetch'i kayıtsız bırakıyordu.
Yazı sınırlar hakkında da açık sözlü. Orijinal engellenen-UDP-DNS vakası, varsayılan sandbox dig, curl veya python3 olmadan geldiğinden vendor'un imajında yeniden çalıştırılamadı; ayrıca henüz kimlik doğrulamalı canlı bir Claude Code oturumu çalıştırılmadı, yalnızca hook protokol yolu. OpenShell'ın export'unun boş geldiği runner'da Seatbelt tarafının gerçek verilere karşı 13'ün 13'ünü geçtiğini söylüyor yazar.
Yazarın başkalarının önde olduğunu kabul ettiği yer
Yazı, OpenShell ve nono adlı projenin Seatbelt'in bilinçli olarak sahip olmadığı gerçek izolasyonu sağladığını, nono'nun kendi sandbox'ı içinde hash zincirli audit loglarını ilk gönderdiğini ve Infisical'ın Agent Vault'unun, Seatbelt'in bellek içi birinci aşama eşdeğerinden daha olgun bir ticari credential broker'ı olduğunu kabul ediyor. Daha dar iddia ise politika, kanıt, credential grant'ları ve doğrulanmış kapsamı, runtime'lar arasında çalışan tek bir katmanda birleştirmek.
Neden önemli
Kayıtları olmayan sandbox uygulaması, agent güvenliğinin yalnızca kolay yarısını yanıtlar. Zor yarısı — bir olaydan sonra bir agent'ın tam olarak ne yaptığını ve neyin durdurulduğunu kanıtlamak — runtime'dan bağımsız olarak ayakta kalabilen audit izlerine bağlı. Büyük bir vendor'un sandbox'ı doğru şekilde engelleyebiliyorken dokümante edilmiş export'u sessizce hiçbir şey yazmıyorsa, production'da agent çalıştıran ekipler, hiçbir engelleme miktarının kapatamayacağı bir hesap verebilirlik boşluğuyla karşı karşıya. Bu bulgular tek bir geliştiricinin 0.1.5 sürümü üzerindeki ölçümlerine dayanıyor ve projenin kendisi de erken aşamada, ama her agent dağıtımının yanıtlayabilmesi gereken bir soruyu ortaya çıkarıyorlar: yarın denetlenseniz, sandbox'ınız işini gösterebilir mi?
- #ai-agents
- #security
- #nvidia
- #open-source
- #sandboxing