Блог

Man-in-the-Middle в тестировании: инструмент или угроза?

Использование Man-in-the-Middle в тестировании ПО – это как хирургический скальпель: в руках профессионала он спасает жизни, но в чужих руках может стать оружием. Важно чётко понимать, где проходит граница между благонамеренными действиями тестировщика и начинается злоупотребление своими профессиональными навыками. Руководитель отдела тестирования NGR Softlab Денис Исангулов в своей статье для Cyber Media разбирает, где проходит красная линия.

Этика MITM

В данной статье мы рассмотрим этику и границы использования MITM, а также практическое применение в тестировании ПО.

Цель оправдывает метод, но только если речь идёт о санкционированном тестировании уязвимостей, подмене или модификации ответов от сторонних систем в реальном времени, а не о скрытом вмешательстве в чужой трафик: никаких «проверок ради интереса» без согласия владельца системы. Главное осознавать, что важна прозрачность: профессионал действует по заранее согласованным сценариям, фиксирует риски и сразу сообщает о них, а не скрывается, как злоумышленник, и не использует находки в личных целях. Главное правило – не навреди. Во время тестирования реальных продовых систем запрещено копировать, изменять или удалять данные, можно только имитировать угрозу.

Если система тестовая, не содержит конфиденциальной информации и использует маскированные данные, пространство для манёвра у тестировщика расширяется. В таких условиях допустимы более агрессивные сценарии, включая глубокий анализ и модификацию данных, но только в рамках утверждённого плана тестирования. Однако даже здесь действует принцип минимального воздействия, любые изменения должны быть обратимы, а их последствия предсказуемы.
Изображение сгенерировано Freepik

Популярные инструменты MITM и практика их применения

Перед тем как перейти к практическому применению MITM в тестировании начнем с небольшого обзора популярных инструментов.

Burp Suite – «швейцарский нож» тестировщика. Позволяет перехватывать, модифицировать и повторно отправлять HTTP-запросы. Особенно полезен при тестировании веб-приложений, с помощью него можно подменять куки, воровать сессии, проверять уязвимости CSRF и XSS.

Mitmproxy – гибкий прокси-сервер с открытым исходным кодом. Подходит для анализа и модификации трафика в реальном времени. Хорош тем, что работает из консоли и легко автоматизируется, что делает его удобным для интеграции в CI/CD.

Wireshark – классика для глубокого анализа сетевого трафика. Не такой удобный для оперативного вмешательства, как Burp Suite или mitmproxy, зато позволяет увидеть всё, от DNS-запросов до TLS-рукопожатий. Незаменим, когда нужно разобраться, что именно передаётся «под капотом».

В нашей компании NGR Softlab мы активно используем все три инструмента, так как каждый из них эффективен на разных этапах тестирования и выбор зависит от конкретной задачи.

С ростом числа кибератак особую опасность представляют кражи паролей пользователей. В этом контексте важно проверить, что пароль не передаётся в открытом виде в запросах на примере работы с mitmproxy, так как инструмент лежит в свободном доступе.

Установим mitmproxy на сервер:

sudo apt update

sudo apt install mitmproxy -y

Далее представлен примерный скрипт для проверки пароля (check_password.py):

from mitmproxy import http

def request(flow: http.HTTPFlow) -> None:

# Проверяем URL и тело запроса на наличие пароля в открытом виде

if flow.request.content:

request_data = flow.request.text# Автоматическая декодировка

if "password" in request_data.lower():

print("⚠️ Обнаружено поле 'password' в запросе")

# Можно добавить проверку на открытый текст (например, если нет хеша/шифра)

if "pass" in request_data.lower() and not ("hash" in request_data or "encrypt" in request_data):

print("Возможно пароль передан в открытом виде")


Инициируйте прокси-сервер со скриптом проверки пароля:

mitmproxy -s check_password.py

Выполните процедуру логирования в тестовую среду через веб-интерфейс.


Ожидаемый результат:

• Пароль не должен встречаться в открытом виде (например, "password":"qwerty123").

• Вместо этого должны использоваться хеши, токены или шифрование.

Этот пример сокращён до минимума, но сохраняет суть проверки безопасности передачи паролей.

Что нужно сделать перед применением MITM

В заключении хочу отметить, что Man-in-the-Middle технически сложный метод, сопряжённый с существенными рисками. Его применение допустимо исключительно при наличии санкционированного доступа и чётко определённых целей. Крайне важно минимизировать зону воздействия, работы должны проводиться в изолированных средах без доступа к продуктивным системам. Все полученные данные подлежат строгой защите и обязательному уничтожению по завершении процедур.

Перед началом тестирования необходимо:

  • Зафиксировать разрешённые границы проверки;

  • Уведомить заинтересованные стороны в корпоративных инфраструктурах;

  • Использовать исключительно актуальные версии специализированного ПО

Важно осознавать, что некорректное применение MITM-методик способно привести к нарушениям конфиденциальности и юридическим последствиям. Правильная реализация, напротив, повышает устойчивость систем к внешним угрозам.

MITM полезен в руках специалистов, но опасен в чужих. Тестируйте защиту, чтобы не стать жертвой.
Автор: Денис Исангулов, руководитель отдела тестирования NGR Softlab