הם גילו בעיות אבטחה בתיקוני הליבה של לינוקס שהוצעו על ידי עובד Huawei

מפתחי פרויקט Grsecurity פרסמה מידע בנושאי אבטחה שנמצאו בתיקון מוצע לשיפור אבטחת הליבה של לינוקס על ידי עובד Huawei, נוכחות של פגיעות מנוצלת באופן טריוויאלי בערכת התיקונים HKSP (הגנה עצמית של ליבה של Huawei).

תיקוני "HKSP" אלה פורסמו על ידי עובד Huawei לפני 5 ימים וכוללים את אזכור Huawei בפרופיל GitHub ומשתמשים במילה Huawei בפענוח שם הפרויקט (HKSP - Huawei Kernel Self Protection), למרות שה- אמפלדו מזכיר כי לפרויקט אין שום קשר לחברה והוא שלו.

הפרויקט הזה עשה את המחקר שלי בזמני הפנוי, שם ה- hksp ניתן על ידי, הוא לא קשור לחברת Huawei, אין מוצר של Huawei שמשתמש בקוד זה.

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

אודות HKSP

HKSP כולל שינויים כגון אקראיות של מבנה פשרות, הגנה מפני התקפות מרחב שמות מזהה משתמש (מרחב שמות pid), הפרדת מחסנית התהליך אזור mmap, פונקציה kfree זיהוי כפול של שיחות, חסימת דליפות באמצעות פסאודו-FS / proc (/ proc / {מודולים, מפתחות, משתמשי מפתח}, / proc / sys / kernel / * ו- proc / sys / vm / mmap_min_addr, / proc / kallsyms), רנדומציה משופרת של כתובות במרחב המשתמשים, הגנה נוספת מפני Ptrace, הגנה משופרת על smap ו- smep, היכולת לאסור שליחת נתונים דרך שקעים גולמיים, חסימת כתובות לא חוקי בשקעי UDP ובדיקות ושלמות התהליכים הפועלים.

המסגרת כוללת גם את מודול ליבת Ksguard, שנועד לזהות ניסיונות להכניס ערכות שורש טיפוסיות.

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

Kees Cook (Kees Cook), ראש הפרויקט לקידום טכנולוגיית הגנה פעילה בליבת לינוקס, דיבר גם כן בחיוב על תיקונים, והנושאים הפנו את תשומת הלב לארכיטקטורה של x86 ולאופי ההודעה על מצבים רבים שרק מתעדים מידע אודות הבעיה, אך לא נסה לחסום אותה.

מחקר תיקון של מפתחי Grsecurity חשף הרבה באגים וחולשות בקוד זה גם הראה את היעדרו של מודל איומים המאפשר הערכה נאותה של יכולות הפרויקט.

כדי להמחיש שהקוד נכתב ללא שימוש בשיטות תכנות מאובטחות, דוגמה לפגיעות טריוויאלית ניתנת במטפל הקבצים / proc / ksguard / state, שנוצר עם הרשאות 0777, כלומר לכולם יש גישה לכתיבה.

הפונקציה ksg_state_write המשמשת לניתוח הפקודות הכתובות ב- / proc / ksguard / state יוצרת tmp מאגר [32], בו הנתונים נכתבים על סמך גודל האופרנד שעבר, מבלי להתחשב בגודל חיץ היעד וללא בדיקה הפרמטר עם גודל המחרוזת. במילים אחרות, כדי להחליף חלק מערימת הליבה, התוקף צריך לכתוב רק קו בעל מבנה מיוחד ב- / proc / ksguard / state.

עם קבלת התשובה, היזם הגיב לדף GitHub של הפרויקט “HKSP” רטרואקטיבית לאחר גילוי הפגיעות הוא הוסיף גם הערה כי הפרויקט מתקדם בזמנו הפנוי למחקר.

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

למעשה אימות ה- rootkit ברמת הליבה אתה עדיין צריך לדון עם הקהילה, אם יש צורך לתכנן כלי ARK (אנטי rootkit) למערכת לינוקס ...