כשעובדים עם תוכנה, סוכני בינה מלאכותית או קבצים שהורדו מהאינטרנט, אחד הפחדים הנפוצים ביותר הוא פריצת משהו במערכת שלך, הדבקה בתוכנה זדונית או דליפת נתונים רגישים כמעט בלי שתשימו לב. אתם לא צריכים להיות פרנואידים: ביצוע כושל אחד יכול למחוק מסד נתונים, לפגוע בפריסה או להדביק את המערכת שלכם בתוכנה זדונית.
החדשות הטובות הן שכיום עומדות לרשותכם מספר דרכים ליצור אחת כזו. סביבה מבודדת שבה אפשר לנסות דברים בלי לקחת סיכוניםורבים מהם משולבים במערכת ההפעלה עצמה או בפלטפורמות המיועדות לסוכני קוד. אנו קוראים לזה "ארגז חול": הרצת קוד בתוך מעין בועה מבוקרת, כך שגם אם משהו משתבש או זדוני, הנזק נמנע.
מהי גישה ידנית ל-sandbox ללא תוכנה נוספת?
באבטחה ופיתוח, לדבר על ארגזי חול פירושו לדבר על... כדי להגדיר בבירור במה תוכנית או סוכן יכולים לגעת בזמן שהם פועליםזה לא רק עניין של "להריץ אותו במקום אחר", אלא של הגדרת גבולות ברורים: אילו קבצים הוא יכול לראות, אילו תהליכים הוא יכול להפעיל, האם יש לו רשת, אילו אישורים הוא יכול להשתמש בהם, כמה זמן הסביבה הזו קיימת, ומה קורה למצב שלו כשהוא מסתיים.
ההבחנה בין "ידני" ל"ללא תוכנה נוספת" מטעה. במקרים רבים, ניתן להסתמך על פונקציות שכבר כלולות במערכת ההפעלה שלך או בפלטפורמת הפיתוח שלךכגון Windows Sandbox, גרסאות פרימיטיב של לינוקס (Landlock, seccomp), או מנגנוני macOS. אינך צריך להתקין חבילת וירטואליזציה מלאה, אך עליך ללמוד כיצד להפעיל ולנהל את המנגנונים המשולבים הללו כדי לשמש כמחסום בין הקוד שברצונך לבדוק לבין המכונה שלך בפועל.
מדוע סוכני קוד זקוקים לסביבות מבודדות?
סוכני קידוד מודרניים אינם עוד עוזרים פשוטים דמויי צ'אט שמציעים קטעי קוד: הם סביבות ביצוע המשולבות למודל שפההם יכולים לקרוא את המאגר שלך, לערוך קבצים, להריץ פקודות טרמינל, התקנת חבילות, לבנות מכולות, לדבר עם ממשקי API חיצוניים ואפילו לפתוח הפעלות דפדפן.
פלטפורמות כמו Claude Code, חלק מ"סוכני העומק" של LangChain או ארגזי חול ספציפיים המופצים על ידי Docker וכלים אחרים מתארים במפורש שסוכנים אלה... הם פועלים על מערכות קבצים אמיתיות, משיקים שרשורים (threads) ומאצילים משימות לסוכני משנה ייעודיים.במילים אחרות, הם די דומים למפתח זוטר עם גישה לכלים שלך... רק אוטומטיים ומהירים מאוד.
בהקשר זה, שאלת האבטחה העיקרית מפסיקה להיות "האם הוא מגיב היטב לשורת ההודעה?" והופכת ל: "מהו ההיקף כאשר הוא שגוי, לא מיושר או עבר מניפולציה?"אם מודל יכול, לדוגמה, להריץ pytest, להתקין חבילות npm, לנהל ענפים או לבדוק כשל קומפילציה, זה רק כמה צעדים מלגעת בסקריפטים של פריסות, שינוי hooks של Git או סינון סודות לשירות מרוחק.
התשובה הקלה היא בדרך כלל לדרוש אישור אנושי לכל פקודה. זה עוזר, אבל יש לזה בעיה חוזרת: עייפות אישורבסביבות בהן מהנדסים משיקים סוכנים או זרימות עבודה רבות במקביל, הכמות העצומה של בקשות מובילה לעתים קרובות לכך שכמעט כל דבר מאושר ללא בדיקה מדוקדקת. כאשר למעלה מ-90% מבקשות ההרשאה מתקבלות אוטומטית, מנגנון זה מפסיק להיות בקרת אבטחה אמיתית והופך לפורמליות בלבד.
זו הסיבה שארגזי חול כל כך חשובים: הם לא הופכים את המודל לחף מטעויות, וגם לא מתקנים את הזרקת ההוראות.אבל הם כן מפחיתים את "רדיוס הפיצוץ" של השגיאות שלה. אם הבינה המלאכותית מתקלקלת או שמישהו מצליח לחטוף את ההוראות שלה, הנזק נשאר מוגבל בתוך הסביבה המבודדת במקום להתפשט ישירות למערכת הייצור או למחשב הנייד.
מגבלות עיקריות של ארגז חול של סוכן קוד
ארגז חול רציני עבור סוכני קידוד מסתמך על מספר סוגים של גבולות, לא רק "עוד ספרייה" או "עוד מכולה". כל אחד מהם מכסה היבט שונה של סיכון, והבנתם חיונית לארגז חול ידני יעיל עם המשאבים הקיימים שלך.
גבול מערכת הקבצים
הדבר הראשון הוא להחליט. איזה עץ ספריות יכול הסוכן לראות ולשנותבארגז חול שתצורתו נכונה, הסוכן אמור להיות מסוגל לקרוא ולכתוב רק לסביבת העבודה או לאמצעי האחסון שיצרת במפורש עבורו. שאר המערכת (ספריית הבית של המשתמש, נתיבי המערכת, פרויקטים אחרים) צריכה להיות בלתי נגישה עבורו.
מסגרות סוכנים ופלטפורמות ארגז חול מבהירות היטב: ארגז החול הוא המחסום המונע נגיעה בקבצי מארח מעבר למה שמשותףבמודלים מבוססי microVM, הכלל מחמיר אף יותר: רק הספרייה שאתה מעלה (לעתים קרובות קריאה-כתיבה) חוצה את הגבול בין המכונה הווירטואלית למארח. כל השאר נשאר בלתי נגיש אלא אם כן אתה פותח אותו.
גבול התהליך והליבה
הגבול המרכזי השני הוא מה שהסוכן רואה ברמת התהליך והליבה. אם בתוך הסביבה המבודדת מתקין שירותים, מפעיל קונטיינרים או משיק תהליכיםכל הפעולות הללו חייבות להישאר סגורות, מבלי לשתף תהליכים או ליבה חשופה עם המארח.
יישומי ארגז חול חזקים רבים מסתמכים על מיקרו-VM או מכונות וירטואליות קלות משקל עם ליבת לינוקס משלהם, מחוזקת באמצעות seccomp, cgroups, namespaces וטכניקות jail. אחרים משתמשים בשכבות כמו gVisor או Kata Containers כדי להציב שכבת וירטואליזציה או אמולציה בין התהליך המבודד לליבת הצומת. הרעיון הבסיסי: אם מישהו מנצל משהו בפנים, הקפיצה למארח קשה הרבה יותר מאשר במכולה פשוטה עם ליבה משותפת.
גבול הרשת
סוכני קוד לרוב "צריכים מאוד את הרשת": הם רוצים להתקין תלויות, לעיין בתיעוד, לקרוא ל-APIs של LLM, לגשת למאגרים מרוחקים או אפילו לגלוש באינטרנט. ללא מדיניות ברורה, סביבה "מבודדת" יכולה בסופו של דבר להיות... מנהרת חילוץ נתונים פנטסטית.
זו הסיבה שיותר ויותר פלטפורמות מאמצות עמדה של דחיית ברירת מחדל של תעבורה יוצאתHTTP/HTTPS חסום למעט במקרים מסוימים, TCP/UDP/ICMP מוגבל, וחשוב מאוד, הגישה לטווחים פרטיים וכתובות מקומיות אסורה. תקשורת מותרת רק עם מארחים או דומיינים הכלולים במפורש ברשימת היתרים, ולעתים קרובות דרך פרוקסי הנשלט על ידי מארח.
מגבלת אישורים
אין טעם רב בנעילת הסוכן אם, בתוך הכלוב שלו, הוא יכול לקרוא את מפתחות ה-API, טוקני הפריסה או סודות מסד הנתונים שלך. העיצוב המודרני של ארגזי חול רבים מורכב מ... לעולם אל תזריק סודות גולמיים לסביבה מבודדתבמקום זאת, בקש מפרוקסי במארח להוסיף את האישורים לכותרות של בקשות ה-HTTP שארגז החול רוצה לשלוח.
עם גישה זו, התהליך בתוך ארגז החול הוא משתמש בתעודות אבל אף פעם לא רואה אותן.זה מפחית מאוד את ההשפעה של חטיפת סוכן פוטנציאלית. עם זאת, ברגע שמאחסנים מפתח בקובץ או במשתנה סביבה בתוך ארגז החול, היתרון הזה נעלם: המודל יכול לקרוא אותו ישירות, וכל הזרקת הוראה יכולה להורות לו לסנן אותו.
גבול ומצב מחזור החיים
לבסוף, ישנה מגבלת זמן: מה נשמר ומה נהרס כאשר הסביבה עוצרתסוכנים אינם תהליכים חד פעמיים: הם קוראים, קומפילים, מנפים באגים, פותחים מספר השערות, נוטשים חלקן, מחדשים אחרות... זה דורש זמן ריצה שמנהל את המצב בצורה חכמה: התחלה מהירה, השעיה, תמונות מצב, הסתעפות ומחיקה בטוחה.
חלק מהפלטפורמות מציעות תמונות זיכרון, מאגרי סביבות שחוממות מראש ופונקציות פיצול ממצב ספציפי (לדוגמה, דפדפן שכבר אומת או גרף תלות שפותר חלקית). זה מה שעושה את ההבדל בין סוכן שמיש - כזה שיכול לבצע איטרציות אינטראקטיביות - לבין סוכן שלוקח לו המון זמן לחזור על אותה הגדרה שוב ושוב.
יישומי Sandbox ב-macOS, Linux ו-Windows

מעבר למוצרים מסחריים, צוותים רבים בחרו ב נצלו את פרימיטיבים הבידודיים שכבר קיימים במערכות הפעלה לבנות ארגזי חול משלהם של סוכני קוד מבלי להוסיף שכבות כבדות יותר. המפתח הוא להבין מה כל פלטפורמה מביאה לשולחן.
ארגז חול ב-macOS: פרופילי בטיחות ופרופילים דינמיים
מספר מודלים הוערכו ב-macOS: App Sandbox, מכולות, מכונות וירטואליות ו-Seatbelt. לאפשרויות הראשונות יש חסרונות משמעותיים עבור סביבת פיתוח: App Sandbox דורש חתימה על כל קובץ בינארי שהסוכן עשוי לבצע ויורש את אמון החברה, מה שפותח וקטורים של ניצול לרעה אם הסוכן עצמו מייצר או משנה קבצים בינאריים; קונטיינרים מוגבלים למערכת האקולוגית של לינוקס; מכונות וירטואליות מסורתיות מוסיפות הרבה השהיית אתחול וצריכת זיכרון.
האלטרנטיבה המעשית הייתה להסתמך על חגורת בטיחות, נגישה דרך sandbox-execלמרות שאפל סימנה אותו כמיושן במשך שנים, הוא עדיין בשימוש על ידי יישומים קריטיים כמו Chromeזה מאפשר לך להפעיל פקודות תחת פרופיל ארגז חול שמגביל את ההתנהגות של כל עץ התהליך הצאצא.
פרופיל זה מגדיר הרשאות בפירוט רב: זה יכול לסנן קריאות שרת ספציפיות ולקרוא או לכתוב על קבצים וספריות ספציפייםבאמצעות שפת מדיניות ייחודית. ישנם יישומים המייצרים מדיניות זו באופן דינמי בזמן ריצה, תוך שילוב תצורת סביבת עבודה, מדיניות מנהל וקבצי התעלמות משתמשים, כך שלסוכן יש מרחב תמרון מבלי לגעת באזורים מסוכנים.
ארגז חול בלינוקס: Landlock ו-seccomp
לינוקס מציעה גם גמישות רבה יותר וגם עבודה רבה יותר: הליבה חושפת פרימיטיבים כמו קרקעות וסקקומפאבל באחריות מרחב המשתמש לשלב אותם לכדי ארגז חול קוהרנטי וניתן לניהול.
במקום להסתמך אך ורק על פרויקטים חיצוניים, חלק מהצוותים בוחרים השתמש ב-seccomp ישירות כדי לחסום קריאות מערכת הנחשבות מסוכנות. ו-Landlock כדי להגביל את הגישה למערכת הקבצים. דפוס נפוץ כרוך בהתקנת סביבת העבודה של המשתמש על גבי שכבת-על של מערכת הקבצים ו- החלף את הקבצים המסומנים כקבצים שהוזנחו בעותקים מיוחדים המוגנים על ידי Landlockכך שהתהליך המבודד לא יוכל לקרוא או לשנות שום דבר שבאמת רוצים להסתיר.
החלק האיטי ביותר בגישה זו הוא בדרך כלל איתור והרכבה מחדש של כל הקבצים הללו, מכיוון לינוקס אינה מציעה דרך קלה למצוא את הנתיב המלא של קובץ בתוך מסנן seccomp-bpfלמרות זאת, התוצאה היא ארגז חול די טוב: הסוכן יכול לעבוד עם עץ הפרויקט שלו בעוד שהנתיבים האסורים נמצאים, דה פקטו, מחוץ ליקום שלו.
ארגז חול ב-Windows: הסתמכות על WSL2
ב-Windows, הסיפור שונה. יצירת ארגז חול מקורי לשימוש כללי היא הרבה יותר מסובכת מכיוון רוב פרימיטיבים של בידוד קיימים מיועדים לדפדפנים או לתוכנות ספציפיות אחרותוהם לא משתלבים היטב עם כלי פיתוח רב-תכליתיים.
פתרון מעשי הוא הפעלת ארגז חול של לינוקס בתוך WSL2בדרך זו, אתם ממחזרים את כלי הבידוד של לינוקס (Landlock, seccomp, namespaces וכו') על בסיס וירטואליזציה שמבודד את סשן הפיתוח ממארח Windows. במקביל, מתקיימת עבודה מתואמת עם מיקרוסופט לחשיפת פרימיטיבים חדשים שיאפשרו בסופו של דבר יותר ארגזי חול מקוריים עבור כלי פיתוח.
ארגז חול של Windows: מרחב מבודד המשולב במערכת
עבור אלו המשתמשים ב-Windows 10 או 11 במהדורות Pro, Enterprise או Education, ישנו כלי מעניין במיוחד: ארגז חול של Windowsזוהי מכונה וירטואלית קלת משקל המשולבת במערכת עצמה ומאפשרת לך להפעיל יישומים לא מהימנים או קבצים חשודים בסביבה חד פעמית.
הרעיון פשוט: כשפותחים את Windows Sandbox, הוא מתחיל שולחן עבודה זמני ונקי של Windows, כאילו הותקן לאחרונהכל מה שאתה מעתיק או מתקין בתוכו - תוכניות, מסמכים, סקריפטים - קיים רק באותו מקרה. אם תסגור את החלון, הסביבה נהרסת: תוכנה, קבצים ומצב נמחקים, ובפעם הבאה שתתחיל מאפס.
תכונות עיקריות של ארגז חול של Windows
תכונה זו מגיעה עם מספר מאפיינים שימושיים מאוד עבור ניתוח ידני של ארגז חול מבלי להסתמך על כלים של צד שלישי:
- חלק מחלונותכל מה שאתם צריכים כבר כלול במהדורות התואמות (Pro, Enterprise, Education). אינכם צריכים להוריד תמונות או לתחזק מכונות וירטואליות חיצוניות.
- חד פעמי וטהורכל הפעלה נקייה כמו התקנה חדשה של Windows. שום דבר שתעשו בפנים לא נשמר במכשיר שלכם לאחר סגירת הסביבה.
- בטוח בתכנוןהיא מסתמכת על וירטואליזציה נתמכת חומרה (Hyper-V) כדי לבודד את ליבת ארגז החול (sandbox) מליבת המארח. היא משתמשת בהיפר-ויזור של מיקרוסופט כדי להפריד בין שני העולמות.
- יָעִילההפעלה מהירה, תוך שניות ספורות, עם ניהול זיכרון חכם ותמיכה ב-GPU וירטואלי, תוך שימוש בפחות משאבים בהשוואה למכונה וירטואלית מסורתית.
טכנית, זה מתנהג כך מכונה וירטואלית חד פעמית קטנה של Windows, תקף לחלוטין לבדיקת מתקינים, ביקור באתרים מפוקפקים או פתיחת קבצים מצורפים לדוא"ל שאינך סומך עליהם שיפעלו על המערכת האמיתית שלך.
תרחישים מעשיים לשימוש ב-Windows Sandbox
ישנם מספר תרחישים אופייניים שבהם Windows Sandbox מצטיין כפתרון פשוט לניהול ארגזי חול ידניים:
- נסה תוכנה לא מוכרתכאשר אתם מורידים יישום או קובץ הפעלה מהאינטרנט ואינכם בטוחים מה מקורו, תוכלו להתקין אותו תחילה בתוך Windows Sandbox ולראות כיצד הוא מתנהג ללא סיכון למחשב שלכם.
- גלישה בטוחה יותר באינטרנט: עבור ביקור באתרים שעלולים להיות מסוכנים, אתרי תוכנות זדוניות או אתרי פישינגניתן לפתוח את הדפדפן בתוך ארגז החול. אם משהו משתבש, סגירת החלון תמחק כל עקבות.
- פתיחת קבצים מצורפים וקבצים לא מהימניםאם אתם מקבלים קובץ מצורף חשוד או קובץ ZIP שאינו מעורר אמון, אתם מעתיקים אותו לארגז החול, פותחים אותו שם, ולאחר הבדיקה מחליטים אם כדאי לחלץ משהו למערכת האמיתית שלכם.
- הדגמות ובדיקות כלים ספציפיותזה מושלם ליצירת הדגמות תוכנה, בדיקת גרסאות תצוגה מקדימה, הרחבות או תוספים מבלי להעמיס על ההתקנה הראשית שלך.
- תחזוקת סביבות פיתוח מרובות ונפרדותניתן ליצור מרחבים נפרדים ומבודדים עבור כל מחסנית שפה או גרסה, לדוגמה ארגז חול עבור כל גרסה של פייתון והתלויות שלהכך שהניסויים לא יפריעו לסביבה היציבה שלך.
דרישות ורישיונות לשימוש ב-Windows Sandbox
לא כולם יכולים להשתמש ב-Windows Sandbox, אך הוא כבר זמין בסביבות מקצועיות רבות. כדי להפעיל אותו במחשב שלך, עליך:
- מהדורת Windows תואמתWindows 10/11 Pro, Enterprise, Pro Education/SE או Education. מהדורת Home אינה נתמכת.
- תמיכה בווירטואליזציהחיוני שיהיה את ה פונקציות וירטואליזציה ב-BIOS/UEFI (Intel VT-x, AMD-V או שווה ערך).
- מינימום משאביםלפחות 4 ג'יגה-בייט של זיכרון RAM (אם כי מומלץ 8 ג'יגה-בייט), 1 ג'יגה-בייט של שטח דיסק פנוי - רצוי SSD - ומינימום של 2 ליבות מעבד (רצוי 4 עם היפר-תדרים).
- מערכת הפעלה מעודכנתהחל מגירסאות מסוימות של Windows 10 (לדוגמה, גירסת 18305 של Windows 10 ואילך, וגירסאות מודרניות של Windows 11). ב-ARM64, הגיעה תאימות עם גירסאות עדכניות יותר.
לגבי רישיונות, מהדורות Pro, Enterprise ו-Education כוללות את הזכות להשתמש ב-Windows Sandbox אין צורך לשלם עבור רישיונות תוכנה נוספים לווירטואליזציה. פשוט הפעילו אותה ואתם מוכנים.
כיצד להפעיל את Windows Sandbox ללא כלים נוספים
כדי להפעיל את המערכת, אינך זקוק לשום דבר מחוץ למערכת עצמה:
- פתח את תפריט התחל וחפש את האפשרות "הפעל או כבה את תכונות Windows".
- ברשימת התכונות, סמנו ארגז חול של Windows ולאשר.
- הפעל מחדש את המחשב כשתתבקש.
- לאחר ההפעלה מחדש, חפש את "Windows Sandbox" בתפריט התחל והפעל אותו.
אם אתם מעדיפים גישה טכנית יותר, תוכלו גם להפעיל אותה באמצעות PowerShell באמצעות הפקודה הפעל-WindowsOptionalFeature -FeatureName “מכולות-DisposableClientVM” -הכל -מקווןבתנאי שיש לך הרשאות מנהל. לאחר ההפעלה, ארגז החול יהיה זמין תמיד בכל פעם שתזדקק ל"מכונה השנייה" המאובטחת הזו.
קבצי תצורה והתאמה אישית
תמיכה ב-Windows Sandbox קבצי תצורה פשוטים המאפשרים לך להתאים אישית פרמטרים מסוימים של סביבהלדוגמה, טעינת תיקיות מארח במצב קריאה או קריאה-כתיבה, השבתת הרשת, הפעלת סקריפטים בעת ההפעלה וכו'. קבצים אלה זמינים החל מגירסאות build ספציפיות של Windows 10 ו-11.
בפועל, יכולת זו עוזרת לך ליצור "מתכונים" בסגנון ארגז חול: תצורה מושבתת ברשת לפתיחת תוכנות זדוניותאחר עם תיקיית פרויקט המותקנת במצב קריאה בלבד לסקירת קבצים, או תצורה מוכוונת בדיקות תוכנה עם כלים מסוימים המותקנים מראש בתמונת הבסיס.
כיצד ללמד סוכני בינה מלאכותית להשתמש בארגז החול בצורה נכונה
ארגז חול יעיל באמת רק אם סוכן הקוד עצמו מבין את הסביבה בה הוא פועל. ויודע מתי הוא יכול לפעול בחופשיות ומתי עליו לבקש אישור נוסף או סיוע אנושי.
כדי להשיג זאת, פלטפורמות רבות נאלצו לשנות באופן יסודי את התשתית המתארת את הכלים למודל. לדוגמה, עדכון תיאורי כלי המעטפת כדי להסביר בבירור:
- אילו מגבלות מטיל ארגז החול? (גישה למערכת הקבצים, גיט, רשת).
- איך הסוכן יכול לבקש שדרוג של היתרים כאשר משהו נכשל עקב חוסר זכויות.
- אילו סוגי פקודות סביר להניח שייחסמו?
שינויים אלה לא תמיד יוצאים בצורה מושלמת בפעם הראשונה: בדרך כלל זה דורש בדיקות ידניות מקיפות של זרימות פריסה אמיתיותניתוח היכן הציפיות של המודל מתפרקות והתאמת הנחיות והוראות. על ידי מדידת התנהגות עם ובלי ארגז חול במבחני ביצועים פנימיים, מזוהים דפוסי כשל, כגון סוכנים ש... הם חוזרים על אותה פקודה בלולאה שארגז החול חוסם. במקום להבין שעליהם לבקש הרשאות נוספות או לשנות את האסטרטגיה שלהם.
שיפור מעשי יבוא לידי ביטוי בתוצאות הכלי הסיבה הספציפית לחסימה שהוטל על ידי ארגז החול ואף להציע במפורש לסוכן לבקש הרשאות מוגברות במידת הצורך. רמז קטן זה מפחית באופן דרסטי ניסיונות חוזרים עיוורים ומשפר את ההתאוששות משגיאות הקשורות לבידוד, הן בבדיקות לא מקוונות והן בייצור.
כדי להבטיח שארגז החול לא יפגע בחוויית המשתמש, חברות רבות בחרו ב לפרוס אותו בהדרגהאיסוף משוב פנימי וחיצוני לפני הפעלתו כברירת מחדל. הנתונים בדרך כלל ברורים: חלק ניכר מהבקשות (לדוגמה, כשליש) בסופו של דבר רצות בתוך ארגז חול בפלטפורמות תואמות, עם הפחתות ניכרות הן בזמן ההמתנה לאישור והן בזמן הבדיקה הידנית.
מודלים של בידוד ושיעורי בטיחות מהעולם האמיתי
בפועל, אין "ארגז חול מושלם" אחד. ישנם הבדלים חשובים בין מכולה משותפת של ליבה, ארגז חול דמוי gVisor, מיקרו-VM ומכונה וירטואלית מלאהניואנס זה חשוב כשאנחנו מדברים על מתן אפשרות לסוכן להריץ את Docker, להתקין חבילות שרירותיות, או אפילו להפעיל דפדפנים ושרשורים מורכבים.
אירועי אבטחה היסטוריים מדגישים את החשיבות של בחירה נבונה: פגיעויות כגון CVE-2019-5736 או CVE-2024-21626, שאפשרו קפיצה מהקונטיינר למארח או מניפולציה של קבצי בינאריים של המערכת, מדגימים שכאשר מגבלת האמון שלך היא זמן ריצה של קונטיינר בליבת המארח, באג חמור יכול להפיל את כל המחסום.
זה הופך להיות עדין יותר עם סוכני קידוד מכיוון שהם לעתים קרובות מבצעים קוד קומפילציה לא אמין, בניית תמונות, התקנת תלויות ללא ביקורת ובדרך כלל מטפלים בקלטים הטרוגניים מאוד. יתר על כן, הלחץ "לתת להם יותר כוח" הוא חזק: אם הם לא יכולים להפעיל כלים מסוימים, הם לעתים קרובות לא מצליחים להשלים את משימותיהם.
זו הסיבה שעיצובים מודרניים רבים של ארגזי חול של סוכנים נוטים ל... לחזק את הגבול באמצעות מיקרו-VM או VM קל משקלזה בא במחיר של מורכבות מוגברת מעט. תלות ישירה בליבת המארח מצטמצמת, ונרכשת שכבת בידוד נוספת מפני בריחות ממכולות. בסביבות מרובות דיירים או בביצוע בקנה מידה גדול של קוד לא אמין, gVisor או Kata Container תופסים נקודת ביניים, ומחליפים תאימות לטובת בידוד רב יותר.
אישורים אנושיים, אישורים פוליטיים וארגזי חול: איך לשלב את הכל ביחד
דפוס אחד שחוזר על עצמו בכל מקום הוא ש בקשות להיתר רב שנתי אינן מתקדמות היטבבמצב הדגמה, זה בסדר שהסוכן יבקש אישור לפני שהוא נוגע בקובץ. במצב ייצור, עם זרימות עבודה חצי-אוטונומיות ופעולות קטנות רבות, מודל ה"לחץ על אישור עבור הכל" הופך למסננת.
הגישה הבוגרת יותר משלבת מספר רבדים:
- ארגז חול חזק כדי להגן על המארח ולהגביל את סביבת הביצוע.
- מדיניות רשת מגבילה כדי לשלוט עם אילו נקודות קצה הסוכן יכול לדבר.
- ניהול אישורים באמצעות פרוקסיכך שהמודל משתמש בהם מבלי לראות אותם.
- תצורות גרסאות ברמת הפרויקט (הרשאות, ווים, שרתים חיצוניים) כך שלצוותים יהיה מקור אמת יחיד במאגר.
- סוכני משנה לקריאה בלבד לצורך חקירה ותכנון, תוך השארת פעולות הכתיבה למקרים מבוקרים יותר.
- אישור אנושי שמורה לפעולות עדינות באמתפרסום חבילות, שינויים בתשתית, סיבוב סודות או דחיפה לענפים קריטיים.
יתר על כן, ראוי לשקול את משטח בקרה שאתם מספקים לסוכן את קבצי התצורה, התוספים והמיומנויות שלכם. מדריכים מספקים כמו OpenAI מזהירים בבירור שחשיפת קטלוגים פתוחים של יכולות או מתן אפשרות לכל אחד להגדיר הוראות חזקות בתוך המאגר עלולים להוביל לדליפות נתונים או לפעולות הרסניות אם תוקף יצליח להחדיר הוראות זדוניות לקבצי README, בעיות, תיעוד או קבצי דוגמה.
בעיצוב סאונד, ארגז החול אינו נתפס כטריק קסם שמתקן את האבטחה במכה אחת, אלא כ... גבול נוסף בתוך ארכיטקטורה הכוללת מדיניות, אימות עצמאי, ניהול זהיר של סודות וסקירות תצורהלכן, אפילו בהנחה שיום אחד הסוכן יקרא הוראות זדוניות ויציית להן, המערכת נועדה להגביל את ההשפעה: אין גישה ישירה למפתחות, אין רשת פתוחה, ואין יכולת לשנות בחשאי סקריפטים שאתה מפעיל לאחר מכן על המחשב האמיתי שלך.
בסופו של דבר, הגדרת ארגז חול ידני טוב מבלי להסתמך על תוכנה נוספת כרוכה... נצל את המרב ממה ש-macOS ו-Linux כבר מציעים לך. —פרופילי Seatbelt, Landlock ו-seccomp, Windows Sandbox ו-WSL2—, בשילוב עם כללי רשת ברורים, אישורים וניהול מחזור חיים של סביבה. הוסיפו לכך סוכנים שאומנו להבין את ההגבלות הללו, מדיניות סבירות ומשמעת מסוימת בנוגע למה שהם מורשים לגשת אליו בסביבת העבודה שלכם, ותוכלו לבדוק קוד, כלים וקבצים מסוכנים בשקט נפשי גדול בהרבה, בידיעה שאם משהו ישתבש, הבעיה תישאר כלואה בתוך ארגז החול ולא תפגע במערכת או בנתונים קריטיים שלכם. שתפו את המידע כדי שיותר משתמשים יוכלו ללמוד על הנושא.

