Microsoft Word является текстовым редактором, который наиболее популярный в мире. Такой успех объясняется огромной функциональностью этого редактора и удобность его реализации. Также этот редактор имеет свою систему безопасности, о которой мы поговорим в этой статье.
Защита документов Microsoft Word
Редактор разрешает поставить ЭЦП и парольную защиту на два вида документа:
- Пароль для модификации документа
- Пароль для открытия документа
Рисунок — 1
Microsoft Word разрешает вводить пароли длиной до 15 символов. Оба пароля запрашиваются при открытии документа. При отказе ввода пароля для модификации документа, документ открывает в режиме чтения. Пароль для открытия документа есть основой для создания ключа шифрования, который шифруется по алгоритму RC4. Также можно установить дополнительные степени защиты над документом:
- Фиксирование исправлений и записей. Все исправления фиксируются и отмечаются, впоследствии чего они могут быть приняты или отвергнуты автором или редактором документа.
- Запрещение изменений, кроме комментариев. При просмотре документа можно добавлять только комментарии.
- Изменение документа запрещено, но разрешено вводить данные в выбранные формы.
Защита VBA-модулей
Встроенный язык программирования VMA добавляет возможности к и так огромному выбору функций в форматах документов Microsoft. VBA-макросы являются практически не ограниченными, так как из макроса можно вызвать функции динамических библиотек, что дает доступ к компьютера в пределах прав конкретного пользователя. Защита содержимого VBA-программ необходима к примеру:
- для сохранения интеллектуальной собственности, которой есть VBA-программа
- для сохранения целостности этой программы от модификаций
Защита VBA-модулей
Язык VBA разрешает создавать различные действия при наступлении определенных событий с помощью макросов. Для Microsoft Word это:
- AutoOpen — вызывается при открытии документа
- AutoClose – вызывается при закрытии документа
- AutoExec – вызывается при запуске Microsoft Word
- AutoExit – вызывается при закрытии Microsoft Word
- AutoNew – вызывается при создании нового документа
К примеру, если в документе есть макровирус AutoOpen, то при открытии данного документа автоматически выполнится код макроса AutoOpen. Такой макрос может находится в шаблоне. Такие макросы выполняют свой код без ведома пользователя. Такой принцип используется макровирусами для распространения и активизации. Для примера рассмотрим классический макровирус:
- Макровирус содержится в макросе AutoOpen некоего документа Doc.xdoc
- Когда пользователь открывает документ, макровирус выполняет функции, а также копирует себя в макросы AutoOpen, AutoNew шаблона Doc.xdoc
- При открытии незараженого документа макрос копирует себя в новый документ
Microsoft Word предлагаю цифровые сертификаты в виде защиты от макровирусов. Реализация цифровых сертификатов основана на том, что при открытии документа который содержит VBA-модули, реализуется проверка электронной подписи VBA-модуля. Макросы блокируются, так как их подпись будет неверная.
Проблемы защиты документов Microsoft Word
Подсистема безопасности Microsoft Word имеет ряд недостатков. Начиная с паролей, то любая парольная защита в сравнении и генерированого пароля на основе крипрографического ключа имеет ряд недостатков:
- Пользователи могут небрежно относится к паролям, и вводить употребляемые фразы.
- Часто используют краткие пароли, что разрешает быстрее проводить атаку грубой силы.
Также проблемы безопасности усугубляется следующими аспектами:
- Шифрование RC4 который используется для шифрование документов, имеет ключ длинной до 128 бит. Microsoft Word ограничивает пароль до 15 символов, что означает длину пароля 9 байт. Тем самым эффективная длина ключа в 2 раза меньше чем предусмотрено алгоритмом RC4.
- Можно использовать односимвольные пароли
- Существуют утилиты автоматического подбора пароля для Microsoft Word.
Отсутствие реальной защиты VBA-модулей
Для анализа защиты VBA-модулей была реализована возможность создать макрос в документе, который ставит русский язык для выделенного фрагмента:
- Sub Macro()
- Selection.LanguageID = wdRussian
- Selection.NoProofing = False
- Application.CheckLanguage = True
- End Sub
Затем было поставлен пароль на этот документ от просмотра содержимого. Затем было просмотрен этот документ в редакторе DOS, и была видна следующая картина:
- SelectionZo0 A ©Ä LanguageIDис0 A ©Ä wdRussian=W0 A ©Ä NoProofing^]0 ÆA ©Ä Applicatione*0 A ©Ä CheckLanguageщ¯0 ¨
Видно, что отсутствует реальная защита VBA-макроса от просмотра. Совет таков, что VBA-макросы выносит максимально во внешние DLL.
Оригинал статьи размещён здесь: http://infoprotect.net/varia/Zasccita_dokumentov_Word