Ранее мы
Как ни странно, вначале Колсек не смог воспроизвести описанную и продемонстрированную Джоном атаку, когда он использовал 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