Rebleed: מתקפת ביצוע ספקולטיבית חדשה שפוגעת באינטל וב-AMD

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

הפגיעויות קיבלו את שם הקוד Rebleed (כבר מקוטלג תחת CVE-2022-29900, CVE-2022-29901) וכן דומים באופיים להתקפות Spectre-v2.

ההבדל מסתכם בארגון הביצוע הספקולטיבי של קוד שרירותי על ידי עיבוד הוראת ה-"retur" (return), אשר מאחזרת את הכתובת לקפוץ מהמחסנית, במקום לקפוץ בעקיפין באמצעות הוראת "jmp", טעינת הכתובת מהזיכרון או אוגר CPU.

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

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

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

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

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

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

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

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

En המעבדים AMD, היעילות של הניצול היא הרבה יותר גבוהה, מכיוון שקצב הדליפה הוא 3,9 KB לשנייה. כדוגמה מעשית, מוצג כיצד להשתמש בניצול המוצע כדי לקבוע את התוכן של קובץ /etc/shadow. במערכות עם מעבדי אינטל, התקפה לקביעת ה-hash של סיסמת השורש בוצעה תוך 28 דקות, ובמערכות עם מעבדי AMD, תוך 6 דקות.

המתקפה אושרה במשך 6-8 דורות של מעבדי אינטל ששוחררו לפני הרבעון השלישי של 2019 (כולל Skylake), ומעבדי AMD המבוססים על מיקרו-ארכיטקטורות Zen 1, Zen 1+ ו-Zen 2 ששוחררו לפני הרבעון השני של 2021. בדגמי מעבדים חדשים יותר, כגון AMD Zen3 ו-Intel Alder Lake, כמו גם מעבדי ARM, הבעיה חסומה על ידי מנגנוני הגנה קיימים. לדוגמה, השימוש בהוראות IBRS (Indirect Branch Restricted Speculation) מסייע בהגנה מפני התקפה.

הכין ערכת שינויים עבור ליבת לינוקס וה-Hypervisor של Xen, אשר חוסמים את הבעיה באופן פרוגרמטי במעבדים ישנים יותר. תיקון ליבת לינוקס המוצע משנה 68 קבצים, מוסיף 1783 שורות ומסיר 387 שורות.

למרבה הצער, ההגנה כרוכה בעלויות תקורה משמעותיות: בטקסטים שנעשו על מעבדי AMD ואינטל, ירידה בביצועים מוערכת בין 14% ל-39%. עדיף להשתמש בהגנה המבוססת על הוראות IBRS, הזמינה בדורות החדשים של מעבדי אינטל ונתמכת מאז ליבת לינוקס 4.19.

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


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

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

*

*

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