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

Browser Helper Objects

Browser Helper Objects (BHO, «объекты-помощники браузера») — это программные модули в виде библиотек DLL, предназначенные для расширения функциональности браузера Internet Explorer (а также некоторых других веб-обозревателей на базе движка Trident, например, Maxthon или Avant Browser). BHO реализуются как COM-компоненты и запускаются в контексте каждого нового экземпляра браузера, получая доступ к его объектной модели (Document Object Model, DOM) и событиям. Первоначально разработаны компанией Microsoft для Internet Explorer начиная с версии 4.0 (1997 год).

История и предпосылки появления

Концепция BHO возникла в середине 1990-х годов, когда компания Microsoft стремилась сделать Internet Explorer расширяемой платформой. В отличие от Netscape Navigator, где расширения писались на языке JavaScript с использованием технологии NPAPI (Netscape Plugin Application Programming Interface), Microsoft предложила разработчикам использовать COM-интерфейсы, что позволяло создавать модули на любом языке, поддерживающем COM (C++, Visual Basic, Delphi). Первая версия BHO была представлена в составе Internet Explorer 4.0 (1997 год) и предназначалась для интеграции с Windows Desktop Update.

Основной целью BHO было предоставление разработчикам возможности реагировать на события браузера (загрузка страницы, навигация, закрытие вкладки) и модифицировать содержимое страниц до их отображения пользователю. Это открывало широкие возможности для создания панелей инструментов, менеджеров паролей, блокировщиков рекламы и других вспомогательных инструментов.

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

BHO реализуются как COM-объекты, которые регистрируются в реестре Windows в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects (для 64-разрядных систем — HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects). Каждый BHO должен реализовывать интерфейс IObjectWithSite, который позволяет браузеру передать модулю указатель на свой интерфейс IWebBrowser2.

При запуске Internet Explorer (или другого браузера на движке Trident) система загружает все зарегистрированные BHO. Модуль получает события:

  • Navigate — начало загрузки страницы;
  • NavigateComplete2 — завершение навигации;
  • DocumentComplete — полная загрузка документа;
  • BeforeNavigate2 — перед переходом на другой URL.

BHO может изменять содержимое страницы, перехватывать HTTP-запросы, добавлять элементы интерфейса (например, кнопки в панель инструментов) или блокировать нежелательный контент. Однако все операции выполняются в контексте процесса браузера, что создаёт риски для стабильности и безопасности.

Применение BHO

Легитимное использование

  1. Панели инструментов — например, панель Google Toolbar (до 2011 года), Yahoo! Toolbar, Bing Bar. Они добавляли поисковую строку, кнопки быстрого доступа и интеграцию с сервисами.
  2. Менеджеры паролей — LastPass, RoboForm, KeePass (с использованием BHO для автозаполнения форм).
  3. Блокировщики рекламы — Adblock Plus (ранние версии для Internet Explorer), Ad Muncher.
  4. Антивирусные модулиKaspersky Internet Security, Avast, McAfee использовали BHO для проверки веб-трафика в реальном времени.
  5. Инструменты разработчика — Firebug Lite (для IE), DebugBar.
  6. Корпоративные решения — системы управления контентом, интеграция с CRM, автоматизация заполнения форм.

Злонамеренное использование

Из-за высокой привилегированности и автоматической загрузки BHO стали популярным вектором для распространения вредоносного ПО. Злоумышленники использовали BHO для:

  • Перехвата трафика — подмена содержимого страниц, кража паролей и данных банковских карт (например, трояны типа Zeus, SpyEye).
  • Показа навязчивой рекламы — модули, вставляющие рекламные баннеры на любые сайты (adware).
  • Сбора информации — отслеживание посещённых сайтов, поисковых запросов, введённых данных.
  • Установки дополнительного ПО — загрузка и запуск других вредоносных программ.

Известные примеры злонамеренных BHO: BHO.Downloader, BHO.Spyware, BHO.Trojan. В 2000-х годах многие антивирусные компании начали классифицировать BHO как потенциально нежелательное ПО (PUP), если они не были явно установлены пользователем.

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

Основные недостатки BHO связаны с архитектурой COM и отсутствием изоляции:

  1. Нестабильность — сбой в одном BHO мог привести к зависанию всего браузера. Поскольку BHO загружаются в том же процессе, что и Internet Explorer, ошибка в модуле (например, утечка памяти) напрямую влияла на работу браузера.
  2. Отсутствие контроля доступа — BHO имели полный доступ к объектной модели браузера, что позволяло им читать и изменять любые данные на страницах, включая пароли, cookie и содержимое форм.
  3. Сложность удаления — многие BHO не имели интерфейса для деинсталляции, а их удаление требовало редактирования реестра вручную.
  4. Автоматическая загрузка — BHO загружались при каждом запуске браузера без запроса пользователя, что делало их идеальным инструментом для шпионского ПО.

В ответ на эти проблемы Microsoft в Internet Explorer 8 (2009 год) ввела механизм Protected Mode, который ограничивал права BHO в изолированном режиме (Low Integrity). Однако полного решения проблемы не последовало.

Упадок и замена

С середины 2010-х годов использование BHO резко сократилось по нескольким причинам:

  1. Уход Internet Explorer — Microsoft прекратила поддержку Internet Explorer 11 в 2022 году, заменив его на Microsoft Edge на базе Chromium. Новый Edge не поддерживает BHO.
  2. Переход на современные браузерыGoogle Chrome, Mozilla Firefox, Opera и Safari используют другие механизмы расширений (WebExtensions, Chrome Extensions), которые работают в изолированном контексте и не имеют доступа к системным ресурсам.
  3. Безопасность — современные браузеры требуют явного разрешения пользователя на установку расширений и ограничивают их возможности.
  4. Развитие технологий — появление HTML5, JavaScript и WebAssembly позволило реализовать многие функции BHO без установки дополнительных DLL.

Тем не менее, BHO продолжают использоваться в корпоративных средах, где требуется интеграция с устаревшими системами, работающими на Internet Explorer (например, в банковском секторе, государственных учреждениях). В таких случаях BHO могут применяться для обеспечения совместимости с ActiveX-компонентами.

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

  • Первый BHO был создан компанией Microsoft для интеграции с Windows Desktop Update — он позволял отображать веб-контент в Проводнике Windows.
  • В 2005 году компания Microsoft выпустила инструмент BHO Manager для управления установленными объектами-помощниками, но он не получил широкого распространения.
  • В 2010 году исследователь безопасности Tavis Ormandy обнаружил критическую уязвимость в BHO, позволявшую выполнять произвольный код с правами системы.
  • Некоторые BHO, такие как Google Toolbar, были настолько популярны, что устанавливались по умолчанию на новые компьютеры в рамках OEM-соглашений.
  • В 2014 году компания Microsoft выпустила обновление безопасности (MS14-051), которое блокировало загрузку BHO, не имеющих цифровой подписи.

Источники

  • Microsoft Developer Network (MSDN): «Browser Helper Objects: An Introduction» (1999)
  • Symantec Security Response: «Threat Analysis: BHO.Downloader» (2007)
  • Kaspersky Lab: «Browser Helper Objects: A Security Risk» (2010)
  • Microsoft Security Advisory 973811: «Vulnerability in Internet Explorer Could Allow Remote Code Execution» (2009)
  • «Inside Windows: An In-Depth Look at the Internet Explorer Browser Helper Objects» (Dr. Dobb’s Journal, 2001)
  • «The Rise and Fall of Browser Helper Objects» (TechRepublic, 2015)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →