Как проверить .docm-файл на вирусы без установки Office

Получили файл с расширением .docm от незнакомого отправителя или скачали документ с подозрительного сайта? Открывать его в Word — плохая идея, пока вы не убедитесь, что внутри нет вредоносных макросов. Но что делать, если у вас не установлен Office или вы работаете на Linux? Есть несколько рабочих способов заглянуть внутрь файла без запуска макросов и без установки тяжёлого офисного пакета.

Почему .docm — это не просто документ

Файл .docm — это обычный ZIP-архив, внутри которого лежат XML-файлы, картинки и, что самое интересное, модули макросов. Макросы в таких документах пишутся на VBA (Visual Basic for Applications) и могут делать что угодно: скачивать файлы из интернета, шифровать данные, рассылать себя по вашей адресной книге. При этом сам документ выглядит безобидно — текст, таблицы, может быть, просьба «включить редактирование».

Главная опасность в том, что макросы могут запускаться автоматически при открытии документа. Поэтому наша задача — извлечь содержимое архива и посмотреть, что внутри, не открывая файл в Word.

Способ 1: Распаковать архив и посмотреть содержимое

Самый простой метод, который работает на любой операционной системе. Поскольку .docm — это ZIP-архив, вы можете распаковать его любым архиватором.

  1. Сделайте копию файла и переименуйте расширение с .docm на .zip.
  2. Распакуйте архив в отдельную папку.
  3. Зайдите внутрь и изучите структуру.

Внутри вы увидите несколько папок и файлов. Нас интересует папка word. Если в ней есть файл с названием vbaProject.bin — в документе есть макросы. Это ещё не значит, что они вредоносные, но это повод насторожиться.

Также загляните в файл word/_rels/document.xml.rels. В нём хранятся связи документа с внешними ресурсами. Если вы видите ссылки на подозрительные URL-адреса или файлы с расширениями .exe, .ps1, .bat — это явный признак вредоносного макроса.

Способ 2: Использовать oletools в Python

Если вы готовы немного поработать с командной строкой, oletools — это набор утилит специально для анализа OLE- и OpenXML-файлов. Он работает на Windows, Linux и macOS, не требует установки Office и показывает именно то, что нужно.

Установка:

pip install oletools

Основные инструменты из этого набора:

  • olevba — извлекает и анализирует макросы из файла.
  • oleobj — достаёт встроенные OLE-объекты.
  • mraptor — проверяет макросы на подозрительные паттерны.

Пример использования olevba:

olevba подозрительный_файл.docm

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

mraptor работает ещё проще — он сканирует файл и выдаёт вердикт:

mraptor подозрительный_файл.docm

Результат будет одним из трёх: SUSPICIOUS (подозрительный), MACROS (макросы есть, но выглядят нормально) или CLEAN (чисто).

Способ 3: Онлайн-сервисы для анализа

Если не хотите ничего устанавливать, есть онлайн-инструменты. Но здесь важно понимать риск: вы загружаете файл на чужой сервер. Если документ содержит конфиденциальную информацию, этот способ не подходит.

Для быстрой проверки подойдут:

  • Hybrid Analysis — загружаете файл, получаете подробный отчёт о поведении.
  • Any.Run — интерактивная песочница, можно посмотреть, что файл попытается сделать.
  • VirusTotal — проверяет файл десятками антивирусов, показывает, есть ли внутри макросы.

VirusTotal особенно удобен: загружаете .docm, и на вкладке «Details» видите информацию о структуре файла, наличии макросов и ссылках на внешние ресурсы.

Способ 4: LibreOffice в безопасном режиме

LibreOffice умеет открывать .docm-файлы и при этом по умолчанию блокирует выполнение макросов. Вы можете открыть документ, посмотреть текст и при необходимости изучить код макросов через редактор VBA (Сервис → Макросы → Управление макросами).

Перед открытием убедитесь, что макросы отключены: Сервис → Параметры → LibreOffice → Безопасность → Нажмите «Кнопка Макросы» → установите уровень безопасности «Очень высокий».

На что смотреть при анализе макросов

Когда вы извлекли код макросов, ищите эти признаки вредоносного поведения:

  • Функции Shell, WScript.Shell, CreateObject("WScript.Shell") — запуск внешних команд.
  • Обращения к MSXML2.XMLHTTP или WinHttp.WinHttpRequest — сетевые запросы.
  • Использование Environ — чтение системных переменных.
  • Автозапуск через AutoOpen, Document_Open, Workbook_Open — макрос выполнится при открытии.
  • Обфускация — строки вроде Chr(72) & Chr(116) & Chr(116) вместо читаемого текста. Это попытка спрятать URL или команды.
  • Ссылки на PowerShell, cmd.exe, mshta, regsvr32 — классические инструменты злоумышленников.

Сравнение способов проверки

Способ Сложность Нужен ли Office Конфиденциальность Детальность анализа
Распаковать как ZIP Низкая Нет Полная Базовая
oletools (Python) Средняя Нет Полная Высокая
Онлайн-сервисы Низкая Нет Низкая Высокая
LibreOffice Низкая Нет Полная Средняя

Что выбрать в зависимости от ситуации

Нужно быстро проверить файл и не париться: переименуйте в .zip, распакуйте, посмотрите на наличие vbaProject.bin и внешних ссылок. Этого достаточно, чтобы понять, есть ли макросы вообще.

Файл вызывает подозрения, нужен детальный анализ: установите oletools и прогните через olevba + mraptor. Вы получите полный исходный код и сможете сами оценить, насколько он опасен.

Файл с конфиденциальными данными, загружать куда-то нельзя: только локальные методы — ZIP-распаковка или oletools. Никаких онлайн-сервисов.

Нужно посмотреть содержимое документа, а не только макросы: LibreOffice с отключёнными макросами — самый удобный вариант.

Частые ошибки при проверке

Открыть файл в Word с включёнными макросами «просто посмотреть». Это то же самое, что завести двигатель с подозрительным звуком «просто проверить». Макрос может выполниться за долю секунды, и вы даже не заметите.

Полагаться только на антивирус. Многие макросы написаны так, что обходят сигтурный анализ. Свежие варианты вредоносных макросов могут не определяться антивирусом в первые дни после появления.

Игнорировать файл, если антивирус ничего не нашёл. Отсутствие обнаружения — это не доказательство безопасности. Ручной анализ кода макросов надёжнее.

Проверять файл в той же системе, где работаете. Если подозрения серьёзные, анализируйте файл на изолированной машине или виртуальной среде.

Как лучше сделать: пошаговый алгоритм

  1. Сделайте копию файла и работайте только с ней.
  2. Переименуйте расширение в .zip и распакуйте.
  3. Проверьте наличие vbaProject.bin — если его нет, макросов нет, файл безопасен.
  4. Если vbaProject.bin есть, запустите olevba для извлечения кода.
  5. Прочитайте код или пропустите через mraptor для автоматической оценки.
  6. Если код обфусцирован или содержит подозрительные вызовы — удаляйте файл.
  7. Если код чистый и вы доверяете отправителю — можно открывать в LibreOffice с отключёнными макросами.

Итог

Проверить .docm-файл на вредоносные макросы без Office — задача на пять минут, если знать, что файл — это ZIP-архив. Самый быстрый способ — распаковать и посмотреть структуру. Самый надёжный — oletools с анализом исходного кода макросов. Онлайн-сервисы удобны, но только для файлов без конфиденциальных данных.

Главное правило: никогда не открывайте .docm в Word с включёнными макросами, пока не убедитесь в безопасности файла. Потратьте пять минут на проверку — это дешевле, чем разбираться с последствиями заражения.

Оцените статью
PEFile — Безопасность и технологии простым языком