פגיעות ב- eBPF מאפשרת הגנה עוקפת מפני התקפות ספקטר

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

וזה תוך זמן קצר דווחו על נקודות תורפה שונות בו נצל את הבאגים ב- eBPF ושזה נושא שמפתחי הליבה לא הפסיקו לעבוד ואולי Rust הוא הפיתרון.

הסיבה לגעת בנושא זה היא ש לאחרונה פורסמה הידיעה שהם זיהו פגיעות "אחרת" בליבת הלינוקס (CVE-2021-33624) עבור הגנה עוקפת מפני נקודות תורפה מסוג Specter, מכיוון שהדבר מאפשר להשתמש בתת-מערכת eBPF כדי לקבוע את תוכן הזיכרון כתוצאה מיצירת תנאים להשערות ביצוע פעולות מסוימות.

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

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

במערכות מושפעות, תוכנית BPF חסרת זכות יכולה לנצל את הפגיעות הזו כדי לסנן את תוכן זיכרון הליבה השרירותי (ולכן את כל הזיכרון הפיזי) דרך ערוץ צדדי.

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

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

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

הערה זו מסכמת את התוצאות אופטימיזציה של איתור באגים rr (הקלט והפעל מחדש), נוצר פעם על ידי מוזילה לצורך ניפוי שגיאות שקשה לחזור עליהם ב- Firefox. אחסון במטמון שיחות המערכת המשמשות לאימות קיומן של ספריות הפחית את פעולת "מקורות rr" עבור פרויקט הבדיקה מ -3 דקות 19 שניות ל -36 שניות.

מחבר האופטימיזציה החליט לבדוק כמה ישתנה ביצועים לאחר השבתת הגנת ספקטר. לאחר אתחול המערכת עם הפרמטר «מקלות = כבוי», זמן הביצוע של «מקורות rr» ללא אופטימיזציה היה 2 דקות 5 שניות (פי 1.6 מהר יותר) ועם אופטימיזציה 33 שניות (9% מהר יותר).

באופן מוזר, השבתת הגנת ספקטר לא רק שהפחיתה זמן ריצה של קוד רמת הליבה בפי 1.4 פעמים (מ 2 דקות 9 עד 1 דק 32), זה גם מחצית את זמן הביצוע במרחב המשתמשים (מ- 1 דק '9s ל- 33s), ככל הנראה עקב ירידה במטמון המעבד והיעילות של מעבד ה- TLB מתאפסים כאשר ההגנה על ספקטרום מופעלת.

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

Si אתה רוצה לדעת יותר על זה, אתה יכול לבדוק את הפרטים בקישור הבא.


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

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

*

*

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