Spectre ו-Meltdown במערכות משובצות

4 פברואר, 2018

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

Embedded System

מאת: טים סקאט, ארכיטקט פתרונות ב-Wind River

חשיפת חולשות האבטחה Spectre ו-Metltdown זיעזעה את עולם הימחשוב הארגוניו המשובץ בחודש שעבר, מכיוון ששתי קבוצות החולשות האלה משפיעות על הארכיטקטורה וההטמעה של המעבדים המובילים. הן מעוררות שאלה מטרידה: "מה לעשות לגבי הבעיות האלה?" חלק גדול מהמידע הראשוני הזמין בנושא מתמקד בעיקר בפתרונות לסביבות מחשוב ענן, סביבות IT ארגוניות ונקודות קצה של לקוחות פרטיים. אך עולם המערכות המשובצות (Embedded Systems) הוא בעל מאפיינים אחרים, ולכן התשובות כאן לשאלה הזו הן שונות.

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

מתקפות "אפיק צדי"

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

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

התמודדות עם Spectre ו-Meltdown

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

צעד ראשון: קביעת הסבירות וההשפעה של הסיכון

ל-Spectre ו-Meltdown נדרשים מספר תנאים מוקדמים כדי להתקיים: 1. המעבד חייב להיות בעל מאפיינים שהם יכולים לנצל. יש לקבוע האם המעבד פגיע לאחד מהם או לשניהם, באמצעות התיעוד וההדרכה של ספק המעבד. 2. המעבד חייב להיות בעל מקור timing מדויק מספיק כדי למדוד את ההשפעות של הפעלה ספקולטיבית. הדבר הוא תלוי מערכת, אבל באופן כללי, אם קיימים רק טיימרים גסים (יחידת הטיימינג הקטנה ביותר היא בסדר גודל של 1,000 מחזורי שעון מעבד, אז ניצול הטיימינג של הפעלה ספקולטיבית הופך קשה עבור התוקף.

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

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

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

בתמונה למעלה: טבלת הערכת סיכונים למתקפות Spectre ו-Meltdown במערכות משובצות

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

צעד שני: בחירה באסטרטגיית הפתרון

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

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

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

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

צעד שלישי: ניטור

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

ניתן להישאר מעודכנים באבולוציה של פתרונות Spectre ו-Meltdown באמצעות אתר התמיכה Knowledge.windriver.com. בסיס נתוני ה-CVE פתוח לציבור בכתובת: http://www.windriver.com/security/cve/main.php

סיכום

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

Share via Whatsapp

פורסם בקטגוריות: אבטחה , אבטחת סייבר , חדשות , מחשבים ומערכות משובצות