Найти в Дзене

Хакерская атака Man-in-the-Middle. Как устроена? Как защититься?

Оглавление

Атака типа «человек посередине» (Man-in-the-Middle, MITM) — это форма перехвата коммуникаций, при которой злоумышленник вклинивается в канал связи между двумя сторонами (например, между пользователем и веб-сервером) и получает доступ к передаваемой информации, либо изменяет её, оставаясь незамеченным. Хакер может перехватывать данные, изменять их или даже подменять содержимое сообщений. Рассмотрим основные этапы и схемы подробно:

1. Цель атаки MITM

Целью MITM-атаки является получение доступа к конфиденциальной информации (логины, пароли, номера кредитных карт, личные данные), манипуляция данными или выполнение других действий от имени жертвы.

2. Основные этапы атаки MITM

Атака MITM обычно состоит из двух ключевых этапов:

  • Перехват связи: злоумышленник вмешивается в канал связи между двумя сторонами.
  • Подмена или изменение данных: злоумышленник может прослушивать, модифицировать или перенаправлять данные, действуя как "посредник".

3. Технические способы реализации атаки MITM

3.1. Перехват трафика

Для того чтобы перехватить трафик между двумя сторонами, злоумышленник должен каким-то образом внедриться в канал их связи. Существует несколько способов это сделать (часто они используются совместно):

3.1.1. Подмена ARP (ARP Spoofing):

(также известный как ARP Cache Poisoning) — это атака на локальную сеть, при которой злоумышленник подменяет ARP-записи (таблицы сопоставлений IP-адресов и MAC-адресов) на устройствах в сети. Цель атаки — перехват трафика, перенаправление его через себя в том числе для атак типа "человек посередине" (Man-in-the-Middle, MITM).

Как работает ARP и почему возможен ARP Spoofing:

1. ARP (Address Resolution Protocol) — это протокол, используемый для сопоставления IP-адресов с физическими MAC-адресами в локальной сети (LAN). Когда устройство хочет отправить данные другому устройству по IP, оно использует ARP для определения MAC-адреса получателя, чтобы передать данные на канальном уровне (Ethernet).

2. ARP-таблица — это кэш, в котором хранятся соответствия IP и MAC-адресов для ускорения обработки запросов. Эта таблица обновляется динамически.

3. Проблема безопасности ARP заключается в том, что он не имеет механизмов аутентификации. Устройства в сети доверяют всем ARP-ответам, которые они получают, даже если они не запрашивали информацию. Это делает возможным подделку ARP-записей.

Механизм ARP Spoofing:

1. Злоумышленник отправляет поддельные ARP-ответы в локальную сеть, притворяясь другим устройством. Например, злоумышленник может отправить ARP-ответ, утверждая, что его MAC-адрес соответствует IP-адресу шлюза (роутера) или другого устройства в сети.

2. Устройства обновляют свои ARP-таблицы на основании поддельных данных. В результате устройства начинают отправлять трафик, предназначенный для другого устройства (например, шлюза), злоумышленнику.

3. Перехват трафика: после того как злоумышленник подменил ARP-записи, трафик от жертвы будет направляться к злоумышленнику вместо шлюза или другого целевого устройства. Злоумышленник может либо просматривать трафик, либо изменять его, либо перенаправлять его дальше (передавая его реальному получателю, чтобы жертва не заметила атаку).

Что может сделать злоумышленник после ARP Spoofing:

1. Прослушивание (сниффинг): Злоумышленник может перехватывать и анализировать данные, проходящие через его устройство. Это может включать учетные записи, пароли, данные сессий и другую конфиденциальную информацию.

2. Изменение данных: Злоумышленник может изменять данные, проходящие через его устройство, например, модифицировать содержимое веб-страниц, подменять файлы или внедрять вредоносный код.

3. Перенаправление трафика: Злоумышленник может перенаправить трафик на другие ресурсы или даже полностью заблокировать его, что может вызвать проблемы с доступом к ресурсам.

4. DoS (Denial of Service): Злоумышленник может блокировать трафик, постоянно отправляя поддельные ARP-ответы, что приведет к нарушению связи между устройствами в сети.

Как защититься от ARP Spoofing:

1. Использование статической ARP-таблицы: Настройка статических записей в ARP-таблицах на устройствах может предотвратить изменения в таблице, но этот метод не масштабируем и требует значительных усилий в управлении.

2. ARP-защита на уровне коммутатора: Многие современные коммутаторы поддерживают функции защиты от ARP-спуфинга, такие как Dynamic ARP Inspection (DAI). Эти технологии проверяют ARP-пакеты и блокируют поддельные ARP-ответы.

3. Использование VPN: Виртуальные частные сети (VPN) могут шифровать весь трафик, что делает его менее уязвимым для перехвата и анализа даже в случае успешной атаки ARP Spoofing.

4. Использование сетей с аутентификацией: В сетях с аутентификацией (например, 802.1X) устройства должны пройти аутентификацию перед тем, как получить доступ к сети.

5. Антивирусы и IDS/IPS системы: Современные системы обнаружения вторжений (IDS/IPS) могут обнаруживать и блокировать подозрительные ARP-ответы.

3.1.2. DNS Spoofing:

(также известный как DNS Cache Poisoning) — это тип атаки, при котором злоумышленник подделывает записи DNS, чтобы направить пользователей на вредоносный или фальшивый сайт. В результате жертва считает, что попала на легитимный сайт, хотя на самом деле её браузер отображает поддельную страницу.

Как работает DNS?

DNS (Domain Name System) — это система, которая переводит доменные имена (например, example.com) в IP-адреса (например, 192.0.2.1). Когда вы вводите доменное имя в браузере, ваш компьютер запрашивает у DNS-сервера IP-адрес этого домена. Если DNS-сервер не знает нужный адрес, он запрашивает его у других DNS-серверов и возвращает результат вашему устройству.

Как происходит DNS Spoofing?

1. Запрос DNS: Когда вы вводите адрес сайта в браузере (например, example.com), ваш компьютер отправляет запрос на DNS-сервер, чтобы получить соответствующий IP-адрес.

2. Перехват DNS-запроса: Злоумышленник перехватывает этот запрос (например, с помощью атаки "человек посередине" или используя уязвимости в сети). Он может действовать как посредник между вашим устройством и DNS-сервером или атаковать сам DNS-сервер.

3. Отправка поддельного ответа: Вместо того чтобы передать реальный IP-адрес, злоумышленник отправляет поддельный ответ с фальшивым IP-адресом. В результате ваш браузер связывается не с настоящим сервером сайта, а с сервером злоумышленника.

4. Поддельный сайт: Вы попадаете на сайт, который выглядит как оригинальный, но на самом деле является фальшивым (фишинговым). Он может быть создан для кражи ваших данных (например, логинов, паролей, данных кредитных карт) или для заражения вашего устройства вредоносным ПО.

Варианты реализации DNS Spoofing

1. DNS Cache Poisoning (Отравление DNS-кеша): Злоумышленник атакует DNS-сервер и подменяет его кэшированные записи. Когда другие пользователи запрашивают IP-адрес определённого домена, сервер возвращает поддельный адрес.

2. Человек посередине (Man-in-the-Middle):Злоумышленник может находиться в той же сети, что и жертва (например, в общественном Wi-Fi). Он перехватывает DNS-запросы и подделывает ответы, отправляя жертве поддельные данные.

3. Замена локальных DNS-записей: Злоумышленник может изменить файл hosts на компьютере жертвы или изменить настройки DNS на уровне устройства, подменив реальный DNS-сервер на вредоносный.

Как это выглядит для пользователя?

Для пользователя все выглядит нормально: он вводит в браузере знакомый домен, например, bank.com, но вместо настоящего сайта попадает на поддельный, который может выглядеть очень похоже. Пользователь может не заметить подмену и ввести свои данные, которые попадут в руки злоумышленников.

Как защититься от DNS Spoofing?

1. Использование DNSSEC (DNS Security Extensions): DNSSEC добавляет криптографические подписи к DNS-записям, что помогает убедиться, что ответ на DNS-запрос подлинный.

2. Использование защищённых соединений (HTTPS): Всегда проверяйте, что сайт использует HTTPS. SSL-сертификаты помогают убедиться, что вы общаетесь с подлинным сайтом, а не с подделкой. Обратите внимание на наличие замочка в адресной строке браузера.

3. Использование проверенных DNS-серверов: Используйте надёжные и известные DNS-сервисы (например, Google DNS, Cloudflare DNS), которые менее подвержены атакам.

4. Обновление ПО: Регулярно обновляйте операционную систему, браузеры и сетевые устройства, чтобы защититься от известных уязвимостей.

5. Использование VPN: VPN может зашифровать ваш трафик, предотвращая перехват его злоумышленниками в общедоступных сетях.

6. Мониторинг и проверка записей DNS: Администраторы сетей должны следить за изменениями в DNS-записях и быть готовыми к быстрой реакции на подозрительные активности.

3.1.3. Через создание открытого Wi-Fi:

  • Хакер может создать точку доступа Wi-Fi, которая выглядит как легитимная (например, с названием «Free Wi-Fi» или «Public Hotspot»).

Для этого злоумышленник может использовать различные инструменты, такие как специальные программы (например, Airbase-ng) или даже обычное оборудование, включая ноутбук или мобильное устройство с поддержкой раздачи Wi-Fi. В некоторых случаях хакеры могут даже использовать специальные устройства, такие как Pineapple Wi-Fi, чтобы облегчить процесс создания поддельной сети.

Подключение жертвы к поддельной сети

Когда пользователь видит сеть с названием, которое кажется ему знакомым или безопасным (например, «Free Wi-Fi»), он может подключиться к ней, не подозревая, что это поддельная сеть, созданная хакером.

Некоторые устройства могут автоматически подключаться к таким сетям, если они ранее были подключены к Wi-Fi с таким же именем (SSID). Хакеры могут воспользоваться этим поведением, подменяя легитимные сети.

Перехват трафика

Когда пользователь подключается к поддельной сети, весь его интернет-трафик начинает проходить через устройство хакера. Это даёт злоумышленнику возможность:

  • Перехватывать данные: Хакер может отслеживать и перехватывать весь сетевой трафик, включая пароли, логины, сообщения, банковские данные и другую личную информацию, если она передаётся в незашифрованном виде (например, по HTTP).
  • Внедрение вредоносного кода: В некоторых случаях злоумышленник может модифицировать трафик, добавляя в него вредоносные скрипты или перенаправляя жертву на фальшивые веб-сайты (фишинг).
  • Подмена сайтов: Хакер может перенаправить жертву с реального сайта на поддельный сайт, который выглядит идентично оригинальному, чтобы собрать данные для авторизации (логины и пароли).

Отсутствие шифрования в открытых сетях

Открытые сети (без пароля) не используют шифрование для передаваемых данных, что позволяет злоумышленнику легко анализировать трафик. Даже в случае, если сеть защищена слабыми протоколами шифрования (например, WEP), хакер может взломать такую сеть и получить доступ к передаваемым данным.

Как защититься от таких атак?

  1. Используйте VPN: Программа VPN шифрует весь ваш трафик, делая его недоступным для перехвата злоумышленником.
  2. Избегайте открытых Wi-Fi сетей: Никогда не подключайтесь к Wi-Fi без пароля, особенно если сеть выглядит подозрительно или незнакомо.
  3. Проверяйте HTTPS: Убедитесь, что сайты, которыми вы пользуетесь, используют защищённое соединение (HTTPS). Это помогает защитить данные от перехвата.
  4. Отключите автоматическое подключение к Wi-Fi сетям: Это предотвратит автоматическое подключение вашего устройства к поддельным сетям.
  5. Используйте двухфакторную аутентификацию: Это дополнительная мера безопасности, которая защитит ваши учётные записи, даже если злоумышленник получит ваш пароль.

3.1.4. Отравление HTTPS-соединений (SSL Stripping):

— это метод атаки "человек посередине" (MITM), при котором злоумышленник пытается понизить уровень безопасности HTTPS-соединения до незашифрованного HTTP. Это позволяет перехватывать и читать данные, которые должны были быть защищены с помощью SSL/TLS.

Вот как происходит атака:

1. Позиционирование злоумышленника в сети (MITM)

Злоумышленник должен находиться в том же сетевом сегменте, что и жертва. Это часто достигается с помощью атаки типа ARP Spoofing или DNS Spoofing, когда злоумышленник перенаправляет сетевой трафик через себя. Он становится посредником между жертвой и целевым сервером.

2. Запрос пользователя к серверу

Пользователь вводит URL сайта (например, https://example.com) или кликает на ссылку, которая ведет на HTTPS-ресурс. Здесь важно отметить, что пользователь ожидает зашифрованного соединения.

3. Переход на HTTP

Когда злоумышленник получает запрос жертвы, он перехватывает его и отправляет на целевой сервер запрос через HTTP (незащищенный протокол), несмотря на то, что оригинальный запрос был к HTTPS.

4. Ответ сервера злоумышленнику

Целевой сервер отвечает злоумышленнику, как если бы запрос пришел через HTTP. Эта страница обычно содержит редирект на HTTPS, или сервер может сразу отправить страницу через HTTP, если он поддерживает оба типа соединения.

5. Модификация трафика

Злоумышленник перехватывает этот ответ от сервера и модифицирует его, убирая любые редиректы на HTTPS. Это позволяет жертве продолжать взаимодействие с сайтом через HTTP.

6. Отправка ответа жертве

Злоумышленник возвращает модифицированную (и теперь незашифрованную) версию страницы жертве. Пользователь видит обычный сайт, но использует соединение HTTP, а не HTTPS, хотя, возможно, даже не замечает этого.

7. Перехват данных

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

8. Отправка данных на сервер

Злоумышленник может перехватывать и изменять любые данные, отправляемые жертвой, а потом пересылать их на сервер через HTTPS, чтобы сервер не заподозрил атаку.

Как защититься от SSL Stripping:

1. Использование HSTS (HTTP Strict Transport Security) (это разработчикам сайтов/ресурсов)— Эта технология позволяет веб-серверу заставить браузеры использовать только HTTPS-соединения. Если сайт поддерживает HSTS, браузер автоматически будет переключаться на HTTPS и игнорировать любые попытки использовать HTTP.

2. Внимательность пользователей — Пользователи должны обращать внимание на значок замка в адресной строке браузера, который указывает на защищенное соединение. Если значок отсутствует, это может быть признаком того, что соединение не защищено.

3. Обновление браузеров и ОС — Современные браузеры уже имеют встроенные механизмы для защиты от некоторых видов SSL Stripping атак, например, через принудительное использование HTTPS при посещении известных сайтов.

3.2. Подмена сертификатов (SSL Spoofing)

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

Вот как может происходить такая атака:

1. Установка MITM-позиции:

Злоумышленник должен расположиться "посередине" между жертвой (клиентом) и сервером. Это может произойти, например, через эксплуатацию уязвимости в сети Wi-Fi, использование ARP-спуфинга или других методов перехвата трафика.
После этого весь трафик, который отправляется жертвой на сервер, сначала попадает к злоумышленнику, а затем уже переправляется на реальный сервер.

2. Подмена сертификата:

Когда клиент пытается установить защищенное соединение с сервером (например, через HTTPS), клиент отправляет запрос на получение SSL/TLS сертификата сервера.
Вместо отправки настоящего сертификата сервера, злоумышленник подменяет его своим собственным сертификатом, который может быть подписан неавторитетным центром сертификации или самоподписан.
Если клиент принимает этот поддельный сертификат, злоумышленник сможет расшифровывать все данные, передаваемые между клиентом и сервером.

3. Расшифровка и перехват данных:

После подмены сертификата злоумышленник может расшифровать трафик, который клиент отправляет на сервер, перехватить конфиденциальные данные (например, пароли, номера кредитных карт или другие личные данные).
Затем злоумышленник может снова зашифровать данные, используя настоящий сертификат сервера, и переслать их на реальный сервер, чтобы не вызывать подозрений у пользователя.

4. Визуальные индикаторы для пользователя:

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

Как злоумышленники могут получить поддельный сертификат:

1. Создание самоподписанного сертификата: Злоумышленник может создать свой сертификат и попытаться заставить жертву принять его.

2. Компрометация центра сертификации (CA): Злоумышленник может использовать уязвимость в центре сертификации или получить доступ к частным ключам законного CA, чтобы создать сертификат, который будет казаться действительным.

3. Социальная инженерия: Пользователи могут быть обмануты или введены в заблуждение, чтобы вручную доверять поддельному сертификату.

Способы защиты от подмены сертификатов:

1. Использование HSTS (HTTP Strict Transport Security) (это для веб разработчиков):

HSTS гарантирует, что браузер всегда будет использовать HTTPS и не позволит пользователю перейти на HTTP даже при попытках атак.

2. Проверка сертификатов:

Современные браузеры проверяют подлинность сертификатов через цепочку доверия. Если сертификат не подписан доверенным центром сертификации, браузер выдаст предупреждение.

3. Использование механизма Public Key Pinning:

Сервер может "закрепить" (pin) публичный ключ в браузере клиента, что предотвращает использование поддельного сертификата в будущем.

4. Антивирусные программы и системы обнаружения вторжений:

Многие антивирусы могут обнаруживать попытки подмены сертификатов и предупреждать пользователя.

5. Обновление браузеров и операционных систем:

Регулярное обновление ПО помогает защититься от уязвимостей, которые могут быть использованы для подмены сертификатов.

4. Действия злоумышленника после перехвата

После того как злоумышленник успешно перехватил трафик, он может:

  • Прослушивание (сниффинг):Злоумышленник просто наблюдает за передаваемыми данными, например за логинами и паролями, банковской информацией и т.д.
  • Изменение данных:Злоумышленник может модифицировать передаваемые данные, например подменить сумму в банковском переводе или изменить содержание письма.
  • Подмена данных:Злоумышленник может полностью подменить передаваемые данные. Например, при MITM-атаке на сайт интернет-банка, злоумышленник может подменить страницу входа, чтобы собрать данные учетной записи жертвы.
-2


5. Типичные сценарии MITM-атак

5.1. Атака на HTTPS-соединение

Злоумышленник перехватывает HTTPS-запросы от жертвы (например, при посещении сайта интернет-банка), подменяет сертификат на поддельный, расшифровывает передаваемые данные и отправляет их обратно на сервер или жертве. В результате злоумышленник получает доступ к конфиденциальной информации (логины, пароли, сессии).

5.2. Wi-Fi MITM-атака

Злоумышленник может создать поддельную Wi-Fi-точку доступа с таким же SSID (именем сети), как и у легитимной точки доступа, к которой привык подключаться пользователь. Жертва подключается к поддельному Wi-Fi, и все её трафик проходит через злоумышленника, который может перехватывать и изменять данные.

5.3. Фишинговая MITM-атака

Злоумышленник перехватывает трафик жертвы и перенаправляет её на фальшивый веб-сайт (например, поддельную страницу входа в интернет-банк или социальную сеть). Жертва вводит свои учетные данные, которые отправляются напрямую злоумышленнику.

6. Защита от MITM-атак

6.1. Использование шифрования

  • HTTPS: Все важные веб-сайты должны использовать HTTPS (SSL/TLS) для шифрования данных.
  • VPN: VPN-сервисы шифруют весь интернет-трафик пользователей, делая MITM-атаку значительно сложнее.
  • SSH: Использование зашифрованных соединений SSH для удалённого доступа и передачи данных.6.2. Проверка сертификатов
  • Следите за предупреждениями браузера о проблемах с сертификатами (например, при невалидности или подмене сертификатов).
  • Используйте инструменты для проверки подлинности сертификатов (например, расширения для браузеров, которые проверяют цепочку сертификатов).
-3

6.3. Защита от DNS и ARP спуфинга

  • Используйте статические ARP-таблицы в небольших сетях, чтобы избежать ARP-спуфинга.
  • Используйте защищённые и авторизованные DNS-сервисы (например, DNSSEC).6.4. Использование двухфакторной аутентификации (2FA)
    Даже если злоумышленник перехватит логин и пароль, двухфакторная аутентификация может затруднить ему доступ к учетной записи.

6.5. Избегание открытых сетей Wi-Fi

Не подключайтесь к неизвестным или небезопасным Wi-Fi сетям без использования дополнительных мер защиты, таких как VPN.

Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?

Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика

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

Обязательно прочитайте: Что должен знать и уметь тестировщик

Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам