פגיעויות מעבד היו כל כך נלהבות לאחרונה, כאשר Zenbleed ו-Downfall הם שניים מהזמן האחרון. אבל כמה אתה צריך להיות מודאג?
פגיעויות מעבד נכנסות ויוצאות מהחדשות בשנים האחרונות, ולעתים קרובות הן מגיעות עם מסר די מפחיד כשזה מגיע לחשיפתן. במקרה של זנבליד ו נְפִילָה, זה היה שכל יישום במחשב שלך יכול לגשת לזיכרון של כל תוכנית אחרת הפועלת בנסיבות הנכונות. נשמע אינטנסיבי, נכון?
עם זאת, זה לא ממש גרוע כמו שזה נראה. ברור שזה מספיק משמעותי כדי להצדיק חשיפה ועדכון תוכנה כדי לתקן את השגיאות, אפילו במחיר הביצועים, אבל מה בדיוק קורה שגורם לבעיות האבטחה הללו? האם אתה צריך להיות מודאג?
האם אתה צריך לדאוג מפגיעות מעבד כמו Zenbleed, Downfall ו-Inception?
למען האמת, אף אחד מהמעללים האלה לא משפיע על הרוב המכריע של האנשים. בעוד שהם יכולים להדליף נתונים מתוכנית אחת לאחרת, לכל פיסת תוכנה זדונית במחשב של צרכן יש כבר רמת גישה מצוינת שהיא יכולה לנצל לרעה. במקום זאת, התקפות אלו מדאיגות במיוחד הוא בהקשרי מחשוב ענן.
כדי להבין את הבעיה, אתה צריך להבין ששרתי ענן רבים ושונים הם פשוט מחשבים עם הרבה כוחות סוס, רוחב פס גדול של רשת, וכמה חומרה מיוחדת אחרת אם נדרש. חברות רבות משכירות מה שנקרא VPS, או שרת פרטי וירטואלי, שהן מכונות וירטואליות בעלות עוצמה מוגבלת שאליהן עשויות לרוץ עשרות מכונות וירטואליות אחרות.
כאשר זו יכולה להיות בעיה היא שאדם אחד במכונה וירטואלית אחת יכול לבצע אחד מאלה נקודות תורפה, השגת תובנה לגבי הנתונים הזורמים דרך המעבד, כולל נתונים מאחרים מכונות וירטואליות. זה לא אמור להיות אפשרי וזה הפרה חמורה של האבטחה. זו הסיבה שכאשר Zenbleed נחשף, כבר היו תיקונים למעבדי Epyc של AMD, שמכוונים לשימוש בשרת.
פגיעויות מעבד החמורות ביותר כרגע
תקן התעשייה של "דירוג" פגיעויות וחומרתן הוא באמצעות Common Vulnerability Scoring System (CVSS). הוא מספק מדד כמותי לחומרה, שכן ההיבטים השונים של הפגיעות ישפיעו על הציון. הוא מודד על ידי התחשבות בדברים הבאים:
- וקטור התקפה: רשת/צמוד/מקומי/פיזי
- מורכבות ההתקפה: נמוך גבוה
- נדרשות הרשאות: אין/נמוך/גבוה
- אינטראקציה עם המשתמש: אין/חובה
- תְחוּם: ללא שינוי/שונה
- סודיות: אין/נמוך/גבוה
- יושרה: אין/נמוך/גבוה
- זמינות: אין/נמוך/גבוה
כל אלה מסווגים את חומרת הבאג. לדוגמה, פגיעות שניתן לבצע על גבי רשת עם מורכבות נמוכה, ללא צורך בהרשאות, ללא אינטראקציה עם משתמש, עם שינוי בהיקף, דליפה גבוהה של סודיות נתונים, הפרת שלמות נתונים גבוהה והשפעה גבוהה על זמינות יזכו לציון 10 מושלם ב-CVSS 3.1, הציון הגבוה ביותר אפשרי.
לפי המדד הזה, אנחנו יכולים להעריך את הנזק ש-Zenbleed ו-Downfall מסוגלים להם. ספוילר: הם זהים, למרות שהם משפיעים על מעבדים שונים. לכן, בזמן שהם מציינים סכום מסוים ב בהקשר של פגיעויות, הן יכולות להשפיע על כמויות שונות של מוצרים, וזה לא ישפיע עליהן ציון. ציוני CVSS הם בעצם רק עבור טריאז' אבל לא מספרים את הסיפור המלא.
Zenbleed: 6.5 (בינוני)
- וקטור התקפה: מקומי
- מורכבות ההתקפה: נמוך
- נדרשות הרשאות: נמוך
- אינטראקציה עם המשתמש: אף אחד
- תְחוּם: השתנה
- סודיות: גבוה
- יושרה: אף אחד
- זמינות: אף אחד
הֶסבֵּר: וקטור התקיפה דורש גישה מקומית למכונה (כמו, הוא פועל על המכונה) תוך שהוא גם לא משפיע על שלמות הנתונים במכונה או על זמינותם. עם זאת, הוא משנה היקף (כלומר הוא משפיע על משאבים מעבר להרשאות שלו) ואת מורכבות ההתקפה, וההרשאות הנדרשות לביצוע נמוכות. זה גם מפר לחלוטין את סודיות המידע על המכונה.
נפילה: 6.5 (בינוני)
- וקטור התקפה: מקומי
- מורכבות ההתקפה: נמוך
- נדרשות הרשאות: נמוך
- אינטראקציה עם המשתמש: אף אחד
- תְחוּם: השתנה
- סודיות: גבוה
- יושרה: אף אחד
- זמינות: אף אחד
הֶסבֵּר: וקטור התקיפה דורש גישה מקומית למכונה (כמו, הוא פועל על המכונה) תוך שהוא גם לא משפיע על שלמות הנתונים במכונה או על זמינותם. עם זאת, הוא משנה היקף (כלומר הוא משפיע על משאבים מעבר להרשאות שלו) ואת מורכבות ההתקפה, וההרשאות הנדרשות לביצוע נמוכות. זה גם מפר לחלוטין את סודיות המידע על המכונה.
התחלה: 5.6 (בינוני)
- וקטור התקפה: מקומי
- מורכבות ההתקפה: גבוה
- נדרשות הרשאות: נמוך
- אינטראקציה עם המשתמש: אף אחד
- תְחוּם: השתנה
- סודיות: גבוה
- יושרה: אף אחד
- זמינות: אף אחד
הֶסבֵּר: וקטור התקיפה דורש גישה מקומית למכונה (כמו, הוא פועל על המכונה) תוך שהוא גם לא משפיע על שלמות הנתונים במכונה או על זמינותם. עם זאת, הוא משנה היקף (כלומר הוא משפיע על משאבים מעבר להרשאות שלו), מורכבות ההתקפה גבוהה וההרשאות הנדרשות לביצוע נמוכות. זה גם מפר לחלוטין את סודיות המידע על המכונה.
ספקטר: 5.6 (בינוני) (מעודן)
ספקטר, למרות היותו תופעה נפוצה יותר, למעשה קולע פָּחוֹת מאשר Zenbleed ו-Downfall. זאת הודות לעובדה שמורכבות ההתקפה כונתה "גבוהה", מה שהפיל את הניקוד שלה.
- וקטור התקפה: מקומי
- מורכבות ההתקפה: גבוה
- נדרשות הרשאות: נמוך
- אינטראקציה עם המשתמש: אף אחד
- תְחוּם: השתנה
- סודיות: גבוה
- יושרה: אף אחד
- זמינות: אף אחד
הֶסבֵּר: וקטור התקיפה דורש גישה מקומית למכונה (כמו, הוא פועל על המכונה) תוך שהוא גם לא משפיע על שלמות הנתונים במכונה או על זמינותם. עם זאת, הוא משנה היקף (כלומר הוא משפיע על משאבים מעבר להרשאות שלו), מורכבות ההתקפה גבוהה וההרשאות הנדרשות לביצוע נמוכות. זה גם מפר לחלוטין את סודיות המידע על המכונה.
התמוטטות: 5.6 (בינוני) (תיקון)
כמו Spectre, Meltdown מקבל ציונים נמוכים יותר מ-Zenbleed ו-Downfall, בגלל מורכבות ההתקפה הגדולה יותר הנדרשת.
- וקטור התקפה: מקומי
- מורכבות ההתקפה: גבוה
- נדרשות הרשאות: נמוך
- אינטראקציה עם המשתמש: אף אחד
- תְחוּם: השתנה
- סודיות: גבוה
- יושרה: אף אחד
- זמינות: אף אחד
הֶסבֵּר: וקטור התקיפה דורש גישה מקומית למכונה (כמו, הוא פועל על המכונה) תוך שהוא גם לא משפיע על שלמות הנתונים במכונה או על זמינותם. עם זאת, הוא משנה היקף (כלומר הוא משפיע על משאבים מעבר להרשאות שלו), מורכבות ההתקפה גבוהה וההרשאות הנדרשות לביצוע נמוכות. זה גם מפר לחלוטין את סודיות המידע על המכונה.
הסיבה הגדולה ביותר: חיזוי סניף
מקור: AMD
חיזוי ענפים וביצוע ספקולטיבי מתייחסים באופן כללי למועד שבו המחשב שלך מבצע פעולות שאינן נחוצות כרגע, אך יהיו במחזורים הבאים. זה נעשה לעתים קרובות בזמנים שבהם למערכת שלך יש משאבים פנויים מכיוון שהוא מאיץ את העיבוד הכולל כאשר הוראות או נתונים לא היו עדיין מוכנים עבור ה-CPU. אם העבודה שבוצעה אינה נחוצה, היא בדרך כלל נמחקת, והמעבד יכול לקפוץ לאן שהוא צריך כדי לבצע את ההוראה הנכונה הבאה. כאשר הוא עושה זאת, זה נקרא חיזוי שגוי של ענף.
להבנה מעמיקה יותר של מנבאי ענפים, דמיינו תרחיש שבו תוכנית מוסיפה באופן עקבי את אותם שני מספרים בביצועה. בשלב מסוים, המעבד עשוי לזהות את הדפוס הזה ולהכין את השלבים הבאים אם השיטה שבה שני המספרים האלה מתווספים תיקרא שוב. אם התוצאה הזו תשתנה בשלב מסוים, גם אם המעבד תכנן שאותם שני מספרים יהיו זהים, אז הניחוש ייזרק ויוחלף בזרימת הביצוע בפועל. עם זאת, לזמן שהמספרים האלה הם אותו דבר, אז המעבד יכול לדלג על ההוראות האלה במהירות.
עם זאת, ישנן בעיות רבות בכל הנוגע לביצוע ספקולטיבי, ונקודות תורפה כמו Spectre, Zenbleed, Downfall ועוד הן התוצאה. זוהי תכונה רבת עוצמה שאנו חייבים בה הרבה ביצועי מעבד מודרניים, אך היא יעד מרכזי כאשר חוקרים מחפשים נקודות תורפה במעבדים.
הקלה: מעכב ביצועים
הפגת הפגיעות הללו היא בעלת חשיבות עליונה, אך הבעיה היא שההפחתה הזו מטילה מס על ביצועים. במקרה של Zenbleed העדכני ביותר של AMD, ההפחתה עשויה לראות תקורה מסיבית של ביצועים.
הסיבה לכך היא שהדרך האמיתית היחידה לעקוף את זה היא להשבית או לשנות את ההתנהגות של מנבא הענפים במעבד המושפע. ניתן למצוא את אותו פגיעה בביצועים במגבלות הנפילה של אינטל, עם דוחות מוקדמים המצביעים על השפעות ביצועים של עד 39%. משחקים אפיים שותף פעם מפורסמת גרפי ניצול מעבד לאחר חשיפת פגיעות ה- Meltdown וכמה ההשפעה הייתה להפחתה על השימוש ב-CPU של החברה. הייתה עלייה משמעותית בשימוש במעבד, כפי שניתן היה לצפות. איפה שהדברים מפחידים זה עם התיקון להקמת AMD, נמצא כי הביצועים ירדו עד 54%.
מכיוון שפגיעויות כמו זו משפיעות על תכונות בסיסיות למעבד, קשה באמת לתקן אותן מלבד השבתה או פגיעה חמורה בתכונות הליבה. הוצאה להורג ספקולטיבית חשובה להפליא, וההקלות הללו יורגשו על ידי אנשים רבים. ביצועי המשחקים פחות צפויים, כך שאם השימוש העיקרי של המחשב שלך הוא משחקים, ייתכן שכן בסדר מכיוון שהמחשב שלך לא יכול לעשות כל כך הרבה תחזיות, אבל הבעיות האלה מתרחבות הרבה יותר מערכות.
האם מעבדים עתידיים מושפעים?
למרבה המזל, גם במקרה של Intel Downfall וגם של Zenbleed, ניצולים אלה משפיעים על מעבדים ישנים יותר. מעבדים חדשים יותר משתי החברות בטוחות, ואין מה לדאוג לעת עתה. עיצוב מחדש משמעותי הוא בדרך כלל מה שבסופו של דבר פותר את הבעיות הללו. לדוגמה, ספקטר השפיע על מעבדי הדור השמיני והתשיעי של אינטל, אבל הדור התשיעי שילב גרסת חומרה של תיקוני התוכנה שהוטמעו, שלם עם להיט הביצועים. הדור העשירי של אינטל עדיין היה בטוח, אך גם לא הייתה לו השפעה על הביצועים מאמצעי ההפחתה הללו.
כתוצאה מכך, בהתחשב בכך שגם Downfall וגם Zenbleed תוקנו כבר בגרסאות האחרונות של המעבדים שלהם, למשתמשים אין הרבה מה לדאוג. כמובן, תמיד יכולות להתגלות פגיעויות נוספות, אבל בנקודת זמן זו, אתה בטוח.