Получили файл с расширением .docm от незнакомого отправителя или скачали документ с подозрительного сайта? Открывать его в Word — плохая идея, пока вы не убедитесь, что внутри нет вредоносных макросов. Но что делать, если у вас не установлен Office или вы работаете на Linux? Есть несколько рабочих способов заглянуть внутрь файла без запуска макросов и без установки тяжёлого офисного пакета.
- Почему .docm — это не просто документ
- Способ 1: Распаковать архив и посмотреть содержимое
- Способ 2: Использовать oletools в Python
- Способ 3: Онлайн-сервисы для анализа
- Способ 4: LibreOffice в безопасном режиме
- На что смотреть при анализе макросов
- Сравнение способов проверки
- Что выбрать в зависимости от ситуации
- Частые ошибки при проверке
- Как лучше сделать: пошаговый алгоритм
- Итог
Почему .docm — это не просто документ
Файл .docm — это обычный ZIP-архив, внутри которого лежат XML-файлы, картинки и, что самое интересное, модули макросов. Макросы в таких документах пишутся на VBA (Visual Basic for Applications) и могут делать что угодно: скачивать файлы из интернета, шифровать данные, рассылать себя по вашей адресной книге. При этом сам документ выглядит безобидно — текст, таблицы, может быть, просьба «включить редактирование».
Главная опасность в том, что макросы могут запускаться автоматически при открытии документа. Поэтому наша задача — извлечь содержимое архива и посмотреть, что внутри, не открывая файл в Word.
Способ 1: Распаковать архив и посмотреть содержимое
Самый простой метод, который работает на любой операционной системе. Поскольку .docm — это ZIP-архив, вы можете распаковать его любым архиватором.
- Сделайте копию файла и переименуйте расширение с .docm на .zip.
- Распакуйте архив в отдельную папку.
- Зайдите внутрь и изучите структуру.
Внутри вы увидите несколько папок и файлов. Нас интересует папка 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 с включёнными макросами «просто посмотреть». Это то же самое, что завести двигатель с подозрительным звуком «просто проверить». Макрос может выполниться за долю секунды, и вы даже не заметите.
Полагаться только на антивирус. Многие макросы написаны так, что обходят сигтурный анализ. Свежие варианты вредоносных макросов могут не определяться антивирусом в первые дни после появления.
Игнорировать файл, если антивирус ничего не нашёл. Отсутствие обнаружения — это не доказательство безопасности. Ручной анализ кода макросов надёжнее.
Проверять файл в той же системе, где работаете. Если подозрения серьёзные, анализируйте файл на изолированной машине или виртуальной среде.
Как лучше сделать: пошаговый алгоритм
- Сделайте копию файла и работайте только с ней.
- Переименуйте расширение в .zip и распакуйте.
- Проверьте наличие vbaProject.bin — если его нет, макросов нет, файл безопасен.
- Если vbaProject.bin есть, запустите olevba для извлечения кода.
- Прочитайте код или пропустите через mraptor для автоматической оценки.
- Если код обфусцирован или содержит подозрительные вызовы — удаляйте файл.
- Если код чистый и вы доверяете отправителю — можно открывать в LibreOffice с отключёнными макросами.
Итог
Проверить .docm-файл на вредоносные макросы без Office — задача на пять минут, если знать, что файл — это ZIP-архив. Самый быстрый способ — распаковать и посмотреть структуру. Самый надёжный — oletools с анализом исходного кода макросов. Онлайн-сервисы удобны, но только для файлов без конфиденциальных данных.
Главное правило: никогда не открывайте .docm в Word с включёнными макросами, пока не убедитесь в безопасности файла. Потратьте пять минут на проверку — это дешевле, чем разбираться с последствиями заражения.
