דילוג לתוכן
תפריט
צריכים את זה?לאן סוכן יכול להגיע במחשב שלכםאיך זה עובדהשכבות שבין הסוכן למערכת שלכםהשוואהסביבות sandbox מובנות, Docker ומכונות וירטואליותהגדרהפותחים רק את מה שהמשימה צריכהאבטחהמודל האיומים והגבולות שלוהתקנה
השוואה

לסוכן שלכם כבר יש sandbox. הוא מכסה חצי אחר.

סביבות sandbox מובנות ובקשות אישור משגיחות על הפקודות שהמודל מריץ. לעומתן, ai-jail קובע מה תוכנת הסוכן כולה יכולה לראות במחשב שלכם. השניים עובדים יחד.

נבדק לאחרונה בתאריך 21 בספטמבר 2026. מוצרים אחרים משתנים מהר, ולכן כל טענה לגביהם מקושרת לתיעוד של היצרן עצמו.

איפה עוברת החומה

נכון לזמן הכתיבה, ה-sandbox של Claude Code חל על פקודות shell ועל תהליכי הבן שלהן. כלי הקבצים שלו עוברים דרך מערכת ההרשאות, והתיעוד שלו אומר ששרתי MCP ו-hooks רצים על המארח בלי הגבלה. עם ai-jail הסוכן עצמו עולה בתוך החומה, ולכן גם כל מה שהוא מפעיל נמצא בפנים.

שני חלקים. משמאל, sandbox מובנה מקיף רק את פקודות ה-shell, והסוכן, שרתי ה-MCP וה-hooks שלו נמצאים מחוץ לחומה, עם קווים שמגיעים לתיקיית הבית שלכם. מימין, ai-jail מקיף יחד את הסוכן, שרתי ה-MCP, ה-hooks, פקודות ה-shell והפרויקט, ותיקיית הבית שלכם נמצאת בחוץ, מעומעמת וחסומה.
החלק השמאלי מבוסס על התיעוד של Claude Code.

גם Codex מריץ בתוך sandbox את הפקודות שהוא מפעיל ומשאיר את התהליך codex בחוץ. התיעוד שלו לא אומר איפה רצים שרתי MCP מקומיים.

בקשת אישור היא הגנה מסוג אחר

בקשת אישור שואלת בן אדם, ובן אדם אפשר להלחיץ או להטעות. לעומת זאת, sandbox שואל את הקרנל, והקרנל נותן את אותה תשובה בכל פעם.

שני חלקים. משמאל, קו שיוצא מהסוכן עובר דרך ערימה של חלונות אישור עם כפתור אישור ומגיע למפתחות שלכם. מימין, אותו קו נעצר בחומה שכתוב עליה כלל של הקרנל, והמפתחות שלכם מאחוריה מעומעמים וחסומים.
בקשות אישור מועילות. הן שלב של בדיקה, ואילו sandbox הוא גבול.

מצבים שמוציאים את האדם מהתמונה

נכון לזמן הכתיבה, לכל אחד מהסוכנים האלה יש מצב שמפסיק לשאול. כשבקשת האישור נעלמת, ה-sandbox הוא ההגנה היחידה שנשארת, אם הוא בכלל דלוק.

סוכןמצבמה היצרן אומר שהוא עושה
Claude Codeautoהכול רץ, ומודל שני בודק את הפעולות במקומכם. התיעוד מגדיר את המסווג הזה כבקרה ברמת הפעולה הבודדת, ולא כגבול בידוד.
Claude CodebypassPermissions, וגם --dangerously-skip-permissionsהכול רץ בלי שום בדיקה. לפי התיעוד, יש להשתמש בו רק בקונטיינרים מבודדים ובמכונות וירטואליות.
Codex CLIמדיניות אישורים neverהסוכן אף פעם לא שואל. מצב ה-sandbox ממשיך לחול. ראו אישורים ואבטחה.
Codex CLIdanger-full-access, או --yoloה-sandbox כבוי. עם --yolo אין גם אישורים.

זה לצד זה

כל מה שכתוב כאן מתאר את התיעוד של כל מוצר נכון לזמן הכתיבה. כשהתיעוד שקראנו לא עונה על שאלה, זה מה שכתוב בתא.

ה-sandbox של Claude Codeה-sandbox של Codex CLIה-sandbox של Gemini CLIai-jail
מה מוסיפה עטיפה סביב הסוכן כולו
מה נמצא בתוך החומהפקודות Bash, PowerShell ו-Monitor ותהליכי הבן שלהן. התהליך claude, כלי הקבצים שלו, שרתי ה-MCP וה-hooks נמצאים בחוץ.הפקודות שהסוכן מפעיל. התהליך codex נמצא בחוץ. שרתי MCP מקומיים: לא מתועד.תהליך ה-CLI כולו, או רק כלי ה-shell והכתיבה כשמגדירים security.toolSandboxing.עץ התהליכים כולו: הסוכן, כלי הקבצים שלו, שרתי ה-MCP, ה-hooks וכל פקודה.
דלוק כברירת מחדללא. מדליקים אותו עם /sandbox או עם sandbox.enabled. כשחסרה תלות הוא מזהיר ומריץ פקודות בלי sandbox, אלא אם הגדרתם sandbox.failIfUnavailable.כן. מצב ברירת המחדל הוא workspace-write.מדליקים אותו עם -s, עם GEMINI_SANDBOX או עם tools.sandbox.דלוק בכל פעם שמעלים את הסוכן דרכו. אם ההגדרות לא תקינות, הוא מסרב לעלות.
האם קוד שרץ ב-sandbox יכול לקרוא את ~/.ssh כברירת מחדל?כן. לפי התיעוד, ברירת המחדל עדיין מתירה לקרוא קובצי פרטי גישה כמו ~/.aws/credentials ו-~/.ssh/. כללי deny הם opt-in.ב-Linux כן, כי כל מערכת הקבצים מעוגנת שם לקריאה בלבד. רשומות deny הן opt-in. ברירת המחדל ב-macOS: לא מתועד.פרופיל ברירת המחדל ב-macOS, permissive-open, מתיר קריאה רחבה של קבצים. פרופילים מחמירים יותר הם opt-in.לא. הסוכן מקבל תיקיית בית חדשה וריקה. הדגל --ssh הוא opt-in.
משתני סביבהפקודות שרצות ב-sandbox יורשות כברירת מחדל את סביבת האב, כולל פרטי גישה. עם sandbox.credentials אפשר לחסום או למסך אותם.לא מתועדלא מתועדרשימת היתרים מינימלית של משתני טרמינל, locale ו-toolchain. משתנים אחרים מוסיפים לפי שם עם --env.
פתח מילוט שהמודל יכול להשתמש בוהמודל רשאי לנסות שוב פקודה עם dangerouslyDisableSandbox, והיא עוברת בתהליך ההרשאות הרגיל. ההגדרה allowUnsandboxedCommands: false מכבה את זה.במדיניות on-request הסוכן מבקש לצאת מה-sandbox לצורך עריכות מחוץ ל-workspace או לצורך רשת.לא מתועדאין. אתם קובעים את המדיניות לפני שהסוכן עולה, וקובץ .ai-jail של הפרויקט יכול להדק אותה ולעולם לא לפתוח.
עובד עם כל סוכןרק Claude Codeרק Codexרק Gemini CLIכל פקודה, עם קובץ מדיניות אחד לכל הסוכנים שלכם.
מה סביבות ה-sandbox המובנות עושות טוב יותר
מודל הרשתפרוקסי עם רשימת היתרים לפי דומיין. דומיין חדש מקפיץ בקשת אישור. התיעוד מציין ש-domain fronting יכול לעקוף אותו.כבויה כברירת מחדל במצב workspace-write. הגדרה אחת מדליקה אותה, ופרוקסי אופציונלי מוסיף כללי allow ו-deny לפי דומיין.פרופיל ברירת המחדל מתיר רשת. פרופילים מחמירים יותר ופרופילים עם פרוקסי הם opt-in.הכול או כלום. הרשת כבויה כברירת מחדל, ו---network פותח את כולה. אין סינון לפי דומיין, בכוונה.
אישור לכל פקודהכן. מצבי הרשאות, plan mode, מודל מסווג ומדיניות ארגונית מנוהלת.כן. מדיניות אישורים, כללים לפי קטגוריה וסוכן בודק אופציונלי.לא מתועדאין. הפקודות הבודדות לא עוברות דרך ai-jail, והוא אף פעם לא שואל.
נתיבים מוגנים בתוך הפרויקטכן. .git/hooks, .git/config, הגדרות .claude, .mcp.json, קובצי rc של ה-shell ועוד נשארים לקריאה בלבד.כן. .git, .agents ו-.codex שנמצאים תחת שורשים פתוחים לכתיבה הם לקריאה בלבד.לא מתועדאין הגנה מובנית. הפרויקט כולו פתוח לכתיבה. ממסכים או חוסמים נתיבים בעצמכם עם --mask ועם deny_paths.
הסתרת סודות מהסוכן בלי לוותר על השימוש בהםמיסוך פרטי גישה יכול להזריק את הסוד האמיתי בפרוקסי. זה דורש הגדרה ניסיונית.לא מתועדלא מתועדלא. קובץ ממוסך הוא קובץ ריק.
פלטפורמותעובד ב-macOS, ב-Linux וב-WSL2. לא עובד ב-Windows מקורי או ב-WSL1.עובד ב-macOS, ב-Linux, ב-WSL2 וב-Windows מקורי.מנגנון Seatbelt ב-macOS, Docker או Podman, gVisor, LXC (ניסיוני) ו-Windows מקורי.עובד ב-Linux וב-macOS. ב-Windows רק דרך WSL2.
התקנהמגיע עם הסוכן. ב-Linux הוא צריך את bubblewrap ואת socat.מגיע עם הסוכן.מגיע עם הסוכן. ה-backends מבוססי הקונטיינר צריכים Docker או Podman.קובץ בינארי נפרד. ב-Linux הוא צריך את bubblewrap.

מקורות: Claude Code sandboxing, Claude Code sandbox environments, Codex approvals and security, Codex Linux sandbox, Gemini CLI sandbox.

השתמשו בשניהם

כשהרשת כבויה, סוכן שרץ מול הענן לא יכול להגיע ל-API של המודל שלו. בפועל פותחים שני דברים: את הרשת ואת ההתחברות של הסוכן.

סוכן ענן בתוך הכלא
cd ~/Projects/my-appai-jail --network --agent-state claude
חומה גדולה אחת שכתוב עליה ai-jail מקיפה את הסוכן, את שרתי ה-MCP שלו, את ה-hooks שלו, את הפרויקט ואת פקודות ה-shell שלו. בין הסוכן לפקודות ה-shell נמצאת בקשת האישור של הסוכן עצמו. קו אחד יוצא מהחומה דרך שער אל ה-API של המודל. תיקיית הבית שלכם נמצאת מחוץ לחומה, מעומעמת וחסומה.
החומה החיצונית היא ai-jail. בתוכה, בקשות האישור והכללים של הסוכן ממשיכים לעשות את העבודה שלהם.

מה הבדיקות של הסוכן עצמו ממשיכות לעשות

בקשות אישור, כללי allow ו-deny ו-plan mode הם חלק מתוכנת הסוכן, ולכן הם עובדים בתוך הכלא בדיוק כמו מחוצה לו. הם תופסים את הפקודה שלא הייתם מאשרים.

מה ai-jail מבטיח מתחת לזה

הסוכן, שרתי ה-MCP שלו וה-hooks שלו לא רואים את תיקיית הבית שלכם, את המפתחות שלכם או את הטוקנים שב-shell, ולא משנה מה תאשרו. מה שהסוכן יכול לקרוא הוא עדיין יכול לשלוח, ולכן מסכו את הסודות שבתוך הפרויקט.

קונטיינרים של Docker, dev containers ומכונות וירטואליות

גם אלה תשובות טובות, ומכונה וירטואלית היא תשובה חזקה יותר. ההבדל ביניהן הוא במה שצריך לבנות ולעדכן.

מה מקבליםמה זה עולה
קונטיינר Dockerמערכת קבצים, רשימת תהליכים ורשת משלו. הסוכן רואה רק את מה שאתם מעגנים.צריך לבנות ולתחזק image, ולהתקין בו את ה-toolchains שלכם פעם נוספת. אם מעגנים את ה-socket של Docker, הקונטיינר שקול ל-root על המארח.
Dev containerאותו בידוד כמו של קונטיינר, מתואר בקובץ שהעורך שלכם מבין והצוות יכול לשתף.אותה תחזוקת image, ובנוסף עורך או כלי שמבין את הפורמט.
מכונה וירטואליתקרנל משלה. זה הגבול החזק ביותר כאן, והגבול הנכון לקוד שאתם מאמינים שהוא עוין.האפשרות הכבדה ביותר: מערכת אורחת שצריך להתקין, לעדכן, להקצות לה זיכרון ולהעתיק אליה את הפרויקט.
ai-jailסביבת sandbox סביב פקודה אחת, שמשתמשת בקומפיילרים וב-runtimes שכבר מותקנים אצלכם. בלי image, בלי daemon ובלי root.הוא חולק איתכם את הקרנל, ולכן exploit בקרנל או בדרייבר נמצא מחוץ לגבולות שלו. הוא חלש יותר ממכונה וירטואלית.

התיעוד של ai-jail עצמו מגדיר אותו כשכבה מועילה שלא מחליפה מכונה וירטואלית חד-פעמית. למודל האיומים.

שאלות על הרצה משולבת

כדאי לכבות את ה-sandbox ואת בקשות האישור של הסוכן עצמו?
השאירו את בקשות האישור ואת הכללים. הם בודקים פקודות בודדות, דבר ש-ai-jail אף פעם לא עושה. ה-sandbox של הסוכן ברמת מערכת ההפעלה הוא עניין אחר ב-Linux: קריאות המערכת ש-sandbox מקונן של bubblewrap צריך חסומות בתוך ai-jail, והתיעוד שלו לא אומר שהשילוב עובד. אם הסוכן מדווח בתוך הכלא שה-sandbox שלו לא זמין, הכלא עדיין שם.
האם ai-jail בטוח יותר מ-Docker?
שניהם גבול מאותו סוג. שניהם חולקים איתכם את הקרנל, ואף אחד מהם הוא לא מכונה וירטואלית. בכלא של ai-jail הכול מתחיל סגור, ולא צריך image, daemon או root. קונטיינר מעגן את מה שאתם אומרים לו, ו-socket מעוגן של Docker שקול ל-root על המארח. לקוד שאתם מאמינים שהוא עוין, השתמשו במכונה וירטואלית חד-פעמית.
למה אין רשימת היתרים לרשת לפי דומיין?
מסנן שחי בתוך ה-sandbox הוא מסנן שהסוכן יכול לבחור לא להשתמש בו. המתחזק סגר את הבקשה כחורגת מתחום הפרויקט: גרסה בלי root דורשת network stack ב-userspace, ובנוסף בדיקת SNI, שנכשלת כש-SNI חסר או מוצפן, או יירוט TLS של תעבורת ה-API של הסוכן, שנושאת את פרטי הגישה שלו. עדיף לסנן במקום שבו כבר יש הרשאות: כלל nftables ל-uid של הסוכן, slice של systemd עם IPAddressAllow=, או קונטיינר או מכונה וירטואלית שמחזיקים את ה-network namespace.
אני משתמש רק ב-Claude Code. אני עדיין צריך את ai-jail?
נכון לזמן הכתיבה יש לכם שלוש אפשרויות. ה-sandbox המובנה מכסה פקודות shell. החבילה @anthropic-ai/sandbox-runtime של Anthropic, שנמצאת ב-beta research preview, עוטפת את התהליך כולו. גם ai-jail עוטף את התהליך כולו, מתחיל כשתיקיית הבית ומשתני הסביבה סגורים, ומחיל את אותה מדיניות על כל סוכן אחר שתנסו בהמשך. ראו את ההשוואה של Anthropic בין סביבות sandbox.

שימו את הסוכן מאחורי סורגים

כל ai-jail הוא קובץ בינארי אחד, בלי daemon ובלי root. מוסיפים מילה אחת לפני הפקודה שאתם מריצים ממילא.

terminal
brew tap akitaonrails/tap && brew install ai-jailai-jail claude