Макросы, написанные на языке VBA, могут автоматизировать рутинные задачи, но одновременно представляют значительный угрозу безопасности: вредоносный код часто распространяется через документы, полученные из интернета или внешних сетей. Блокировка макросов, pochodящих из ненадёжных источников, снижает риск заражения без полного отказа от легитимной автоматизации. В этой статье объясняется, как настроить такую политику в Microsoft Office, какие варианты существуют, как проверить её применение и какие ограничения следует учитывать.
- Почему важно блокировать макросы из внешних источников
- Где хранятся настройки безопасности макросов
- Настройка через Trust Center (интерфейс)
- Настройка через групповую политику
- Настройка через реестр
- Проверка применённой политики
- Ограничения и исключения
- Типичные ошибки и как их избежать
- Практический следующий шаг
Почему важно блокировать макросы из внешних источников
Внешними источниками считаются файлы, полученные из интернета, из сетевых папок, помеченных как потенциальноunsafe, или из вложений электронной почты. Такие файлы не прошли внутреннюю проверку организации и могут содержать вредоносный VBA‑код. Если макросы из таких источников разрешены без ограничений, пользователь может случайно запустить вредоносный скрипт, который:
- украдет учётные данные или конфиденциальные данные;
- установит дополнительное вредоносное ПО;
- изменит или удалит файлы на локальном диске или в сетевых ресурсах;
- выполнит несанкционированные действия в корпоративной сети.
- Блокировка макросов из внешних источников позволяет оставить возможность использования доверенных макрос‑решений (например, внутренних шаблонов или подписанных сертификатами), одновременно предотвращая выполнение неизвестного кода.
Где хранятся настройки безопасности макросов
Политика безопасности макросов в Office задаётся на трёх уровнях:
- Локальные параметры пользователя – настраиваются через интерфейс Trust Center в каждом приложении (Word, Excel, PowerPoint). Они действуют только для текущего пользователя и могут быть переопределены групповыми политиками.
- Групповая политика (GPO) – централизованно управляет параметрами для всех компьютеров в домене. Политики GPO имеют приоритет над локальными настройками.
- Реестр Windows – содержит те же параметры, что и GPO; изменения через реестр применяются, если нет конфликтующей групповой политики.
Для большинства корпоративных сред рекомендуется использовать групповую политику, чтобы обеспечить единообразное применение и избежать обхода пользователями локальных настроек.
Настройка через Trust Center (интерфейс)
Если необходимо быстро проверить или изменить параметры на отдельном рабочем месте, выполните следующие шаги:
- Откройте любое приложение Office (например, Excel).
- Выберите Файл → Параметры.
- В левой панели нажмите Центр управления безопасностью → Настройки центра управления безопасностью….
- Выберите пункт Настройки макросов.
- Выберите один из вариантов:
- Включить все макросы – не рекомендуется для рабочих сред.
- Отключить все макросы без уведомления – макросы просто не выполняются, пользователь не получает предупреждения.
- Отключить все макросы с уведомлением – макросы блокируются, но появляется жёлтая панель с возможностью включить их для текущего сеанса.
- Отключить все макросы кроме цифровой подписи – выполняются только макросы, подписанные доверенным издателем.
- Доверять доступу к объектной модели проекта VBA – отдельная настройка, влияющая на программный доступ к VBA‑проекту.
Чтобы конкретно блокировать макросы из внешних источников, необходимо дополнительно настроить параметр Блокировать макросы, полученные из интернета (или аналогичный, в зависимости от версии Office). Этот параметр находится в той же вкладке Настройки макросов под названием Параметры безопасности для макросов из интернета.
После выбора нужного варианта нажмите OK и перезапустите приложение, чтобы изменения вступили в силу.
Настройка через групповую политику
Для централизованного управления используйте шаблоны администрирования Office (ADMX/ADML), которые включают параметры безопасности макросов. Шаблоны доступны на официальном сайте Microsoft или уже установлены с Office.
- Скопируйте файлы office.admx и office.adml (для нужного языка) в папку PolicyDefinitions контроллера домена (например, \\DC\SYSVOL\domain\Policies\PolicyDefinitions).
- Откройте Групповая политика управления (gpmc.msc).
- Создайте или отредактируйте объект GPO, который будет применяться к нужным компьютерам или пользователям.
- Перейдите по пути:
Конфигурация компьютера → Политики → Административные шаблоны → Microsoft Office 2016 → Безопасность → Параметры безопасности макросов
- Найдите параметр Блокировать макросы, полученные из интернета (или Block macros from running in Office files from the Internet).
- Установите значение Включено.
- При необходимости настройте дополнительные параметры:
- Отключить все макросы без уведомления – если требуется полная блокировка.
- Разрешить только подписанные макросы – для использования доверенных решений.
- Настройки доверенных расположений – определите папки или сетевые шары, где макросы считаются безопасными.
- Закройте редактор GPO и выполните обновление политики на целевых компьютерах (gpupdate /force) или дождитесь автоматического обновления.
После применения GPO локальные настройки в Trust Center становятся недоступными для изменения (они будут отображаться как заданные политикой). Это предотвращает обход политики пользователями.
Настройка через реестр
Если групповую политику применить невозможно (например, рабочая группа или отдельный компьютер), параметры можно задать непосредственно в реестре Windows. Изменения реестра имеют тот же приоритет, что и GPO, но переопределяются более высоким уровнем политики.
Ключи реестра, отвечающие за блокировку макросов из интернета, расположены по следующим путям:
- HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\<версия>\<приложение>\Security
- HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\<версия>\<приложение>\Security
Где версия – например, 16.0 для Office 2016/2019/2021/Microsoft 365, а приложение – Word, Excel, PowerPoint или общий ключ Common.
Внутри ключа Security создайте или измените параметр типа DWORD (32‑бит) с именем VBAWarnings. Возможные значения:
| Значение | Описание |
|---|---|
| 1 | Отключить все макросы с уведомлением (показать панель предупреждения). |
| 2 | Отключить все макросы без уведомления. |
| 3 | Включить все макросы (не рекомендуется). |
| 4 | Отключить все макросы кроме цифровой подписи. |
Для блокировки макросов из интернета также потребуется параметр InternetMacrosSecurity (DWORD). Допустимые значения:
| Значение | Описание |
|---|---|
| 0 | Не блокировать макросы из интернета (по умолчанию). |
| 1 | Блокировать макросы, полученные из интернета. |
После внесения изменений перезапустите приложения Office или выполните выход и повторный вход в систему, чтобы новые параметры были загружены.
Проверка применённой политики
Убедиться, что политика работает, можно следующими способами:
- Получите тестовый документ с макросом, сохранённый из интернета (например, скачайте файл с известным безопасным макросом с доверенного сайта).
- Откройте документ в Office. Если политика активна, вы увидите жёлтую панель предупреждения о блокировке макросов, либо макрос просто не выполнится без уведомления (в зависимости от выбранного уровня).
- Для дополнительной проверки откройте Центр управления безопасностью → Настройки макросов и убедитесь, что поля отображают значения, заданные политикой (они будут затемнены и помечены как «Задано администратором»).
- При использовании GPO можно запустить gpresult /h report.html и проверить, что параметры Office применены к целевому компьютеру.
Если макрос выполняется несмотря на настройки, проверьте:
- Не находится ли файл в доверенном расположении (Trusted Location), которое переопределяет блокировку.
- Не подписан ли макрос сертификатом, доверенным на этом компьютере (при включённом параметре «Отключить все макросы кроме цифровой подписи»).
- Не конфликтует ли локальная политика пользователя с более высоким уровнем (доменная GPO или машинный реестр).
Ограничения и исключения
Блокировка макросов из внешних источников не является абсолютной защитой и имеет следующие нюансы:
- Макросы, размещённые в доверенных расположениях (например, в корпоративной сетевой папке, добавленной в список доверенных), будут выполняться независимо от источника загрузки файла.
- Подписанные макросы, чей сертификат находится в списке доверенных издателей, обходят блокировку, если включён параметр «Отключить все макросы кроме цифровой подписи».
- Некоторые вредоносные файлы могут маскироваться под доверенные документы, используя поддельные подписи или exploiting уязвимости в самом Office. Поэтому блокировка макросов должна быть частью более широкой стратегии защиты (антивирус, ограничение прав пользователя, обучение персонала).
- Политика не влияет на макросы, написанные в языках, отличных от VBA (например, Office JavaScript API в надстройках). Для таких сценариев необходимы отдельные меры контроля.
Типичные ошибки и как их избежать
При настройке политики блокировки макросов часто встречаются следующие недочёты:
- Полное отключение всех макросов без учёта бизнес‑процессов. Это может привести к простою в работе с легитимными шаблонами. Решение: использовать доверенные расположения или подписанные макросы.
- Настройка только локальных параметров без учета групповой политики, что позволяет опытным пользователям изменить параметры вручную. Решение: применять GPO или машинный реестр, блокируя локальные изменения.
- Забывание перезапустить приложения после изменения реестра или GPO, что приводит к ложному выводу о неработающей политике. Решение: всегда выполнять перезапуск Office или вход в систему после внесения изменений.
- Полагаться únicamente на предупреждение (уведомление) и полагать, что пользователь не нажмет «Включить содержимое». Решение: комбинировать уведомление с блокировкой выполнения без возможности включения, либо проводить обучение сотрудников.
Практический следующий шаг
После прочтения этой статьи рекомендуется выполнить следующее:
- Определите, какой уровень безопасности макросов соответствует вашей среде (полная блокировка, блокировка с уведомлением или разрешение только подписанных макросов).
- Если ваша организация использует Active Directory, подготовьте GPO с параметром «Блокировать макросы, полученные из интернета» и, при необходимости, дополнительными настройками доверенных расположений.
- Тестируйте выбранную политику на ограниченной группе пользователей, используя тестовые файлы с макросами из интернета и из доверенных источников.
- После подтверждения корректной работы разверните политику на все устройства и документируйте процесс в wewnих инструкциях по безопасности.
- Периодически пересматривайте список доверенных расположений и издателей, удаляя устаревшие или подозрительные записи.
Материал носит информационный характер и описывает общие принципы настройки безопасности макросов в Microsoft Office. Для конкретной инфраструктуры рекомендуется проконсультироваться с администратором ИТ или специалистом по информационной безопасности перед внесением изменений в групповую политику или реестр.
