13 puan yazan GN⁺ 2025-05-31 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-05-31
Hacker News görüşleri
  • Resmî bir konteyner güvenlik derecelendirmesi görmek isterdim
    1. Bilinen tüm konteyner zafiyetlerinin bir listesini derlemek
    2. Her zafiyeti izin tabanlı, jail, Docker, emülatör gibi çeşitli güvenlik ortamlarında çalıştırmak
    3. Toplam exploit'lerin yüzde kaçının engellendiğini puanlamak güzel bir fikir olurdu
      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
  • Çok kiracılı ortamlarda sorun “konteyner zafiyeti” değil, kernel'in paylaşılması gibi temel mimari
    Çü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
  • Kötü niyetli konteynerler söz konusuysa Linux kernel tabanlı konteyner runtime'larıyla tamamen güvenli bir ortam kurmak imkânsız
    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
  • Makinenin yapılandırma değerleri de gösterilse iyi olurdu
    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
  • Aslında konteynerler zaten nakit/coin ödüllü honeypot olarak işletiliyor
    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
  • Geleneksel VM'lerin neden başlatılmasının bu kadar uzun sürdüğünü merak ediyorum
    Ö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
    • Bir Linux kernel'ini 1 saniyenin altında boot etmek optimizasyonla gayet mümkün
      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
    • Hangi VM yazılımını kullandığınız hakkında daha fazla bilgi lazım
      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
    • Bu mutlaka böyle olmak zorunda değil
      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
    • Linux'ta VM belleği ayırmanın yavaş olmasının başlıca nedeni, birkaç GB'ı 4KB sayfalar halinde ayırmak
      1GB birimler halinde ayırınca dramatik şekilde hızlanabilir
      Windows'ta da muhtemelen benzer bir mekanizma vardır
    • Sorun VirtualBox kaynaklı olabilir
      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
  • Güvenilmeyen kodu çalıştırmak gereken bir durumda, kurulum yönergelerinde “uzaktaki kurulum script'ini doğrudan Bash'e pipe et” denmesinin ironik olduğu belirtilmiş
    Buna rağmen temel fikir son derece ilginç
    • İlk başta ne demek istediğini anlamadım ama kurulum script'ini ayrıca indirip elle doğrulamak da mümkün
      Yakında resmî bir dağıtım yöntemi hazırlanacak
  • Projeyi paylaştığı için teşekkür eden ve kendisinin microsandbox'ın geliştiricisi olduğunu söyleyen bir yorum
    Amaç, Docker konteynerleri kadar kolay şekilde microVM oluşturabilmek
    Sorusu olanların her zaman sormaktan çekinmemesi isteniyor
    • Şimdilik Python kütüphanesi olarak iyi kullanıyorum ama sandbox'ı birden fazla parçalı çağrı boyunca açık tutmak istiyorum
      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
    • Dağıtık/merkeziyetsiz yazılım test ağı (Valet Network) kuruyorum ve microsandbox çok faydalı olabilir gibi görünüyor
      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?
    • Gerçekten harika bir proje, appcypher etkileyici iş çıkarmış
      Yerleşik MicroVM özelliğinin OCI runtime arayüzü sunup sunmadığını merak ediyorum
      runc/crun yerine Docker/Podman ile de kullanılabilir mi?
    • README'yi hızlıca taradım ve daha fazla açıklama gerektiren bazı sorularım var
      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?
    • Oldukça temiz görünü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
  • Son birkaç yılda ultra hafif, neredeyse tek kullanımlık sayılabilecek çok sayıda VM seçeneğinin çıkmasına şaşırdım
    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
  • Tebrikler
    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?
    • Haklı bir nokta
      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
  • Bana göre konteyner teknolojisi OS'i gereğinden fazla genişletiyormuş gibi hissettiriyor
    Sadece mount komutunu çalıştırmak bile ne demek istediğimi anlatır
    Normalde 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
    • Yazıyı tam anlayamadı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
  • Çok ilginç görünüyor, hemen denemek istedim
    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
    • Microsandbox bir bulut çözümü sunmuyor
      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
    • En çok merak ettiğim şey Firecracker kullanıp kullanmadığıydı; asıl ilgim oradaydı
      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
  • Bu tür projeler çıktığında her zaman ilgimi çekiyor
    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
    • Kaynaklar (disk boyutu, CPU vb.) bir kez YAML dosyasında tanımlanabiliyor
      Şablonlar ya da uzaktan/otomatik oluşturma da mümkün
  • Konu biraz sapıyor ama ben güvenilmeyen JavaScript kodunu mutlaka çalıştırmak zorunda olduğum bir proje üzerinde çalışıyorum
    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/gVisor da değerlendirilebilir
      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
    • Tam da bu tür kullanım senaryoları microsandbox için ideal
      Daha iyi bir alternatif bulamadığım için microsandbox'ı kendim yaptım