Элементы управления ActiveX и безопасность Office
Подписывание кода
Поскольку элементы ActiveX могут получать доступ к основным службам операционной системы, необходимо убедиться, что запускаемый элемент не является вредоносной программой. Выполнить такую проверку помогает технология Microsoft Authenticode®, которая позволяет разработчику подтвердить надежность создаваемого им элемента ActiveX. Эта процедура называется подписыванием кода и предоставляет пользователям возможность идентифицировать автора программы, прежде чем дать разрешение на ее установку или выполнение.
Если Вы когда-либо использовали неподписанные или неопознанные элементы управления ActiveX при работе с обозревателем Internet Explorer, Вы могли видеть диалоговые окна, сообщающие о том, что:
- Элемент управления не подписан
- Инициализация элемента небезопасна
- Элемент небезопасен для выполнения сценариев
Загруженные из Интернета элементы управления ActiveX могут выполнять такие же действия, что и обычная программа – например, удалять файлы и записи реестра. В случае использования Java этот вопрос решается путем ограничения действий, которые разрешено выполнять Java-апплету с файлами и системным реестром. Например, Java-приложение не может получить прямой доступ к файловой системе компьютера. Для элементов управления ActiveX используется другой подход: во-первых, необходимо выполнить проверку подлинности автора элемента ActiveX, во-вторых, необходимо проверить, что содержимое элемента ActiveX не было изменено с момента его подписывания, и, в-третьих, необходимо удостовериться, что выполнение элемента ActiveX является безопасным. Благодаря такому подходу, элементы ActiveX могут использовать все возможности операционной системы, но для того, чтобы разработчик мог гарантировать безопасность при работе с этими элементами, ему необходимо пройти строгий процесс получения сертификатов доверия, выдаваемых центрами сертификации.
Установка элементов управления ActiveX
Если пользователь пытается установить и запустить незарегистрированный элемент управления ActiveX, загруженный из Интернета, обозреватель Internet Explorer проверяет, содержит ли этот элемент управления цифровую подпись. Если файл элемента управления ActiveX (OCX-файл) имеет сертификат доверия, который уже был принят пользователем и считается доверенным, этот файл может быть установлен и зарегистрирован в системе. В зависимости от уровня безопасности, установленного для обозревателя Internet Explorer, пользователю предлагается установить элемент ActiveX, если в системе не содержатся сведения о его сертификате. Если пользователь принимает решение установить элемент ActiveX, в системный реестр заносятся сведения о сертификате, связанном с этим элементом.
Если OCX-файл входит в состав какого-либо приложения, установленного с компакт-диска или из другого локального источника, проверка сертификата (если он существует), связанного с этим файлом, не производится. В этом случае предполагается, что файл элемента управления связан с приложением, которое считается надежным для установки, и регистрация OCX-файла проходит без каких-либо дополнительных проверок.
После того, как элемент управления установлен на компьютере пользователя, он считается надежным, даже если изначально не имел цифровой подписи; при его запуске диалоговые окна с информацией о подписывании кода не выводятся.
Подписывание элементов управления ActiveX
Для того чтобы выполнить цифровое подписывание элемента управления ActiveX, Вам необходимо получить сертификат из центра сертификации (сведения о центрах сертификации можно найти через поисковые системы в Интернете). Для подписывания элемента ActiveX необходимо следовать указаниям выбранного Вами центра сертификации.
Центры сертификации предоставляют сертификаты различных уровней доверия, начиная от индивидуальных сертификатов и заканчивая сертификатами для корпораций. Ознакомьтесь с информацией о каждом центре сертификации, чтобы решить, какой из них в наилучшей степени отвечает Вашим требованиям.
Определение безопасности элементов управления ActiveX
Цифровая подпись является неотъемлемой частью элемента управления ActiveX. Таким образом, элемент ActiveX всегда содержит достоверную информацию о своем предназначении, предоставленную разработчиком. Тем не менее, безопасность работы с элементом ActiveX гарантируется только в тех случаях, когда он используется в условиях, в которых проводилось его тестирование.
Предполагается, что элементы управления ActiveX, отмеченные как безопасные, являются безопасными при всех возможных условиях использования. Таким образом, элемент, отмеченный как безопасный для выполнения сценариев (SFS) или инициализации (SFI), должен быть защищен от непредсказуемого поведения, которое могло быть не предусмотрено разработчиком при написании сценария. Хотя разработчику относительно просто создать элемент ActiveX защищенный от неправильного использования, невозможно гарантировать, что этот элемент всегда будет являться безопасным при использовании в сценариях, написанных другим разработчиком.
Отмечая элемент ActiveX как безопасный для выполнения сценариев или инициализации, разработчики тем самым заявляют, что при любых способах инициализации элемента, он не нанесет вреда системе и не нарушит ее безопасность.
Прежде чем отметить элемент управления ActiveX как безопасный, разработчик должен полностью удостовериться в том, что этот элемент на самом деле является таковым. Например, для каждого элемента ActiveX необходимо убедиться в том, что:
- Индексы не выходят за границы массивов, а также отсутствуют другие ошибки работы с памятью, которые могут привести к утечке или нарушению областей памяти.
- Проверяются и корректируются все входные данные, включая параметры инициализации, параметры методов и функции задания свойств (используются методы оценки допустимых значений ввода/вывода и защиты данных).
- Все данные о пользователе, а также все данные, вводимые пользователем, используются корректно и по назначению.
- Приложение прошло всестороннее и тщательное тестирование.
Автор: Артем Жауров aka Borodunter
Материалы взяты с сайта OSzone.net.