היישום של sudo ו-su ב-Rust נועד לשפר את האבטחה בכלי עזר אלה
לפני שלושה חודשים, שיתפנו כאן בבלוג את הידיעה על הקמת פרויקט "Sudo-rs" על ידי ISRG, המייסד של פרויקט Let's Encrypt ומקדם פיתוח טכנולוגיות להגברת אבטחת האינטרנט.
בפרסום זה שיתפנו כמה מהפרטים והמאפיינים של הפרויקט, שמטרתו העיקרית היא ליצור יישומים של כלי השירות SUDO ו-SU ב-Rust (ניתן לעיין בפרסום בקישור הבא ).
הגרסה היציבה הראשונה של sudo-rs
הסיבה לאזכור זה היא שהגרסה היציבה הראשונה של פרויקט Sudo-rs הושקה לאחרונה , במסגרתה השתתפו מהנדסים מ-Ferrous Systems ו-Tweede Golf במימון שסופק על ידי גוגל, סיסקו ו-Amazon Web Services.
למי שאינו מכיר את פרויקט "Sudo-rs", אני יכול לומר שמטרתו היא לפתח גרסאות Rust של כלי השירות SUDO ו-SU, שנועדו לבצע פקודות בשם משתמשים אחרים, מכיוון ש-SUDO הוא כלי שירות קונסולה במערכות הפעלה דמויות יוניקס לביצוע פקודות עם הרשאות של משתמש אחר, כברירת מחדל משתמש העל הבסיסי.
הפונקציות `sudo` ו-`su`, ב-`sudo-rs`, נכתבו מאפס ב-Rust, שפה שנמצאת בשימוש הולך וגובר ומומלצת בתעשייה, שכן היא הפכה לאחת השפות העיקריות עבור אנדרואיד ואף נתמכת בה כשפת תכנות משנית בליבת לינוקס. מיקרוסופט, מצידה, גם הזכירה בכמה הזדמנויות את כוונתה לכתוב מחדש את הליבה וחלק מספריות Windows שהוא מכיל.
מוזכר כי כלי השירות תואמים לכלי השירות הקלאסיים SUDO ו-SU ככל האפשר, מה שמאפשר שימוש ב-sudo-rs כתחליף שקוף ל-SUDO בתרחישים אופייניים התואמים את תצורת ברירת המחדל /etc/sudoers באובונטו ובדביאן. Sudo-rs כבר יושם במקום חבילת SUDO המסורתית בהפצת Wolfi Linux, במטרה לספק את רמת האבטחה הגבוהה ביותר.
השימוש בשפת Rust לפיתוח SU ו-SUDO אמור להפחית את הסיכון לפגיעויות הנגרמות מטיפול לא בטוח בזיכרון ולבטל את התרחשותן של שגיאות כגון גישה לאזור זיכרון לאחר שפונה ואוזל הזיכרון בגבולות המאגר.
יתר על כן, כדי להבטיח את רמת האבטחה המתאימה, הפרויקט פיתח חבילת בדיקות מורחבת , המאפשרת גם ניטור של רמת התאימות הנדרשת עם כלי השירות sudo המקורי. כדי להפחית את משטח התקיפה ואת מספר הפגיעויות הפוטנציאליות ב- sudo-rs, הוחלט לנטוש את יישום פונקציונליות sudo, הנמצאת בשימוש נדיר.
בין ההבדלים עם SUDO , מוזכר כי מצב ברירת המחדל use_pty כלול, בין התכונות שטרם יושמו ביסודו נמצאות mail_badpass, כמו גם תאימות עם sendmail, בעוד שתכונות שטרם יושמו, אך יתווספו בעתיד: כלי sudoedit, מצבי NOEXEC ו-NOINTERCEPT, תמיכה בקישור בלוקי תצורה "ברירת מחדל" למשתמשים ולפקודות בודדים, ויכולת אימות ללא שימוש ב-PAM.
ראוי להזכיר כי בחודש ספטמבר זה צפוי לאשר את איכות היישום וכי מתוכננת גם ביקורת עצמאית של בסיס הקוד sudo-rs.
בנוסף, צוין כי הגרסה השנייה מתוכננת להוסיף כלים לעבודה בסביבות מרובות משתמשים , כגון מצב NOEXEC, יומני ביקורת, יכולת של sudoers למפות מארחים ותמיכה בעד 16 קבוצות משתמשים. הגרסה השלישית מתוכננת להיות תואמת לתצורת sudoers המשמשת בפדורה, ותוסיף גם את כלי השירות sudoedit ותשתמש במנגנוני SELinux ו-AppArmor כדי לשפר את האבטחה.
לבסוף , אם אתם מעוניינים ללמוד עוד על כך , תוכלו למצוא את הפרטים בקישור הבא.