Macro-based атака в Excel обычно начинается не со взлома программы, а с обычного действия пользователя: открыть вложение, нажать «Включить редактирование», потом «Включить содержимое». После этого VBA-макрос получает право работать от имени этого пользователя. Он может читать файлы, которые доступны пользователю, скачивать данные из интернета, запускать другие программы, менять документы и отправлять информацию наружу.
Поэтому задача не в том, чтобы «запретить Excel» или вручную проверять каждую таблицу. Нормальная защита строится иначе: макросы по умолчанию не выполняются, а запуск разрешается только для понятных, подписанных и проверенных файлов.
Не открывайте подозрительные вложения на рабочей машине и не нажимайте «Включить содержимое», чтобы «просто посмотреть». Для Excel это равносильно разрешению выполнить код.
Что именно нужно держать под контролем
Речь не только о файлах с расширением .xlsm. VBA-код может находиться в разных форматах Excel:
- .xlsm — обычная книга с макросами;
- .xlsb — двоичная книга, тоже может содержать макросы;
- .xlam — надстройка Excel, часто загружается автоматически;
- .xltm — шаблон с макросами;
- .xls — старый формат, который тоже может хранить макросы;
- Personal.xlsb и папки XLSTART — места, откуда макросы могут запускаться вместе с Excel.
Опасность не только в том, что макрос стартует сам при открытии файла. Код может запускаться по кнопке, по событию листа, при активации книги, при закрытии файла или из надстройки. Пользователь часто видит только красивую форму или сообщение «включите макросы для корректной работы».
Ещё один момент: макрос работает с теми правами, которые есть у пользователя. Администратором быть не обязательно. Если бухгалтер имеет доступ к папке с финансовыми отчётами, макрос тоже получит этот доступ.
Правильная схема защиты: запретить всё, разрешить только проверенное
Самая рабочая модель для компании выглядит так:
- Запретить режим «включить все макросы».
- Блокировать макросы в файлах, пришедших из интернета, почты или внешних источников.
- Разрешать запуск только макросам с цифровой подписью доверенного издателя.
- Для внутренних рабочих макросов использовать контролируемые доверенные расположения.
- Не давать пользователям самостоятельно добавлять издателей и папки в исключения.
- Периодически пересматривать список разрешённых файлов
