הוכרז כי הוצע יישום של מנגנון בידוד יישומים עבור FreeBSD , המזכיר את קריאות המערכת foldde ו- unveil שפותחו על ידי פרויקט OpenBSD.
בידוד ב-plegde נעשה על ידי איסור גישה לשיחות מערכת שאינן בשימוש האפליקציה וחשיפה על ידי פתיחת גישה סלקטיבית רק לנתיבי קבצים מסוימים שהאפליקציה יכולה לעבוד איתם. עבור האפליקציה נוצרת מעין רשימה לבנה של קריאות מערכת ונתיבי קבצים, וכל שאר הקריאות והנתיבים אסורים.
ההבדל בין `pledge` ל-`unveil` , שפותח עבור FreeBSD , מסתכם במתן שכבה נוספת המאפשרת לבודד יישומים עם שינויים מינימליים או ללא שינויים כלל בקוד שלהם. זכרו שב-OpenBSD, `pledge` ו-`unlock` שואפים לאינטגרציה הדוקה עם סביבת הבסיס ומיושמים על ידי הוספת הערות מיוחדות לקוד של כל יישום.
כדי לפשט את ארגון ההגנה, מסננים מאפשרים לך להימנע מפרטים ברמה של קריאות מערכת בודדות ולתפעל מחלקות של קריאות מערכת (קלט/פלט, קריאת קובץ, כתיבת קובץ, sockets, ioctl, sysctl, תחילת תהליכים וכו') . ניתן לקרוא לפונקציות הגבלת גישה בקוד האפליקציה כאשר פעולות מסוימות מבוצעות, לדוגמה, ניתן לסגור גישה לשקעים ולקבצים לאחר פתיחת הקבצים הדרושים ויצירת חיבור לרשת.
מחבר הפורמט של FreeBSD לקיפול ופתיחה שואף לספק את היכולת לבודד יישומים שרירותיים. כדי להשיג זאת, הם מציעים את כלי השירות curtain, המאפשר להחיל כללים המוגדרים בקובץ נפרד על יישומים. התצורה המוצעת כוללת קובץ עם הגדרות בסיסיות המגדירות את סוגי קריאות המערכת ונתיבי קבצים אופייניים ספציפיים ליישומים מסוימים (עבודה עם קול, רשת, רישום וכו'), כמו גם קובץ עם כללי גישה עבור יישומים ספציפיים.
ניתן להשתמש בכלי העזר לווילון כדי לבודד את רוב כלי השירות, תהליכי השרת, היישומים הגרפיים ואפילו הפעלות שלמות של שולחן העבודה שלא שונו. שיתוף וילון עם מנגנוני הבידוד המסופקים על ידי תת-המערכות הכלא וה-Capsicum נתמך.
בידוד מקונן אפשרי גם כן , כאשר יישומים המופעלים יורשים את הכללים שנקבעו על ידי האפליקציה הראשית, ומוסיפים להם מגבלות נפרדות. חלק מפעולות הליבה (כלי ניפוי שגיאות, POSIX/SysV IPC, PTY) מוגנות עוד יותר על ידי מנגנון מחסום המונע גישה לאובייקטי ליבה שנוצרו על ידי תהליכים שאינם התהליך הנוכחי או הראשי.
תהליך יכול להגדיר את הבידוד שלו על ידי קריאה לפונקציה curtainctl או שימוש בפונקציות pledge() ו- unveil() המסופקות על ידי ספריית libcurtain, בדומה לאלו ב-OpenBSD. פקודה sysctl 'security.curtain.log_level' מסופקת למעקב אחר נעילות בזמן שהאפליקציה פועלת.
הגישה לפרוטוקולי X11 ו-Wayland מופעלת בנפרד על ידי ציון האפשרויות "-X"/"-Y" ו-"-W" בעת הפעלת וילון, אך התמיכה ביישומים גרפיים עדיין לא מיוצבת מספיק ויש לה סדרה של בעיות לא פתורות ( בעיות מופיעות בעיקר בעת שימוש ב-X11, והתמיכה ב-Wayland טובה בהרבה). משתמשים יכולים להוסיף הגבלות נוספות על ידי יצירת קובצי כללים מקומיים (~/.curtain.conf). לדוגמה,
ההטמעה כוללת את מודול mac_curtain kernel לבקרת גישה חובה (MAC), סט תיקונים עבור ליבת FreeBSD עם הטמעת מנהלי התקנים ומסננים נחוצים, ספריית libcurtain לשימוש בפונקציות plegde ונחשפו באפליקציות, וילון השירות, מציג תצורה קבצים, חבילת בדיקות ותיקונים עבור חלק מתוכניות מרחב המשתמש (לדוגמה, כדי להשתמש ב-$TMPDIR כדי לאחד עבודה עם קבצים זמניים). במידת האפשר, המחבר מנסה למזער את מספר השינויים הדורשים תיקון הליבה והיישומים.
לבסוף, אם אתם מעוניינים ללמוד עוד , תוכלו למצוא פרטים נוספים בקישור הבא.