Флаг "Safe for scripting" технологии ActiveX
Флаг "Safe for scripting" технологии ActiveX
Летом 1999 года Георгий Гунински (Georgi Guninski) и Ричард М. Смит (Richard М. Smith) (и не только они) независимо обнаружили два различных изъяна в методе обработки элементов ActiveX броузером Internet Explorer. Установив для элементов управления флаг "safe for scripting" ("помеченный как безопасный"), их разработчики могут полностью обойти обычную процедуру проверки сертификатов Authenticode. В качестве примеров таких элементов ActiveX можно привести Scriptlet. typelib и Eyedog.OCX, предназначенные для использования в IE4 и более ранних версиях. Если для этих элементов управления установлен флаг "safe for scripting", то при их запуске в броузере на экран не будет выводиться никаких сообщений.
Возможно, не стоит волноваться по поводу элементов управления ActiveX, выполняющих безобидные функции, однако и Scriptlet, и Eyedog имеют доступ к файловой системе пользователя. Элемент Scriptlet. typelib позволяет создавать, редактировать и перезаписывать файлы, хранящиеся на локальном диске, a Eyedog — обращаться к системному реестру и осуществлять сбор информации о технических параметрах компьютера.
Георгий Гунински написал проверочный код для элемента управления Scriptlet, который помещает в каталог Startup удаленного компьютера исполняемый текстовый файл с расширением .НТА (приложение HTML — HTML Application). При следующей перезагрузке системы этот файл выполняется, и на экране отображается безобидное сообщение от Георгия. Ниже приведен код, реализующий данную идею.
<object id="scr"
classid="clsid:06290BD5-48AA-HD2-8432-006008C3FBFC" >
</object> <SCRIPT> scr.Reset ();
scr.Path="C:\\windows\\Start
Menu\\Programs\\StartUp\\guninski.hta";
scr.Doc="<object id='wsh'
classid='clsid:F935DC22-1CFO-11DO-ADB9-OOC04FD58AOB'X/
object><SCRIPT>alert('Written by Georgi Guninski
wsh.Run('с:\\command.com')
;</"+"SCRIPT>";
scr.write(); </SCRIPT>
</object>
Масштабы потенциального воздействия могут быть устрашающими. Чтобы установить флаг "safe for scripting" для элемента управления ActiveX, нужно либо реализовать в них интерфейсIObjectSafety, либо пометить их как безопасные. Для этого в системном реестре в ключ Implemented Categories, соответствующий данному элементу управления, необходимо добавить параметр 7DD95801-9882-11CF-9FA9-OOAA006C42C4 . Зачастую в системном реестре Windows находится несколько десятков таких элементов управления. Для подобных атак могут быть использованы те из них, которые могут выполнять действия с повышенными привилегиями (например, запись на диск или запуск кода).
Есть несколько способов, позволяющих определить, какие из элементов управления активно используются системой. Для обычного просмотра активных приложений СОМ (включая элементы управления ActiveX), установленных на компьютере, щелкните на кнопке Start, выберите команду Run и введите dcomcnfg. При этом на экране появится диалоговое окно, представленное на следующем рисунке.