"Человек - самое уязвимое место в системе безопасности.."

Защита документов Word

Microsoft Word является текстовым редактором, который наиболее популярный в мире. Такой успех объясняется огромной функциональностью этого редактора и удобность его реализации. Также этот редактор имеет свою систему безопасности, о которой мы поговорим в этой статье.

Защита документов 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.