באג בלינוקס 6.2 אפשר לעקוף את הגנת התקפת Spectre v2

פגיעות

אם מנוצלים, פגמים אלה יכולים לאפשר לתוקפים לקבל גישה לא מורשית למידע רגיש או לגרום לבעיות בדרך כלל

לאחרונה פורסם מידע על א פגיעות שזוהתה בליבת Linux 6.2 (כבר רשום מתחת CVE-2023-1998) ואשר בולטת כי כן השבת את הגנת התקפת Spectre v2 המאפשרים גישה לזיכרון על ידי תהליכים אחרים הפועלים על שרשורי SMT או Hyper Threading שונים, אך על אותה ליבת מעבד פיזית.

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

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

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

מאז החשיפה של Spectre ו-Meltdown בינואר 2018, הופיעו כמה גרסאות וסוגים חדשים של פגיעות הקשורות אליהם.

ליבת לינוקס מאפשרת לתהליכי Userland לאפשר הפחתות על ידי קריאת prctl עם PR_SET_SPECULATION_CTRL, אשר משביתה את פונקציית המפרט, וכן על ידי שימוש ב-seccomp. מצאנו שבמכונות וירטואליות של לפחות ספק ענן מרכזי אחד, הליבה עדיין השאירה את תהליך הקורבן פתוח לתקיפה במקרים מסוימים, אפילו לאחר שאפשרה הפחתת spectre-BTI עם prctl. 

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

לדברי החוקרים שזיהו את הבעיה, אופטימיזציה שגויה בקרנל 6.2 השאירה מכונות וירטואליות לפחות מספק ענן גדול אחד ללא הגנה מתאימה למרות הכללת מצב חסימת התקפות spectre-BTI באמצעות prctl. הפגיעות מתבטאת גם בשרתים רגילים עם ליבה 6.2, שמתחילים בתצורה "spectre_v2=ibrs".

המהות של הפגיעות היא על ידי בחירת אופני ההגנה IBRS או eIBRS, האופטימיזציות שבוצעו השביתו את השימוש במנגנון STIBP (Single Thread Indirect Branch Predictors), הדרוש כדי לחסום דליפות בעת שימוש בטכנולוגיית Simultaneous Multi-Threading (SMT או Hyper-Threading). )

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

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

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

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


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

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

*

*

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

  1.   דיקי דיג'ו

    אלה עם פרמטר הקרנל mitigations=off:

    יופי רבותי 👌😎🔥