Browser Helper Object
Browser Helper Object (BHO, «объект-помощник браузера») — это программный модуль в виде библиотеки динамической компоновки (DLL), предназначенный для расширения функциональности веб-браузера Internet Explorer (входит в состав операционных систем Microsoft Windows). BHO реализует интерфейс IObjectWithSite и запускается в контексте каждого нового экземпляра браузера, получая доступ к его объектной модели и событиям загрузки страниц.
История и происхождение
Технология BHO была представлена корпорацией Microsoft в 1997 году в составе браузера Internet Explorer 4.0 для операционной системы Windows 98. Основной целью разработки было предоставление сторонним разработчикам возможности создавать расширения для браузера без необходимости изменения его исходного кода. В отличие от плагинов Netscape (NPAPI), BHO не требовали отдельного процесса и встраивались непосредственно в адресное пространство Internet Explorer.
Наибольшее распространение BHO получили в период с 1999 по 2008 год, когда Internet Explorer занимал доминирующее положение на рынке веб-браузеров (доля достигала 95% по данным StatCounter). С выходом Internet Explorer 8 в 2009 году Microsoft ужесточила требования к безопасности BHO, а после прекращения поддержки Internet Explorer 11 в 2022 году технология утратила практическое значение.
Архитектура и принцип работы
Реализация интерфейса
Каждый BHO обязан реализовывать интерфейс IObjectWithSite, который позволяет браузеру передать объекту указатель на свой сайт (интерфейс IWebBrowser2). После этого BHO может подписываться на события браузера, такие как:
- NavigateComplete2 — завершение навигации на страницу
- DocumentComplete — полная загрузка документа
- BeforeNavigate2 — начало навигации
- DownloadBegin — начало загрузки содержимого
Регистрация в системе
BHO регистрируется в реестре Windows в разделе: `` HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects `` Для каждого BHO создается подраздел с CLSID (уникальным идентификатором класса), который указывает на его COM-объект. При запуске Internet Explorer считывает этот список и загружает все зарегистрированные BHO в своё адресное пространство.
Взаимодействие с браузером
BHO работает в том же процессе, что и Internet Explorer, что обеспечивает низкую задержку при обработке событий. Однако это же свойство делает BHO уязвимыми: ошибка в BHO может привести к краху всего браузера. Для изоляции BHO в Internet Explorer 8 была введена функция «Защищённый режим» (Protected Mode), ограничивающая права доступа модулей к системным ресурсам.
Классификация BHO
По функциональному назначению
- Панели инструментов — добавляют кнопки, поля ввода или меню в интерфейс браузера. Пример: панель Google Toolbar (до 2012 года).
- Менеджеры загрузок — перехватывают запросы на скачивание файлов и предлагают собственные интерфейсы управления.
- Антивирусные сканеры — проверяют загружаемые веб-страницы на наличие вредоносного кода. Пример: модули Kaspersky Internet Security.
- Переводчики — автоматически переводят содержимое страниц. Пример: модуль PROMT.
- Менеджеры паролей — сохраняют и автоматически заполняют учётные данные.
По типу доступа
- Обычные BHO — загружаются для всех вкладок браузера.
- BHO с фильтром — активируются только для определённых доменов или протоколов, задаваемых через реестр.
Применение
Легитимное использование
BHO активно применялись для интеграции корпоративных решений в Internet Explorer. Например, в банковской сфере BHO использовались для проверки цифровых подписей и сертификатов при работе с системами «Банк-Клиент». В образовательных учреждениях BHO добавляли функции родительского контроля и фильтрации контента. Ряд антивирусных продуктов (например, «Лаборатория Касперского») применяли BHO для перехвата HTTP-трафика и проверки веб-страниц в реальном времени.
Проблемы безопасности
BHO стали популярным инструментом для распространения вредоносного ПО. Злоумышленники регистрировали BHO, которые перехватывали навигацию пользователя, вставляли рекламные баннеры (adware) или собирали персональные данные (spyware). Некоторые BHO изменяли настройки поисковых систем и домашней страницы без ведома пользователя.
Известные вредоносные BHO:
- SearchHelper — изменял поисковую систему по умолчанию на подставные сайты.
- BHO_Link — перенаправлял пользователя на фишинговые страницы.
- Adware.BHO — вставлял рекламные объявления на любые веб-страницы.
Критика и недостатки
Основные недостатки BHO связаны с архитектурными ограничениями технологии:
- Отсутствие изоляции — BHO работают в одном процессе с браузером, что создаёт риски для стабильности и безопасности.
- Сложность удаления — многие BHO не имеют встроенного деинсталлятора, их удаление требует редактирования реестра вручную.
- Конфликты между BHO — несколько BHO могут одновременно пытаться перехватить одно и то же событие, что приводит к зависаниям браузера.
- Отсутствие обновлений — после прекращения поддержки Internet Explorer BHO перестали получать исправления безопасности.
Закат технологии
С 2015 года Microsoft начала постепенное сокращение поддержки Internet Explorer в пользу браузера Microsoft Edge на базе Chromium. В 2022 году Internet Explorer 11 был окончательно выведен из эксплуатации (за исключением некоторых корпоративных сценариев в Windows 10 LTSC). Современные браузеры (Google Chrome, Mozilla Firefox, Microsoft Edge) используют иные механизмы расширений:
- Chrome Extensions — на основе HTML, CSS и JavaScript
- Firefox Add-ons — на основе технологии WebExtensions
- Edge Extensions — совместимы с Chrome Extensions
Эти технологии обеспечивают изоляцию расширений в отдельных процессах и более строгую модель безопасности, что делает BHO полностью устаревшими.
Интересные факты
- Первый коммерческий BHO был выпущен компанией Alexa Internet в 1997 году для сбора статистики посещаемости сайтов.
- В 2004 году Microsoft выпустила инструмент BHODemon для обнаружения и удаления вредоносных BHO, который впоследствии вошёл в состав Windows Defender.
- Некоторые BHO могли работать не только в Internet Explorer, но и в Проводнике Windows, поскольку оба приложения используют общую объектную модель COM.
Источники
- Microsoft Developer Network (MSDN): «Browser Helper Objects: An Introduction»
- «Windows Internals» (7th edition) — Mark Russinovich, David Solomon, Alex Ionescu
- «Internet Explorer Architecture» — документация Microsoft
- «Malware Analysis: BHO Threats» — отчёты Лаборатории Касперского (2008–2012)
- StatCounter Global Stats — данные о доле рынка браузеров (1997–2022)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →