- microsandbox, güvenilmeyen kullanıcı ve yapay zeka kodlarının güvenli çalıştırılması için sanal makine düzeyinde izolasyon sağlar
- Ultra hızlı açılış (200 ms altı), OCI konteyner uyumluluğu, self-hosting gibi özelliklerle mevcut VM ve konteynerlerin dezavantajlarını aşar
- Çeşitli programlama dilleri için SDK'lar ve CLI araçlarıyla geliştirici ve yapay zeka araçları entegrasyonunda verimliliği en üst düzeye çıkarır
- Kod çalıştırma, geliştirme ortamları, veri analizi, web otomasyonu, uygulama barındırma gibi geniş AI ve geliştirme kullanım senaryolarına uygundur
- Tüm işler proje tabanlı olarak yönetilebilir; sistem genelinde kurulum ile oturumların korunması/izole çalışma ortamları desteklenir
- microsandbox, güvenilmeyen kullanıcı kodu veya yapay zeka kodunun (ör. AI ajanları, kullanıcı tarafından gönderilen kodlar, deneysel kodlar) güvenli şekilde çalıştırılması için tasarlanmış açık kaynaklı, self-hosted bir platformdur
- Mevcut yerel çalıştırma yöntemlerinde güvenlik açıkları, konteynerlerde çekirdek paylaşımından kaynaklanan eksik izolasyon, geleneksel VM'lerde yavaş açılış ve bulutta esneklik eksikliği gibi dezavantajlar vardır
- microsandbox, microVM (ultra hafif sanal makine) tabanlı gerçek süreç izolasyonunu desteklerken, konteynerler kadar hızlı başlangıç süresi ve geliştirici dostu bir deneyim sunar
- İlk ortam kurulumundan sonra 200 ms içinde açılış, konteyner imajı (OCI) uyumluluğu, MCP tabanlı AI entegrasyonu, kendi altyapınızı kullanma kontrolü gibi özelliklerle ayrışır
Başlıca özelliklerin özeti
- Bulletproof Security: microVM tabanlı yapısıyla, konteyner zafiyetlerini (kernel escape) temelden engelleyen sanal makine düzeyinde güvenlik sunar
- Instant Startup: İlk açılış süresi 200 ms'nin altındadır; VM'lere kıyasla son derece kısa kod çalıştırma başlangıç süresi sağlar
- Self-Hosting & Full Control: Buluta bağımlı olmadan yerelde veya kendi sunucunuzda doğrudan kurup çalıştırabilirsiniz
- OCI uyumlu: Standart konteyner imajlarını doğrudan çalıştırabildiği için mevcut Docker ve konteyner iş akışlarıyla uyumludur
- AI-Ready (MCP desteği): Claude, Agno gibi MCP tabanlı yapay zekalarla doğal şekilde entegre olabilir ve genişletilebilir
Hızlı geliştirme ve çalıştırma iş akışı
1. Sunucuyu başlatma
- Yalnızca basit komutlarla microsandbox sunucusunu başlatıp geliştirme ortamını hazırlayabilirsiniz
- Sunucu aynı zamanda MCP sunucusu olarak da çalışır; bu sayede Claude gibi AI araçları tarafından doğrudan çağrılabilir
2. SDK kurulumu
- Python, JavaScript, Rust gibi başlıca diller için microsandbox SDK'ları sunulur
- Ek dil desteği ve SDK genişletilebilirliği sayesinde geniş geliştirici ve yapay zeka entegrasyonu imkanı sağlanır
3. Kodu güvenli çalıştırma
- Python, JavaScript, Rust gibi farklı diller için sandbox ortamları ayrı ayrı seçilerek çalıştırılabilir
- Her sandbox bağımsız bir çalışma ortamıdır; dışarıdan gelen kod çalıştırılırken bile sistem güvenliği korunur
- SDK örnekleri üzerinden asenkron ve otomatik güvenli kod çalıştırma süreçleri kolayca uygulanabilir
Proje tabanlı ortam yönetimi
- Proje bazında Sandboxfile (yapılandırma dosyası) oluşturulup yönetilir; iş akışı geliştirici dostu bir paket yöneticisini andırır
- Birden fazla sandbox ortamı (ör. farklı diller, farklı ayarlar) projeye eklenerek sürüm ve ortam bazında yönetilebilir
- Proje sandbox'ı çalıştırıldığında, dosyalar ve kurulum değişiklikleri yerel dizinde (
./menv) otomatik olarak korunur
- Geçici sandbox etkinleştirme seçeneği vardır; oturum sona erdiğinde tüm kayıtlar ve durum tamamen silinerek izolasyon korunur
Sistem genelinde sandbox kurulumu
- Sık kullanılan ortamlar veya uygulamalar ayrı çalıştırılabilir dosyalar olarak kurulup kaydedilebilir
- Terminalde proje yolu olmadan da tek satırlık komutla doğrudan sandbox çalışma ortamına girilebilir
- Her sandbox'a ayrı isim verilebilir, farklı yapılandırmalarla birden fazla kurulum sürdürülebilir ve oturum durumu da korunur
Başlıca kullanım senaryoları
AI kod çalıştırma ve geliştirme ortamları
- Yapay zeka gerçek kaynak kodunu derleme, çalıştırma ve hata ayıklamayı otomatikleştirirken izole ve tekrarlanabilir geliştirme ortamları hızla sunulabilir
- Web uygulaması oluşturma, hata düzeltme ve prototipleme gibi kod otomasyonu senaryoları için uygundur
Veri analizi
- NumPy, Pandas, TensorFlow gibi başlıca veri bilimi kütüphaneleri sandbox içinde güvenli şekilde kullanılabilir
- Kişisel veriler veya hassas veriler gibi korunması gereken analiz iş akışları için idealdir
Web gezinme ajanları
- Web sitesi gezme, form gönderme, giriş yapma, veri kazıma gibi otomasyon görevleri yapay zeka tarafından güvenli şekilde yürütülebilir
- İçerik toplama, fiyat karşılaştırma ve otomatik test gibi kullanım alanlarında faydalıdır
Anında uygulama barındırma
- Kullanıcıların oluşturduğu araçlar, demolar, hesap makineleri ve görselleştirmeler anında servis olarak paylaşılabilir
- Her uygulama ayrı bir izole alanda çalışır; geçici ortamların hızlı oluşturulması ve sonlandırılması desteklenir
Sistem mimarisi
- Kullanıcı, kendi iş mantığı içinden microsandbox SDK'sını çağırır
- Sunucu sürecine (
microsandbox server) güvenilmeyen kodun iletilmesi ve çalıştırılması talep edilir
- Sunucu içinde her çalıştırma isteği ayrı bir microVM üzerinde yürütülür ve birbirinden izole edilir
- Her microVM bağımsız Python/Node ortamı yapılandırabilir
Açık kaynak politikası
- Apache License 2.0 altında açık kaynak olarak dağıtılır
1 yorum
Hacker News görüşleri
Böyle bir yaklaşımla basit permission veya jail tabanlı konteynerler 0%'a yakın, Docker 50%+'a, Microsandbox ise 100%'e yakın çıkabilir diye düşünüyorum
Bu, “neden doğrudan jail kullanmıyorsun?” gibi sorulara dair içgüdüsel merakı gidermeye yardımcı olabilir
Ayrıca açık web'de honeypot konteynerler çalıştırıp, hack'lemeyi başaranlara nakit ya da coin ödülü vererek hangi konteynerin %100'e ulaştığını “kanıtlamak” da eğlenceli olabilir
Son dönemde Rowhammer ve Spectre gibi zafiyetler nedeniyle geleneksel ve bulut bilişim güvenliğinin kendisini yeniden tanımlamak gerekebilir
Nihayetinde motivasyon, kusursuz emülasyon olmadan %100 güvenli konteynerler geliştirme ve OS'in temel servislerini güvenli hale getirme konusunda içgörü edinmek
Çünkü bir kernel LPE (Local Privilege Escalation) zafiyeti varsa bu doğrudan konteyner kaçışına yol açar
Genelde konteyner kaçışı diye etiketlenmez ama sektörde kernel LPE varsa konteyner güvenliğinin fiilen kırıldığı kabul edilir
Görünür alternatif, sandbox içinde sistem çağrısı (API) kullanımını büyük ölçüde kısıtlamak; ama bu durumda konteyner artık genel amaçlı bir platform olmaktan çıkar ve her seferinde vaka bazında yeniden ayarlama yapmak gerekir
Bu yüzden sanallaştırmanın gerekli olduğunu düşünenler var
Bellek güvenli ve sağlam bir OS çıkmadığı sürece başka yol görünmüyor; öyle bir OS çıksa bile MicroVM'i host Linux üzerinde çalıştırmaktan daha hızlı olup olmayacağı belirsiz
Docker veya systemd'de çeşitli ayarlara göre güvenlik seviyesi çok değişiyor
Hangi ayarın hangi risk/güvenlik düzeyine yol açtığını gösteren büyük bir deney veri setine ihtiyaç olduğunu düşünüyorum
Gerçekte bizzat üretim ortamları çok sayıda hacker'ın saldırı hedefi
Böyle bir teşvik modeli eğlenceli olabilir ama gerçek saldırı hedefi olma düzeyi ve maddi teşvikler, gerçek dünyadaki ortamlardan çok daha düşük kalır
Örneğin Windows'ta bir VM çalıştırdığınızda, herhangi bir şey çalışmaya başlamadan önce birkaç saniyeden fazla bekliyorsunuz
Buradaki “hiçbir şey çalışmıyor”, kullanıcı programı başlamadan önce, hatta firmware'in ilk komutu bile yürütülmeden önceki durum
Hatta sanal disk dosyasını sıfırlama işleminden ya da VM penceresi açılmadan önce bile uzun bir bekleme bölümü olabiliyor
Nedenini merak ediyorum
Ama standart kernel tabanında timeout veya polling gibi zaman alan çok sayıda işlem var
UEFI/CSM sistemlerinde sanal donanım hazırlığı ve sistem ortamı başlatma da ciddi zaman alıyor
WSL2'nin gereksiz ek yükü azaltmak için özel bir kernel kullandığı tahmin ediliyor
Çeşitli OS servislerinin ayağa kalkması, dosya sistemi hazırlığı, cache hazırlığı, ağ yapılandırması da etkili
Geleneksel yöntemde bootloader → initramfs → ana OS ayrı ayrı yüklenir
Boot süresini aşırı düşürmek için Amazon Firecracker gibi çözümler, önceden başlatılmış VM image'ını doğrudan belleğe alma yaklaşımını kullanır
Firecracker MicroVM tanıtımı
Windows'ta hangi hypervisor'ın kullanıldığına göre boot hızı değişir
HyperV UEFI oldukça yavaştır ve birçok Linux dağıtımı optimize minimal kernel sunmaz
VirtualBox'ta sorudaki durum belirgin şekilde görülüyor ve eski sürümlerde bu gecikme yoktu
Bu, “geleneksel VM”lerin özsel bir sınırı olmaktan çok o yazılıma özgü bir sorun olabilir
Genel olarak VM'ler gereksiz bileşenleri de emüle ettikleri için yavaş
Eğer hypervisor'ı boot hızına odaklanarak tasarlayıp legacy uyumluluğu göz ardı edebiliyorsanız, Firecracker'da olduğu gibi 125ms'de boot etmek mümkün
1GB birimler halinde ayırınca dramatik şekilde hızlanabilir
Windows'ta da muhtemelen benzer bir mekanizma vardır
Ben Hyper-V üzerinde Ubuntu 22 GUI'ye XRDP ile 10 saniyede, Ubuntu 22 server'a SSH ile 3 saniyenin altında bağlandım
Buna rağmen temel fikir son derece ilginç
Yakında resmî bir dağıtım yöntemi hazırlanacak
Amaç, Docker konteynerleri kadar kolay şekilde microVM oluşturabilmek
Sorusu olanların her zaman sormaktan çekinmemesi isteniyor
Bazen “Sandbox is not started. Call start() first” gibi hatalar alıyorum
Resmî dokümantasyondaki örüntü “async with” ama benim kullanım tarzım, sınıf başına bir kez instantiate edip birçok metotta yeniden kullanmak
Buna dair önerilen yöntem veya best practice nedir diye merak ediyorum
Ağ yapılandırmasının nasıl çalıştığını merak ediyorum
Örneğin microvm'in yalnızca public IP'lere erişebilmesini sınırlamak mümkün mü?
Yani microvm'in local network IP'lerine erişmesini engelleyebilir miyim?
Yerleşik MicroVM özelliğinin OCI runtime arayüzü sunup sunmadığını merak ediyorum
runc/crun yerine Docker/Podman ile de kullanılabilir mi?
Nasıl bu kadar hızlı olabiliyor?
Geleneksel VM'lere kıyasla ne gibi trade-off'lar var?
VM izolasyonunun zedelenebileceği durumlar var mı?
GUI açılabiliyor mu?
Bunu yeni bir Vagrant gibi mi düşünüyorsunuz?
Veri giriş/çıkışı nasıl yapılıyor?
Doğru anladıysam bununla gerçek zamanlı olarak backend'i de sunucu gibi ayağa kaldırmak mümkün mü?
Desteklenen dil listesi etkileyici microsandbox desteklenen diller listesi
Katkı rehberinin daha ayrıntılı olmasını isterdim contributor guide
Eskiden VM'lerin yavaş ve ağır olmasıyla uğraştığım deneyimlerim var
Bunu macOS'taki Orbstack, özellikle de “Linux machines” özelliğiyle karşılaştırmak isterdim
Orb'un tek bir VM'i yeniden kullanıp kullanmadığını da merak ediyorum
VM'leri milisaniyeler içinde boot etmek çok önemli bir ilerleme
Ancak benzeri CloudHypervisor ve Firecracker ile de yapılabiliyor
Konteynerlerin VM'lere karşı üstün olduğu yer runtime performansı
VM'leri yavaşlatan etken I/O cihaz emülasyonu
Özellikle yapay zeka ajanı türü iş yüklerinde uygulama katmanındaki ek yük hissedilecektir
Performans sorununu çözmek için planınız nedir?
Microsandbox libkrun kullanıyor ve libkrun, performans yükünü azaltmak için block, vsock ve virtio-fs için virtio-mmio kullanıyor
Firecracker da özünde benzer; E2B projesi agentic AI iş yüklerini işlemek için Firecracker kullanıyor
Şimdilik dosya sistemi sorunları dışında büyük bir performans iyileştirme planı yok
Sadece
mountkomutunu çalıştırmak bile ne demek istediğimi anlatırNormalde gizlenmesi gereken bilgiler ortada olduğu için, mevcut basit komutların kullanışlılığı azalıyor
Daha ciddi sorun ise kullanıcının iç veri yapılarına doğrudan dokunabilmesi
Sanki kullanıcıya hem peek hem poke yetkisi vermek gibi
Konteyner fikrinin kendisi iyi ama kernel yeniden tasarlanmadıkça bugünkü yaklaşım geçici bir çözüm
Konteyner içinde
mountçalıştırınca tam olarak neyin bu kadar kritik olduğunu açıklar mısın?Host mount'ları gerçekten konteynere mi sızıyor?
Normalde bunun ancak volume gibi şeyleri açıkça bağladığınızda mümkün olduğunu düşünürdüm
Ben de CodeSandbox SDK, E2B gibi araçlarla çok eğlendim; bunlardan farkını ve gelecekteki yönünü merak ediyorum
İçeride Firecracker kullanıp kullanmadığını da öğrenmek isterim
Yapı kendi kendine host ediliyor
E2B gibi microVM tabanlı sandbox'ları yerel ortamda (Linux, macOS, Windows(yakında)) kolayca çalıştırmayı sağlıyor ve üretim ortamına geçişi de basitleştiriyor
Firecracker yerine libkrun kullanıyor
MicroVM çözümlerinde bakım sorunları ve düzenli güvenlik denetimlerinin sürüp sürmeyeceğini merak ediyorum
Firecracker ve OCI image kurulumu zor olduğundan, alternatif çıkmasını memnuniyetle karşılıyorum
Kata container ile çalışmak da zor
Konteynerlerin en büyük avantajı, disk boyutu veya CPU çekirdeği gibi somut kaynakları belirtmeden hızlıca çalıştırılabilmeleri
Ayrıca durumu image ve diff olarak alıp, program çalışırken sistemde neyin değiştiğini görmek mümkün
Bu kadar kullanışlı, minicik VM'lerle daha güvenli sandboxing yapılabilirse harika olur
Bazen bwrap de kullanıyorum ama komut satırı için çok uygun bir araç değil
Şablonlar ya da uzaktan/otomatik oluşturma da mümkün
microsandbox sayesinde bu kodu güvenli biçimde izole ederek çalıştırabilme umudum doğdu
200ms'lik boot gecikmesi de canlı sandbox havuzuyla çözülebilir
OCI uyumluluğu olduğu için, tüm sandbox ortamını da sunabilirim
Bunun gerçekten iyi bir kullanım alanı olup olmadığını ve daha iyi bir alternatif bulunup bulunmadığını merak ediyorum
runsc motoru Docker/Docker Desktop içinde de çalışabiliyor
Ancak gVisor'da ağ paralelliği gibi performans docker'ın yaklaşık üçte biri düzeyinde
Daha iyi bir alternatif bulamadığım için microsandbox'ı kendim yaptım