שתיים מהפגיעות המפורסמות ביותר בשנות ה-2010 היו קשורות מאוד זו לזו. במקום להיות פרצות אבטחה בתוכנה, ספקטר ומלטדאון הן פגיעויות בתכנון הבסיסי של מעבדים המקשים על פתרון הבעיה. הבעיות עצמן חמורות במיוחד, ומאפשרות חשיפת זיכרון מיישומים אחרים וממערכת ההפעלה.
סקירה כללית
מעבדים משתמשים בעיצובים מתקדמים להפליא כדי להשיג את הביצועים הגבוהים ביותר, כולל טכניקות כולל ביצוע ספקולטיבי וחיזוי ענפים. ביצוע ספקולטיבי הוא המקום שבו ה-CPU מתחיל להריץ תהליך לפני שהוא יודע אם הוא צריך, בניסיון לחסוך זמן כאשר הוא קובע שהוא צריך. חיזוי ענף הוא תת-קבוצה של ביצוע ספקולטיבי המנסה לחזות את התוצאה של תהליך ולאחר מכן מתחיל לחשב את השלב הבא בהתבסס על אותו ערך חזוי המאפשר למעבד לבצע סדרה של הוראות מתוך להזמין.
הפגיעות של Spectre נובעת מהטמעת שתי התכונות הללו. זה מאפשר לאפליקציה לפרוץ את טכניקות בידוד הזיכרון המובנות ברוב התוכנות המודרניות המאפשרות את חשיפת הזיכרון, כולל סודות כמו סיסמאות ומפתחות הצפנה. אחת הבעיות עם Spectre, היא שניתן לגשת לנתונים מיישומים שאין להם פרצות אבטחה מכיוון שנדרשת רק תוכנית זדונית.
הפגיעות של Meltdown מבוססת על כמה טכניקות זיכרון, כמו גם על מערכת הביצוע הספקולטיבית שהוזכרה לעיל. הוא מנצל "תנאי מירוץ" בין ביצוע התהליך לבדיקת ההרשאות ומאפשר לתוכנית זדונית לגשת לזיכרון של יישומים אחרים ולמערכת ההפעלה.
טיפ: "תנאי מירוץ" הוא בעיה שבה משימה אחת אמורה להסתמך על אחרת, אך צו הביצוע הנכון אינו נאכף. זה יכול לגרום לכך שהתהליך "השני" יפעל ראשון וישתמש בזיכרון לא מאותחל שהיה צריך להכיל את התוצאה של התהליך "הראשון", ומדליף את התוכן הקודם של אותו זיכרון. במקרה הספציפי הזה, התהליך לא אמור לפעול עד שבדיקת הרשאות אימתה שהוא מותר, אבל בדיקת ההרשאה יכולה להתרחש שנית עקב אופטימיזציות של ביצועים.
אפקטים
באמצע 2017 מספר צוותים גילו באופן עצמאי ודיווחו על Meltdown ו-Spectre באופן פרטי ליצרני CPU שפיתחו תיקונים. בשל התיקונים המכוונים למיטובי ביצועים, הם בסופו של דבר הפחיתו את ביצועי המעבדים ב-עד 30% בתרחישים הגרועים ביותר, כאשר ירידה של 2-14% בביצועים מייצגת יותר את האנשים חוויות.
הפגיעויות השפיעו על מעבדי x86 רבים, מעבדי IBM POWER וכמה מעבדים מבוססי ARM. התמוטטות משפיעה על החומרה שנמצאת בדרך כלל במחשבים אישיים כמו גם בשרתי ענן. ספקטר משפיע על מחשבים אישיים, שרתי ענן ומכשירים ניידים. כל המעבדים של אינטל משנת 1995 עד אמצע 2018 היו פגיעים לבעיות (למעט קווי Itanium ו-Atom לפני 2013). מעבדי AMD לא הושפעו ממלטדאון אך היו פגיעים ל-Spectre.
תיקון תוכנה להפחתת תוכנה פותחו ושוחררו באמצעות ספקי מערכות הפעלה שפותרים את רוב הבעיות. מאז אמצע 2018 אינטל עדכנה את עיצוב ה-CPU שלה כך שיכלול הפחתות חומרה לבעיות.
ניתן לנצל את שתי הבעיות באמצעות דפי אינטרנט זדוניים עם JavaScript מעוצב, אז זה ממש חשוב ודא שתיקוני האבטחה מותקנים בכל מערכת, גם אם אובדן הביצועים יהיה חָמוּר. למרבה הצער, לא ניתן לתקן את הבעיות עם תיקון אחד, מכיוון שהן בעיות מורכבות ביותר עם עומק אינטגרציה בחומרה, תיקוני אבטחה ימשיכו להתגלגל לאורך זמן כמו גרסאות חדשות יותר גילה.