Перейти к основному содержанию

Проблемы с фильтрацией в Chrome 142+ при использовании TDI-драйвера

информация

В этой статье рассказывается об AdGuard для Windows — многофункциональном блокировщике рекламы, который защищает ваше устройство на системном уровне. Скачайте приложение AdGuard, чтобы увидеть, как оно работает

Некоторые пользователи AdGuard для Windows могут заметить, что приложение перестаёт фильтровать трафик в браузерах на основе Chromium. Начиная с Chrome версии 142 и выше, трафик браузера просто не отображается на уровне TDI-драйвера, а значит, AdGuard не может проверять и фильтровать его.

Такое поведение не ошибка AdGuard, а результат недавних изменений в архитектуре и безопасности современных браузеров.

Почему это происходит

Браузеры на основе Chromium (Chrome, Edge, Brave, Vivaldi и др.) укрепляют свою архитектуру безопасности. Одно из значительных изменений — перенос важных внутренних процессов в песочницу Windows AppContainer, включая Network Service, который обрабатывает весь трафик браузера.

Что изменилось в Chrome 142

Начиная с Chrome 142, Network Service по умолчанию запускается внутри AppContainer.

В таких случаях приложения, работающие в AppContainer, не используют устаревший сетевой интерфейс TDI; вместо этого их трафик маршрутизируется через более современный стек WSK (Winsock Kernel). В результате TDI-драйвер не может видеть, перехватывать или обрабатывать соединения, проходящие через WSK, и весь трафик браузера становится невидимым для TDI-драйвера, используемого AdGuard.

Такое поведение полностью контролируется политикой «песочницы» Chrome и внутренними экспериментами, а не настройками пользователя.

Почему это влияет на AdGuard

TDI-драйвер — это устаревшая технология Windows, которая уже много лет не поддерживается Microsoft. Он не совместим с современными моделями изоляции и песочницы, которые используют браузеры.

Из-за этого видимость трафика на основе TDI становится всё менее стабильной. В некоторых браузерах она уже полностью исчезла и в конечном итоге перестанет работать совсем.

AdGuard уже считает TDI-драйвер устаревшим и планирует его полное удаление.

Временное решение

Определённые изменения в реестре Windows могут заставить браузер перестать использовать AppContainer, в результате чего его процессы снова будут работать вне песочницы. Network Service прекращает использование стека WSK и переключается на сетевой путь, который виден TDI-драйверу. После этого AdGuard восстанавливает способность фильтровать трафик браузера.

Как изменить реестр в браузерах на основе Chromium

опасность

Для редактирования реестра требуются права администратора. Неправильные изменения могут повлиять на стабильность и безопасность системы или браузера. Всегда создавайте резервную копию ветки реестра перед её изменением.

Прежде чем продолжить, имейте в виду, что это решение снижает уровень безопасности песочницы/AppContainer, что делает браузер менее изолированным. Это правило применяется ко всей системе, поскольку оно изменяет HKLM, и должно использоваться только для отладки, временных обходных решений, в контролируемых средах или когда перехват трафика на основе TDI строго необходим.

Его не следует применять повсеместно на компьютерах пользователей. Продолжите только если понимаете последствия.

Изменения в реестре можно применить автоматически, используя один из предварительно сгенерированных файлов .reg ниже. Каждый из этих файлов отключает изоляцию AppContainer/Network Service для конкретного браузера на основе Chromium:

Если вашего браузера нет в списке, следуйте приведённой ниже инструкции, чтобы создать записи в реестре:

  1. Изучите официальную документацию производителя или откройте страницу внутренней политики. В Chrome перейдите по адресу chrome://policy. В других браузерах используется аналогичный путь.

  2. Определите правильную ветку реестра для вашего браузера. Различные браузеры на основе Chromium используют разные пути в рамках HKLM. Путь должен соответствовать модели HKLM\SOFTWARE\Policies\<Vendor>\<Product>.

  3. Откройте редактор реестра:

    • Нажмите Win + R
    • Введите regedit и нажмите Enter
    • Подтвердите запрос UAC, запустив его от имени администратора
  4. Создайте резервную копию ветки Policies:

    • В левой панели перейдите к разделу HKEY_LOCAL_MACHINE\SOFTWARE\Policies
    • Щёлкните правой кнопкой мыши на PoliciesExport
    • Сохраните файл как Policies_backup.reg

    Если что-то пойдёт не так, вы можете восстановить резервную копию, дважды кликнув по этому файлу.

  5. Перейдите к ключу политики браузера:

    • Разверните путь HKEY_LOCAL_MACHINESOFTWAREPolicies.
    • Найдите папку, соответствующую вашему браузеру.

Если ключа не существует, вы можете создать его вручную. Пример для Chrome:

  • Щёлкните правой кнопкой мыши PoliciesNewKey и назовите его Google
  • Внутри Google создайте ещё один ключ с именем Chrome

Повторите ту же логику для Chromium, Edge, Brave, Vivaldi, Yandex Browser и т. д. В итоге у вас должен получиться ключ, выглядящий как HKEY_LOCAL_MACHINE\SOFTWARE\Policies\<Vendor>\<Product>\.

  1. Добавьте необходимые значения реестра:

    • В нужном ключе нажмите на правую панель → NewDWORD (32-bit) Value

    • Назовите его RendererAppContainerEnabled

    • Дважды кликните и установите:

      • Value: 0
      • Base: Hexadecimal или Decimal (оба подходят)
    • Повторите процесс и создайте второй DWORD NetworkServiceSandboxEnabled.

    • Установите его значение равным 0.

    Оба параметра должны быть типа REG_DWORD и иметь значение 0.

  2. Закройте браузер и примените настройки. Чтобы убедиться, что политика загружена:

    • Полностью закройте браузер
    • Проверьте диспетчер задач и убедитесь, что никакие процессы, такие как chrome.exe, msedge.exe или brave.exe, не запущены
    • Откройте браузер снова
  3. Убедитесь, что политика применена, открыв её в браузере.

Вы должны видеть следующие активные политики:

  • RendererAppContainerEnabled0 / false
  • NetworkServiceSandboxEnabled0 / false

Если такая опция есть, нажмите Reload policies.

Готово!

Постоянное решение

В будущих версиях мы планируем добавить поддержку драйвера SockFilter. Это решит проблему, устранив конфликты в стеке WFP. Больше информации.