Раніше ми
Як не дивно, спочатку Колсек не зміг відтворити описану і продемонстровану Джоном атаку, коли він використовував Internet Explorer, який працює в Windows 7, щоб завантажити, а потім відкрити шкідливий MHT-файл. Хоча його менеджер процесів показав, що system.ini, який планувалося викрасти у себе, був прочитаний захованим в MHT-файлі скриптом, але не був відправлений на віддалений сервер.
"Це виглядало як класична ситуація роботи так званої "мітки для файлу, отриманого з мережі (англ. mark-of-the-Web)", - пише Колсек. «Коли файл отримано з Інтернету, які працюють Windows, такі як веб-браузери та поштові клієнти, додають мітку до такого файлу у формі
Дослідник переконався, що IE дійсно поставив таку мітку для завантаженого MHT-файлу. Потім Колсек спробував завантажити цей файл за допомогою Edge і відкрити його в IE, який залишається додатком за замовчуванням для файлів MHT. Несподівано експлойт спрацював.
Спочатку дослідник перевірив "mark-of-the-Web", виявилося, що Edge зберігає в альтернативному потоці даних крім ідентифікатора безпеки ще й джерело походження файлу, що може викликати деякі питання стосовно приватності такого методу. Колсек висловив припущення, що додаткові рядки могли заплутати IE і не дати йому прочитати ідентифікатор безпеки, але, як виявилося, проблема була зовсім в іншому місці. Після тривалого аналізу фахівець з безпеки знайшов причину у двох записах у списку контролю доступу, які додають системній службі право на читання MHT-файлу, які вніс туди Edge після його завантаження.
Джеймс Форешоу (James Foreshaw) зі спеціальної команди з пошуку вразливостей нульового дня - Google Project Zero -
Далі дослідник захотів краще зрозуміти, що викликає збій системи безпеки IE. Поглиблений аналіз з використанням утиліти Process Monitor та дизасемблера IDA в кінцевому підсумку показав, що встановлений Edge дозвіл не дозволив функції Win Api GetZoneFromAlternateDataStreamEx прочитати потік файлу Zone.Identifier та повернув помилку. Для Internet Explorer така помилка при запиті мітки безпеки файлу виявилася абсолютно несподіваною, і, мабуть, браузер вважав, що помилка рівнозначна тому, що файл не має мітки "mark-of-the-Web", що автоматично робить його довіреним, після чого IE дозволив захованому в MHT-файлі скрипту виконання та відправлення цільового локального файлу на віддалений сервер.
«Ви бачите тут іронію?» - Запитує Колсек. «Незадокументована функція безпеки, яка використовується Edge, нейтралізувала існуючу, безперечно, набагато важливішу функцію (mark-of-the-Web) в Internet Explorer».
Незважаючи на значущість вразливості, яка дозволяє запускати шкідливий скрипт як довірений, немає жодних ознак того, що Microsoft має намір виправити помилку найближчим часом, якщо вона взагалі буде коли-небудь виправлена. Тому ми все ще рекомендуємо вам, як і в минулій статті, змінити програму за промовчанням для відкриття MHT-файлів на будь-який сучасний браузер.
Звичайно, дослідження Колсек не залишилося і без невеликого самопіару. Наприкінці статті він продемонстрував невеликий написаний на асемблері патч, який може використовувати сервіс 0patch, який його компанія розробляє. 0patch автоматично виявляє вразливе програмне забезпечення на комп'ютері користувача і застосовує до нього невеликі виправлення буквально на льоту. Наприклад, в описаному нами випадку 0patch замінить повідомлення про помилку у функції GetZoneFromAlternateDataStreamEx на значення, що відповідає недовіреному файлу, отриманому з мережі, завдяки чому IE не дозволить виконати будь-які сховані скрипти відповідно до вбудованої політики безпеки.
Джерело: 3dnews.ru