
В 1993 году был выпущен Excel 5.0 — первый продукт компании Microsoft, который поддерживал макросы на языке Visual Basic for Applications. Это событие стало настоящей революцией для работников офисов: те, кто не имел опыта в программировании, получили мощный инструмент для автоматизации рутинных задач, отнимающих много времени.
Однако макросы заинтересовали не только офисных сотрудников. Всего через два года появился вирус Concept — первый, который использовал возможности макросов для кибератак. С тех пор макросы Microsoft Office стали предпочтительным способом доступа к корпоративным сетям для хакеров.
Даже в настоящее время множество успешных атак на организации стартует с рассылки фишинговых писем, содержащих документы с вредоносными макросами. В данной статье мы изучим, как работают макросы, и на конкретных примерах продемонстрируем, как преступники преодолевают защитные механизмы, которые Microsoft развивает на протяжении 25 лет. Также мы уделим внимание методам социальной инженерии, превращающим макросы в эффективное кибероружие для злоумышленников.
Что такое макросы и как их используют хакеры?
Макрос — это программа на языке VBA (Visual Basic for Applications), встроенная в документы Office для автоматизации рутинных задач, например форматирования текста или обработки данных. Однако с их помощью можно делать и более интересные вещи. Вот довольно известный, можно сказать классический пример хакерского макроса с полезной нагрузкой:
В одном из рассмотренных нами случаев макрос был внедрён в резюме, отправленном HR-специалистам организации. Фотография кандидата в документе была размыта, и пользователю предлагалось активировать макрос, кликнув по изображению, чтобы увидеть его.
Другой вариант — вредоносный файл в формате Excel, содержащий важные финансовые данные, часть информации в котором была скрыта. Для доступа к полной таблице пользователю пришлось бы активировать макрос, который на самом деле запускает вредоносное программное обеспечение.
При целенаправленной атаке злоумышленники могут использовать макросы для поиска и кражи конкретных файлов на компьютере жертвы — например, документов с определенными словами в названиях. Технически это реализуется следующим образом:
Сценарий приобретет еще больший риск, если его настроить на выявление файлов, в названиях или тексте которых присутствуют ключевые слова «пароль» или «логин», и пересылку таких файлов злоумышленнику.
Однако тонкость заключается в нюансах: использование макросов для запуска внешних процессов может вызвать подозрение со стороны антивирусных программ.

С целью избежать активации систем защиты, злоумышленники стремятся ограничить функционал макроса и не прибегают к запуску внешних программ. Макрос выступает только как начальный элемент в общую стратегию атаки.
Например, можно сократить полезную нагрузку до минимума, позволив макросу скачать DLL-библиотеку или исполняемый файл, который будет запускаться в памяти, не касаясь диска. Основная логика заключается в том, чтобы сам макрос не содержал функциональности, которая может вызвать срабатывание антивируса. Злоумышленники любят использовать Base64-кодирование для упаковки данных или ссылаться на удаленные исполняемые скрипты.
То же самое справедливо и для белых хакеров. Макрос для RedTeam — всегда только точка входа. Нет смысла пытаться реализовать что-то сложное с его помощью: он все равно живет ровно столько, сколько открыт исполняемый документ на компьютере потенциальной жертвы.

Кроме того, использование макросов удобно для фишинга: отправка исполняемых файлов, таких как EXE или SCR, может вызвать подозрения, так как спам-фильтры могут легко их обнаружить. Напротив, если макрос зашифрован или «замаскирован», его сложнее заметить — например, можно поместить основную часть кода в текст документа или в ячейку Excel, расположенную на какой-нибудь 500-й строке. Таким образом, макрос будет выглядеть безобидно, но только до тех пор, пока не соберет свой код из этих ячеек.
Иногда злоумышленники прибегают к внутреннему фишингу, то есть распространяют зараженный файл с домена компании. Люди склонны больше доверять письмам от коллег, чем от отправителей извне, поэтому такие атаки весьма эффективны, особенно если в компании не настроены спам-фильтры.
Какие меры защиты предпринимает Microsoft
Вот уже 25 лет Microsoft развивает механизмы противодействия подобным атакам.
Ключевым элементом безопасности является технология Mark of the Web, которая автоматически помечает все документы, загруженные из интернета. При обнаружении такой метки Microsoft Word запускает документ в защищенном режиме просмотра, блокируя выполнение макросов и других потенциально опасных элементов. Она предотвращает автоматическое выполнение вредоносного кода из непроверенных источников.
Еще одна защитная опция — политика запрета исполнения макросов в MS Office. С ее помощью администраторы могут настроить систему так, чтобы макросы либо вообще не исполнялись, либо выполнялись только если они подписаны доверенным сертификатом.
Кроме того, в Windows PRO и Enterprise существует возможность настройки групповых политик безопасности с использованием функции Attack Surface Reduction. ASR — это набор встроенных правил, которые можно применить для уменьшения поверхности атаки.
Перечисленные механизмы защиты работают в связке с файловой системой NTFS, которая поддерживает альтернативные потоки данных. Например, Mark of the Web использует альтернативные потоки для хранения метки, которая указывает на загрузку файла из ненадежного источника, а ASR использует информацию из этих потоков для того, чтобы ограничить создание дочерних процессов приложениями Microsoft Office.
Немного интересных примеров из практики
Невзирая на принятые меры безопасности, через двадцать пять лет макросы продолжают быть действенным средством нападения по двум ключевым причинам.
Во-первых, пакет Microsoft Office и совместимое с ним ПО используется в большинстве организаций как стандартное решение для работы с документами. Во-вторых, человеческий фактор по-прежнему остается слабым звеном в системе безопасности.
Недавний пример из практики: в одном из последних редтимингов мы отправили сотруднику компании-заказчика фишинговое письмо с вредоносным документом. Однако письмо не было доставлено — сработали СЗИ на уровне почтового сервера.
Мы воспользовались этой ситуацией — созвонились с сотрудником, сослались на технический сбой и предложили отправить документ через телеграм, разом обойдя добрую половину защитных механизмов.

Да, папка Telegram Downloads тоже находится в директории Downloads, которая по умолчанию считается недоверенной и попадает под политики безопасности, блокирующие выполнение макросов. Однако мессенджеры остаются эффективным каналом распространения вредоносных документов из-за высокого уровня доверия пользователей к личным сообщениям и возможности обхода части корпоративных систем защиты.
Макросы в Microsoft Office представляют собой классический пример того, как полезная функциональность может превратиться в серьезную угрозу безопасности. Эффективность макросов как инструмента проникновения в корпоративные сети базируется на трех ключевых факторах:
Хотя Microsoft совершенствует защитные механизмы, внедряя технологии вроде Mark of the Web и Attack Surface Reduction, злоумышленники успешно адаптируются, переходя от прямого исполнения кода к многоэтапным схемам с минимальной начальной полезной нагрузкой. Отдельного внимания заслуживает тенденция использования новых каналов коммуникации, например мессенджеров, для обхода традиционных средств защиты.
Для анализа подозрительных документов MS Office рекомендуем Oletools — бесплатный набор утилит на Python и OfficeMalScanner. Однако в современных реалиях построение эффективной защиты от атак через макросы требует комплексного подхода, включающего:
Технический прогресс продолжает открывать новые возможности как для атакующих, так и для защищающихся. Однако пока существуют Microsoft Office и социальная инженерия, макросы останутся привлекательным вектором атаки, требующим постоянного внимания специалистов по информационной безопасности.




