После шести лет разработки представлен релиз проекта mitmproxy 1.0, в рамках которого развивается инструментарий для исследователей безопасности и разработчиков приложений, позволяющий отслеживать активность в рамках транзитных HTTP- и HTTPS-соединений. Mitmproxy может рассматриваться как специализированный инструмент, рассчитанный на перехват трафика внутри соединений, установленных по HTTPS, с возможностями по его инспектированию, модификации и повторному воспроизведению. Исходные тексты проекта написаны на языке Python и распространяются под лицензией MIT.

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

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

Система поддерживает HTTP/2, Websockets, нормализацию порядка следования пакетов в потоке, подключение скриптов-обработчиков для модификации трафика на лету, сохранение запросов для дальнейшего повторного воспроизведения, генерацию TLS-сертификатов для перехваченных сеансов, чистку заголовков о времени модификации для отключения кэширования на стороне клиента.

В состав mitmproxy входит несколько компонентов:

  • mitmproxy - реализация прокси, выполняющего перехват соединений и разбор сеансов TLS/SSL.
  • mitmdump - утилита командной строки для анализа трафика, работающая по аналогии с tcpdump;
  • pathoc и pathod - реализация обратных прокси (reverse proxy) для клиентов и серверов HTTP, позволяющих вносить изменения в содержимое HTTP-запросов и ответов (например, можно блокировать определённые запросы или подменять конфиденциальную информацию);
  • mitmweb - web-интерфейс для управления и анализа трафика через web-браузер.


Источник: http://www.opennet.ru/opennews/art.shtml?num=45772