חוקרים מהאוניברסיטה החופשית של אמסטרדם הוכרז לאחרונה מצא אחד פגיעות חדשה שהיא גרסה מורחבת של הפגיעות Spectre-v2 על מעבדי אינטל ו-ARM.
הפגיעות החדשה הזו, אליה הוטבלו בתור BHI (הזרקת היסטוריית ענפים, CVE-2022-0001), BHB (Buffer History Branch, CVE-2022-0002) ו-Spectre-BHB (CVE-2022-23960), מאופיין בכך שהוא מאפשר עקיפת מנגנוני ההגנה של eIBRS ו-CSV2 שנוספו למעבדים.
הפגיעות מתוארת בביטויים שונים של אותה בעיה, שכן BHI היא התקפה שמשפיעה על רמות הרשאות שונות, למשל, תהליך משתמש והקרנל, בעוד BHB היא התקפה באותה רמת הרשאות, למשל, eBPF JIT ו הגרעין.
על פגיעות
מבחינה רעיונית, BHI הוא גרסה מורחבת של מתקפת Spectre-v2, שבו ניתן לעקוף הגנה נוספת (Intel eIBRS ו- Arm CSV2) ולתזמר דליפת נתונים, החלפת ערכים במאגר בהיסטוריית ענפים גלובלית (Branch History Buffer), המשמשת ב-CPU לשיפור דיוק חיזוי הענף על ידי התחשבות בהיסטוריה של מעברים בעבר.
במהלך פיגוע באמצעות מניפולציות עם ההיסטוריה של המעברים, נוצרים תנאים לחיזוי שגוי של המעבר ולביצוע ספקולטיבי של ההוראות הדרושות, שתוצאתן מופקדת במטמון.
למעט שימוש במאגר היסטוריית גרסאות במקום במאגר יעד לגרסה, ההתקפה החדשה זהה ל-Spectre-v2. המשימה של התוקף היא ליצור תנאים כאלה שהכתובת, בעת ביצוע פעולה ספקולטיבית, היא נלקחת מאזור הנתונים הנקבעים.
לאחר ביצוע קפיצה עקיפה ספקולטיבית, כתובת הקפיצה הנקראת מהזיכרון נשארת במטמון, ולאחר מכן ניתן להשתמש באחת השיטות לקביעת תוכן המטמון כדי לאחזר אותה על סמך ניתוח של השינוי בזמן הגישה למטמון וללא שמירה במטמון. נתונים.
חוקרים הדגימו ניצול פונקציונלי המאפשר למרחב המשתמש לחלץ נתונים שרירותיים מזיכרון הליבה.
לדוגמה, הוא מראה כיצד, באמצעות ה-exploit המוכן, ניתן לחלץ ממאגרי הליבה מחרוזת עם hash של סיסמת משתמש השורש, הנטענת מהקובץ /etc/shadow.
הניצול מדגים את היכולת לנצל את הפגיעות ברמת הרשאה אחת (התקפת ליבה לקרנל) באמצעות תוכנית eBPF שנטענת על ידי המשתמש. גם האפשרות להשתמש בגאדג'טים קיימים של Spectre בקוד הקרנל, סקריפטים המובילים לביצוע ספקולטיבי של הוראות, אינה נשללת.
פגיעות מופיע ברוב מעבדי אינטל העדכניים, למעט משפחת המעבדים Atom ובכמה ממעבדי ARM.
לפי מחקר, הפגיעות אינה באה לידי ביטוי במעבדי AMD. כדי לפתור את הבעיה, הוצעו מספר שיטות. תוכנה לחסימת הפגיעות, שבה ניתן להשתמש לפני הופעת הגנת החומרה בדגמי CPU עתידיים.
כדי לחסום התקפות דרך תת-המערכת eBPF, ס'מומלץ להשבית כברירת מחדל את היכולת לטעון תוכניות eBPF על ידי משתמשים לא מורשים על ידי כתיבת 1 לקובץ "/proc/sys/kernel/unprivileged_bpf_disabled" או על ידי הפעלת הפקודה "sysctl -w kernel .unprivileged_bpf_disabled=1".
כדי לחסום התקפות באמצעות גאדג'טים, מומלץ להשתמש בהוראות LFENCE בקטעי קוד שעלולים להוביל לביצוע ספקולטיבי. ראוי לציין שתצורת ברירת המחדל של רוב הפצות לינוקס כבר מכילה את אמצעי ההגנה הדרושים מספיק כדי לחסום את התקפת eBPF שהדגימו החוקרים.
ההמלצות של אינטל לנטרל גישה ללא הרשאות ל-eBPF חלות גם כברירת מחדל החל מ-Linux 5.16 ויועברו לסניפים מוקדמים יותר.
לבסוף, אם אתה מעוניין להיות מסוגל לדעת יותר על זה, אתה יכול לעיין בפרטים ב הקישור הבא.