−25%

yıllık Windows ödemesinde, 31 Ekim'e kadar. Paketlere git

EQVPS
Hemen başla

Konteyner mi microVM mi: alt süreçten tam VM'e 4 yalıtım seviyesi karşılaştırması

10 Eki 2026 · 5 dk okuma · EQVPS Team

“Bunu bir sandbox'ta çalıştır” tek bir talimat gibi duyulur. Pratikte insanlar bununla yaygın dört sınırdan birini kasteder ve bunlar çok farklı şeyleri durdurur. Yanlışını seçmek ya sizi korumasız bırakır ya da her çalıştırmayı gerektiğinden yavaş ve pahalı yapar.

Bu karşılaştırma, kodun gerçekten güvenilmez olduğunu varsayar: bir dil modeli tarafından yazılmış, bir kullanıcı tarafından gönderilmiş ya da tanımadığınız birinden gelen bir pull request'te ulaşmış. Kendi yazdığınız kodun ihtiyaçları farklıdır.

Neler ters gidebilir

Sınırları karşılaştırmadan önce ne işe yaradıklarını adlandırmak faydalıdır. Güvenilmeyen kod şunları yapabilir:

  1. Okumaması gerekeni okumak: ortam değişkenleri, SSH anahtarları, ana dizininizdeki dosyalar, bulutun meta veri uç noktaları.
  2. Kaynakları tüketmek: sonsuza dek döngüde kalmak, makine kilitlenene kadar fork etmek, diski doldurmak.
  3. Ağı kötüye kullanmak: başka sunucuları taramak, spam göndermek, kripto para madenciliği yapmak, iç hizmetlerinizi çağırmak.
  4. Yerleşmek: görevden sonra da yaşayan bir cron işi ya da hizmet kurmak.
  5. Kaçmak: alttaki katmandaki bir hatayı kullanarak ana makinenin kendisinde kod çalıştırmak.

Aşağıdaki her seviye bunların bir kısmıyla başa çıkar, hepsiyle değil.

Seviye 1: bir süreç

En basit sandbox bir alt süreçtir: zaman aşımlı bir subprocess.run, belki ayrı bir kullanıcıyla, titizseniz kaynak limitleri ve bir seccomp filtresiyle.

Durdurur: sonsuz çalışmayı (zaman aşımı), kaynak tüketiminin bir kısmını (limitler), bazı tehlikeli sistem çağrılarını (seccomp). Durdurmaz: o kullanıcının okuyabildiği her şeyi okumayı, ağ erişimini, kullanıcının yazabildiği her yer üzerinden yerleşmeyi ve herhangi bir çekirdek hatasını. Tipik çöküş: kod, okunabilir olduğunu unuttuğunuz bir dosyayı okur ya da “kısıtlı” bir dil yorumlayıcısının bir arka kapısı olduğu ortaya çıkar. Tarih, dayanamamış dil içi sandbox'larla doludur.

Açılış süresi neredeyse sıfırdır. Kendi kodunuz için iyidir; başkasının kodu için bir sınır değildir.

Seviye 2: bir konteyner

Namespace'ler koda dosyalar, süreçler ve ağ üzerinde kendine ait bir görünüm verir; cgroup'lar CPU'yu ve belleği sınırlar; kaldırılan capability'ler ve seccomp çekirdekten isteyebileceklerini daraltır.

Durdurur: ana makinenin dosyalarını okumayı (bağlanmadıkça), diğer süreçleri görmeyi, sınırsız kaynak kullanımını ve konteyner atılırsa yerleşme sorununun büyük kısmını. Durdurmaz: ana makinenin ortak çekirdeğindeki bir hatayı. Makinedeki tüm konteynerler aynı çekirdekle konuşur, bu yüzden erişilebilir bir çekirdek açığı bir çıkıştır. Tipik çöküş: egzotik exploit'lerden çok yapılandırma. Ayrıcalıklı bir konteyner, konteyner çalışma zamanının soketinin içeri bağlanması, ana makinenin ağının “sadece hata ayıklama için” açılması. Her biri sınırı sessizce ortadan kaldırır.

Açılış süresi milisaniyelerdir. Sertleştirilmiş varyantlar vardır; aralarında sistem çağrılarını ana makineye ulaşmadan yakalayan kullanıcı alanı çekirdekleri de bulunur, ancak hız ve uyumluluk pahasına. Güvendiğiniz kişilerin kodu için iyi yapılandırılmış bir konteyner makul bir varsayılandır.

Seviye 3: bir microVM

MicroVM, tıpkı tam bir VM gibi kendi çekirdeğini bir hipervizör altında çalıştırır, ama neredeyse hiç emüle edilmiş donanım olmadan. En bilinen örneği Firecracker'dır.

Durdurur: bir konteynerin durdurduğu her şeyi, artı ortak çekirdek sorununu. Ana makineye ulaşmak için kodun hipervizörü ya da bir avuç sanal cihazdan birini kırması gerekir; bu, bir çekirdeğin sistem çağrısı arayüzünden çok daha küçük bir yüzeydir. Durdurmaz: ona verdiğiniz şeylerin kötüye kullanılmasını. Açık giden trafik yine istismar edilebilir; enjekte edilen sırlar yine sızabilir. Tipik çöküş: yalıtım değil, politika. Biri “testler çalışsın diye” bir üretim token'ı iletir ya da gerekmeyen yerde giden trafiği kısıtlamasız bırakır.

Açılış süresi saniyenin bir kesri ile yaklaşık bir saniye arasındadır ve birkaç megabayt ek yük getirir. Bu, görev başına bir tane oluşturup sonra silecek kadar hızlıdır; bu da yerleşme sorununu kendiliğinden çözer: geri dönülecek hiçbir şey kalmaz.

Seviye 4: tam bir sanal makine

Normal bir VM ya da VPS, microVM ile aynı türden bir sınıra sahiptir: donanım sanallaştırması ve bir hipervizör. Fark etrafındaki her şeydedir: tam bir cihaz modeli, koca bir işletim sistemi, isterseniz genel bir IP ve günlerle ya da aylarla ölçülen bir yaşam döngüsü.

Durdurur: microVM ile aynı sorun sınıflarını; daha fazla donanım emüle edildiği için saldırı yüzeyi biraz daha büyüktür. Durdurmaz: kendi ağ kimliğinin kötüye kullanılmasını. Genel IP'li ve kötü amaçlı kod çalıştıran bir VM, kendi IP'sini engelleme listelerine sokar; aynı IP e-postanızı da gönderiyorsa bu önemlidir. (Bu zaten olduysa bkz. IP'niz bir engelleme listesindeyse ne yapmalı.) Tipik çöküş: fazla uzun yaşar. Tek bir deney için oluşturulan bir VM kimlik bilgileri ve durum biriktirir ve yavaş yavaş korumakla görevli olduğu güvenilir makineye dönüşür.

Açılış süresi onlarca saniyeden dakikalara kadardır ve faturalama genellikle aylıktır. Gelen portlara ihtiyaç duyan uzun ömürlü bir hizmet için doğru biçim, 20 saniyelik bir kod çalıştırması için yanlış biçimdir.

Karşılaştırma

SüreçKonteynerMicroVMTam VM
Kendi çekirdeğihayırhayırevetevet
Ana sınırkullanıcı izinlerinamespace'ler + ortak çekirdekhipervizör, minicik cihaz modelihipervizör, tam cihaz modeli
Açılış süresi~0ms~0.1–1 sn10 sn – dakikalar
Ek yükyokküçükbirkaç MiBonlarca–yüzlerce MiB
Her görevden sonra atmakkolaykolaykolayyavaş, pahalı
Gelen portlar / genel IPana makineninana makineningenellikle yokevet

Seçim

  • Sizin ya da ekibinizin yazdığı kod: bir süreç ya da konteyner yeterlidir.
  • Kendi branch'leriniz için CI: runner'ınızda bir konteyner.
  • Ajan kodu, kullanıcı gönderimleri, dış pull request'ler: görev başına bir microVM, sonra silinir.
  • Bağlantı kabul etmesi ya da haftalarca çalışması gereken güvenilmeyen bir hizmet: kimlik bilgilerinizi tutan ya da e-postanızı gönderen her şeyden uzakta, kendi IP'si olan ayrı bir VM.

Ne seçerseniz seçin, üstüne iki kural geçerlidir: kodun yazarına vermeyeceğiniz hiçbir şeyi içeri koymayın ve ağın neler yapabileceğine bilinçli olarak karar verin.

Ürünlerimiz nerede duruyor

Seviye 3 için kod sandbox'ları sunuyoruz: yaklaşık bir saniyede açılan, giden interneti olan, gelen portu olmayan ve saniye bazında faturalanan Firecracker microVM'leri. Tam olarak yukarıdaki üçüncü maddeyi hedefliyorlar; MCP güvenlik önlemleri sayfası bir ajanın onlarla neler yapabileceğini nasıl sınırlayacağınızı anlatıyor. Seviye 4 için AI agent tarifesi gibi bir VPS size aylık olarak koca bir makine verir. Yapay zekâ ajanları için sandbox içindeki çalışılmış örnekler microVM düzenini baştan sona gösteriyor; yapay zekâ ajanlarının altyapıdan gerçekte neye ihtiyacı var ise yalıtımı birkaç gereksinimden biri olarak ele alıyor.

SSS

Yapay zekânın ürettiği kod için bir konteyner yeterli mi?

Kendi ekibinizin kodu için genellikle evet. Kimsenin incelemediği kod için — bir ajanın çıktısı, kullanıcı gönderimleri, dış pull request'ler — konteynerin ortak çekirdeği zayıf noktadır. Bir microVM ya da VM, o kodla ana makine arasına bir hipervizör koyar.

Yalıtım açısından microVM ile normal bir VM arasındaki fark nedir?

Sınır aynı türdendir: donanım sanallaştırması ve bir hipervizör. MicroVM çok daha az sanal cihaz açığa çıkarır, bu yüzden yüzey daha küçüktür ve onlarca saniye yerine yaklaşık bir saniyede açılır. Tam VM; genel IP, daha fazla cihaz ya da koca bir işletim sistemi gerektiren uzun ömürlü hizmetler için daha iyidir.

Yalıtım, kodun API anahtarlarımı çalmasını engeller mi?

Yalnızca anahtarlar içeride değilse. Yalıtım ana makineyi koddan korur; bilerek içeri verdiğiniz sırları korumaz. Güvenilmeyen koda sahip olmaması gereken hiçbir şeyi vermeyin.

Peki ya ağ?

Hesaplama sınırı kadar önemlidir. Kodun gerçekten giden internete ihtiyacı olup olmadığına karar verin ve içeri hiçbir şeyin bağlanamadığından emin olun. Kusursuz yalıtılmış bir makine bile trafiği kısıtlanmamışsa tarama, spam ya da madencilik için kullanılabilir.

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.