19.09.2006

Безопасность Microsoft Office. Часть первая

image

В этой статье речь пойдет о Microsoft Office OLE Structured Storage и природе недавних программ-дропперов и прочих эксплоитов, а также будет сделана попытка исследовать недавние MS Office эксплоиты.

Khushbu Jithra, перевод SecurityLab.ru

Большое количество обнаруженных в последнее время уязвимостей в MS Office сделало необходимым понимание механизмов архитектуры его безопасности и потенциальных уязвимостей. В этой статье речь пойдет о Microsoft Office OLE Structured Storage и природе недавних программ-дропперов и прочих эксплоитов, а также будет сделана попытка исследовать недавние MS Office эксплоиты.

1. Анализ недавних уязвимостей Microsoft Office

Уязвимости в MS Office привели к подозрительному отношению к документам, полученным по email, или скачанных с Web сайтов. Некоторые опубликованные уязвимости позволяют произвести повреждение памяти или вызвать переполнение буфера, а остальные – повышение привилегий. В результате все уязвимости ведут к компрометации уязвимой системы. На следующей диаграмме показано приблизительное количество уязвимостей в различных продуктах MS Office и их тип.


Диаграмма 1. Уязвимости в MS Office.

В столбце «Удаленное выполнение кода» находятся уязвимости различных уровней опасности, но именно эти уязвимости составляют наибольший риск для систем. Отказ в обслуживании и повреждение памяти представляют среднюю и высокую опасность.

На диаграмме 2 изображено выполнение произвольного кода в различных приложениях MS Office.


Диаграмма 2. Уязвимости в различных продуктах MS Office

На диаграмме каждый столбец отображает уязвимости в индивидуальном приложении. В столбце MS Office отображены уязвимости, которые присутствуют во всех приложениях продукта.

2. Структурированное хранилище OLE

Одна из самых первых уязвимостей в этом году в Microsoft Word эксплуатировалась с помощью программы-дроппера, заключенного в структуру файла MS Word. Некоторые уязвимости при обработке изображений и медиа объектов стребуют понимание структурированного хранилища OLE и структуры файла MS Office.

В данной статье структурированное хранилище OLE определено как систематическая организация компонентов в любом документе MS Office. Каждый документ содержит корневой компонент, который включает в себя компоненты хранилища и потоков. Структурированное хранилище OLE можно ассоциировать с структурой файловой системы, где хранилищами являются директории, а потоками – файлы, как показано на диаграмме 3:


Диаграмма 3. Структурированное хранилище OLE

Компонент хранилища может существовать как отдельный компонент. Каждый компонент хранилища может содержать под-хранилища и компоненты потоков. Корневой компонент может непосредственно содержать потоки. MS Office 2000 и выше поддерживают 2 формата файлов: OLE и XML файлы. Оба формата являются структурированным хранилищем, хотя последний является более дружественным к браузерам.

2.1 Документы MS Office и его компоненты

Давайте рассмотрим структуру документа Word, с включенным в него объектом Excel.


Диаграмма 4. Обычный формат хранилища документа Word

Компонент MS Word является коревым компонентом, который содержит несколько потоков и одно хранилище. Различные части документа - такие как само содержимое, вставленная таблица, CompObj ассоциированный с DLL файлами для объектов, краткая информация для содержимого, графические изображения, данные о документе – принимают форму потоков внутри корневого компонента. ObjectPool является хранилищем для под-хранилищ. На диаграмме изображено под-хранилище компонента Excel. Сам по себе ExcelSheet является хранилищем, которое содержит Workbook, SummaryInformation и DocumentSummaryInformation.

Различные файлы MS Office имеют схожую структуру. Различные объекты могут добавляться в документ и соответствующие компоненты потоков/хранилищ могут получать к объектам доступ и обновлять их. В некоторых компонентах COM и OLE были обнаружены повышении привилегий и некорректная обработка данных, которая могла привести к компрометации систем с установленными приложениями MS Office.

3. Простой механизм атаки

При обычном сценарии атаки, уязвимость эксплуатируется путем вставки злонамеренного объекта в структуру документа. Для подобной атаки могут использоваться несколько уязвимостей в MS Excel и MS Word.
Еще одним способом вставки злонамеренного объекта является уязвимость при обработке объекта указателя в MS Word. Эта атака продемонстрирована на диаграмме 5.

Диаграмма 5. Эксплуатация уязвимости.

Эксплуатация:

  1. Целевой пользователь открывает злонамеренный документ MS Word из email вложения или Web станицы.
  2. При открытии файла выполняется злонамеренный компонент хранилища (программа-дроппер) в структурированном хранилище OLE.
  3. Троянский конь попадает на системы жкртвы.
  4. Троянский конь вместе с бекдором дают возможность атакующему собрать данные о системе, получить доступ к командной строке и сделать скриншоты и поместить их в %System%\Capture.bmp.

Давайте разобьем вышеописанный сценарий на этапы. Первый этап – создание злоумышленником злонамеренного документа Word. Структурированное хранилище OLE не проверяет содержимое компонента и позволяет вставку исполняемых приложений, таких как троянский конь. Второй этап – когда жертву обманом заставляют открыть злонамеренный файл из email вложения, или скачать с Web сайта. Третий этап – при открытии документа выполняется злонамеренный объект, который запускает троянского коня. Четвертый этап – троянская программа устанавливает бекдор, который дает возможность атакующему скомпрометировать целевую систему.

3.1 Программа-дроппер
Дроппер является приложением, которое позволяет установить одиночное злонамеренное ПО (Троян, черь, бекдор) на систему. Злонамеренный код чаще всего содержится в дроппере в таком виде, чтобы не быть замеченным антивирусными сканерами.

Дроппер трояна обычно распаковывает файлы во временную директорию и выполняет их. Дропперы редко обнаруживаются антивирусными приложениями и сканерами уязвимостей. Это происходит по следующим причинам:

  1. Дропперы не являются сами по себе злонамеренным ПО. Они лишь содержат злонамеренный код, который устанавливают на целевую систему.
  2. Во многих случаях дропперы содержат безвредные медиа файлы для сокрытия злонамеренной активности.
  3. Иногда дропперы перезаписывают злонамеренный файл MS Office его исходной копией для сокрытия улик присутствия злонамеренного приложения. Например Trojan.PDropper.B.
  4. Иногда дропперы распаковывают компоненты непосредственно в память и активируют их там, что не позволяет антивирусному ПО обнаружить такое приложение.

Несколько других уязвимостей MS Office заключаются в недостаточной фильтрации входных данных, недостаточной обработки строки OLE функций, недостаточной проверки переменных компонента потока (что приводит к переполнению буфера), повреждении памяти, и ошибочном воспроизведении свойств OLE.

Практически все уязвимости требуют от жертвы проверки источника происхождения документа MS Office перед его открытием, что сложно осуществить, если используются такие агенты эксплуатации как дропперы. Так что, единственным возможным решением является исправление ошибок в самом структурированном хранилище OLE.


4. Временные решения
Практически все временные инструкции начинаются с предупреждения пользователей о том, что не следует открывать вложения от известных и неизвестных вам отправителей. Microsoft публикует временное решение и меры предосторожности для разных уязвимостей, чтобы пользователи могли избежать проблем до выхода официального исправления:

  1. Документы MS Offce следует открывать в режиме “Safe Mode” – запустите приложение MS Office (Word, Excel, PowerPoint) в безопасном режиме, для этого удерживайте клавишу Control при запуске приложения. Если вам необходимо прочитать полученное вложение, не открывайте его двойным щелчком мыши, а сохраните его и откройте с с помощью приложения MS Office, запущенного в безопасном режиме.
  2. Заблокируйте MS-TNEF (Transport Neutral Encapsulation Format) чтобы оградить себя от попыток эксплуатации уязвимостей с помощью email с сообщения. Microsoft TNEF email сообщения известны так же как Rich Text Formatted e-mail сообщения, которые могут содержать злонамеренные OLE объекты. Такие сообщения содержат обычно вложенный файл Winmail.dat, в котором хранится TNEF информация. Блокирование этого файла может защитить почтовый сервер и email клиент от попыток эксплуатации уязвимостей.

5. Ссылки

или введите имя

CAPTCHA