Макросы что это и для чего
Что такое макросы в Word и Excel, как ими пользоваться
В статье рассмотрим вопрос, что такое макросы в Word и в программе Excel. На практике будет показано, как использовать макросы. С помощью макросов вы сможете упростить работу с документами Майкрософт Офис Ворд.
Что такое макрос простыми словами
Здравствуйте, друзья! Начинающие пользователи программы Майкрософт Офис Ворд и других программ, задаются вопросом, что такое макрос? Ведь об этом названии впервые услышали, и хотелось бы рассмотреть его подробно.
Итак, макрос – это программа на основе программного кода, которая встроена в Ворде, Excel, Пауер Поинт. Она написана на языке перечисленных программ и имеет набор команд. С помощью макроса можно записать какое-либо действие в документе и автоматически его воспроизвести в другом файле.
Если вы часто работаете с объемными документами, заполняете таблицы, то макросы здесь просто необходимы. Иногда мы пишем в документах одну и ту же нумерацию, проставляем различные списки. Если работать с макросами – этого труда можно избежать. Зато вы сэкономите свое время.
Далее рассмотрим работу с макросами в Ворде и в программе Excel.
Что такое макросы в Word, как настроить и найти макрос
Что такое макросы в Word? Как говорилось ранее, это инструмент для записи действий (их программирование). Чтобы пользоваться макросом, необходимо его настроить и найти на панели управления в Ворде.
Для настройки макросов в Ворде откройте программу Word 2007 на компьютере или другую версию. Далее нажмите вверху слева на логотип программы и кликните по кнопке Параметры Word (скрин 1).
В основных настройках установите маркер перед словом «Показывать вкладку Разработчик на ленте» (скрин 2).
Это позволит вам найти инструмент Макросы. Также они находятся во вкладке «Вид».
Далее нажимаете кнопку «Центр управления безопасностью» и активируете раздел «Включить все макросы», внизу устанавливаете галочку – «Доверять доступ к объектной модели VBA» (скрин 3).
Данные настройки помогут избежать ошибок во время работы с макросами. В других версиях Ворда, макросы настраиваются по схожему принципу.
Что такое макросы в Excel, как настроить
Макросы в программе Excel работают и настраиваются так же, как и в программе Ворд. Вы можете один раз произвести настройку макросов в Ворде и эта настройка перенесется в в Excel или Пауер Поинт.
Далее поработаем с макросами на практике.
Как работать с макросами
Работу с макросами можно разделить на два способа: сторонними программами и автоматическую. Если говорить о первом варианте, то для этого нужно установить специальные программы на компьютер. Если не хотите разбираться с программами, можно воспользоваться встроенной программой в Майкрософт Офис Ворд по работе с макросами. Давайте ее разберем.
Итак, чтобы записать макрос в Ворде или в Excel, следуйте инструкции:
Далее эту инструкцию разберем пошагово.
Как создать запись макроса
Чтобы записать макрос, запустите пустой текстовый документ или с текстом. Далее нажмите по разделу «Разработчик», затем кнопку «Запись макроса» (скрин 4).
В открытом окне пропишите имя макроса, установите кнопку «OK», чтобы началась запись. В процессе записи вы можете написать что-нибудь, например, Привет как дела? Далее нажмите кнопку «Остановить запись» и сохраните документ.
Программа Excel работает с макросами так же, как и Ворд. Нажимаете на вкладку «Разработчик», далее «Запись макроса» (скрин 5).
Затем заполняете таблицу, останавливаете запись макроса и снова сохраняете документ.
Далее разберем, как записанный макрос применять в Ворде и Excel.
Применение макросов в документе Ворд и Excel
Итак, чтобы применить макросы в Ворде, нажмите раздел «Разработчик» в новом документе. Далее кликните «Макросы». Из списка макросов выберите тот, который ранее использовали и нажмите кнопку «Выполнить» (скрин 6).
После этого записанный текст макросом будет вставлен в документ.
Как работает макрос в Excel? Все просто. Также нажимаете кнопку «Разработчик» далее «Макрос». Выбираете макросы и жмете по ним. Затем, надо нажать кнопку «Выполнить», чтобы записанный текст или числа вставились в таблицу.
Заключение
Сегодня был показано на практике, что такое макросы в Word и программе Excel. Аналогично, макросы работают и Power Point. Макрос – это простой инструмент для записи действий в документах. Вы можете один раз записать какой-нибудь текст, чтобы потом его не переписывать заново. Это намного лучше, чем тратить время на лишнюю работу.
Канал в Telegram
Вы здесь
Для чего нужны макросы в Excel?
Многие из Вас наверняка слышали термин «Макрос». Иногда при запуске некоторых документов Word, а чаще Excel, Вам выскакивало предупреждение: «Данный документ содержит макросы, которые могут нанести вред Вашему компьютеру. С целью безопасности макросы были отключены» и т.д. И многих это предупреждение пугает, хотя большая доля правды в этом предупреждении все ж присутствует. Но, это относится к документам, попавшим к Вам из неизвестных источников, а именно из сети, по почте и т.д. Чем же так опасен макрос и для чего они тогда нужны, если их использование небезопасно? Рассмотрим далее, а пока дадим определение макросу.
Что такое «Макрос»?
Как работают макросы?
Благодаря внедрению в MS Office языка Visual Basic, Microsoft удалось значительно расширить функционал своих продуктов. Макрокоманды, записанные пользователями или написанные программистами, способны автоматизировать большинство процессов и значительно сократить время на обработку данных. Тем самым, оптимизировать рабочее время сотрудников. Для выполнения макрокоманд необходима своя программная среда, в которой эти команды способны работать. Такой средой являются, например Excel, Word, Access. При написании сложных макросов, их запуск и выполнение, как правило, ограничивается рабочей станцией (ПК) на которой он был написан. Сложные, имеется ввиду, подключение дополнительных компонентов и объектов, которые попросту могут отсутствовать на другом ПК. Происходит это потому, что программный код не переводится в исполняемый машинный код и вдобавок к которому прикладываются необходимые модули и библиотеки, а выполняется через интерпретатор. Но, есть и преимущества в таком подходе, а именно, возможность произвести отладку сразу, «на месте», при возникновении каких либо ошибок, просмотреть код и дополнить его новыми инструкциями, расширив функционал макроса. Как правило, макросы написанные для Excel, не работают в Word или Access, только если не используется базовый набор процедур и функций, которые не затрагивают объекты приложения.
Как макросы помогают в работе?
При работе с большими объемами данных, которые необходимо тем, или иным образом обрабатывать, а так же при выполнении однообразных действий по обработке информации в таблицах (например, формирование сводных таблиц определенного формата), макросы незаменимы. Пример: Вам ежедневно необходимо получать данные из БД, производить с этими данными некоторые расчеты, затем из результатов свести сводную таблицу. На все у Вас уходит, допустим, 2 часа. Разработав и внедрив такой макрос, который будет все эти действия производить самостоятельно, у Вас время сократиться до пары минут, а точнее секунд т.к. остальное уйдет на открытие и получение данных. А если еще к расчетам «вручную» добавить допущенные механические ошибки, которые обязательно бываю, и которые в лучшем случае Вы обнаружите и будете искать, то это еще добавит время к тем двум часам. Макрос же при грамотной разработке и хорошо протестированный, позволяет избежать таких ошибок.
Это один из многих вариантов применения. Другой пример, на личном опыте. При работе с ежедневными накопительными данными, мне приходилось заполнять поле «Контрагент» (КА) соответствующим именем, имеющимся в базе. Название КА должно обязательно быть идентичным. Создание списка очень неудобно т.к. список состоит не из одной сотни КА. Я написал макрос, который запускается на исполнение, при нажатии в соответствующей колонке, правой кнопкой мыши. Открывается форма, со списком КА в которой также имеется «горячий поиск» в списке т.е. достаточно начать вводить сочетание символов содержащихся в названии и список тут же отфильтрует и оставит подходящих, далее остается выбрать из двух трех КА нужного. На все про все, не больше 5 сек. Вот как вариант. И примеров можно приводить кучу, в зависимости от специфики работы.
В чем заключается опасность макросов?
Варианты защиты от таких макросов:
На этом я завершаю вводную статью по макросам. В дальнейшем, я расскажу и покажу способы записи макросов в Excel. Постараюсь подбирать интересные и полезные примеры, а так же рассмотрим, каким потенциалом обладает Excel, если посмотреть на него глазами программиста.
P. S. Используя смекалку и фантазию на VBA можно написать простейшие и интересные игры. Если Вас заинтересовал такой вариант применения, то можете ознакомиться с играми, написанными для Excel (игры в Excel).
Безопасность Microsoft Office: макросы VBA
В 2016 году исследователи отметили всплеск активности, практически второе рождение, еще недавно казавшейся безнадежно устаревшей техники распространения нежелательного ПО — несущих злонамененную нагрузку макросов в документах Microsoft Office, т.н. «макровирусов».
Самый знаменитый макровирус, Melissa, появился в марте 1999 года. Вирус поразил по крайней мере сто тысяч компьютеров по всему миру, парализовал работу сотен компаний, ущерб экономике составил 80 миллионов долларов в одних только США.
Судя по отчетам компаний, связанных с информационной безопасностью (например, здесь ), на сегодняшний день макровирусы все еще занимают верхние строчки в рейтингах по распространенности.
Не появилось никаких способствовавших этому новых уязвимостей, как в общем-то не было никаких чисто технических предпосылок. По-видимому, распространители malware, испытывая недостаток в свежих багах, обратили свои взоры на плохо забытые (и все еще эффективные) старые.
Почему почти через двадцать лет та же техника остается на вооружении всевозможных компьютерных злоумышленников? Попробуем разобраться.
Kovter и Emotet распространяются при помощи макросов в документах Office.
Что такое «макрос»
Так называемые «макросы» Microsoft Office представляют собой небольшие программы для интерпретируемого языка Visual Basic for Applications (VBA), поддержка которого встроена в линейку продуктов Microsoft Office.
Макросы в силу своих возможностей могут быть использованы для практически любой задачи автоматизации офисной работы.
Какие программы поддерживают макросы VBA
VBA охватывает все версии Microsoft Office для Windows, начиная с 1997г. и включая еще не вышедший 2019, а также некоторые другие приложения Microsoft, такие как MapPoint и Visio, и ПО других производителей: AutoCAD, CorelDraw, LibreOffice, Reflection, WordPerfect.
Реализована поддержка VBA и в Office for Mac OS X, за исключением 2008.
При выборочной установке Microsoft Office можно отказаться от поддержки VBA, но по умолчанию эта подсистема входит в набор устанавливаемых программ.
Редактор VBA в Microsoft Word
Что умеет VBA
Макросы документов обладают довольно богатым функционалом, который можно разбить на три категории:
Доступ к интерфейсу и событиям интерфейса офисного приложения позволяет упростить работу с макросами (например, помогает привязать исполнение макроса к событию или комбинации клавиш). Исполнение макросов может быть привязано к различным событиям интерфейса или к действиям пользователя. Например, макрос AutoOpen привязывается к событию открытия документа, чем и обязан использованию злоумышленниками в качестве основного.
Доступ к файловой системе и ресурсам ОС бывает необходим для выполнения сложных задач автоматизации, связанных с обработкой нестандартных форматов документов и/или автоматического распространения (например, рассылка автоматически сгенерированных отчетов по почте).
Последний класс функциональных возможностей делает исполнение макроса с точки зрения безопасности равносильным запуску обычного исполняемого файла. C учетом того, что макросы могут быть присоединены к документам, и начинать свое выполнение автоматически (если не учитывать ограничения безопасности), можно утверждать, что открытие такого документа равносильно запуску стороннего исполняемого файла, который получает те же привилегии в системе, что и активировавший его пользователь.
Автоматизация позволяет программам на VBA управлять поведением не только приложения-хоста, но и другими приложениями Microsoft Office (как, впрочем, и любыми объектами COM в системе).
Само взаимодействие между скриптами VBA и хост-приложением осуществляется при помощи технологии автоматизации OLE. Для этого хост-приложение предоставляет API в виде COM-интерфейсов и библиотеку типов (TypeLibrary). Это API позволяет взаимодействовать с хост-приложением: например, модифицировать содержимое документа или получать различные уведомления о действиях пользователя. API не универсально, и может зависеть от типа и версии хост-приложения, поэтому макрос, предназначенный для работы внутри Microsoft Word, не будет работать в Excel. Однако, макросы документов могут использовать API автоматизации сразу же нескольких хост-приложений. Например, можно создать макрос, который исполняется внутри Excel: читает таблицу, формирует на её основе отчеты в формате Microsoft Word и рассылает их по различным почтовым адресам, используя автоматизацию Microsoft Outlook.
Помимо широких возможностей в операционной системе, программы VBA обладают такими привлекательными для злоумышленника свойствами, как надежность и стабильность выполнения, совместимость (с некоторыми оговорками) со всей линейкой Office. Подобной независимостью, обеспеченной виртуальной машиной VBA, никак не может похвастать большинство логических, и тем более бинарных уязвимостей.
Существуют документы-шаблоны, загружаемые приложением по умолчанию, к примеру, normal.dotm в Word. Эти документы также могут содержать макросы, запускаемые вместе с приложением. Эта простейшая техника может быть использована для закрепления нежелательного ПО в системе.
Методы незаметного проникновения на ПК в основном основаны на стандартных техниках, применяемыми вредоносным ПО. К ним можно отнести шифрование бинарной полезной нагрузки, которая записывается на диск макросом, использование WMI для создания дочернего процесса, выполняющего дальнейшие деструктивные действия.
Пример макроса с «полезной» нагрузкой
Как реализована поддержка VBA
Причиной появления архитектуры VBA в том виде, в котором она известна нам сегодня, скорее всего, стала оптимизация компанией Microsoft затрат на разработку языка и самого движка макросов. За основу был взят готовый интерпретатор скриптового языка с возможностями, существенно превышающими требования, предъявляемые к макроязыкам офисных документов. Это позволяет создавать на VBA макросы, которые по своему функционалу, скорее, похожи на плагины для офисных приложений, и к ним должны предъявляться другие требования безопасности, распространения и публикации.
VBA является несколько урезанным вариантом Visual Basic и отличается также тем, что программы на нем работают лишь внутри приложения-хоста (например, Excel), связаны с документом, для которого созданы, и не могут быть запущены в качестве отдельного приложения.
В умелых руках эти небольшие ограничения легко преодолеваются. Программы VBA имеют возможность использовать динамические библиотеки DLL, классы COM, доступ к файловой системе — этого более, чем достаточно, чтобы произвести в операционной системе любые действия, доступные аккаунту, под которым запущены приложения Office.
Производитель утверждает, что макросы VBA в приложениях Office под Mac OS выполняются внутри песочницы, без доступа к системным функциям, файловой системе и другим приложениям. Однако с учетом того, что интерпретатор VBA под эту ОС разработан не так давно, исследователей безопасности вполне могут ожидать интересные находки в этом направлении.
В приложениях пакета для Windows изоляция исполнения макросов отсутствует. Макросы выполняются от имени и с правами пользователя, открывшего документ.
Обычно виртуальная машина VBEx (x — номер версии) устанавливается вместе с офисным пакетом и располагается в %CommonProgramFiles%\microsoft shared\VBA\«подпапка с версией». Она представляет собой несколько DLL библиотек и библиотек с ресурсами. Библиотеки загружаются в адресное пространство процесса приложения, которое выполняет макросы документа.
В этом случае по названию (расширению имени файла) или значку пользователь никак не определит, что документ может содержать макросы.
Microsoft любезно опубликовала спецификацию формата хранения проектов VBA в документах Office: [MS-OVBA]. Как и следовало ожидать, многие интересные поля структур описаны в спецификации приблизительно следующим образом:
MUST be ignored on read. MUST not be present on write.
Тем не менее, при желании можно выяснить, что кроме исходного кода VBA в файл хранилища записывается также скомпилированый так называемый p-code (packed code). Формат этого промежуточного кода для виртуальной машины зависит от версии VBA. Если документ открыт в приложении, использующем ту же версию виртуальной машины, p-code будет загружен и выполнен, а исходный код проигнорирован. Существует также и третий вариант сохраняемого кода: это специфичный для версии приложения двоичный формат, который в спецификации обтекаемо назван Performance Cache и записывается в файл при выполнении программы.
Любопытно заметить, что, если формат p-code частично доступен антивирусным компаниям на условиях Non Disclosure Agreement, то о формате Performance Cache, называемом в ряде источников также Execode, практически неизвестно (основываясь на некоторых прецедентах можно даже предположить, что неизвестно и самой компании Microsoft).
Подобная техника дает определенную свободу действий создателям макровирусов и влечет за собой дополнительные сложности для антивирусных сканеров: в зависимости от версии пакета и виртуальной машины может быть скомпилирован исходный код, использован p-code либо загружен Performance Cache, которые совершенно необязательно могут соответствовать один другому.
При открытии документов, содержащих проекты VBA, приложение создает временный файл-хранилище, в который копирует директории VBA. Копирование осуществляется средствами системного Structured Storage API, непосредственно с содержимым хранилища на этом этапе приложения Office не взаимодействуют. Код VBA, в одном из трех вариантов, будет загружен виртуальной машиной только после того, как пользователь разрешит выполнение (или если выполнение разрешено по умолчанию).
Встроенные механизмы противодействия макровирусам
Можно выделить два основных вопроса безопасности, которые необходимо решить при разработке архитектуры собственного макроязыка:
* К чему могут иметь доступ макросы
* Могут ли макросы распространяться как составная часть документов.
Если рассмотреть архитектуру макросов VBA от Microsoft, описанную выше, становится очевидно, что оба эти вопроса решены неправильно. Это привело к тому, что открытие документа Microsoft Office c макросами равносильно запуску обычного исполняемого файла.
Таким образом, документы Microsoft Office с макросами:
* Обладают свойствами и возможностями обычного исполняемого файла
* Не принадлежат к зарегистрированному в системе типу исполняемых файлов и не воспринимаются пользователями как исполняемые.
Из-за распространенности пакета Microsoft Office и пересылок документов в почтовых вложениях, а также двух свойств документов с макросами, описанных выше, они стали легким и надежным способом проникновения вредоносного ПО на компьютеры пользователей. Настолько легким, что компании Microsoft пришлось решать эту проблему при помощи расширения функции механизма безопасности офисного пакета.
Два механизма безопасности интегрированы непосредственно в приложения Microsoft Office:
* Защищенный режим просмотра
* Политики запрета исполнения макросов VBA.
В Microsoft Office есть защищенный режим, который активируется при просмотре файлов, загруженных из интернета, запрещает запуск любого активного содержимого (в том числе, и макросов) и создает ряд ограничений для процесса, который открывает этот документ. При открытии документа в таком режиме создается дочерний процесс (в котором и происходит просмотр документа) с пониженным уровнем целостности и ограничением Job на создание дочерних процессов (делается ограничением одного активного процесса в Job).
Эти ограничения, в первую очередь, направлены на предотвращение эксплуатации обычных бинарных уязвимостей в самом офисном приложении.
Изоляция процесса, отображающего документ в защищенном режиме, реализована в целом хорошо и заслуживает отдельного упоминания.
На уровне приложения в ОС Microsoft Windows предоставляет следующие возможности изоляции процесса:
* Ограничения токена (маркера доступа) процесса
* Ограничения GUI-подсистемы
* Ограничения объекта Job для процесса.
Изоляция процесса офисного приложения, отображающего документ, реализуется при помощи всех этих трех механизмов.
Примерная схема работы защищенного режима просмотра документов Microsoft Office
Недоверенные документы открываются в изолированном процессе, который создается главным процессом-брокером офисного приложения. Для этого формируется специальный токен, с которым будет создаваться изолированный процесс при помощи функции CreateProcessAsUser. В зависимости от того, поддерживает ли операционная система запуск процессов с токеном AppContainer или нет, токен формируется по-разному.
Для операционных систем, поддерживающих технологию AppContainer (Windows 8 и выше), выполняется создание папки контейнера, настройка разрешений для работы с именованным каналом, по которому изолированный процесс может общаться с процессом-брокером, а также добавляется особая возможность (Capability) с недокументированным SID, свойственная только Microsoft Office. Процессы, работающие на основе технологии AppContainer, ограничены добавленными в них возможностями (Capabilities). Они определяют границы песочницы, в которых исполняется процесс. Изолированный процесс офисного приложения, таким образом, может лишь работать с файлами внутри папки собственного контейнера, и общаться с процессом-брокером через именованный канал. Доступ в сеть полностью закрыт, поскольку у процесса отсутствуют возможности (Capability) для открытия портов и исходящих соединений.
Для более ранних операционных систем, не поддерживающих технологию AppContainer, но активирующих исполнение процесса с низким уровнем целостности, выполняется более сложная настройка токена изолированного процесса. Отключаются следующие SID в группах токена: Domain Users, Administrators, Console Logon, This Organization, NTLM Authentication, Medium Mandatory Level. SID следующих сущностей ограничиваются в маркере доступа изолированного процесса: Restricted Code, Everyone, Users, Logon Session. Настраиваются разрешения для работы с именованными каналом процесса-брокера и понижается уровень целостности до низкого. Также создается папка для работы изолированного процесса и настраиваются разрешения для взаимодействия с ней.
После настройки маркера доступа вне зависимости от поддержки технологии AppContainer создается процесс в состоянии паузы Suspended. Этот процесс добавляется в Job с особыми ограничениями. Ограничения объекта Job обычно следующие:
* Число активных процессов – 1
* Завершение процессов при необработанном исключении
* Завершение дочерних процессов при завершении процесса-родителя.
Опционально в зависимости от настроек офисного приложения формируется изоляция GUI, в частности, может быть создан новый рабочий стол для изолированного процесса. Обычно этого не делается. Рабочий стол определяет, в частности, буфер обмена. После создания, настройки разрешений процесса и добавления его в объект Job, процесс брокер возобновляет выполнение изолированного процесса, выводя его из состояния Suspended.
Описанная выше система изоляции процесса, в котором происходит открытие недоверенного документа, существенно усложняет эксплуатацию обычных бинарных уязвимостей. Как правило, злоумышленникам приходится искать в таком случае дополнительные уязвимости в ядре ОС, чтобы выйти за пределы создаваемой процессором-брокером песочницы изолированного процесса, в котором отображается документ.
Однако при разрешении запуска макросов приложение не будет работать в защищенном режиме (даже если файл был загружен), и таким образом виртуальная машина VBA не получит ограничений. Пользователь может отключить режим защищенного просмотра нажатием кнопки «Разрешить редактирование» / «Enable editing», которая появляется на желтой полосе предупреждения при открытии загруженного документа.
Параметры запуска приложений VBA можно изменить пользовательскими настройками.
Настройка политики запуска макросов в окне «Trust Center»
По умолчанию, стоит настройка, запрещающая исполнение всех макросов с оповещением пользователя. «Тревожный сигнал» выглядит следующим образом:
Нажимая на кнопку «Enable Content», пользователь разрешает исполнение всех макросов документов, в том числе, и автоматических, тем самым ставя под угрозу заражения свой ПК.
В ответ на возросшее количество угроз от распространения документов с макросами, в Microsoft разработали более жесткую политику безопасности, которая может быть настроена администраторами через механизм групповых политик Windows. Администратор может её сконфигурировать таким образом, что будет апрещено исполнение макросов в документах, загруженных по сети.
Также следует заметить, что для всех политик имеются исключения:
* Доверенные расположения в файловой системе
* Доверенные издатели.
Документы из доверенных расположений в файловой системе открываются с минимальными ограничениями. То же самое относится к механизму доверенных издателей. В частности, автоматически могут запускаться VSTO, подписанные сертификатами доверенных издателей.
Обход методов противодействия макровирусам
Большинство методов обхода механизмов безопасности строятся на социальной инженерии. Пользователи не воспринимают файлы Microsoft Office с макросами как исполняемые, поэтому легко вводятся в заблуждение демонстрацией ненормального открытия документа и приглашением пользователя включить макросы, чтобы устранить проблемы. Злоумышленники предоставляют подробные инструкции, на случай, если пользователи сами не могут догадаться как это сделать, и весомо выглядящее обоснование необходимости их включения.
На форумах соответствующей тематики можно встретить объявления о создании «индивидуальных дизайнерских решений» для оформления документов, призванных убедить пользователя включить активное содержимое. Стоимость таких решений может быть значительной, а эффективность, по мнению авторов, доходит до 60%.
Эксплуатируется желание пользователя поскорее получить информацию из документа. Из-за этого многие, даже не думая, разрешают исполнение макросов. Формирование внешнего вида и содержимого таких документов зависит уже исключительно от фантазии злоумышленников и основано на незнании типичными пользователями сложных возможностей макроязыка VBA, приводящих к заражению системы вредоносным ПО. После разрешения пользователем исполнения макросов и заражения компьютера, макрос, как правило, показывает пользователю ту информацию, которую он хотел увидеть, меняя соответствующим образом открытый документ при помощи API автоматизации.
Современные версии Office имеют возможность изменения групповых политик, что позволяет доменному администратору заблокировать выполнение VBA на всех пользовательских компьютерах без возможности изменения этой настройки пользователем. Несомненно, с точки зрения безопасности это шаг вперед. К сожалению, эта возможность зачастую не применяется, поскольку во многих компаниях есть свой активно используемый набор макросов, от которого никто не желает отказываться.
Есть и еще один неочевидный нюанс, который представляет собой значительную брешь в безопасности. В памяти программы Office содержится «свойство» AutomationSecurity — переменная, содержащая настройки безопасности для активного содержимого, в том числе для макросов и элементов ActiveX. Если приложение было запущено пользователем стандартным способом, например, значком на рабочем столе или открытием документа, эта переменная будет соответствовать настройкам, выставленным пользователем в окне «Центра безопасности» или администратором при помощи шаблонов. Если же приложение запущено как клиент Автоматизации, из скрипта или другого приложения (к примеру, приложения для бухучета), переменная AutomationSecurity будет содержать минимальное значение «msoAutomationSecurityLow». В результате при обработке автоматизированным приложением какого-либо документа будут выполнены и содержащиеся в документе VBA-программы, если только программист специально не изменил переменную на msoAutomationSecurityByUI или msoAutomationSecurityForceDisable.
И в заключение.
Что же вирус Melissa и причиненные им убытки? Удивительно эффективный и эффектный результат выглядит еще более впечатляющим, если обратить внимание на одну маленькую деталь: предупреждающее сообщение об опасности макровирусов при открытии документа, содержащего макросы, появилось еще в Microsoft Office 97 (Melissa, напомним, появился в 1999).
Для того, чтобы отключить предупреждение, необходимо было снять «галочку» в настройках.
Можно было прочитать подробное разъяснение об опасности макровирусов и нежелательности запуска макросов из ненадежных источников.