بازگشت به کتابخانهکتابخانه4.4بای‌پس امن Permission با YoloBox
تکنیک Ralph WiggumTHE RALPH WIGGUM TECHNIQUEاجرای ایجنت کدنویس در حلقه — از یک اسکریپت Bash تا ارکستراسیون کامل
v1.0.0
LESSON 4.4فصل ۴Permission ،Sandbox و Hook

بای‌پس امن Permission با YoloBox

  • ~۱۴ دقیقه
  • ۶ پرسش
  • متن را انتخاب کن تا هایلایت شود

تا حالا محتاط بودیم: Sandbox بومی، Allow/Deny و Hook. حالا می‌خواهیم کل لایه Permission را برداریم — ولی «امن». این یعنی Bypass Permissions Mode، همان چیزی که با flag ترسناکش می‌شناسی. رمز امن ماندن این است: به‌جای اعتماد به Permission، محیط اجرای مدل را کنترل کنیم.

فعال کردن Bypass و آنچه باقی می‌ماند

claude --dangerously-skip-permissions

یا در `settings.json` مقدار `defaultMode` را روی `bypassPermissions` بگذار. اما چند چیز مهم حتی در این حالت پابرجاست:

  • **Sandbox هنوز فعال است** (اگر روشنش کرده باشی) — فقط دستورهای بیرون Sandbox خودکار Allow می‌شوند. توصیه اکید: حداقل Sandbox بومی را روی ماشین خودت نگه دار.
  • **Deny List هنوز محترم است.** `rm` در Deny List؟ همچنان رد می‌شود. در این حالت Deny List حتی مهم‌تر می‌شود.
  • **Hook های PreToolUse هنوز شلیک می‌شوند** و می‌توانی Tool Call ها را Intercept کنی.
Bypass Permissions Mode
حالتی که کل سیستم Permission تعاملی حذف می‌شود؛ Tool Call های بیرون Sandbox خودکار مجاز می‌شوند. Deny List و Hook و Sandbox هنوز کار می‌کنند.
Strict Sandbox
با خاموش کردن un-sandboxed Fallback، حتی «Bypass the sandbox» هم رد می‌شود؛ چون OS خودش محدودیت را اعمال می‌کند نه Claude.

مشکل بزرگ‌تر: دسترسی به کل ماشین

حتی داخل Sandbox، مدل به کل ماشین و هرچه روی آن نصب است دسترسی دارد. اگر AWS CLI با دسترسی Admin نصب و Authenticated باشد، مدل می‌تواند دستور بزند. کابوس واقعی: مدل با Terraform زیرساختت را پاک کند چون روی این ماشین لاگین بودی.

اولویت شماره یک در اجرای حلقه، آرامش خیال است. راه‌حل ایده‌آل: محیطی که مدل در آن اجرا می‌شود را «محکم» کنترل کنیم و در همان محیط ایزوله، به مدل دسترسی «نامحدود» بدهیم.

گزینه‌ها برای ایزوله‌سازی

**Docker Sandbox رسمی:** کل Sandbox بومی را با یک Container کامل جایگزین می‌کند (`docker sandbox run claude`). جداسازی خوبی بین Host و Container می‌دهد، ولی هنوز خیلی آزمایشی و به‌گفته سازنده، فعلاً مناسب اجرای حلقه نیست.

**YoloBox:** یک Container داکر معمولی که ایجنت را اجرا می‌کند، با چند قابلیت که زندگی توسعه‌دهنده را راحت می‌کند:

brew install ... yolobox   # نصب
yolobox claude             # اجرای Claude داخل Container

اولین بار Image دانلود می‌شود و باید دوباره Authenticate کنی — چون YoloBox فقط پوشه پروژه را Mount می‌کند، نه Home را. مدل فایل‌های کانفیگش را پیدا نمی‌کند و مثل نصب تازه رفتار می‌کند. ولی راه‌حل دارد:

yolobox claude --claude-config --git-config

این کانفیگ Claude و Git را از Host به Container کپی می‌کند. حالا YoloBox داکر، Git، GitHub CLI و Node را داخل خودش دارد. پس می‌توانی حلقه را هم داخلش اجرا کنی:

yolobox          # وارد شل Container شو
node ralph.js    # حلقه داخل جعبه امن

سفارشی‌سازی جعبه

YoloBox با یک فایل کانفیگ ساده، سفارشی می‌شود:

# .yolobox.toml
[customize]
packages = ["php@8.3"]

حالا `php --version` داخل Container کار می‌کند (۸.۳). Dockerfile Fragment هم ممکن است، ولی سازنده سری عمداً همان فایل کانفیگ ساده را ترجیح داد.

برای اتصال به دیتابیس:

yolobox --share-docker
docker ps                 # سوکت Host داخل جعبه Mount شده
# حالا می‌توانی از مدل بخواهی یک Container MySQL بسازد
# و چند YoloBox مختلف همان دیتابیس را شریک شوند

ایجنت داخل جعبه Root هم هست، پس هر پکیجی لازم داشت خودش نصب می‌کند.

DIAGRAMلایه‌های ایزوله‌سازی
ماشین فیزیکی (Host)
YoloBox Container: git + gh + node + root
مدل با دسترسی نامحدود «داخل جعبه»

یک هشدار امنیتی مهم

اجرای ایجنت داخل YoloBox یعنی بین Host و Container لایه جداسازی داری، پس می‌توانی با Permission آزادتر باشی. **اما** Container به‌صورت پیش‌فرض اینترنت کامل دارد — یعنی هنوز در معرض Exfiltration و Prompt Injection هستی؛ فقط ماشین Host ات سالم می‌ماند. برای ایزوله کامل:

yolobox --no-network   # حتی curl google.com هم شکست می‌خورد

استفاده از این کاملاً به سطح امنیت موردنیازت بستگی دارد. جمع‌بندی: YoloBox به تو اجازه می‌دهد با خیال راحت لیبرال باشی، بی آنکه نگران فاجعه روی ماشین اصلی باشی.

به زبان ساده

Permission را برمی‌داری، ولی مدل را در یک جعبه داکر می‌گذاری که Home و AWS CLI هوست را نمی‌بیند. داخل جعبه آزاد است؛ بیرون جعبه در امان.

مثال واقعی

کابوس: مدل با Terraform زیرساخت را پاک کند چون روی لپ‌تاپ به AWS لاگین بودی. داخل YoloBox دستور `aws` پیدا نمی‌شود. `rm` هنوز از Deny List رد می‌شود. با `--no-network` حتی curl هم شکست می‌خورد.

دانش‌سنجی

آزمون درس

۶ Q
01
در Bypass Permissions Mode کدام محافظ‌ها هنوز کار می‌کنند؟
02
چرا Strict Sandbox حتی جلوی «Bypass the sandbox» را می‌گیرد؟
03
«کابوس واقعی» که YoloBox حلش می‌کند چیست؟
04
چرا YoloBox اولین بار دوباره Authenticate می‌خواهد و چطور حل می‌شود؟
05
بعد از اجرای حلقه داخل YoloBox، چرا دیگر به Sandbox بومی نیاز نیست؟
06
مهم‌ترین هشدار امنیتی باقی‌مانده هنگام استفاده از YoloBox چیست؟