TakoVM: اجرای امن کد پایتون ناشناس
خلاصهٔ کاملتر
نویسنده TakoVM رو اینطوری معرفی میکنه: یه ابزار که کد پایتونی رو که بهش اعتماد نداری — مثلاً کدی که یه مدل هوش مصنوعی تولید کرده — توی کانتینرهای داکر ایزوله اجرا میکنه. علاوهبر داکر، میتونی سندباکس gVisor رو هم بهصورت اختیاری روش بذاری تا لایهٔ جداسازی محکمتر بشه.
نکتهٔ اصلی مقاله مقایسه با بقیهٔ راهحلهاست. به گفتهٔ نویسنده، سندباکسهایی مثل e2b، daytona و microsandbox فقط بهت اجرای ایزولهٔ کد رو میدن و تمام؛ بقیهٔ کارها رو باید خودت بسازی. یعنی برای صف کار باید Redis و Celery راه بندازی، برای تاریخچه باید Postgres و اسکیما بزنی و منطق retry رو هم دستی بنویسی.
ادعای TakoVM اینه که همهٔ این تیکهها رو یکجا و آماده داره. یه صف کار بههمراه pool از ورکرها که اجرای ناهمگام (async) رو بدون نیاز به Redis یا Celery هندل میکنه. یه PostgreSQL که موقع استارت سرور خودش بالا میاد و هر کار رو با stdout، stderr، زمانبندی و خروجیهاش ذخیره میکنه.
بخش جالبش قابلیت replayـه: میتونی یه کار قبلی رو دقیقاً با همون کد و همون ورودیها دوباره اجرا کنی که برای دیباگکردن خیلی بهدرد میخوره. یه API برای rerun و fork هم داره و با idempotency_key جلوی اجرای تکراری یه کار رو میگیره.
از نظر امنیت، هر کار توی کانتینر مجزای خودش با فیلتر seccomp اجرا میشه و شبکه بهصورت پیشفرض کاملاً بستهست؛ اگه لازم باشه میتونی برای هر نوع کار یه allowlist مشخص باز کنی. کل سیستم هم self-hosted روی ماشین خودته، قابلیت کار آفلاین داره و هزینهٔ ازای هر اجرا نداره. برای راهاندازی فقط به داکر و پایتون ۳.۱۰ به بالا نیاز داری و با مجوز Apache 2.0 منتشر شده.
نکات کلیدی:
- اجرای کد پایتون ناشناس یا تولیدشده با هوش مصنوعی توی کانتینر داکر ایزوله، با سندباکس اختیاری gVisor
- صف کار، ورکر، تاریخچهٔ اجرا و منطق retry بهصورت داخلی و آماده، بدون نیاز به Redis/Celery یا اسکیمای دستی
- قابلیت replay برای اجرای دوبارهٔ کارها با همون کد و ورودی، بهعلاوهٔ API برای rerun و fork
- جداسازی با فیلتر seccomp و شبکهٔ بستهٔ پیشفرض با امکان allowlist برای هر نوع کار
- self-hosted، قابل استفاده آفلاین، بدون هزینهٔ ازای هر اجرا و با مجوز Apache 2.0




