חזרה
Drop: סנדבוקס Linux ללא root עם תמיכה ב-gVisor
SiTech AI Team2 წთ. საკითხავი

Drop: סנדבוקס Linux ללא root עם תמיכה ב-gVisor

Drop הוא סנדבוקס בקוד פתוח ל-Linux שמבודד תוכנות וסוכני קוד בסביבות חד-פעמיות. הוא אינו דורש root, משתמש בהפצה שכבר מותקנת במקום בקונטיינרים, ויכול להריץ תוכנות על ליבת מרחב המשתמש של gVisor.

Drop הוא סנדבוקס בקוד פתוח ל-Linux שמבודד תוכנות וסוכני קוד בסביבות חד-פעמיות בלי לעבור לקונטיינרים. הפרויקט מתפרסם ב-droprun.sh, הקוד זמין ב-GitHub, והוא הופיע ב-Hacker News כפוסט Show HN. Drop פותר את הבעיה של Docker ו-Podman בדרך קלה בהרבה.

בידוד בלי root

תהליך העבודה בהשראת virtualenv של Python: יוצרים סביבה, נכנסים אליה ועובדים כרגיל, אבל הבידוד נאכף על ידי מערכת ההפעלה. Drop לא דורש root. כל סביבה פועלת ב-user namespace של Linux עם מרחבי שמות נפרדים לתהליכים, mount, רשת, IPC ו-cgroup, ולפני הרצת תוכנה מבודדת Drop מסיר את כל היכולות של user namespace, כך שאין באפשרותה לבצע פעולות מורשות כמו bind mount.

לכל סביבה תיקיית בית קבועה משלה, ותיקיית הבית המקורית מוסתרת. תיקיות מערכת נחשפות מהמארח לקריאה בלבד, ‏/var ו-/tmp פרטיים, זמינים רק כמה התקנים בסיסיים, והגישה לשירותים שמאזינים ב-localhost חסומה כברירת מחדל; את הרשת מנהלת pasta.

למה זה מיועד

מקרה השימוש המרכזי הוא סוכני קוד. הרצת סוכן בלי בקשות הרשאה פחות מסוכנת כשמערכת ההפעלה, ולא המודל, אוכפת את הגבולות: פקודת rm -rf ~ שהוזמנה בטעות לא תגע בתיקיית הבית האמיתית, והזרקת פרומפט שמכוונת ל-~/.ssh לא תמצא דבר. מקרה השימוש השני הוא תוכנות צד שלישי: חבילה מ-PyPI או מ-npm רצה בתוך סביבה, כך שגרסה זדונית או פגיעה בשרשרת האספקה נשארת בפנים.

בשונה ממנועי קונטיינרים, Drop משתמש בהפצה שכבר מותקנת במכונה: אין image לבנות ואין הגדרת קונטיינר, ותוכנות המארח זמינות כפי שהן. קובץ TOML קובע אילו קבצים, תיקיות ושירותי רשת מקומיים ייחשפו, וכל הסביבות חולקות הגדרת בסיס כברירת מחדל.

gVisor והתקנה

קיימים שני runtime-ים: ברירת המחדל native מריצה תוכנות ישירות על ליבת המארח, ו-gvisor מריץ אותן בנוסף על ליבת מרחב המשתמש של gVisor כך שקוראות מערכת לא מגיעות ישירות לליבה. נדרשת התקנה של runsc, ואפשר לבחור את המצב בקובץ TOML ‏(runtime = "gvisor") או בפקודה בודדת. gVisor מוסיף תקורה ואינו תואם לחלוטין לליבה הרגילה. להתקנה נדרשת החבילה passt/pasta; ב-Ubuntu 24 פרופיל AppArmor צריך לאפשר ל-drop להשתמש ב-user namespace, וב-Fedora יש להרחיב את מדיניות SELinux כדי ש-pasta תוכל לפתוח קבצי מרחבי שמות.

מגבלות

Drop הוא כלי למסוף: תוכנות עם ממשק גרפי לא רצות בהגדרת ברירת המחדל, חשיפת sockets של X תעניק הרשאות רחבות מדי, והשמעת או הקלטת קול אינן אפשריות. תוכנות setuid כלל לא רצות, ותוכנות שתלויות בעצמן ב-user namespace — ‏Podman או תוכנות שהותקנו דרך Snap — אינן נתמכות.

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.