Проверка безопасности VBA должна входить в число регулярных процедур. Язык программирования VBA в силу его повсеместного распространения и использования относится к уязвимым и часто атакуемым объектам, на которые направлены атаки хакеров. Явный тому пример – продукты Microsoft Office. В связи с этим пользователи должны быть осведомлены как защитить программный код, проверить его безопасность, избежать кражи макросов. Помочь в этом могут как стандартные встроенные инструменты, так и дополнительные приложения, специализированное ПО вроде Solar appScreener.

Защита VBA: основы

Для защиты от копирования, взлома, заражения VBA кода могут быть использованы как стандартные, так и дополнительные инструменты. Вторые, как правило, более сложные, надежные, потребуют квалификации установщика. Тем не менее ни один из вариантов не гарантирует, что настроенная защита VBA будет безупречна. На практике используется два основных защитных способа позволяющих уберечь VBA-проекты от взлома и несанкционированного использования:

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

  2. Дополнительные решения. Например, компилятор. Такое программное обеспечение позволяет надежно скрыть формулы в двоичном формате, перейти на использование защищенного кода, установить защиту от копирования посредством блокировки оборудования электронных таблиц. Также возможно создание системы лицензирования доступа к информации путем привязки книги к определенному компьютеру, что ограничивает использование информации изначально.

При выборе средств защиты VBA необходимо руководствоваться конечной целью и областью применения. Далеко не всегда сложные инструменты с многоуровневой защитой – это удобно и практично. Зачастую достаточно использовать встроенные возможности по обеспечению безопасности кода, которые заложены в стандартные инструменты.

Защита кода VBA на примере использования Macro Tools VBA

  • Задание пароля на нужный модуль VBA. Для исполнения достаточно войти во вкладку Tools(инструменты) находясь в среде VBE, далее выбрать строку VBAProject Properties (Свойства проекта VBA), перейти в раздел Protection (Защита). После этого установить пароль. Данный способ защиты кода наиболее простой и предназначен, чтобы исключить случайный доступ к информации. Легко отключается посредством готового кода, находящегося в свободном доступе.

  • Установить статус проекта Project is Unviewable. Позволяет сделать проект недоступным к просмотру случайным пользователем. Основывается на сознательной замене ключей проекта. Сначала извлекают файл Excel распаковав предварительно текущий архив. Находим папку, которая называется xl, после этого в ней открываем файл vbaProject.bin. В нем обнаружить ключи. Поменять заданные значения в строке на пустые. Выполнить конвертацию архива в форму Excel файла. Такой способ безопасного хранения файла или ограничения просмотра считается одним из распространенных способов защиты, потому что большая часть пользователей, без знаний о структуре файла не смогут открыть его.

  • Использование скрытых модулей. Основывается на скрытии нужных модулей VBA, что приводит к тому, что они не отображаются в книге. Могут быть обнаружены только с помощью других офисных программ или редакторов. Нужно обнаружить и использовать файл vbaProject.bin. Открыв искомый файл обнаружить строчку Module1=, где в виде цифр или букв перечисляются названия модулей. Если удалить название из строки, то модуль будет скрыт из общего доступа.

Защита кода VBA посредством дополнительных инструментов

  • Обфускация кода. Способ основывается на приведении первоначального кода в сильно измененный вид, что делает невозможным его чтение и использование. Для этого понадобится специальное ПО, которое производит форматирование кода, изменение названий содержимого кода. После выполнения такой защиты рекомендуется протестировать файл на работоспособность, т.к. высока вероятность появления ошибок.

  • Перенос известного VBA кода в dll. Понадобится еще создать dll файл, куда переносится VBA код записанный иным языком программирования. Чтобы получить доступ к информации понадобится располагать двумя файлами: Excel, dll. Такой способ не совсем удобен при частом обращении с исходным файлом, плюс требует определённой квалификации пользователя.

Проверка безопасности VBA входит в число обязательных процедур если приходится иметь дело постоянно с макросами. Код легко может содержать вирусы, представлять угрозу для информационных баз компании. Важность представляет, как защита самой информации, записанной в коде, так и безопасность использования файла без рисков заражения другой информации или ее кражи посредством вредоносного кода.