
Drop: root gerektirmeyen Linux sandbox'a gVisor desteği
Drop, programları ve kod ajanlarını tek kullanımlık ortamlarda yalıtan açık kaynaklı bir Linux sandbox'ı. Root gerektirmiyor, konteyner yerine kurulu dağıtımı kullanıyor ve isteğe bağlı olarak gVisor'un kullanıcı alanı çekirdeğinde çalışıyor.
Drop, tek tek programları ve kod ajanlarını konteynerlere geçmeden tek kullanımlık ortamlarda yalıtan açık kaynaklı bir Linux sandbox'ı. Proje droprun.sh adresinde yayımlandı, kaynak kodu GitHub'da ve Hacker News'te Show HN gönderisi olarak paylaşıldı. Docker ya da Podman'ın çözdüğü sorunu belirgin biçimde daha hafif bir yaklaşımla ele alıyor.
Root gerektirmeyen yalıtım
İş akışı Python'un virtualenv'inden esinlenmiş: bir ortam oluşturuyorsunuz, içine girip normal çalışıyorsunuz, ama yalıtımı işletim sistemi uyguluyor. Drop root gerektirmiyor. Her ortam, kendi süreç, mount, ağ, IPC ve cgroup ad alanlarıyla Linux user namespace'i içinde çalışıyor; sandbox'taki program başlatılmadan önce Drop user namespace yeteneklerinin tamamını bırakıyor, bu yüzden süreç bind mount gibi ayrıcalıklı işlemleri yapamıyor.
Her ortamın kendi kalıcı ana dizini oluyor, özgün ana dizin ise gizleniyor. Sistem dizinleri ana makineden yalnızca okunabilir açılıyor, /var ve /tmp özel; localhost'ta dinleyen servislere erişim varsayılan olarak reddediliyor ve ağı pasta yönetiyor.
Ne için kullanılıyor
Başlıca kullanım alanı kod ajanları. Bir ajanı izin istemeden çalıştırmak, sınırları modelin değil işletim sisteminin çizdiği durumda daha az riskli: yanlışlıkla çalışan bir rm -rf ~ gerçek ana dizine dokunamıyor, ~/.ssh hedefli bir prompt injection boş dönüyor. İkinci alan üçüncü taraf yazılımlar: PyPI ya da npm'den kurulan bir paket ortam içinde çalıştığında kötü niyetli veya ele geçirilmiş sürümün etkisi sandbox'ta kalıyor.
Konteyner çalıştırıcılarından farklı olarak Drop, makinede zaten kurulu dağıtımı kullanıyor: derlenecek imaj ve konteyner kurulumu yok, ana makinenin programları olduğu gibi erişilebilir. TOML yapılandırması hangi dosya, dizin ve yerel servisin açılacağını belirliyor; tüm ortamlar varsayılan olarak ortak bir temel yapılandırmayı paylaşıyor.
gVisor ve kurulum
İki runtime var: varsayılan native programları doğrudan ana makine çekirdeğinde çalıştırıyor, gvisor ise ek olarak gVisor'un kullanıcı alanı çekirdeğinde, böylece sistem çağrıları doğrudan ana çekirdeğe ulaşmıyor. Bunun için runsc kurulu olmalı; mod TOML dosyasında (runtime = "gvisor") ya da komut bazında seçiliyor. gVisor sistem çağrılarına ek yük getiriyor ve saf Linux çekirdeğiyle tam uyumlu değil. Kurulum için passt/pasta paketi gerekiyor; Ubuntu 24'te AppArmor profili drop ikilisine user namespace izni vermeli, Fedora'da ise pasta'nın ad alanı dosyalarını açabilmesi için SELinux politikası genişletilmeli.
Sınırlamalar
Drop bir terminal aracı: grafik arayüzlü programlar varsayılan yapılandırmayla çalışmıyor, X soketlerinin açılması fazlasıyla geniş yetki verir ve ses çalma ya da kaydetme mümkün değil. setuid programlar hiç çalışmıyor, kendisi user namespace'e bağlı yazılımlar — Podman veya Snap ile kurulan uygulamalar — desteklenmiyor.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.