מוקדם יותר אנחנו על פגיעות של יום אפס שהתגלתה ב-Internet Explorer, המאפשרת שימוש בקובץ MHT שהוכן במיוחד כדי להוריד מידע מהמחשב של המשתמש לשרת מרוחק. לאחרונה, פגיעות זו, שהתגלתה על ידי מומחה האבטחה ג'ון פייג', החליטה לבדוק וללמוד עוד מומחה ידוע בתחום זה - מיטיה קולסק, מנהלת ACROS Security, חברת ביקורת אבטחה, ומייסדת שותפה של שירות המיקרופאץ' 0patch. הוא כרוניקה מלאה של חקירתה, המצביעה על כך שמיקרוסופט לא העריכה משמעותית את חומרת הבעיה.

באופן מוזר, קולסק לא הצליח בתחילה לשחזר את המתקפה שתוארה והדגימה על ידי ג'ון, שם השתמש ב-Internet Explorer הפועל על Windows 7 כדי להוריד ולאחר מכן לפתוח קובץ MHT זדוני. אמנם מנהל התהליך שלו הראה ש-system.ini, שתוכנן להיגנב מעצמו, נקרא על ידי סקריפט שהוסתר בקובץ MHT, אך לא נשלח לשרת המרוחק.
"זה נראה כמו סיטואציה קלאסית של רשת", כותב קולסק. "כאשר קובץ מתקבל מהאינטרנט, יישומי Windows הפועלים כהלכה כגון דפדפני אינטרנט ולקוחות דוא"ל מוסיפים תווית לקובץ כזה בטופס עם השם Zone.Identifier המכיל את המחרוזת ZoneId = 3. זה מאפשר ליישומים אחרים לדעת שהקובץ הגיע ממקור לא מהימן ולכן יש לפתוח אותו בארגז חול או בסביבה מוגבלת אחרת."
החוקר אימת ש-IE אכן הגדיר תווית כזו עבור קובץ ה-MHT שהורד. Kolsek ניסה לאחר מכן להוריד את אותו קובץ באמצעות Edge ולפתוח אותו ב-IE, שנותרה יישום ברירת המחדל עבור קבצי MHT. באופן בלתי צפוי, הניצול עבד.

ראשית, החוקר בדק "mark-of-the-Web", התברר ש-Edge מאחסן גם את מקור מקור הקובץ בזרם נתונים חלופי בנוסף למזהה האבטחה, מה שעשוי לעורר כמה שאלות בנוגע לפרטיות של זה שיטה. קולסק שיער שהקווים הנוספים עלולים לבלבל את IE ומנעו ממנו לקרוא את ה-SID, אבל כפי שמתברר, הבעיה הייתה במקום אחר. לאחר ניתוח ממושך, מצא מומחה האבטחה את הסיבה בשני ערכים ברשימת בקרת הגישה שהוסיפו את הזכות לקרוא את קובץ ה-MHT לשירות מערכת מסוים, שאדג' הוסיפה לשם לאחר טעינתו.

ג'יימס פורשו מצוות הפגיעות הייעודי של יום אפס - Google Project Zero - צייץ כי הערכים שנוספו על ידי Edge מתייחסים למזהי אבטחה קבוצתיים עבור החבילה Microsoft.MicrosoftEdge_8wekyb3d8bbwe. לאחר הסרת השורה השנייה של SID S-1-15-2 - * מרשימת בקרת הגישה של הקובץ הזדוני, הניצול כבר לא עבד. כתוצאה מכך, איכשהו ההרשאה שהוספת Edge אפשרה לקובץ לעקוף את ארגז החול ב-IE. כפי שהציעו קולסק ועמיתיו, Edge משתמש בהרשאות אלה כדי להגן על קבצים שהורדו מפני גישה של תהליכים בעלי אמון נמוך על ידי הפעלת הקובץ בסביבה מבודדת חלקית.

בשלב הבא, החוקר רצה להבין טוב יותר מה גורם לכשל של מערכת האבטחה של IE. ניתוח מעמיק באמצעות כלי השירות Process Monitor ו-IDA disassembler גילה בסופו של דבר שהרזולוציה המוגדרת של Edge מנעה מפונקציית Win Api GetZoneFromAlternateDataStreamEx לקרוא את זרם הקובץ Zone.Identifier והחזירה שגיאה. עבור Internet Explorer, שגיאה כזו בעת בקשת תווית אבטחה של קובץ הייתה בלתי צפויה לחלוטין, וככל הנראה, הדפדפן סבר שהשגיאה שוות ערך לעובדה שלקובץ אין סימן "סימן-אוף-האינטרנט", מה שהופך אותו לאמין באופן אוטומטי, אחרי מדוע איפשר IE לסקריפט החבוי בקובץ MHT לבצע ולשלוח את קובץ היעד המקומי לשרת המרוחק.

"אתה רואה את האירוניה כאן?" שואל קולסק. "תכונת אבטחה לא מתועדת שבה השתמש Edge ניטרלה תכונה קיימת, ללא ספק הרבה יותר חשובה (סימן-אוף-ה-Web) ב-Internet Explorer."
למרות המשמעות המוגברת של הפגיעות, המאפשרת להפעיל סקריפט זדוני כסקריפט מהימן, אין שום אינדיקציה לכך שמיקרוסופט מתכוונת לתקן את הבאג בזמן הקרוב, אם אי פעם יתוקן. לכן, אנו עדיין ממליצים, כמו במאמר הקודם, לשנות את תוכנית ברירת המחדל לפתיחת קבצי MHT לכל דפדפן מודרני.
כמובן, המחקר של קולסק לא הלך בלי קצת יחסי ציבור עצמיים. בסוף המאמר הוא הדגים תיקון קטן שנכתב בשפת assembly שיכול להשתמש בשירות 0patch שפותח על ידי החברה שלו. 0patch מזהה אוטומטית תוכנות פגיעות במחשב של המשתמש ומחיל עליה תיקונים קטנים ממש תוך כדי תנועה. לדוגמה, במקרה שתיארנו, 0patch יחליף את הודעת השגיאה בפונקציה GetZoneFromAlternateDataStreamEx בערך המתאים לקובץ לא מהימן שהתקבל מהרשת, כך ש-IE לא יאפשר ביצוע של סקריפטים מוסתרים בהתאם ל- במדיניות הביטחון.
מקור: 3dnews.ru
