גוגל פרסמה לאחרונה מספר אבות טיפוס של פרצות אבטחה המדגימים את האפשרות לנצל פגיעויות במחלקת Spectre על ידי הרצת קוד JavaScript בדפדפן, מבלי לעבור דרך אמצעי אבטחה שנוספו בעבר.
ניתן להשתמש בניצול פרצות כדי לקבל גישה לזיכרון של תהליך שמעבד תוכן אינטרנט בכרטיסייה הנוכחית. כדי לבדוק את פונקציונליות הניצול, אתר האינטרנט של הדף שהודלף הופעל, והקוד המתאר את הלוגיקה של הפעולה פורסם ב-GitHub.
האב טיפוס המוצע נועד לתקוף מערכות עם מעבדי Intel Core i7-6500U בסביבה עם לינוקס וכרום 88, אם כי אין בכך כדי לשלול את האפשרות לבצע שינויים לשימוש בפריצה בסביבות אחרות.
שיטת הפעולה אינה ספציפית למעבדי אינטל : לאחר התאמה מתאימה, אושר כי הניצול פועל על מערכות עם מעבדים של יצרנים אחרים, כולל Apple M1 המבוסס על ארכיטקטורת ARM. לאחר התאמות קלות, הניצול פועל גם על מערכות הפעלה אחרות ודפדפנים אחרים המבוססים על מנוע Chromium.
בסביבה המבוססת על מעבדי Chrome 88 סטנדרטיים ו- Intel Skylake, השגנו דליפת נתונים מהתהליך האחראי על עיבוד תוכן אינטרנט בכרטיסיית Chrome הנוכחית (תהליך רינדור) במהירות של קילובייט לשנייה. בנוסף, פותחו אבות טיפוס חלופיים, למשל, ניצול המאפשר, במחיר של יציבות מופחתת, להגדיל את קצב הדליפה ל 1kB / s בעת שימוש בטיימר הביצועים. Now () בדיוק של 8 מיקרו שניות (5 אלפיות השנייה). ). כמו כן הוכן גרסה שהופעלה בדיוק טיימר של אלפית שנייה, אשר באמצעותה ניתן לארגן גישה לזיכרון של תהליך אחר בקצב של כ- 0.005 בתים לשנייה.
קוד ההדגמה שפורסם מורכב משלושה חלקים:
- החלק הראשון כיול את הטיימר להערכת זמן הריצה מהפעולות הדרושות לאחזור הנתונים שנותרו במטמון המעבד כתוצאה מהביצוע הספקולטיבי של הוראות המעבד.
- החלק השני מגדיר את פריסת הזיכרון המשמשת בעת הקצאת מערך JavaScript.
- החלק השלישי מנצל ישירות את הפגיעות של ספקטר כדי לקבוע את תוכן הזיכרון של התהליך הנוכחי כתוצאה מיצירת תנאים לביצוע ספקולטיבי של פעולות מסוימות, שתוצאתן מושלכת על ידי המעבד לאחר קביעת תחזית כושלת, אך עקבות הביצוע מסודרים במטמון המשותף וניתן לשחזר באמצעות שיטות לקביעת תוכן המטמון באמצעות ערוצי צד שלישי המנתחים את שינוי זמן הגישה לנתונים במטמון ולא במטמון.
טכניקת הניצול המוצעת מאפשרת לוותר על טיימרים מדויקים הזמינים דרך ממשק ה-API performance.now() וללא תמיכה בסוג SharedArrayBuffer, המאפשר יצירת מערכים בזיכרון משותף.
הניצול כולל את מכשיר ה- Specter, הגורם לביצוע קוד ספקולטיבי מבוקר, ומנתח דליפות של ערוצים צדדיים, הקובע אילו נתונים נשמרו במהלך ביצוע הספקולציות.
הגאדג'ט מיושם באמצעות מערך JavaScript, שבו נעשה ניסיון לגשת לאזור מחוץ לגבולות המאגר , דבר המשפיע על מצב בלוק חיזוי הענף עקב נוכחות בדיקת גודל מאגר שנוספה על ידי המהדר (המעבד מבצע באופן ספקולטיבי גישה מוקדמת, אך משחזר את המצב לאחר הבדיקה).
כדי לנתח את תוכן המטמון בתנאים של דיוק טיימר לא מספיק, הוצעה שיטה שמתעתעת באסטרטגיית פינוי נתוני המטמון Tree-PLRU בה משתמשים במעבדים ומאפשרת, על ידי הגדלת מספר המחזורים, להגדיל משמעותית את זמן ההפרש כאשר הערך מוחזר מהמטמון ובהעדר ערך במטמון.
גוגל פרסמה אב טיפוס של הניצול כדי להדגים את היתכנות התקפות באמצעות פגיעויות מסוג Spectre ולעודד מפתחי אתרים להשתמש בטכניקות שממזערות את הסיכונים של התקפות כאלה.
יחד עם זאת, גוגל מאמינה שללא תיקון משמעותי של אב הטיפוס המוצע, אי אפשר ליצור מעללים אוניברסליים שמוכנים לא רק להפגנה, אלא גם לשימוש נרחב.
מקור: https://security.googleblog.com