Введение

Уязвимость Windows Metafile, также известная как Metafile Image Code Execution и сокращенно MICE, — это уязвимость в системе безопасности, связанная с тем, как некоторые версии операционной системы Microsoft Windows обрабатывают изображения в формате Windows Metafile. Она позволяет выполнять произвольный код на уязвимых компьютерах без ведома или разрешения пользователей. Уязвимость была обнаружена 27 декабря 2005 года, и первые сообщения о затронутых компьютерах появились в течение 24 часов. Microsoft выпустила критически важное обновление для устранения этой уязвимости через Windows Update 5 января 2006 года. Атаки, использующие эту уязвимость, известны как эксплойты WMF. Уязвимость была обнаружена в файле gdi32.dll и присутствовала во всех версиях Microsoft Windows от Windows 3.0 до Windows Server 2003 R2. Однако векторы атак существуют только в версиях Windows, основанных на NT (Windows NT, Windows 2000, Windows XP и Windows Server 2003). Эксплойты, использующие эту уязвимость в системах на базе Windows NT, способствовали распространению различных типов вредоносного ПО, как правило, через загрузки с веб-сайтов. Ввиду серьезности последствий, эта уязвимость получила премию Pwnie Award 2007 года в категориях "Массовое заражение" и "Обрушение Интернета".

Затронутые системы

Все версии операционной системы Microsoft Windows поддерживают графический стандарт Windows Metafile. Все версии, начиная с Windows 3.0 и заканчивая Windows Server 2003 R2, содержат эту уязвимость в системе безопасности. Однако Windows NT 4.0 и Windows XP, если не установлены обновления, более уязвимы, чем предыдущие версии, поскольку их установка по умолчанию включает возможность выполнения кода Windows Metafile, являющегося источником уязвимости. Операционные системы Windows, в которых отключен предварительный просмотр изображений или для которых активирована аппаратная защита от выполнения данных (DEP) для всех приложений, не должны быть подвержены данной эксплуатации. Операционные системы, отличные от Windows (например, macOS, Unix, Linux и т.д.), не затронуты напрямую. Однако система, работающая не под управлением Windows, может стать уязвимой, если на ней запущено программное обеспечение для просмотра файлов Windows WMF. Это может включать программное обеспечение, которое интегрирует или клонирует собственный графический интерфейс устройства (GDI) Windows, динамическую библиотеку (DLL), или запускает программы Windows или для Windows через эмулятор или слой совместимости. Например, Unix-подобная система, использующая Wine для эмуляции Windows, может быть скомпрометирована. Гибсон разработал программу MouseTrap, которую его компания распространяет бесплатно, для обнаружения уязвимости Windows Metafile в системах, работающих под управлением Windows и эмуляторов Windows.

Распространение и заражение

Компьютеры могут быть заражены через распространение инфицированных электронных писем, содержащих взломанный файл WMF в качестве вложения. Заражение также может произойти в результате:
Просмотра веб-сайта в веб-браузере, который автоматически открывает файлы WMF, в этом случае любой потенциально вредоносный код может быть автоматически загружен и запущен. Internet Explorer, браузер по умолчанию для всех версий Microsoft Windows с 1996 года по Windows 10, делает это. Просмотра инфицированного файла в проводнике Windows (Windows Explorer). Просмотра инфицированного файла изображения с использованием уязвимых программ просмотра изображений. Просмотра или открытия инфицированных электронных писем в устаревших версиях Microsoft Outlook и Outlook Express. Индексирования жесткого диска, содержащего инфицированный файл, с помощью Google Desktop. Перехода по ссылке через программу мгновенных сообщений, такую как Windows Live Messenger, AOL Instant Messenger (AIM) или Yahoo! Messenger. Для распространения заражения могут использоваться и другие методы. Поскольку проблема кроется в операционной системе, использование браузеров, отличных от Microsoft, таких как Firefox или Opera, не обеспечивает полной защиты. Пользователям обычно предлагается загрузить и просмотреть вредоносный файл, что приводит к заражению компьютера. Инфицированные файлы могут загружаться автоматически, что создает возможность заражения при индексировании диска или случайном предварительном просмотре. По оценкам антивирусной компании McAfee, эта уязвимость использовалась для распространения бэкдора Bifrost. Другие виды вредоносного ПО также использовали эту уязвимость для доставки различных вредоносных нагрузок. McAfee утверждает, что к 31 декабря 2005 года первое поколение таких эксплойтов было обнаружено более чем у 6% их клиентской базы.

Официальный пластырь

Microsoft выпустила официальный патч для устранения проблемы 5 января 2006 года. Этот патч может быть применен вместо других корректирующих мер. Официальный патч доступен для Windows 2000, Windows XP и Microsoft Windows Server 2003. Windows NT 4 и другие устаревшие операционные системы не получили патч, так как к тому времени Microsoft прекратила их поддержку. Стив Гибсон в своем подкасте Security Now! № 20 заявил, что его компания Gibson Research Corporation предоставит патч для систем Windows 9x, если Microsoft этого не сделает. После дальнейших исследований Стив Гибсон сообщил в более позднем подкасте Security Now! № 23, что Windows 9x и ME не подвержены уязвимости и не требуют установки патча. Пользователи Windows 9x/ME могут запустить его утилиту Mouse Trap, чтобы убедиться в этом самостоятельно. Паоло Монти из Future Time, итальянского дистрибьютора антивирусной системы Eset NOD32, предоставил бесплатный патч для Windows NT. Патч работает на более старых операционных системах, но предоставляется без гарантий. Сообщалось, что официальный патч устанавливается автоматически, даже если в Windows Automatic Update настроено требование подтверждения перед установкой автоматически загруженных обновлений. Это приводит к автоматической перезагрузке, которая может вызвать потерю данных, если у пользователя открыта программа с несохраненными изменениями.

Другие корректирующие меры

Эти меры представляют исторический интерес только для систем, обновленных 5 января 2006 года или позднее.

Обход

В качестве временного решения до выхода исправления, 28 декабря 2005 года Microsoft рекомендовала пользователям Windows отменить регистрацию файла динамической библиотеки shimgvw.dll (что можно сделать, выполнив команду regsvr32.exe /u shimgvw.dll из меню "Выполнить" или командной строки), который отвечает за предварительный просмотр файлов изображений и используется в большинстве этих атак. После установки исправления DLL можно повторно зарегистрировать, запустив regsvr32.exe shimgvw.dll. Это решение блокирует распространенный вектор атаки, но не устраняет уязвимость.

Третьей стороной пластырь

31 декабря 2005 года Ильфак Гильфанов выпустил сторонний патч для временного отключения уязвимого вызова функции в gdi32.dll. Этот неофициальный патч получил широкую известность из-за отсутствия официального решения от Microsoft, получив рекомендации SANS Institute Internet Storm Center и F Secure. Из-за большого внимания, включая косвенное упоминание на Slashdot, сайт Гильфанова столкнулся с перегрузкой и был приостановлен 3 января 2006 года; однако патч оставался доступным для загрузки с нескольких зеркал, включая сайт Internet Storm Center. 4 января сайт Гильфанова возобновил работу в урезанном виде. Прекратив размещать патч непосредственно на сайте из-за проблем с пропускной способностью, главная страница содержала список зеркал, где пользователи могли загрузить патч и соответствующую утилиту для проверки уязвимости, а также MD5-контрольную сумму файла для проверки его подлинности. После выпуска патча от Microsoft, Гильфанов отозвал свой.

Методы снижения риска

Microsoft заявляет, что его патч устраняет некорректную функциональность в GDI32, которая допускала уязвимость WMF. Для компьютеров с незащищенной версией Windows рекомендовался многоуровневый подход к защите, чтобы снизить риск заражения. Различные источники рекомендуют меры по смягчению последствий, включающие:
Использование аппаратного обеспечения для предотвращения выполнения данных, эффективно для всех приложений. Установите приложение по умолчанию для открытия WMF таким образом, чтобы оно не было уязвимо для заражения, например, Блокнот. Не используйте Internet Explorer или, по крайней мере, отключите загрузки, установив максимальные настройки безопасности по умолчанию. Поддерживайте актуальность всего антивирусного программного обеспечения. Рассмотрите возможность частых ручных обновлений. Блокируйте все файлы WMF на периметре сети с помощью фильтрации заголовков файлов. Используйте учетные записи пользователей, настроенные только с необходимыми правами. Отключите загрузку изображений в Internet Explorer и всех других браузерах. Отключите загрузку изображений в Outlook Express. Отключите гиперссылки в MSN Messenger. Отключите службу индексирования в Windows 2000, Windows XP и Windows Server 2003. Отключите приложения Desktop Search, такие как Google Desktop или Windows Desktop Search, до устранения проблемы. Согласно статье SANS Institute Internet Storm Center, использование веб-браузера, отличного от Internet Explorer, может обеспечить дополнительную защиту от этой уязвимости. В зависимости от настроек, эти браузеры могут запрашивать подтверждение пользователя перед открытием изображения с расширением wmf, но это лишь снижает вероятность открытия вредоносного метафайла Windows и не защищает от эксплуатации уязвимости, поскольку эти браузеры все равно открывают метафайл, если он замаскирован под другой формат. Лучше полностью отключить загрузку изображений в любом используемом браузере.

Обвинения

В 2006 году Стив Гибсон предположил, что необычный характер "ошибки" указывал на то, что уязвимость на самом деле является преднамеренно встроенной лазейкой в систему. Это обвинение переросло в утверждение и распространилось по интернету как слух после того, как технологический новостной сайт Slashdot осветил спекуляции Гибсона. А Томас Грин, в статье для The Register, объяснил ошибку Гибсона "нехваткой опыта в сфере безопасности" и назвал его "дилетантским экспертом".