
Руководитель
отдела тестирования NGR Softlab
Man-in-the-Middle (MITM), или «Человек посередине», с одной стороны, это мощный инструмент для тестирования безопасности, с другой – опасная атака, нарушающая конфиденциальность. В руках злоумышленников это метод перехвата и изменения данных, передаваемых между двумя системами. Для тестировщиков программного обеспечения MITM – это эффективный инструмент анализа безопасности и надежности приложений. С его помощью можно выявлять уязвимости, проверять устойчивость системы к преднамеренному вмешательству, а также имитировать ответы серверов, когда интеграция с реальными сервисами невозможна.
Денис Исангулов, руководитель отдела тестирования NGR Softlab, в статье для Cyber Media, рассмотрит этику и границы использования MITM, а также практическое применение в тестировании ПО.
Цель оправдывает метод, но только если речь идёт о санкционированном тестировании уязвимостей, подмене или модификации ответов от сторонних систем в реальном времени, а не о скрытом вмешательстве в чужой трафик: никаких «проверок ради интереса» без согласия владельца системы. Главное осознавать, что важна прозрачность, профессионал действует по заранее согласованным сценариям, фиксирует риски и сразу сообщает о них, а не скрывается, как злоумышленник, и не использует находки в личных целях. Главное правило – не навреди. Во время тестирования реальных продовых систем запрещено копировать, изменять или удалять данные, можно только имитировать угрозу.
Если система тестовая, не содержит конфиденциальной информации и использует маскированные данные, пространство для манёвра у тестировщика расширяется. В таких условиях допустимы более агрессивные сценарии, включая глубокий анализ и модификацию данных, но только в рамках утверждённого плана тестирования. Однако даже здесь действует принцип минимального воздействия, любые изменения должны быть обратимы, а их последствия предсказуемы.
Перед тем как перейти к практическому применению MITM в тестировании начнем с небольшого обзора
популярных инструментов.
Burp Suite – «швейцарский нож»
тестировщика. Позволяет перехватывать, модифицировать и повторно отправлять HTTP-запросы. Особенно полезен при тестировании
веб-приложений, с помощью него можно подменять куки, воровать сессии, проверять
уязвимости CSRF и XSS.
Mitmproxy – гибкий прокси-сервер с открытым исходным кодом. Подходит для анализа и модификации трафика в реальном времени. Хорош тем, что работает из консоли и легко автоматизируется, что делает его удобным для интеграции в CI/CD.
Wireshark – классика для глубокого анализа сетевого трафика. Не такой удобный для оперативного вмешательства, как Burp Suite или mitmproxy, зато позволяет увидеть всё, от DNS-запросов до TLS-рукопожатий. Незаменим, когда нужно разобраться, что именно передаётся «под капотом».
Мы активно используем все три инструмента, так как каждый из них эффективен на разных этапах тестирования и выбор зависит от конкретной задачи.
С ростом числа кибератак особую опасность
представляют кражи паролей пользователей. В этом контексте важно проверить, что
пароль не передаётся в открытом виде в запросах на примере работы с 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
Выполните процедуру логирования в тестовую среду через веб-интерфейс.
Ожидаемый результат:
Этот пример сокращён до минимума, но сохраняет суть проверки безопасности передачи паролей.
Man-in-the-Middle технически сложный метод, сопряжённый с существенными рисками. Его применение допустимо исключительно при наличии санкционированного доступа и чётко определённых целей. Крайне важно минимизировать зону воздействия, работы должны проводиться в изолированных средах без доступа к продуктивным системам. Все полученные данные подлежат строгой защите и обязательному уничтожению по завершении процедур.
Перед началом тестирования необходимо:
Важно осознавать, что некорректное применение MITM-методик способно привести к нарушениям конфиденциальности и юридическим последствиям. Правильная реализация, напротив, повышает устойчивость систем к внешним угрозам.
MITM полезен в руках специалистов, но опасен в чужих. Тестируйте защиту, чтобы не стать жертвой.