Открыть сервисСервис

ActiveX-скрипты

ActiveX — это технология, разработанная корпорацией Microsoft в 1996 году, представляющая собой набор программных компонентов и интерфейсов, позволяющих создавать интерактивные элементы (элементы управления) для веб-страниц и приложений, работающих в среде Windows. Технология основана на модели COM (Component Object Model) и предназначена для повторного использования кода, а также для расширения функциональности веб-браузеров, в первую очередь Internet Explorer.

История

Предпосылки и создание

Технология ActiveX была представлена как преемница более ранних технологий Microsoft — OLE (Object Linking and Embedding) и OCX (OLE Custom Controls). В середине 1990-х годов, с ростом популярности Всемирной паутины, Microsoft стремилась интегрировать свои настольные технологии в веб-среду. ActiveX был анонсирован в 1996 году на конференции Professional Developers Conference (PDC) как часть стратегии Microsoft по созданию «активного контента» в Интернете. В отличие от статичных HTML-страниц, ActiveX позволял внедрять в браузер полноценные приложения, написанные на языках C++, Visual Basic или Delphi.

Развитие и пик популярности

Наибольшее распространение технология получила в конце 1990-х — начале 2000-х годов, когда Internet Explorer занимал доминирующее положение на рынке браузеров (до 95% в 2002–2003 годах). ActiveX использовался для создания:

  • мультимедийных проигрывателей (Windows Media Player);
  • офисных плагинов (просмотр документов Word и Excel в браузере);
  • систем дистанционного банковского обслуживания (в частности, в России для работы с электронными подписями и криптопровайдерами);
  • игр и анимации (например, в некоторых онлайн-играх начала 2000-х).

Упадок и критика

С середины 2000-х годов технология начала подвергаться критике из-за проблем с безопасностью. ActiveX-элементы управления имели полный доступ к операционной системе, что делало их привлекательной целью для злоумышленников. Многочисленные уязвимости (например, в элементе управления DirectAnimation.PathControl или в MSHTML) приводили к массовым заражениям компьютеров через drive-by download-атаки. В ответ на это:

  • Браузеры-конкуренты (Mozilla Firefox, Google Chrome, Opera) принципиально отказались от поддержки ActiveX, используя вместо него плагины на основе NPAPI (Netscape Plugin Application Programming Interface) или собственные расширения.
  • Начиная с Windows Vista, Microsoft ввела механизм «защищённого режима» (Protected Mode) в Internet Explorer, который ограничивал права ActiveX-элементов.
  • В 2015 году Microsoft анонсировала прекращение поддержки ActiveX в новом браузере Microsoft Edge, сделав ставку на современные веб-стандарты (HTML5, JavaScript, WebAssembly).

Окончательно технология была выведена из активного использования с выходом Windows 10 и прекращением поддержки Internet Explorer 11 в 2022 году. Однако в некоторых корпоративных и государственных системах (особенно в России и странах СНГ) ActiveX-скрипты продолжали использоваться вплоть до середины 2020-х годов в режиме совместимости (IE Mode) в Microsoft Edge.

Архитектура и принцип работы

Компонентная модель

ActiveX основан на COM (Component Object Model) — стандарте, определяющем способ взаимодействия программных компонентов. Каждый ActiveX-элемент представляет собой COM-объект, зарегистрированный в системном реестре Windows. Для работы в браузере элемент должен реализовывать интерфейсы IUnknown, IClassFactory и IDispatch (для поддержки скриптов).

Сценарии использования

ActiveX-скрипты обычно встраиваются в HTML-страницу с помощью тега <object>: ``html <object classid="clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" codebase="http://example.com/control.cab"; width="400" height="300"> </object> ``

  • classidуникальный идентификатор CLSID (Class Identifier), указывающий на зарегистрированный в системе COM-компонент.
  • codebase — URL-адрес, откуда браузер может загрузить и установить элемент управления, если он отсутствует на компьютере пользователя.
  • Параметры передаются через вложенные теги <param>.

Языки программирования

Разработка ActiveX-элементов велась на:

  • C++ (с использованием ATL — Active Template Library или MFC — Microsoft Foundation Classes);
  • Visual Basic 6.0 (создание простых элементов управления);
  • Delphi (через поддержку COM).

Для написания сценариев, управляющих ActiveX-элементами, использовались языки VBScript (Visual Basic Scripting Edition) и JScript (реализация JavaScript от Microsoft). Эти скрипты могли вызывать методы, изменять свойства и обрабатывать события ActiveX-объектов.

Классификация ActiveX-элементов

По типу функциональности

  1. Элементы управления (Controls) — визуальные компоненты (кнопки, списки, календари, графики).
  2. Документы (Documents) — позволяют отображать в браузере документы других приложений (например, Word или Excel).
  3. Кодексы и фильтры — для обработки мультимедиа (например, декодеры видео).
  4. Серверные компоненты — используются на стороне веб-сервера (например, в ASP — Active Server Pages) для обработки запросов.

По степени доверия

  • Подписанные (Signed) — содержат цифровую подпись разработчика, что позволяет браузеру проверить издателя и целостность кода. Подпись не гарантирует безопасность, но даёт пользователю возможность принять решение об установке.
  • Неподписанные (Unsigned) — считаются потенциально опасными; в современных версиях Windows их установка по умолчанию блокируется.

Проблемы безопасности

Основные уязвимости

ActiveX стал одной из самых критикуемых технологий в истории веба из-за присущих ей рисков:

  • Полный доступ к системе — элемент управления может выполнять любые действия от имени текущего пользователя: читать и записывать файлы, изменять реестр, запускать программы.
  • Отсутствие изоляции — в отличие от современных браузерных песочниц (sandbox), ActiveX-элементы работают в том же процессе, что и браузер.
  • Установка без ведома пользователя — при использовании параметра codebase браузер мог автоматически загрузить и установить элемент управления (если пользователь соглашался на диалоговое окно).
  • Уязвимости в популярных элементах — злоумышленники активно эксплуатировали дыры в элементах управления, поставляемых с Windows (например, MSXML, WebBrowser, Shockwave Flash).

Известные инциденты

  • В 2008 году через уязвимость в элементе управления SnapStream Media было заражено более 1 миллиона компьютеров в Китае.
  • В 2014 году Microsoft выпустила экстренное обновление для устранения критической уязвимости в элементе управления Internet Explorer (CVE-2014-1776), которая использовалась для целевых атак на правительственные организации.
  • В 2019 году компания FireEye сообщила о продолжающемся использовании ActiveX-уязвимостей в атаках на промышленные предприятия.

Применение в России

Особенности использования

В России технология ActiveX получила широкое распространение в корпоративном и государственном секторах, что было связано с:

  • Криптографией — многие системы электронной подписи (например, «КриптоПро CSP») использовали ActiveX-элементы для взаимодействия с браузером при подписании документов на веб-порталах (госуслуги, электронные торги, системы документооборота).
  • Банковскими системами — «клиент-банк» и системы ДБО (дистанционное банковское обслуживание) часто требовали установки ActiveX-компонентов для работы с USB-токенами и смарт-картами.
  • Государственными информационными системами — порталы госзакупок, судебных дел, налоговой службы (ФНС) до 2020 года активно использовали ActiveX.

Переход на альтернативы

С 2020 года, в связи с прекращением поддержки Internet Explorer и требованиями импортозамещения, российские разработчики начали массово переходить на:

  • NPAPI-плагины (для Firefox ESR);
  • Native Messaging (для Chrome и Chromium);
  • Веб-расширения на основе JavaScript;
  • Собственные браузеры (например, «Яндекс.Браузер» с режимом совместимости).

Тем не менее, по состоянию на 2024 год, в некоторых унаследованных системах (legacy systems) ActiveX-скрипты продолжают использоваться в режиме эмуляции Internet Explorer в Microsoft Edge.

Интересные факты

  • Название «ActiveX» было выбрано как маркетинговый ход, подчёркивающий «активность» и «интерактивность» технологии по сравнению с пассивным HTML.
  • Технология ActiveX была одной из причин антимонопольного дела против Microsoft в США (1998–2001), где утверждалось, что компания незаконно связывала Internet Explorer с Windows, используя ActiveX для вытеснения конкурентов.
  • Несмотря на упадок, некоторые ActiveX-элементы управления до сих пор поставляются с Windows 10 и 11 (например, Microsoft Web Browser Control), но их использование в браузере заблокировано.

Источники

  • Microsoft Corporation. «ActiveX Controls» // MSDN Library, 1996–2020.
  • Howard, M., LeBlanc, D. «Writing Secure Code» // Microsoft Press, 2002.
  • «The Death of ActiveX» // Ars Technica, 2015.
  • «ActiveX Security: A History of Vulnerabilities» // Symantec Security Response, 2008.
  • «Обзор технологий электронной подписи в России» // Институт развития информационного общества, 2021.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru