Проблемы с фильтрацией в Chrome 142+ при использовании TDI-драйвера
В этой статье описывается AdGuard для Windows v8.0 — комплексный блокировщик рекламы, который защищает ваше устройство на системном уровне. Это бета-релиз, который ещё находится в стадии разработки. Чтобы начать им пользоваться, скачайте бета-версию AdGuard для Windows.
Некоторые пользователи 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-драйвер устаревшим и планирует его полное удаление.
Постоянное решение
From v8.0 RC, we’ve added experimental support for the SockFilter driver. It fixes the issue by solving conflicts in the WFP stack. More information.
To use it, go to Settings → Network → Traffic filtering, enable traffic filtering, and select SockFilter (Experimental) from the list of available options.
Since it’s experimental, there may be bugs. If you notice anything unusual, unexpected, or just plain broken, you can switch back to TDI or WFP at any time in the same section.
Временное решение
Определённые изменения в реестре Windows могут заставить браузер перестать использовать AppContainer, в результате чего его процессы снова будут работать вне песочницы. Network Service прекращает использование стека WSK и переключается на сетевой путь, который виден TDI-драйверу. После этого AdGuard восстанавливает способность фильтровать трафик браузера.
Как изменить реестр в браузерах на основе Chromium
Для редактирования реестра требуются права администратора. Неправильные изменения могут повлиять на стабильность и безопасность системы или браузера. Всегда создавайте резервную копию ветки реестра перед её изменением.
Прежде чем продолжить, имейте в виду, что это решение снижает уровень безопасности песочницы/AppContainer, что делает браузер менее изолированным. Это правило применяется ко всей системе, поскольку оно изменяет HKLM, и должно использоваться только для отладки, временных обходных решений, в контролируемых средах или когда перехват трафика на основе TDI строго необходим.
Его не следует применять повсеместно на компьютерах пользователей. Продолжите только если понимаете последствия.
Изменения в реестре можно применить автоматически, используя один из предварительно сгенерированных файлов .reg ниже. Каждый из этих файлов отключает изоляцию AppContainer/Network Service для конкретного браузера на основе Chromium:
- Скачать Chrome.reg
- Скачать Chromium.reg
- Скачать Edge.reg
- Скачать Brave.reg
- Скачать Vivaldi.reg
- Скачать YandexBrowser.reg
Если вашего браузера нет в списке, следуйте приведённой ниже инструкции, чтобы создать записи в реестре:
-
Изучите официальную документацию производителя или откройте страницу внутренней политики. В Chrome перейдите по адресу
chrome://policy. В других браузерах используется аналогичный путь. -
Определите правильную ветку реестра для вашего браузера. Различные браузеры на основе Chromium используют разные пути в рамках
HKLM. Путь должен соответствовать моделиHKLM\SOFTWARE\Policies\<Vendor>\<Product>. -
Откройте редактор реестра:
- Нажмите Win + R
- Введите regedit и нажмите Enter
- Подтвердите запрос UAC, запустив его от имени администратора
-
Создайте резервную копию ветки Policies:
- В левой панели перейдите к разделу
HKEY_LOCAL_MACHINE\SOFTWARE\Policies - Щёлкните правой кнопкой мыши на Policies → Export
- Сохраните файл как Policies_backup.reg
Если что-то пойдёт не так, вы можете восстановить резервную копию, дважды кликнув по этому файлу.
- В левой панели перейдите к разделу
-
Перейдите к ключу политики браузера:
- Разверните путь
HKEY_LOCAL_MACHINE→ SOFTWARE → Policies. - Найдите папку, соответствующую вашему браузеру.
- Разверните путь
Если ключа не существует, вы можете создать его вручную. Пример для Chrome:
- Щёлкните правой кнопкой мыши Policies → New → Key и назовите его
Google - Внутри
Googleсоздайте ещё один ключ с именемChrome
Повторите ту же логику для Chromium, Edge, Brave, Vivaldi, Yandex Browser и т. д. В итоге у вас должен получиться ключ, выглядящий как HKEY_LOCAL_MACHINE\SOFTWARE\Policies\<Vendor>\<Product>\.
-
Добавьте необходимые значения реестра:
-
В нужном ключе нажмите на правую панель → New → DWORD (32-bit) Value
-
Назовите его
RendererAppContainerEnabled -
Дважды кликните и установите:
- Value: 0
- Base: Hexadecimal или Decimal (оба подходят)
-
Повторите процесс и создайте второй DWORD
NetworkServiceSandboxEnabled. -
Установите его значение равным 0.
Оба параметра должны быть типа
REG_DWORDи иметь значение 0. -
-
Закройте браузер и примените настройки. Чтобы убедиться, что политика загружена:
- Полностью закройте браузер
- Проверьте диспетчер задач и убедитесь, что никакие процессы, такие как chrome.exe, msedge.exe или brave.exe, не запущены
- Откройте браузер снова
-
Убедитесь, что политика применена, открыв её в браузере.
Вы должны видеть следующие активные политики:
RendererAppContainerEnabled— 0 / falseNetworkServiceSandboxEnabled— 0 / false
Если такая опция есть, нажмите Reload policies.
Готово!