הם מצאו פגיעות ביצוע ספקולטיבית שמשפיעה על AMD

הפרויקט לאחרונה Grsecurity נודע באמצעות פרסום פרטים והדגמה שיטת תקיפה לפגיעות חדשה (כבר רשום בתור CVE-2021-26341) במעבדי AMD הקשורים לביצוע הוראות ספקולטיביות לאחר פעולות קפיצה קדימה ללא תנאי.

פגיעות מאפשר למעבד לעבד באופן ספקולטיבי ההוראה מיד לאחר הקפיצה (SLS) בזיכרון במהלך ביצוע ספקולטיבי. יחד עם זאת, אופטימיזציה כזו פועלת לא רק עבור מפעילי קפיצה מותנית, אלא גם עבור הוראות הכוללות קפיצה ישירה ללא תנאי, כגון JMP, RET ו-CALL.

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

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

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

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

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

חקירה זו הביאה לגילוי של פגיעות חדשה, CVE-2021-26341 [1] , שבו נדון בהרחבה במאמר זה. כרגיל, נתמקד בהיבטים הטכניים של הפגיעות, בהקלות המוצעות על ידי AMD ובהיבטי הניצול.

כדי לחסום את היכולת לבנות מכשירים באמצעות eBPF, מומלץ להשבית גישה ללא הרשאות ל-eBPF במערכת ("sysctl -w kernel.unprivileged_bpf_disabled=1").

הפגיעות משפיעה על מעבדים המבוססים על המיקרו-ארכיטקטורה Zen1 ו-Zen2:

מכתבה

  • מעבד AMD Athlon™ X4
  • מעבד AMD Ryzen™ Threadripper™ PRO
  • דור שני של מעבדי AMD Ryzen™ Threadripper™
  • דור שלישי למעבדי AMD Ryzen™ Threadripper™
  • APU מהדור השביעי של AMD A-series
  • מעבדי AMD Ryzen™ 2000 שולחניים
  • מעבדי AMD Ryzen™ 3000 שולחניים
  • מעבדי AMD Ryzen™ 4000 שולחניים עם גרפיקת Radeon™

נייד

  • מעבד נייד של AMD Ryzen™ 2000
  • מעבדים ניידים מסדרת AMD Athlon™ 3000 עם גרפיקת Radeon™
  • מעבדים ניידים מסדרת AMD Ryzen™ 3000 או מעבדי AMD Ryzen™ ניידים מהדור השני עם גרפיקת Radeon™
  • מעבדים ניידים מסדרת AMD Ryzen™ 4000 עם גרפיקת Radeon™
  • מעבדים ניידים מסדרת AMD Ryzen™ 5000 עם גרפיקת Radeon™

Chromebook

  • מעבדים ניידים AMD Athlon™ עם גרפיקת Radeon™

שרת

  • הדור הראשון של מעבדי AMD EPYC™
  • דור שני של מעבדי AMD EPYC™

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

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

לדוגמה, חוקרים הכינו ניצול המאפשר לך לקבוע את פריסת הכתובת ולעקוף את מנגנון ההגנה של KASLR (Karnel Memory Randomization) על ידי ביצוע קוד ללא הרשאות בתת המערכת של ליבת eBPF, בנוסף לתרחישי התקפה אחרים שעלולים להדליף את תוכן של זיכרון הליבה אינו נשלל.

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


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

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

*

*

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