Релиз открытого сетевого анализатора Mitmproxy 11 с поддержкой HTTP/3

4 октября 2024 года состоялся релиз открытого проекта сетевого анализатора Mitmproxy 11 с поддержкой HTTP/3 для перехвата трафика внутри соединений, установленных по HTTPS, с возможностями инспектирования, модификации и повторного воспроизведения трафика. Исходные коды инструментария написаны на языках Python и TypeScript и распространяются на GitHub под лицензией MIT.

По информации OpenNET, основным назначением проекта Mitmproxy является организация отслеживания трафика в корпоративных системах и диагностика различных проблем, например, выявление скрытой сетевой активности приложений в сети компании.

Для анализа HTTPS-трафика инструментарий Mitmproxy развёртывается на транзитном сетевом узле, на котором система перехватывает запросы клиента и транслируют их в отправляемые от себя запросы к целевому серверу. С запрошенным в процессе клиентского сеанса сервером Mitmproxy устанавливает обычное HTTPS-соединение, а с клиентом от имени целевого сервера устанавливается фиктивное соединение с подставным SSL-сертификатом, генерируемым для клиента на лету. Принятый от клиента трафик перенаправляется целевому серверу, а получаемые ответы транслируются обратно клиенту.

Для перенаправления трафика через Mitmproxy поддерживаются несколько методов, включая указание адреса Mitmproxy в качестве HTTP-прокси в настройках браузера, работа в виде SOCKS5-прокси, использование в роли обратного прокси перед HTTP-сервером и организация прозрачного проброса при помощи правил пакетного фильтра или заворачивания маршрутизации. Для того, чтобы используемый при соединении с клиентом подставной сертификат не приводил к выводу браузером предупреждений о проблемах с безопасностью соединения, в систему пользователя предлагается установить корневой сертификат Mitmproxy, что можно сделать как вручную, так и открыв в браузере специальный хост mitm dot it.

Согласно описанию на сайте разработчиков, проект Mitmproxy поддерживает HTTP/2, HTTP/3, Websockets, нормализацию порядка следования пакетов в потоке, подключение скриптов-обработчиков для модификации трафика на лету, сохранение запросов для дальнейшего повторного воспроизведения, генерацию TLS-сертификатов для перехваченных сеансов, чистку заголовков о времени модификации для отключения кэширования на стороне клиента, режим обратного проксирования (Reverse proxy) для перенаправления трафика на сервер, списки блокировки для фильтрации определённых запросов, выборочное перенаправление запросов (в том числе для отдачи в ответ локальных файлов), изменение содержимого и заголовков на основе регулярных выражений. Для анализа сетевого трафика в проекте предлагается похожая на tcpdump утилита командной строки mitmdump и веб-интерфейс mitmweb.

Основные изменения и доработки в Mitmproxy 11:

• полная поддержка протокола HTTP/3, в котором задействован протокол QUIC (Quick UDP Internet Connections) в качестве транспорта для HTTP/2 (QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL);

• в Mitmproxy для HTTP/3 можно использовать как прозрачный перехват трафика, так и работу в виде обратного прокси. Работа при перехвате HTTP/3 протестирована в Firefox, Chrome и различных версиях cURL;

• улучшенная поддержка DNS в контексте размещения в DNS записей для HTTPS и ECH (Encrypted Client Hello);

• добавлена поддержка запроса DNS-записей, отличных от A/AAAA (например, в ECH информация об открытом ключе шифрования передаётся в DNS-записи HTTPSSVC);

• добавлен режим чистки ключей ECH из HTTPS-записей в DNS;

• для работы с DNS осуществлён переход на библиотеку Hickory, написанную на языке Rust и развиваемую проектом Let's Encrypt;

• добавлена поддержка DNS-over-TCP;

• реализована опция для отключения обработки настроек из /etc/hosts.

Материал опубликован при поддержке сайта habr.com
Комментарии

    Актуальные новости по теме "Array"