הפגיעות נובעת מתכונות אופטימיזציה של זיכרון במעבדי אינטל.
שוב, התגלתה פגיעות במערכת ביצוע הוראות ספקולטיביות של מעבדי אינטל, והפעם חוקר גוגל, הודיע שהוא זיהה פגיעות חדשה (כבר מקוטלגת תחת CVE-2022-40982), שנקרא "נפילה"
Downfall, היא נקודת תורפה המאפשרת לקבוע את התוכן של ה-XMM, YMM אוגרי וקטור ZMM, ששימשו בעבר על ידי תהליכים אחרים בעת ביצוע הוראות AVX על אותה ליבת מעבד.
לגבי נפילה
לגבי פגיעות, מוזכר כי תוקף חסר זכויות עם היכולת להריץ קוד משלך במערכת, יכול להשתמש בפגיעות כדי להדליף נתונים מתהליכי משתמש אחרים, ליבת המערכת, מובלעות אינטל SGX מבודדות ומכונות וירטואליות.
אוגרים וקטוריים ניתנים לסינון נמצאים בשימוש נרחב בהצפנה, פונקציות העתקת זיכרון ועיבוד מחרוזות, למשל, אוגרים אלו משמשים בספריית Glibc בפונקציות memcpy, strcmp ו-strlen, בין היתר. מנקודת מבט מעשית, ניתן לנצל את הפגיעות כדי לקבוע את הנתונים המעובדים בהוראות AES-NI או REP-MOVS (בשימוש בפונקציית memcpy) בתהליכים אחרים, מה שעלול לדלוף מפתחות הצפנה, נתונים רגישים וסיסמאות משתמש.
הפגיעות מתבטאת במעבדי אינטל התומכים בערכות הוראות מורחבות של AVX2 ו-AVX-512 (כלומר זה משפיע על מעבדי דור 6 עד 11), בעוד שמעבדי אינטל המבוססים על המיקרו-ארכיטקטורות Alder Lake, Raptor Lake ו-Sapphire Rapids לא נראים מושפעים.
בדומה לפגיעות Zenbleed שהתגלתה לאחרונה המשפיעה על מעבדי AMD Zen2, ב-Downfall, הסיבה לפגיעות היא דליפת נתונים מקובצי יומן, המשמשים לשיתוף תוכן יומן על פני כל האפליקציות.משימות על אותה ליבת CPU.
הדליפה נובעת מהעברת נתונים ספקולטיבית בעת ביצוע הצהרת GATHER, זמין בהרחבות AVX2 ו-AVX-512, ונועד לספק גישה מהירה לנתונים שונים בזיכרון. במהלך ביצוע הצהרת GATHER, נעשה שימוש בנתונים הישנים בקובץ הרישום בביצוע ספקולטיבי של הוראות תלויות. נתונים אלו אינם משתקפים ישירות ביומני תוכנה, אך ניתן לקבוע באמצעות טכניקות התקפה של ערוץ צד המיועדות להתקפות Meltdown, כגון ניתוח שאריות של נתונים ב-Cache.
כדי לנצל את הנפילה, פותחה טכניקת תקיפה בשם Gather Data Sampling (GDS) ועבורם פורסמו אבות טיפוס של ניצול לחילוץ מפתחות הצפנה מתהליך של משתמש אחר, דליפת נתונים לאחר העתקתם לליבת לינוקס על ידי פונקציית memcpy, וליירט תווים מודפסים שנשארו באוגרים וקטוריים לאחר שתהליכים אחרים פועלים. לדוגמה, הוא מדגים את היכולת להגדיר מפתחות AES המשמשים להצפנת נתונים בתהליך של משתמש אחר באמצעות ספריית OpenSSL.
השיטה הראתה יעילות גבוהה: על ידי עריכת ניסוי עם 100 מפתחות שונים, 100% ממפתחות AES-128 ו-86% ממפתחות AES-256 נקבעו עם משך הזמן של כל ניסיון לקבוע לא יותר מ-10 שניות. במערכות ענן, ניתן להשתמש בהתקפה כדי לקבוע אילו נתונים מעובדים במכונות וירטואליות אחרות. ייתכן שניתן לנצל את הפגיעות על ידי הפעלת קוד JavaScript בדפדפן אינטרנט.
יש לציין שאניntel גילתה את הבעיה בשנה שעברה (דווקא בחודש אוגוסט) וכי הפגיעות פורסמה רק השנה בכנס BlackHat USA. ותיקונים להגנה מפני הפגיעות כבר כלולים בעדכוני ליבת לינוקס השונים, החל מגרסה 6.4.9 6.1.44 עד 4.14.321.
בנוסף לכך, בין האמצעים האפשריים למנוע את ההשפעה השלילית של ההגנה מפני פגיעות Downfall על הביצועים, מוזכר ביצוע שינויים במהדרים כדי להשבית את השימוש בהצהרת GATHER או הוספת ההצהרה מיד לאחר ה-GATHER LFENCE, מה שמנטרל ביצוע מונע של הצהרות עוקבות לפני שהושלמו כל ההתחייבויות הקודמות.
עבור מערכות שבהן תיקוני קושחה אינם זמינים, התמיכה בכל הרחבות AVX הושבתה, בעוד שלחלק עדכון המיקרוקוד של Intel, היא מספקת גם את היכולת להשתמש בממשק MSR כדי להשבית באופן סלקטיבי את הגנת הקושחה בהקשר של תהליכים בודדים.
לבסוף, אם אתה מעוניין לדעת יותר על כך, אתה יכול לבדוק את הפרטים ב הקישור הבא.