Компьютерные вирусы, которые используют макросы в документах Office

Когда речь заходит о компьютерных вирусах, многие сразу представляют себе что-то из разряда голливудских блокбастеров: хакеры в капюшонах, взламывающие Пентагон, или шифровальщики, парализующие целые корпорации. Но в моей, без малого двадцатилетней, практике системного администратора, самыми коварными и живучими часто оказываются не эти монстры, а старые добрые макровирусы. Да-да, те самые, что живут в обычных офисных документах – Word, Excel, PowerPoint. Казалось бы, 2025 год на дворе, а эта напасть никуда не делась, и даже наоборот – стала хитрее и изощреннее.

Я помню времена, когда макровирусы были скорее забавными шутками: вывести на экран неприличную картинку или заставить Word печатать текст задом наперед. Но те времена давно прошли. Сегодня это уже не игрушки, а серьезные инструменты для киберпреступников, способные украсть данные, установить бэкдоры или зашифровать все ваши файлы к чертовой матери. И знаете что? Их живучесть – это наша, человеческая, ахиллесова пята. Никакие файрволы и антивирусы не спасут, если пользователь сам, своими руками, откроет ящик Пандоры.

Анатомия макровируса: почему они все еще работают

Суть макровируса проста: он использует встроенный в Office язык программирования VBA (Visual Basic for Applications) для выполнения вредоносного кода. Сам по себе VBA – мощный инструмент для автоматизации рутинных задач. Но в руках злоумышленника он превращается в оружие. Главная подлянка в том, что Office по умолчанию (или из-за неправильных настроек) может разрешать выполнение макросов. А дальше – дело техники и социальной инженерии.

В чем их сила? В маскировке. Файл выглядит как обычный документ: «Счет-фактура №12345.docm», «Новое расписание отпусков.xlsm», «Презентация для инвесторов.pptm». Ключевое здесь – расширение файла с буквой «m» на конце, означающей «macro-enabled». Но многие пользователи не обращают на это внимания. Более того, часто злоумышленники используют двойные расширения, типа «document.pdf.docm», рассчитывая, что Windows скроет второе расширение, и пользователь увидит лишь «document.pdf». Жесть, но работает.

Мой личный опыт: кейсы из окопов

Кейс 1: «Срочный счет» и бухгалтерия

Это классика, которая работает безотказно. Где-то в 2023 году к нам прилетело письмо в бухгалтерию. Тема: «Срочный счет на оплату задолженности». Вложение: `invoice_urgent_scan.docm`. Бухгалтер, человек ответственный, но не слишком подкованный в IT, открывает документ. А там – вместо счета – пустое поле и надпись: «Для просмотра содержимого включите макросы». Ну, она и включила. И понеслось.

Через пять минут у нас начали сыпаться звонки: «Интернет не работает!», «Файлы пропали!», «Что-то непонятное на экране!». Оказалось, макрос запустил PowerShell-скрипт, который скачал шифровальщик. Целая папка с финансовыми документами улетела в космос. В моем опыте, эта модель атаки (использование легитимных функций типа PowerShell для скачивания второго этапа вредоноса) имеет особенность: антивирусы на конечных точках часто не видят сам макрос как угрозу, а PowerShell-скрипт считают «системным процессом». Они ловят уже сам шифровальщик, но к этому моменту часто уже поздно. Пришлось восстанавливать из бэкапов и проводить тотальную зачистку.

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

Кейс 2: «Новая политика конфиденциальности» и внутренний периметр

Этот случай был хитрее. Вирус пришел не извне, а «приполз» изнутри. Один из менеджеров получил письмо от «HR-отдела» (поддельный адрес, но очень похожий на настоящий) с документом «Новая политика конфиденциальности компании.docm». Макрос был очень хорошо обфусцирован, а его полезная нагрузка – скрытый VBA-модуль, который при открытии документа встраивался в шаблон `Normal.dotm` пользователя и ждал своего часа, чтобы начать собирать данные и отправлять их на удаленный сервер. Это был не шифровальщик, а тихий шпион.

Мы обнаружили его не сразу. Только когда стали замечать странную сетевую активность на одном из компьютеров – небольшие, но частые исходящие соединения на IP-адреса, которые не имели отношения к нашей инфраструктуре. Антивирус молчал, потому что сам макрос был «чист» с точки зрения сигнатур, а его действия (запись в `Normal.dotm`, чтение файлов) могли быть расценены как легитимные. Это была не просто «фича», это была целая засада.

Предостережение: не стоит полагаться только на антивирус. Мониторинг сетевой активности и системных журналов (особенно Event ID 4688 для запуска процессов) – ваш лучший друг. Если видите, что `winword.exe` или `excel.exe` запускают `cmd.exe` или `powershell.exe` с подозрительными параметрами – это повод бить тревогу.

Нюансы, лайфхаки и предостережения, которых нет в учебниках

1. Управление макросами: не все настройки одинаково полезны

Большинство советов сводятся к «отключите макросы». Но это не всегда возможно в реальной жизни, особенно если у вас есть легитимные макросы для работы. Вот что я вынес из практики:

  • Политика по умолчанию: Установите через GPO (Group Policy Objects) или вручную для небольших компаний: «Отключить все макросы с уведомлением» (Disable all macros with notification). Это позволит пользователям включать их только для доверенных документов, но при этом будет постоянно напоминать об опасности. Однако, для большинства пользователей, где макросы не используются в повседневной работе, лучше «Отключить все макросы без уведомления» (Disable all macros without notification). Это радикально, но эффективно.

  • Доверенные расположения: Это обоюдоострый меч. Если вы указываете сетевую папку как доверенное расположение, любой документ с макросами из этой папки будет запускать их без предупреждения. Используйте это крайне осторожно и только для папок, которые полностью контролируете и защищаете от записи извне. В моем опыте, многие админы добавляют туда сетевые диски, а потом удивляются, почему вирус распространяется как лесной пожар.

  • Блокировка макросов по типу: В Office 365 и более новых версиях есть возможность блокировать макросы из интернета. Это обязательно нужно включить. Microsoft называет это «Block macros from running in Office files from the Internet». Это одна из лучших защит на сегодняшний день.

2. AppLocker и SRP: ваш последний рубеж

Даже если макрос каким-то чудом запустился, он все равно должен что-то сделать: создать файл, запустить скрипт, обратиться к реестру. Здесь на помощь приходят Application Whitelisting решения, такие как AppLocker (для Windows Enterprise) или Software Restriction Policies (SRP, для всех версий Windows). Это как последний рубеж обороны, если все остальное посыпалось.

  • AppLocker: Настройте правила, которые запрещают выполнение исполняемых файлов (`.exe`, `.dll`), скриптов (`.ps1`, `.vbs`, `.js`, `.bat`, `.cmd`) и MSI-установщиков из пользовательских профилей (`%USERPROFILE%`) и временных папок. В моем опыте, это останавливает 90% макровирусов, которые пытаются сбросить и запустить свой payload. Да, это требует тонкой настройки и тестирования, но оно того стоит.

  • SRP: Более простая, но менее гибкая альтернатива AppLocker. Тоже позволяет запретить запуск программ из определенных расположений.

3. Обучение пользователей: не просто «не открывай»

Самый мощный антивирус – это голова пользователя. Но просто сказать «не открывай подозрительные файлы» – это как сказать «не болей». Нужно объяснять, почему и как:

  • Красные флаги: Учите пользователей обращать внимание на расширения файлов (`.docm`, `.xlsm`, `.pptm`), на сообщения Office о «включении содержимого». Если документ пришел по почте, выглядит как пустой лист или набор кракозябр и при этом просит «Включить содержимое» – это недвусмысленный красный флаг. Сразу в корзину и звонок в IT-отдел.

  • «Позвони отправителю»: Если пришло письмо от знакомого с необычным вложением, которое просит что-то включить – позвоните отправителю (по известному вам номеру, не из письма!) и уточните, действительно ли он это прислал. Это элементарный, но очень эффективный лайфхак.

  • Фишинг: Объясните, что такое фишинг. Покажите примеры поддельных писем. Учите проверять адрес отправителя (не только имя, но и полный email-адрес).

4. Мониторинг и реагирование: не спим на посту

Даже с лучшими превентивными мерами, инциденты случаются. Важно быть готовым:

  • Системные журналы: Регулярно просматривайте журналы событий Windows (Event Viewer). Ищите подозрительные события: запуск PowerShell из Office-приложений, создание новых файлов в системных или временных папках, изменения в реестре, особенно в ветках автозагрузки (`Run`, `RunOnce`).

  • Сетевой мониторинг: Используйте фаерволы и системы обнаружения вторжений (IDS/IPS) для мониторинга исходящего трафика. Макровирусы часто пытаются «дозвониться домой» за дополнительной нагрузкой или для отправки украденных данных. Необычные соединения на неизвестные IP-адреса или домены – повод для расследования.

  • Бэкапы: Золотое правило: бэкапы, бэкапы и еще раз бэкапы. Регулярные, проверенные и хранимые офлайн или на защищенном от записи хранилище. Если все пошло не так, это единственное, что спасет ваши данные.

Компьютерные вирусы, использующие макросы, – это не просто реликт прошлого. Это живая, постоянно эволюционирующая угроза, которая прекрасно себя чувствует в

Радик Камаев

Сисадмин с 20-летним опытом. Windows, Unix, Android.

Оцените автора
Познавательный портал