Сетевая атака mim. Техническое FAQ. Почему вы опираетесь на классические криптоалгоритмы

Процесс начала сеанса TCP, состоящий из трёх шагов. Клиент посылает серверу пакет с флагом SYN. Получив от клиента пакет с флагом SYN, в ответ сервер отправляет пакет с SYN+ACK флагами и переходит в состояние ESTABLISHED. Получив корректный ответ от сервера, клиент отправляет пакет с флагом ACK и переходит в состояние ESTABLISHED

Бан-лист

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

Бот

Компьютер с помощью которого ведется DDoS атака "реальным" трафиком. В большинстве случаев это компьютер обычного пользователя, зараженный вирусом. Часто пользователь не может заметить, что его компьютер заражен и используется в противоправных целях

Веб-сервер

Компьютер в сети, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы. Как правило, вместе с HTTP-ответом веб-сервер отвечает HTML-страницей, изображением, медиа-потоком или другими данными

Веб-сервис

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

Домен

Понятие "Домен" может использоваться в различном контексте, когда речь идёт о сетевых технологиях. Чаще всего под доменом имеют ввиду доменное имя сайта. Домены делятся на различные уровни, например, в домене example.com, com является доменом первого уровня, а example доменом второго уровня. Для упрощения общения люди также используют термин "Поддомен", означающий домен, уровень которого больше двух. Например в домене mail.example.com, mail является поддоменом.

Поисковый робот

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

Полоса пропускания

Максимально возможное количество передаваемых данных в единицу времени. Часто интернет-провайдеры, обещая большую скорость доступа к Интернет не выполняют своих обещаний. В большинстве случаев это происходит из-за полного занятия полосы пропускания.

Атака человек-посередине — это обобщённое название для различных методик, направленных на получение доступа к трафику в качестве посредника. Из-за большого разнообразия этих методик, проблематично реализовать единый инструмент выявления этих атак, который бы работал для всех возможных ситуаций. Например, при атаке человек-посередине в локальной сети, обычно используется ARP-спуфинг (травление). И многие инструменты по «выявлению атаки человек-посередине» следят за изменением пар адресов Ethernet / или сообщают о подозрительной ARP-активности пассивным мониторингом ARP запросов/ответов. Но если эта атака используется на злонамеренно настроенном прокси-сервере, VPN, либо при других вариантах, когда не используется ARP-травление, то такие инструменты оказываются беспомощными.

Цель этого раздела — рассмотреть некоторые методики выявления атак человек-посередине, а также некоторые инструменты, предназначенные для определения, что в отношении вас осуществляется MitM-атака. Из-за разнообразия методик и сценариев реализации, невозможно гарантировать 100-процентное выявление.

1. Выявление модификации трафика

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

Принцип работы программы заключается в том, что она делает «контрольные» запросы и сохраняет полученные ответы. После этого она через определённые интервалы повторяет эти же запросы и сравнивает получаемые ответы. Программа достаточно интеллектуальна и для избежания ложных срабатываний выявляет динамические элементы в ответах и корректно их обрабатывает. Как только программа зафиксировала следы активности инструментов для MitM-атак, она сообщает об этом.

Примеры, как могут «наследить» некоторые инструменты:

  • MITMf , по умолчанию меняет все HTTPS URL в HTMLкоде на HTTP. Выявляется по сравнению содержимого HTTP.
  • Zarp + MITMProxy , MITMProxy имеет функционал, позволяющий очищать HTTP сжатие, это применяется для прозрачности передаваемого трафика, эта связка выявляется по исчезновению ранее присутствующего сжатия
  • Responder , выявляется по внезапным изменениям в преобразовании ответов mDNS: неожиданный ответ; ответ является внутренним, а ожидается внешний; ответ отличен от ожидаемого IP
  • MITMCanary vs MITMf:

  • MITMCanary vs Responder:

  • MITMCanary vs Zarp + MITMProxy:

Sudo pip install Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid urlopen analysis request simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

Как уже было сказано, работу mitmcanary нужно начать с контрольных запросов. Для этого перейдите в каталог

Cd service/

И запустите файл setup_test_persistence.py :

Python2 setup_test_persistence.py

Это займёт некоторое время — дождитесь окончания. Не должны выводиться сообщения об ошибках (если так, то у вас не хватает каких-то зависимостей).

Будет выведено что-то вроде этого:

Mial@HackWare:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Older configuration version detected (0 instead of 14) Upgrading configuration in progress. Purge log fired. Analysing... Purge finished! Record log in /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (default, Sep 1 2016, 20:27:38)

После окончания этого процесса, в этой же директории выполните (это запустит фоновый процесс):

Python2 main.py

После этого откройте новое окно терминала и перейдите в коневую директорию с mitmcanary. У меня это директория bin/mitmcanary/, поэтому я ввожу

Cd bin/mitmcanary/

и выполните там:

Python2 main.py

В первом окне выводиться что-то вроде:

Mial@HackWare:~/bin/mitmcanary/service$ python2 main.py Record log in /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (default, Sep 1 2016, 20:27:38) using for socket listening for Tuio on 127.0.0.1:3000 Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds

Т.е. программа раз в минуту делает контрольные запросы и ищет в них признаки атаки человек-посередине.

Во втором окне также присутствует вывод + открывается тёмное окно, авторы программы называют это окно «графическим интерфейсом»:

Можно подождать некоторое время, посёрфить по Интернету, чтобы убедиться, что программа не делает никаких ложных предупреждений.

Попробуем классическую программу Ettercap .

Я запускаю обычную MitM-атаку с ARP-спуфингом. На само травление mitmcanary не реагирует. Инструмент mitmcanary сам генерирует трафик, т. е. действий со стороны пользователя не требуется. Спустя некоторое время появляется одно единственное предупреждение, которое при последующих ближайших проверках не подтверждается. Но подобное же предупреждение появляется через несколько минут. Без дополнительного анализа я затрудняюсь сказать, является ли это примером ложного срабатывания — очень похоже на это. Вполне возможно, что это предупреждение вызвано нарушением связи, обусловленное необходимостью прохождения трафиком дополнительных маршрутов, либо особенностями моего некачественного Интернет-подключения.

Поскольку результат неочевиден (скорее «нет», чем «да»), то давайте попробуем программу Bettercap , которая имеет разнообразные модули. Не сомневаюсь, что при использовании различных плагинов Ettercap и/или дополнительных программ для расширения функциональности, мы бы также «засветились» для mitmcanary.

Для чистоты эксперимента я перезапускаю оборудование, запускаю mitmcanary на атакуемой машине и Bettercap на атакующей. При этом на атакуемой машине необязательно заново делать контрольные запросы — они сохраняются в файле внутри директории с программой. Т.е. достаточно запустить службу и графический интерфейс.

А в атакующей машине мы запустим Bettercap с включёнными парсерами:

Sudo bettercap -X

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

Зато запуск такой команды:

Sudo bettercap -X --proxy

На атакуемой машине вызывает большое количество предупреждений о возможной атаке человек-посередине:

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

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

2. Выявление ARP-спуфинга (травления кэша ARP)

Очень часто атака человек-посередине в локальной сети начинается с ARP травления. Именно поэтому в основе многих инструментов, предназначенных для выявления MitM-атак, лежит механизм слежения за изменением ARP кэша, в котором приписаны соответствия между Ethernet (MAC-адресами) и IP адресами.

В качестве примера таких программ можно вспомнить arpwatch , arpalert и большое количество новых программ. Программа ArpON не только следит за изменениями ARP кэша, но и защищает его от них.

В качестве примера запустим arpwatch в режиме отладки, без создания форков в фоне и отправки сообщений по почте. Вместо этого сообщения отправляются в stderr (стандартный вывод ошибок).

Sudo /usr/sbin/arpwatch -d

На атакующей машине запустим Ettercap и начнём ARP-спуфинг. На атакуемой машине наблюдаем:

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

Ещё один инструмент для выявления ARP спуфинга в реальном времени, это плагин самой Ettercap , который называется arp_cop . На атакуемой машине запустим Ettercap следующим образом:

Sudo ettercap -TQP arp_cop ///

А на атакующей начнём ARP-травление. На атакуемой машине сразу начинают выводиться предупреждения:

3. Выявление DNS спуфинга

DNS спуфинг свидетельствует, что между вами и пунктом назначения присутствует посредник, который может модифицировать ваш трафик. Как можно обнаружить, что DNS записи были подменены? Самый простой способ это сделать — сравнить с ответами сервера имён, которому вы доверяете. Но ведь записи в ответе, присланный на ваш запрос, также могут быть подменены…

Т.е. проверять нужно либо через зашифрованный канал (например, через Tor), либо использовать нестандартные настройки (другой порт, TCP вместо UDP). Примерно для этого предназначена программа sans от XiaoxiaoPu (по крайней мере, я так понял). У меня получилось с помощью этой программы перенаправлять DNS запросы через Tor и через нестандартные настройки на свой DNS сервер. Но я так и не смог от неё добиться, чтобы она показывала мне сообщения о спуфинге DNS ответов. А без этого смысл программы теряется.

Более достойных альтернатив мне найти не удалось.

В принципе, учитывая, что DNS спуферы, обычно, следят только за 53 портом, и только за протоколом UDP, то даже вручную достаточно просто проверить факт DNS спуфинга, правда для этого нужен свой собственный DNS сервер с нестандартной конфигурацией. Например, на атакующей машине я создал файл dns.conf со следующим содержанием:

Local mi-al.ru

Т.е. при запросе DNS записи для сайта mi-al.ru вместо реального IP будет присылаться IP машины злоумышленника.

Запускаю на атакующей машине:

Sudo bettercap --dns dns.conf

А на атакуемой делаю две проверки:

Dig mi-al.ru # и dig mi-al.ru -p 4560 @185.117.153.79

Результаты:

Mial@HackWare:~$ dig mi-al.ru ; <<>> DiG 9.10.3-P4-Debian <<>> mi-al.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51993 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 86400 IN A 192.168.1.48 ;; Query time: 2 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Nov 02 09:25:20 MSK 2016 ;; MSG SIZE rcvd: 42 mial@HackWare:~$ dig mi-al.ru -p 4560 @185.117.153.79 ; <<>> DiG 9.10.3-P4-Debian <<>> mi-al.ru -p 4560 @185.117.153.79 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 401 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 3799 IN A 185.26.122.50 ;; Query time: 304 msec ;; SERVER: 185.117.153.79#4560(185.117.153.79) ;; WHEN: Wed Nov 02 09:25:27 MSK 2016 ;; MSG SIZE rcvd: 53

Видно, что для «обычного» DNS запроса прислан локальный IP 192.168.1.48, а при запросе к DNS на нетипичном порту присылается верный IP сервера.

Если бы сервер был настроен для работы с протоколом TCP (а не UDP), тогда команда выглядела бы так:

Dig mi-al.ru -p 4560 +tcp @185.117.153.79

Явно не хватает инструмента, который сам бы отслеживал DNS ответы в трафике, перепроверял бы их по альтернативному источнику и поднимал тревогу в случае спуфинга.

Чтобы обойтись без настройки своего собственного удалённого DNS, можно сделать запросы к серверу имён через Tor. Поскольку весь трафик Tor шифруется, то полученные таким образом DNS ответы не по зубам посреднику. Если Tor ещё не установлен, то установите его.

Sudo apt-get install tor

Sudo pacman -S tor

Запустите службу:

Sudo systemctl start tor

Если это вам нужно, добавьте эту службу в автозагрузку:

Sudo systemctl enable tor

Откройте файл /etc/tor/torrc и добавьте туда следующие строки:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion

Обратите внимание на цифру 530. Это номер порта, вместо 530 можно указать любой другой (незанятый) порт. Главное, запомните его.

Опять делаем проверки:

Dig mi-al.ru # и dig mi-al.ru -p 530 @localhost

Теперь в качестве сервера мы указываем localhost , а номер порта пишите тот, который указали в настройках /etc/tor/torrc.

Как видно из следующего скриншота, в отношении машины, на которой сделана проверка, осуществляется атака DNS спуфинг:

4. Поиск сетевых интерфейсов в неразборчивом режиме (promiscuous mode)

Если в вашей локальной сети есть (а особенно если внезапно появилось) оборудование в неразборчивом режиме , это очень подозрительно, хотя и не свидетельствует однозначно об атаке человек-посередине.

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

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

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

Для поиска сетевых интерфейсов в неразборчивом режиме имеется плагин Ettercap , который называется search_promisc .

Пример запуска плагина:

Sudo ettercap -TQP search_promisc ///

Работа плагина не является полностью надёжной, могут иметь место ошибки в определении режима сетевого интерфейса.

Заключение

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

18.10.2016 | Владимир Хазов

Планы ФСБ, Минкомсвязи и Минпромторга по реализации положений закона Яровой в части перехвата и дешифровки переписки россиян перестают быть только планами, а уже начинают приводиться в действие заказом на подготовку экспертного заключения о возможности перехвата сообщений WhatsApp, Viber, Facebook Messenger, Telegram, Skype с помощью MITM-атак и демонстрацию прототипа такого средства.

О схеме организации «законной» MITM-атаки мы писали в прошлой статье . Сегодня же остановимся подробнее на самом принципе такой атаки и способах ее осуществления.

Что такое MITM-атака

Man In The Middle (MITM) переводится как «человек посередине». Этот термин обозначает сетевую атаку, когда злоумышленник находится между интернет-пользователем и приложением, к которому тот обращается. Не в физическом плане, конечно, а с помощью специального программного обеспечения. Он представляется пользователю запрашиваемым приложением (это может быть веб-сайт или интернет-сервис), имитирует работу с ним, делает это так, чтобы сложилось впечатление нормальной работы и обмена информацией.

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

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

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

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

Как осуществляется MITM-атака

Выполнение MITM-атаки состоит из двух фаз: перехват и дешифровка.

  • Перехват

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

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

Второй способ – активный перехват, которой может быть осуществлен одним из следующих вариантов:

IP-spoofing – подмена IP-адреса цели в заголовке пакета на адрес атакующего. В результате пользователи, вместо того чтобы зайти на запрашиваемый URL, попадают на сайт злоумышленника.

ARP-spoofing – подмена настоящего MAC-адреса узла на адрес атакующего в ARP-таблице жертвы. В результате данные, отправленные пользователем на IP-адрес требуемого узла, попадают на адрес атакующего.

DNS-spoofing – заражение кэша DNS, проникновение на сервер DNS и подмена записи соответствия адреса веб-сайта. В результате пользователь пытается получить доступ к запрашиваемому сайту, но получает от DNS-сервера адрес сайта злоумышленника.

  • Дешифровка

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

Для этого существует несколько методов:

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

SSL BEAST (browser exploit against SSL/TLS) – атака использует уязвимость SSL в TLS версии 1.0 и 1.2. Компьютер жертвы заражается вредоносным JavaScript, который перехватывает зашифрованные cookies, отправляемые веб-приложению. Это компрометирует режим шифрования «сцепления блоков шифротекста» таким образом, что атакующий получает расшифрованные cookies и ключи аутентификации.

SSL-hijacking – передача поддельных ключей аутентификации пользователю и приложению в момент начала TCP-сеанса. Это создает видимость безопасного соединения, когда на самом деле сеансом управляет «человек посередине».

SSL-stripping – понижает соединение с защищенного HTTPS до простого HTTP, перехватывая TLS-аутентификацию, отправленную приложением пользователю. Злоумышленник представляет пользователю незашифрованный доступ к сайту, а сам поддерживает защищенный сеанс с приложением, получая возможность видеть передаваемые данные жертвы.\

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

Надежная защита от MITM-атак возможна при выполнении пользователем нескольких превентивных действий и применении комбинации способов шифрования и аутентификации разработчиками веб-приложений.

Действия пользователей:

  • Избегать подключения к Wi-Fi-точкам, не имеющим парольной защиты. Отключите функцию автоматического подключения к известным точкам доступа – злоумышленник может замаскировать свой Wi-Fi под легальный.
  • Обращать внимание на уведомление браузера о переходе на незащищенный сайт. Такое сообщение может указывать о переходе на поддельный сайт злоумышленника или на проблемы с защитой легального сайта.
  • Завершать сеанс работы с приложением (logout), если оно не используется.
  • Не использовать общедоступные сети (кафе, парк, гостиница и другие) для проведения конфиденциальных операций (деловая переписка, финансовые операции, покупки в онлайн-магазинах и т. п.).
  • Используйте на компьютере или ноутбуке антивирус с актуальными базами, он поможет защититься от атак с помощью вредоносного программного обеспечения.

Разработчики веб-приложений и сайтов должны использовать защищенные протоколы TLS и HTTPS, которые в значительной мере усложняют spoofing-атаки, шифруя предаваемые данные. Также их использование предотвращает перехват трафика с целью получения параметров авторизации и ключей доступа.

Хорошей практикой считается защита TLS и HTTPS не только страниц авторизации, но и всех остальных разделов сайта. Это уменьшает шанс злоумышленника на хищение cookies пользователя в тот момент, когда он перемещается по незащищенным страницам после прохождения авторизации.

Защита от MITM-атак – это ответственность пользователя и оператора связи. Для пользователя самое важное – не терять бдительность, использовать только проверенные способы доступа в интернет, а для передачи персональных данных выбирать сайты с HTTPS-шифрованием. Операторам связи можно рекомендовать использовать Deep Packet Inspection (DPI) системы для обнаружения аномалий в сетях передачи данных и предотвращения spoofing-атак.

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

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

Понимание того, как работает интернет

Чтобы понять принцип атаки посредника, стоит сначала разобраться с тем, как работает сам интернет. Основные точки взаимодействия: клиенты, маршрутизаторы, серверы. Наиболее распространенный протокол взаимодействия между клиентом и сервером - Hypertext Transfer Protocol (HTTP). Серфинг в интернете с помощью браузера, электронная почта, обмен мгновенными сообщениями - все это осуществляется через HTTP.

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

Рисунок 1. Взаимодействие клиент-сервер

Обеспечение безопасности протокола связи

Безопасный протокол связи должен иметь каждое из следующих свойств:

  1. Приватность - только предполагаемый получатель может прочитать сообщение.
  2. Аутентичность - личность взаимодействующих сторон доказана.
  3. Целостность - подтверждение того, что сообщение не было изменено в пути.

Если хоть одно из этих правил не соблюдено, весь протокол скомпрометирован.

Атака посредника через HTTP-протокол

Злоумышленник может легко осуществить атаку посредника, используя технику, называемую ARP-спуфинг. Любой в вашей сети Wi-Fi может послать вам поддельный ARP-пакет, из-за него вы неосознанно будете посылать весь ваш трафик через злоумышленника вместо маршрутизатора.

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

Рисунок 2. Схема атаки посредника


Для предотвращения таких атак была создана защищенная версия протокола HTTP. Transport Layer Security (TLS) и его предшественник, Secure Socket Layer (SSL), являются криптографическими протоколами, которые обеспечивают безопасность передачи данных по сети. Следовательно, защищенный протокол будет называться HTTPS. Можно посмотреть, как работает защищенный протокол, набрав в адресной строке браузера (обратите внимание на наличие S в https).

Атака посредника на плохо реализованный SSL

Современный SSL использует хороший алгоритм шифрования, но это не имеет значения, если он реализован неправильно. Если хакер может перехватить запрос, он может его изменить, удалив из запрашиваемого URL «S», тем самым обойдя SSL.

Такой перехват и модификацию запроса можно заметить. Например, если вы запрашиваете https://login.yahoo.com/ а в ответ приходит http://login.yahoo.com/ , это должно вызвать подозрения. На момент написания статьи такая атака действительно работает на сервисе электронной почты Yahoo.

Рисунок 3. Перехват и модификация запроса


Чтобы предотвратить такую атаку, серверы могут реализовать HTTP Strict Transport Security (HSTS) - механизм, активирующий форсированное защищенное соединение через протокол HTTPS. В этом случае, если злоумышленник модифицирует запрос, убрав из URL «S», сервер все равно перенаправит пользователя 302-редиректом на страницу с защищенным протоколом.

Рисунок 4. Схема работы HSTS


Такой способ реализации SSL является уязвимым для другого вида атаки - злоумышленник создает SSL-соединение с сервером, но различными уловками заставляет пользователя использовать HTTP.

Рисунок 5. Схема атаки при HSTS


Для предотвращения таких атак современные браузеры вроде Chrome, Firefox и Tor отслеживают сайты, использующие HSTS и устанавливают с ними соединение со стороны клиента по SSL в принудительном порядке. В этом случае злоумышленнику, проводящему атаку посредника, придется создавать SSL-соединение с жертвой.

Рисунок 6. Схема атаки, где злоумышленник устанавливает SSL-соединение с жертвой


Для того чтобы обеспечить SLL-соединение с пользователем, злоумышленник должен знать, как действовать в качестве сервера. Давайте разберемся в технических аспектах SSL.

Понимание SSL

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

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

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

Рисунок 7. Работа публичного и конфиденциального ключей

Как SSL обеспечивает три свойства, необходимые для безопасной связи?

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

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

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

Рисунок 8. Схема атаки при наличии у злоумышленника сертификата


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

Проблемы центров сертификации

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

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

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

Даже когда существовал всего один центр сертификации, VeriSign, бытовала проблема - люди, которые должны были предотвращать атаки посредника, продавали услуги перехвата.

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

Криминалистика

Поскольку злоумышленник отправляет поддельные пакеты ARP, нельзя увидеть его IP-адрес. Вместо этого нужно обращать внимание на MAC-адрес, который является специфическим для каждого устройства в сети. Если вы знаете MAC-адрес вашего маршрутизатора, вы можете сравнить его с МАС-адресом шлюза по умолчанию, чтобы выяснить, действительно ли это ваш маршрутизатор или злоумышленник.

Например, на ОС Windows вы можете воспользоваться командой ipconfig в командной строке (CMD), чтобы увидеть IP-адрес вашего шлюза по умолчанию (последняя строка):

Рисунок 9. Использование команды ipconfig


Затем используйте команду arp –a для того, чтобы узнать MAC-адрес этого шлюза:

Рисунок 10. Использование команды arp –a


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

Примечание: если атакующий будет правильно подменять MAC-адреса, отследить его станет большой проблемой.

Вывод

SSL - протокол, заставляющий злоумышленника проделать огромную работу для совершения атаки. Но он не защитит вас от атак, спонсируемых государством или от квалифицированных хакерских организаций.

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

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


Wikimedia Foundation . 2010 .

Смотреть что такое "Человек посередине (атака)" в других словарях:

    Атака «человек посередине», MITM атака (англ. Man in the middle) термин в криптографии, обозначающий ситуацию, когда криптоаналитик (атакующий) способен читать и видоизменять по своей воле сообщения, которыми обмениваются… … Википедия

    - … Википедия

    Криптоанализ (от греч. κρυπτός скрытый и анализ) наука о методах получения исходного значения зашифрованной информации, не имея доступа к секретной информации (ключу), необходимой для этого. В большинстве случаев под этим подразумевается… … Википедия

    Хакерская атака в узком смысле слова в настоящее время под словосочетанием понимается «Покушение на систему безопасности», и склоняется скорее к смыслу следующего термина Крэкерская атака. Это произошло из за искажения смысла самого слова «хакер» … Википедия

    - (от др. греч. κρυπτός скрытый и анализ) наука о методах расшифровки зашифрованной информации без предназначенного для такой расшифровки ключа. Термин был введён американским криптографом Уильямом Ф. Фридманом в 1920 году. Неформально… … Википедия



Понравилась статья? Поделиться с друзьями: