Анализ и обнаружение вредоносного содержимого в файлах формата DOCX
Дата публикации: 2020-04-17
Автор: Анонимный переводчик
Теги: microsoft
Источник: International Journal of Computer Science and Information Security (IJCSIS), Vol. 14, No. 8, August 2016, “Analyzing and Detecting Malicious Content: DOCX Files”
1. Введение.
За последние 10 лет организации, корпорации, да и обычные люди, стали больше зависеть от компьютеров. Microsoft Office один из самых популярных пакетов офисных приложений для ПК. Версии 2007 и 2010 годов используют для хранения данных XML и ZIP. Но одним из самых популярных форматов обмена электронными документами стал DOCX.
Если раньше злоумышленники атаковали в основном серверную инфраструктуру, то с повсеместным распространением MS Office появилась возможность атаковать и клиентские устройства. Тот факт, что DOCX используется по всему миру, делает его основным направлением распространения вредоносного ПО. Возможности и содержимое этого формата могут провоцировать возникновение уязвимостей, которые в свою очередь можно использовать для внедрения вредоносного кода и воровства данных. При этом, зачастую вредоносный код находится уже внутри файла. Хакеры используют файлы DOCX, так как этот формат файла не является исполнимым, и не все антивирусные системы способны обнаружить вредоносный контент.
В данной работе мы исследуем одно из самых распространенных направлений атак с использованием вредоносного XML-содержимого подобных документов, а также новые способы атак клиентской части. Последние пользуются уязвимостью клиента или слабым знанием требований мер безопасности для получения контроля над системой или сетью клиента. В статье предложен новый подход к анализу и обнаружению подобного вредоносного контента. С его помощью мы протестируем как чистые, так и вредоносные DOCX- файлы. После анализа система промаркирует файл как безопасный, либо промаркирует как подозрительный.
2. Предыстория
В 2000 году компания Microsoft анонсировала релиз XML и дала библиотекам, простыми клиентам и правительству разрешение на доступ к конфиденциальной информации и использованию формата файлов XML. В декабре 2006 года PEGSCO сообщила, что Microsoft разработала новый «формат XML». И 15 ноября 2005 года на конференции ECMA International был представлены новый формат Office Open XML.
MS Office 2007 и 2010 г. используют новый формат файлов в зависимости от формата OOXML, который очень отличается от старых технологий, в то время, как файлы Office 1997 и 2003 сохраняются в бинарном виде. Файл Open Office XML состоит из:
– Компонентов: файлов внутри ZIP-архива.
– Взаимосвязей: отношений между компонентами и архивами или просто между компонентами.
– Архивов: ZIP-архив.
Что касается всего блока, в ZIP-архивах хранится информация о взаимосвязях между архивами и компонентами. Точно также существует связь между элементами ZIP-архива, включающими информацию об отношениях между компонентами и архивом или между компонентами внутри документа. Как показано на Рис. 1, структурированная информация сначала переводится в XML, а затем сжимается, чтобы новые документы занимали меньше места, нежели предыдущие форматы. Также на нём видна структура формата OOXML. В Таблице 1 перечислены расширения, отличающие его от предыдущих типов документов.
Рисунок 1. Структура формата Open Office XML
Таблица 1. Расширения файлов MS Office
На Рис. 2 изображена типичное дерево каталогов файла MS Word 2007 и 2010. В корне ZIP-архива стоит файл “[Content_Types].xml”. Его задача – сохранять словари с типами содержимого для каждого компонента внутри архива.
Рисунок 2. Дерево каталогов файла Word
Как следует из Рис. 3, для определения печатаемого текста документ OOXML делится на три компонента: параграф, текстовый поток и текст. Их взаимосвязь показана на Рис. 4. <w:p> указывает на параграф внутри <w:body>. <w:r> указывает на текстовый поток. Параграф можно поделить на несколько текстовых потоков. Наконец, <w:t> – текстовый элемент. Внутри текстового потока их может быть целая группа.
Рисунок 3. Взаимосвязь трех компонентов
Рисунок 4. Обычный текст, написанный в XML
3. Обзор литературы
Существует экспертный метод исследования, зависящий от некоторого уникального значения проверочного идентификатора, указывающего на источник подозрительных электронных документов. Указанный метод применяется по отношению к электронным документам формата Office Open XML (OOXML): MS Office 2007 или MS Office 2010. Выделив подобный проверочный идентификатор, который позволяет различать документы, исследователь может определить, имеет ли подозрительный документ общий источник с другими файлами. По значению проверочного идентификатора эксперты могут сказать, создавался ли оригинальный документ и его копия в одном источнике. Так же при проведении анализа исследователи могут подобным образом получить данные о создателе таких документов и информацию, поступающую в реальном времени.
Автор ссылается на возможность сокрытия информации, которая использует файл MS Office, а также на то, что исследователю известно об этих документах, и они содержат много неиспользуемого пространства и метаданные. И именно это помогает скрывать информацию. Автор упоминает, что существует множество электронных документов, которые хранятся как в индивидуальных системах, так и в общей сети. Электронные документы могут содержать коммерческую тайну или личные данные. Поскольку для экспертной проверки в них может использоваться цифровая подпись, исследователь может использовать её для установления связи между несколькими электронными документами. Автор предложил новый способ изучения файлов MS Power Point, несущий очень важную информацию о процессе записи.
Файлы DOCX – относительно новый формат. Использование программой Microsoft Office формата XML в Office 2007 и 2010 зависит от тех же целей, какие влияют на алгоритм сжатия ZIP с открытой схемой в отличие от предыдущих форматов (MS Word, Excel, Power Point и т.д.). Автор говорит о системе безопасности и технических проблемах, связанных с XML и процессами умышленного искажения Zip, на основе которых необходимо создать такую систему безопасности, которая позволит выделать из документов вредоносный контент.
Исследователи демонстрируют множество различных техник, с помощью которых вредоносные программные средства, а именно: редактирование 16-ричных данных, реверс инжиниринг и переупаковка могут обходить антивирусы на основе хоста. Эти техники позволяют обмануть SSL/HTTP и SMTP. Наконец, важно обнаруживать и находить новые и анонимные виды ВПО. Исследователи также не обходят вниманием и новые системы поиска ВПО на основе системы ханинета (honeynet).
Эксперты-исследователи часто упоминают о губительном влиянии, которое вредоносное ПО оказывает на Интернет. Они также упоминают некоторые их виды: вирусы, трояны, черви. Их рассматривают как угрозу безопасности компьютера. При эффективном использовании определенного метода для анализа вредоносного поведения становится возможно извлечение вредоносного кода из исследуемого документа и его отстройка.
Open Office XML включает ZIP-файл, который мы уже упоминали как архив. ZIP был выбран в качестве общего алгоритма сжатия файлов для формата XML (Рис. 5 и 6), поскольку позволяет уменьшить размер файла почти на 75%.
Рисунок 5. DOCX и DOC
Рисунок 6. Пример сжатия
4. Анализ и поиск вредоносного содержимого файла DOCX
Эксперимент проводился на компьютере с Windows 8. Его параметры приводятся в Таблице 2. Чтобы не подвергать опасности оригинальную операционную систему, для тестирования файла DOCX и поиска вредоносного кода использовалась виртуальная машина.
Таблица 2. Характеристики тестовой машины
В таблице 3 указано хеш-значение MD5, размер набора взаимосвязанных данных, использованных при эксперименте; взято 25 файлов DOCX как набор взаимосвязанных данных и 57 файлов DOCX в качестве примера. Файлы были скачаны с разных сайтов из Google.
Таблица 3. Файлы DOCX, собранные для теста
5. Способ фильтрации файлов DOCX
Существует много исследований о скрытии данных, однако мало кто изучает структуру XML в файлах DOCX. Несмотря на сложность формата DOCX, он зачастую представляет угрозу, поскольку содержит zip-архивы. После анализа и разбора структуры файлов DOCX, хакер может встраивать в файл эксплойты для обхода системы безопасности. Фильтр DOCX разработан для парсинга и классификации файлов по ключевым словам. Система анализирует структуру выбранного DOCX и извлекает подозрительные элементы. В результате мы получаем отчёт с описанием файла как безопасного или вредоносного.
Две фазы фильтрации:
1) Фаза сканирования структуры
Основные действия показаны на Рис. 7. Структура сканируется на предмет наличия ключевых слов, заданных пользователем в отдельном файле. После этого файл DOCX и ключевые слова считываются для подсчета их хеш-значения.
Рис. 7. Архитектура сканирования системы
Для упрощения анализа файл DOCX считывается как последовательность байтов. В данном случае мы используем DOCX для анализа встроенного файла. Для проверки файла с ключевыми словами применяются два фильтра:
– OLE и o:lock
– Vanish
Главная задача парсинга структуры – извлечение из DOCX различных элементов. Для сканирования DOCX и поиска известных ключевых слов используются регулярные выражения.
Система ищет ключевые слова, не связанные с файлами напрямую. По завершению сканирования система вывесит предупреждение, сообщающее, является ли файл вредоносным, безвредным или подозрительным.
2) Фаза фильтрации DOCX
Основные действия показаны на Рис. 8. Система вычисляет хэш от исследуемого файла и ищет его в базе данных. Если он не обнаружен, то добавляется в неё. Если обнаружен – значит подобный файл сканировался ранее.
Рис. 8. Архитектура фильтрации DOCX
А. Чтение и Анализ
Чтение файлов DOCX, сканирование структуры, поиск ключевых слов? Расчет хэш-значения.
Б. Вычисление хэш-значения
В первую очередь система вычисляет хэш-значение для всех исследуемых файлов вместе с ключевыми словами, извлеченными из этих файлов. Впоследствии эти данные будут использоваться для идентификации и классификации примеров ВПО и внутренних элементов DOCX. Также это позволяет узнать, анализировался ли данный файл ранее, что экономит пользователю время. После сканирования на финальном этапе пользователь может выбрать формат вывода результата: вывод на консоль или сохранение в текстовый файл, поименованный так же, как и исследуемый DOCX.
6. Результаты и анализ
При скачивании примеров тестовых файлов из интернета высока вероятность, что они окажутся вредоносными. Наличие вредоносных файлов в наборах безвредных образцов или безопасных файлов во вредоносных выборках даст отрицательный результат эксперимента. Набор тестируемых данных состоит из 25 смешанных файлов (вредоносных и безопасных). Они использовались при проверке предложенного метода обнаружения подозрительных файлов DOCX. Для поиска заранее заданного списка ключевых слов, ранее извлеченных из вредоносных DOCX, использовался метод сканирования структуры. Путем ввода маршрута, содержащего DOCX, при сканировании были сгенерированы три файла (Рис. 9).
Рисунок 9. Результат сканирования DOCX
Все 25 файлов были поделены в рамках классификации на вредоносные и безопасные.
Таблица 4: Файлы DOCX, собранные для эксперимента
Категория | Количество файлов |
Безопасные файлы | 22 |
Вредоносные | 3 |
Итого | 25 |
B. Эксперименты
Здесь описываются два эксперимента:
– Первый сфокусирован на новой системе анализа и обнаружения вредоносных файлов DOCX. Эксперимент разъясняет результаты сканирования структуры.
– Второй – использует примеры файлов, скачанные с различных сайтов специально для тестирования.
1) Эксперимент 1
В этом эксперименте сканирование структуры проводилось при помощи регулярных выражений на языке программирования Python. С их помощью производился поиск подозрительных элементов и их частотность как во вредоносных, так и безопасных примерах. После сканирования файлов из набора результаты выводились в виде Таблицы 5. Процентное соотношение вычислялось делением количества вредоносных файлов на общее число документов в наборе (25 файлов DOCX) – формула ниже.
Таблица 5. Результат сканирования структуры.
Ключевые слова | Вредоносные | % Вредоносных | Безопасные | % Безопасных |
vanish | 0 | 0 | 25 | 1 |
OLE и o:lock | 3 | 0.12 | 22 | 0.88 |
Общий размер = 25 |
В результате было обнаружено, что ключевые слова Vanish и (OLE и o:lock) являются индикаторами подозрительных файлов. Эти индикаторы можно использовать при классификации документов. Согласно предположению выше, при подсчёте числа файлов следует помнить о том, как они представлены внутри файлов DOCX. Любой такой файл может содержать оба индикатора.
а) Точность обнаружения
Прежде чем представить статистику обнаружения, следует ввести понятия четырех величин, используемых при оценке.
- False Positive (FP)/«ложно-положительная» – количество файлов из безопасных образцов, классифицированных как вредоносные.
- False Negative (FN)/«ложно-отрицательная» – количество файлов из вредоносных образцов, классифицированных как безопасные.
- True Positive (FP)/«истинно-положительная» – количество файлов из вредоносных образцов, классифицированных как вредоносные.
- True Negative (FN)/«истинно-отрицательная» – количество файлов из безопасных образцов, классифицированных как безопасные.
В этом эксперименте эффективность метода оценивалась с помощью следующих величин:
- True Positive Rate (TPR)/«истинно-положительный показатель» – показатель положительно верной классификации
- False Positive Rate (TPR)/«ложно-положительный показатель» – показатель отрицательной классификации, и
- Accuracy (ACC)/«индекс точности» – показатель числа абсолютно верно классифицированных образцов.
Используя эти формулы можно оценивать структуру XML на наличие ключевых слов Vanish и (o:OLE и o:lock). Эти характеристики определяют эффективность системы и точность обнаружения. Результаты показаны в Таблице 6.
Таблица 6: Результаты сканирования структуры
Безопасные | Вредоносные | |||
Безопасные | TN= | 22 | FN= | 0 |
Подозрительные | FP= | 0 | TP= | 3 |
Результат подстановки значений из Таблицы 5 в выражения 2, 3 и 4 представлен на Рис. 10:
Рисунок 10. Результаты извлечения
Согласно данным Таблицы 3, три файла из трёх вредоносных документов были классифицированы как подозрительные с точностью 100%. Важно отметить, что количество ложно определенных и подозрительных файлов из 22 равнялось нулю.
б) Оценка производительности
Для оценки алгоритма фильтрации и выявления подозрительных файлов была использована работа “OpenDocument and Open XML Security” (Lagadec P. 2008 г.). Эта работа не дала результатов, поскольку автор рассчитывает на наличие файла oleObject.bin, который используется как маркер вредоносного файла, как показано на Рис. 11. Этот метод использоваться для сканирования файлов DOCX, обнаружения ключевых слов и описания способа, с помощью которого они были ранее встроены в документ, и как они в нём хранятся. В результате алгоритм выдавал два значения: “да” – документ промаркирован как подозрительный; “нет” – безопасный. Для обнаружения файла oleObject.bin использовался поиск по структуре, как показано на Рис. 12. С его помощью в наборе из 25 документов было обнаружено два подозрительных DOCX с похожим набором данных.
Рисунок 11. Элемент OLE
[+] Сканирование на встроенный OLE-элемент [-] Файл Обнаружено встроенных элементов OLE: 2 |
Дата и время доступа к текущему файлу: 2016-07-02 19:15:35.889000 MIME-тип: (‘text/xml’, нет) |
Процесс завершен за: 7.71399998665 секунд |
Рисунок 12. Сканирование структуры на элемент OLE
Автор использовал наличие файла oleObject1.bin в качестве ключевого слова. В нашем исследовании мы отметили, что три файла из 25, которые являлись вредоносными, были помечены как подозрительные (см. Таблицу 4). Предыдущий же метод позволил выявить только два подозрительных файла из 25 тестовых.
в) Временная оценка (эффективности)
При проведении исследования время – очень важный критерий при оценке скорости работы метода. Для импорта затраченного на проверку времени использовалась программа на языке программирования python. Оценивалось время начала, окончания и разница между точками начала и окончания теста. Последняя величина показывает за какое время завершился процесс (см. Рис. 13).
[+] Продолжительность теста 7.65400004387 секунд |
Рисунок 13. Время, затраченное на выполнение
2) Эксперимент 2
Тестовый набор данных состоял из 57 файлов DOCX, скачанных с различных сайтов из Google.
- Сканирование структуры в данном тестировании показало, что 0.263% документов из 57 маркируются как подозрительные. 0.140% из них содержат встроенные элементы. Время анализа составило 1.11 секунд (см. Рис. 14).
- При поиске OLE объектов предыдущим методом программа выявила два подозрительных файла из 57, и оба они содержали встроенные элементы. Время анализа составило 18.86 секунд (см. Рис. 15).
Ключевые слова | Вредоносные | % Вредоносных | Безопасные | % Безопасных |
vanish | 7 | 0.438596 | 50 | 0.877193 |
OLE | 8 | 0.245614 | 49 | 0.859649 |
Общее количество: 57 | ||||
Категория | Количество файлов | |||
Безопасные файлы | 42 | |||
Вредоносные | 15 | |||
Всего | 57 |
Безопасные | Вредоносные | |||
Безопасные | ТN= | FN= | 0 | |
Подозрительные | FP= | TP= | 15 |
– TPR = 100% |
– FPR = 0% |
– ACC = 100% |
Окончание сканирования 1452885790.3 |
Продолжительность сканирования: 1.11899995801 |
Рисунок 14. Анализ тестового файла методом сканирования структуры
Рисунок 15. Анализ тестового файла с использованием OLE из предыдущего метода
7. Заключение
Сохранение безопасности и приватности пользователей является главным приоритетом этого исследования. Файлы DOCX широко используются для обмена документацией по всему миру. В то же время DOCX полюбился хакерам для внедрения вредоносного кода.
В настоящем исследовании структура файлов DOCX анализировалась на наличие ключевых слов, встречающихся в подозрительных файлах. После этого файл маркировался как подозрительный или безопасный. Для этого был разработан метод сканирования структуры.
Метод сканирования структуры полезен для обнаружения подозрительных файлов DOCX. Он позволяет сократить время анализа и помогает защитить клиентские устройства от вредоносного кода. Кроме того, метод сканирования структуры точнее и результативнее предыдущего.
И наконец, метод сканирования структуры может использоваться на клиентской стороне с целью поддержания и укрепления безопасности системы. В этом исследовании использовался набор из 25 файлов. Через сканирование структуры удалось установить, что 88% из них безопасны, а 12% относятся к вредоносным. При использовании метода фильтра с поиском по подозрительным ключевым словам на анализ потребовалось 7.65 секунд. Было проведено сравнение с предыдущим методом по обнаружению подозрительных файлов DOCX. Эта программа была разработана для вычисления процента подозрительных файлов в процентах. Кроме того, исследователи учитывали присутствие файла oleObject1.bin (в качестве ключевого слова), который помог распознать 0.08% подозрительных файлов DOCX за 7.86 секунд. Тестовый набор состоял из 57 файлов, скачанных с сайтов из поиска Google. За 1.11 секунд было обнаружено 0.74% безвредных и 0.26% подозрительных файлов. С помощью предыдущего метода за 18.86 секунд было выявлено два подозрительных файла DOCX. Кроме того, была создана программа для сравнения сканирования структуры с предыдущим методом, в результате чего сканирование структуры было признано более эффективным.
8. Будущие работы
- Разработать метод анализа встроенных OLE объектов в подозрительных файлах DOCX и их классификации (деления на безвредные и вредоносные).
- Улучшить метод анализа документов, содержащих ключевое слово “Vanish” для сокрытия данных.
- Разработать систему для анализа любых файлов OOXML, чтобы хакеры более не могли использовать их для внедрения вредоносного кода.
9. Ограничения.
Множество вредоносных файлов DOCX используют подозрительные ключевые слова, упомянутые в эксперименте. Точно также они используются и во многих безвредных файлах, что серьёзно усложняет попытки отличить их друг от друга. Предложенный метод не способен обнаружить вредоносные файлы, не содержащие данных ключевых слов.