Spook.js, טכניקה חדשה לניצול פגיעות ספקטר ב- Chrome

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

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

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

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

Spook.js ישים לכל דפדפן המבוסס על מנוע ה- Chromium, כולל Google Chrome, Microsoft Edge ו- Brave. החוקרים גם סבורים כי ניתן להתאים את השיטה לעבודה עם פיירפוקס, אך מכיוון שמנוע פיירפוקס שונה מאוד מכרום, העבודה על יצירת ניצול כזה נשארת לעתיד.

כדי להגן מפני התקפות הקשורות לביצוע ספקולטיבי של הוראות באמצעות הדפדפן, פילוח שטח כתובות מיושם ב- Chrome: בידוד ארגז חול מאפשר ל- JavaScript לעבוד רק עם מצביעים של 32 סיביות ומשתף את זיכרון הבקר בערימות של 4GB שאינן חופפות.

כדי לארגן את הגישה לכל מרחב הכתובת של התהליך ולמנוע את המגבלה של 32 סיביות, השתמשו החוקרים בטכניקת בלבול סוגים, המאפשרת למנוע ה- JavaScript לעבד אובייקט בעל הסוג הלא נכון, מה שמאפשר ליצור 64 סיביות. קוד המבוסס על שילוב של שני ערכים של 32 סיביות.

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

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

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

כדי לנתח את תוכן המטמון בתנאים של דיוק לא מספיק של הטיימר הזמין ב- JavaScript, נעשה שימוש בשיטה המוצעת על ידי Google שמטרימה את אסטרטגיית פינוי הנתונים של מטמון Tree-PLRU המשמשת במעבדים ומאפשרת, על ידי הגדלת מחזורי המספרים, להגדיל באופן משמעותי את הפרש הזמן בנוכחות והיעדר ערך במטמון.

חוקרים פרסמו ניצול אב טיפוס שעובד ב- Chrome 89 en מערכות עם Intel i7-6700K ו- i7-7600U. הניצול נוצר באמצעות אבות טיפוס של קוד JavaScript שפורסם בעבר על ידי Google לביצוע התקפות ספקטר.

לבסוף החוקרים מציינים זאת הצליח להכין מעללי עבודה למערכות המבוססות על מעבדי Intel ו- Apple M1, הניתנים לאפשרות לארגן את קריאת הזיכרון במהירות של 500 בתים לשנייה ודיוק של 96%. השיטה אמורה להיות ישימה למעבדי AMD, אך לא ניתן היה להכין ניצול פונקציונאלי לחלוטין.

מקור: https://www.spookjs.com


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

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

*

*

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