נקודת הבדיקה הציגה טכניקת בטיחות של קישור בטוח

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

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

הוכנו תיקוני הטמעה לקישור בטוח לקישורי Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) ו- Google TCMalloc, כמו גם הצעה למודרניזציה של ההגנה בכרום (מאז 2012 Chromium כבר משולב בפתרונות אותה בעיה) טכניקת הגנת MaskPtr, אך הפיתרון של Checkpoint מראה ביצועים טובים יותר).

התיקונים המוצעים כבר אושרו למסירה במהדורת Glibc 3.32 באוגוסט, וקישור בטוח יופעל כברירת מחדל. ב- uClibc-NG, תמיכה בקישורים מאובטחים נכללה בגרסה 1.0.33 והיא מופעלת כברירת מחדל. ב- gperftools (tcmalloc ישן) השינויים מתקבלים, אך יוצעו כאופציה במהדורה עתידית.

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

הבדיקות שביצעה מהנדסי נקודת בדיקה הראו כי שיטת Safe-Linking אינה מובילה לצריכת זיכרון נוספת והביצועים בעת ביצוע פעולות ערימה בממוצע יורדים רק ב -0.02%, ובמקרה הגרוע ב -1.5%

הפעלת קישור בטוח מובילה לביצוע של 2-3 הוראות הרכבה נוספות בכל שיחה לחינם () ו- 3-4 הוראות בעת קריאה למאלוק (). אין צורך בהתחלת אתחול וייצור ערך אקראי.

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

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

מהות השיטה היא החלת נתונים אקראיים ממנגנון האקראיות של כתובת ASLR (mmap_base) כדי להגן על רשימות המקושרות בנפרד כגון Fast-Bins ו- TCache. לפני החלת ערך המצביע לפריט הבא ברשימה, מבצעים המרת מסיכות ובדיקת יישור לאורך קצה דף הזיכרון. המצביע מוחלף בתוצאה של הפעולה "(L >> PAGE_SHIFT) XOR (P)", כאשר P הוא ערך המצביע ו- L הוא המיקום בזיכרון בו מאוחסן מצביע זה.

כאשר משתמשים במערכת ASLR (Address Space Layout Randomization), חלק מהביטים L עם כתובת הבסיס של הערימה מכילים ערכים אקראיים המשמשים כמפתח לקידוד P (הם מופקים על ידי פעולת הסטה של ​​12 ביט) עבור עמודים של 4096 בתים).

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

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

כדוגמה, הוצג כי השימוש בקישור בטוח במאלוק יחסום את ניצול הפגיעות CVE-2020-6007 שהתגלו לאחרונה על ידי אותם חוקרים בתאורה האחורית החכמה של Philips Hue שנגרמה עקב הצפת המאגר ומאפשרת שליטה את המכשיר.

מקור: https://research.checkpoint.com


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.