Все об атаке "Человек посередине" (Man in the Middle, MitM). Техническое FAQ Атаки типа man in the middle

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

MITMf

Начнем с одного из наиболее интересных кандидатов. Это целый фреймворк для проведения man-in-the-middle атак, построенный на базе sergio-proxy. С недавнего времени включен в состав Kali Linux. Для самостоятельной установки достаточно клонироватьрепозиторий и выполнить пару команд:

# setup.sh # pip install -r requirements.txt

# pip install -r requirements.txt

Имеет расширяемую за счет плагинов архитектуру. Среди основных можно выделить следующие:

  • Spoof - позволяет перенаправлять трафик при помощи ARP/DHCP-спуфинга, ICMP-редиректов и модифицировать DNS-запросы;
  • Sniffer - этот плагин отслеживает попытки логина для различных протоколов;
  • BeEFAutorun - позволяет автоматически запускать модули BeEF, исходя из типа ОС и браузера клиента;
  • AppCachePoison - осуществляет атаку «отравление кеша»;
  • SessionHijacking - угоняет сессии и сохраняет полученные куки в профиле огнелиса;
  • BrowserProfiler - пытается получить список используемых браузером плагинов;
  • FilePwn - позволяет подменять пересылаемые по HTTP файлы с помощью Backdoor Factory и BDFProxy;
  • Inject - внедряет произвольный контент в HTML-страницу;
  • jskeylogger - внедряет JavaScript-кейлоггер в клиентские страницы.

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

PuttyRider

Еще одна достойная внимания утилита. Правда, в отличие от всех остальных рассматриваемых сегодня инструментов, она очень узко специализирована. Как рассказывает сам автор проекта, на мысль создать такую утилиту его натолкнуло то, что во время проведения тестов на проникновение наиболее важные данные располагались на Linux/UNIX-серверах, к которым админы подключались по SSH/Telnet/rlogin. Причем в большинстве случаев получить доступ к машине администраторов было намного проще, чем к целевому серверу. Проникнув на машину сисадмина, остается только убедиться в наличии запущенного PuTTY и с помощью данной тулзы выстроить обратный мостик до атакующего.

Утилита позволяет не только снифать «общение» между админом и удаленным сервером (включая пароли), но и выполнять произвольные shell-команды в рамках данной сессии. Причем все это будет происходить абсолютно прозрачно для пользователя (админа). Если интересуют технические детали, например как реализовано внедрение в процесс PuTTY, рекомендую ознакомиться спрезентацией автора.

Довольно старая утилита, появившаяся на свет более восьми лет назад. Предназначается для клонирования сессий путем кражи кукисов. Для угона сессий имеет базовые навыки обнаружения хостов (в случае подключения к открытой беспроводной сети или хабу) и проведения ARP poisoning. Единственная проблема - сегодня, в отличие от того, что было восемь лет назад, почти все крупные компании, такие как Yahoo или Facebook, используют SSL-шифрование, что делает эту тулзу абсолютно бесполезной. Несмотря на это, в Сети еще остается достаточно ресурсов, не использующих SSL, так что списывать утилиту со счетов пока рано. К ее плюсам можно отнести то, что она автоматически интегрируется в Firefox и создает отдельный профиль для каждой перехваченной сессии. Исходный код доступен в репозитории, а самостоятельно собрать ее можно с помощью такой последовательности команд:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip sessionthief

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

ProxyFuzz

Непосредственно к проведению MITM-атак ProzyFuzz не имеет никакого отношения. Как можно догадаться из названия, тулза предназначена для фаззинга. Это маленький недетерминированный сетевой фаззер, реализованный на питоне, который произвольно меняет содержимое пакетов сетевого трафика. Поддерживает протоколы TCP и UDP. Можно настроить, чтобы производился фаззинг только одной стороны. Пригодится, когда нужно быстренько проверить какое-нибудь сетевое приложение (или протокол) и разработать PoC. Пример использования:

Python proxyfuzz -l -r -p

python proxyfuzz -l -r -p

Список опций включает в себя:

  • w - задает число запросов, отправленных перед началом фаззинга;
  • c - фаззить только клиента (иначе обе стороны);
  • s - фаззить только сервер (иначе обе стороны);
  • u - UDP-протокол (в противном случае используется TCP).

The Middler

Представленная в рамках конференции DEF CON утилита для проведения MITM-атак на различные протоколы. Альфа-версия поддерживала протокол HTTP и имела в своем арсенале три крутых плагина:

  • plugin-beef.py - внедряет Browser Exploitation Framework (BeEF) в любой HTTP-запрос, приходящий из локальной сети;
  • plugin-metasploit.py - внедряет в незашифрованные (HTTP) запросы IFRAME, который подгружает эксплойты для браузеров из Metasploit;
  • plugin-keylogger.py - встраивает JavaScript обработчик события onKeyPress для всех текстовых полей, которые будут передаваться по HTTPS, заставляя браузер посимвольно отправлять вводимый пользователем пароль на сервер атакующего, до того как произойдет отправка всей формы.

The Middler не только автоматически анализирует сетевой трафик и находит в нем кукисы, но и самостоятельно запрашивает их со стороны клиента, то есть процесс автоматизирован по максимуму. Программа гарантирует сбор всех незащищенных аккаунтов в компьютерной сети (или публичном хотспоте), к трафику которой она имеет доступ. Для корректной работы программы в системе должны быть установлены следующие пакеты: Scapy, libpcap, readline, libdnet, python-netfilter. К сожалению, репозиторий давно не обновляется, поэтому новую функциональность придется добавлять самостоятельно.

Консольная утилита, которая в интерактивном режиме позволяет исследовать и модифицировать HTTP-трафик. Благодаря таким навыкам утилита используется не только пентестерами/хакерами, но и обычными разработчиками, применяющими ее, например, для отладки веб-приложений. С ее помощью можно получать подробную информацию о том, какие запросы делает приложение и какие ответы оно получает. Также mitmproxy может помочь в изучении особенностей функционирования некоторых REST API, в особенности плохо документированных.

Установка предельно проста:

$ sudo aptitude install mitmproxy

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

Dsniff

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

ну или инструкцию с нашего сайта:

На последок..

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

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

Принцип атаки

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

Предположим, объект A планирует передать объекту B некую информацию. Объект C обладает знаниями о структуре и свойствах используемого метода передачи данных, а также о факте планируемой передачи собственно информации, которую С планирует перехватить. Для совершения атаки С «представляется» объекту А как В, а объекту В - как А. Объект А, ошибочно полагая, что он направляет информацию В, посылает её объекту С. Объект С, получив информацию, и совершив с ней некоторые действия (например, скопировав или модифицировав в своих целях) пересылает данные собственно получателю - В; объект В, в свою очередь, считает, что информация была получена им напрямую от А.

Пример атаки

Внедрение вредоносного кода

Атака «человек посередине» позволяет криптоаналитику вставлять свой код в электронные письма, SQL выражения и веб-страницы (то есть позволяет осуществлять SQL-инъекции , HTML/script-инъекции или XSS-атаки), и даже модифицировать загружаемые пользователем бинарные файлы для того, чтобы получить доступ к учетной записи пользователя или изменить поведение программы, загруженной пользователем из интернета.

Downgrade Attack

Термином «Downgrade Attack» называют такую атаку, при которой криптоаналитик вынуждает пользователя использовать менее безопасные функции, протоколы, которые всё ещё поддерживаются из соображений совместимости. Такой вид атаки может быть проведён на протоколы SSH , IPsec и PPTP .

Для защиты от Downgrade Attack небезопасные протоколы должны быть отключены как минимум на одной стороне; просто поддержки и использования по умолчанию безопасных протоколов недостаточно!

SSH V1 вместо SSH V2

Атакующий может попытаться изменить параметры соединения между сервером и клиентом при установлении между ними соединения. Согласно докладу, сделанному на конференции Blackhat Conference Europe 2003, криптоаналитик может «заставить» клиента начать сессию SSH1 вместо SSH2 изменив номер версии «1.99» для SSH-сессии на «1.51», что означает использование SSH V1. Протокол SSH-1 имеет уязвимости, которыми может воспользоваться криптоаналитик.

IPsec

При таком сценарии атаки криптоаналитик вводит свою жертву в заблуждение, заставляя её думать, что IPsec сессия не может начаться на другом конце (сервере). Это приводит к тому, что сообщения будут пересылаться в явном виде, в случае если хост-машина работает в rollback режиме.

PPTP

На этапе согласования параметров сессии PPTP атакующий может вынудить жертву использовать менее безопасную PAP аутентификацию, MSCHAP V1 (то есть «откатиться» с MSCHAP V2 до версии 1), либо не использовать шифрование вообще.

Атакующий может вынудить свою жертву повторить этап согласования параметров PPTP-сессии (послать Terminate-Ack-пакет), выкрасть пароль из существующего туннеля и повторить атаку.

Публичные средства коммуникаций без защиты достоверности, конфиденциальности, доступности и целостности информации

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

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

Спасёт ли шифрование?

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

Однако в случае, если клиент и сервер общаются по HTTPS - протоколу, поддерживающему шифрование - тоже может быть проведена атака «человек посередине». При таком виде соединения используется TLS или SSL для шифрования запросов, что, казалось бы, делает канал защищённым от сниффинга и MITM-атак. Атакующий может для каждого TCP-соединения создать две независимые SSL-сессии. Клиент устанавливает SSL-соединение с атакующим, тот в свою очередь создает соединение с сервером. Браузер в таких случаях обычно предупреждает о том, что сертификат не подписан доверенным центром сертификации, но рядовые пользователи устаревших браузеров легко обходят данное предупреждение. К тому же, у злоумышленника может оказаться сертификат, подписанный корневым центром сертификации (например, такие сертификаты иногда используются для DLP ) и не создающий предупреждений. Кроме того, существует ряд атак на HTTPS. Таким образом, HTTPS протокол нельзя считать защищенным от MITM-атак у рядовых пользователей. [ ] Существует ряд мер, предотвращающих часть атак MITM на https сайты, в частности, HSTS , который запрещает использовать http соединение с сайтов, Certificate pinning и HTTP Public Key Pinning , запрещающие подмену сертификата.

Обнаружение MITM-атаки

Для обнаружения атаки «человек посередине» необходимо проанализировать сетевой трафик. К примеру, для детектирования атаки по SSL следует обратить внимание на следующие параметры:

  • IP-адрес сервера
  • DNS-сервер
  • X.509 -сертификат сервера
    • Подписан ли сертификат самостоятельно?
    • Подписан ли сертификат центром сертификации ?
    • Был ли сертификат аннулирован?
    • Менялся ли сертификат недавно?
    • Получали ли другие клиенты в интернете такой же сертификат?

Реализации MITM-атаки

Перечисленные программы могут быть использованы для осуществления атак «человек посередине», а также для их обнаружения и тестирование системы на уязвимости.

См. также

  • Aspidistra (англ.) - британский радиопередатчик, использовавшийся во время Второй мировой войны «вторжения», вариант MITM-атаки.
  • Заговор Бабингтона (англ.) - заговор против Елизаветы I , в ходе которого Уолсингем перехватывал корреспонденцию.

Другие атаки

  • «Человек-в-браузере» (Man in the Browser) - вид атаки, при которой злоумышленник получает возможность мгновенно менять параметры транзакции, менять страницы совершенно прозрачно для жертвы.
  • «Встреча посередине» (Meet-in-the-middle attack) - криптографическая атака, которая также, как и атака «дней рождения» , использует компромисс между временем и памятью .
  • «Потеря посередине» (Miss in the middle attack) - эффективный метод так называемого impossible differential cryptanalysis.
  • Relay attack - вариант MITM-атаки, основанный на пересылке перехваченного сообщения допустимому получателю, но не тому, которому это сообщение предназначалось.
  • Руткит - программа, предназначенная для скрытия следов присутствия злоумышленника.

Напишите отзыв о статье "Атака посредника"

Литература

Ссылки

  • www.all.net/CID/Attack/Attack74.html
  • www.nag.ru/2003/0405/0405.shtml
  • www.schneier.com/blog/archives/2006/04/rfid_cards_and.html

Отрывок, характеризующий Атака посредника

– Quartire, quartire, logement, – сказал офицер, сверху вниз, с снисходительной и добродушной улыбкой глядя на маленького человека. – Les Francais sont de bons enfants. Que diable! Voyons! Ne nous fachons pas, mon vieux, [Квартир, квартир… Французы добрые ребята. Черт возьми, не будем ссориться, дедушка.] – прибавил он, трепля по плечу испуганного и молчаливого Герасима.
– A ca! Dites donc, on ne parle donc pas francais dans cette boutique? [Что ж, неужели и тут никто не говорит по французски?] – прибавил он, оглядываясь кругом и встречаясь глазами с Пьером. Пьер отстранился от двери.
Офицер опять обратился к Герасиму. Он требовал, чтобы Герасим показал ему комнаты в доме.
– Барин нету – не понимай… моя ваш… – говорил Герасим, стараясь делать свои слова понятнее тем, что он их говорил навыворот.
Французский офицер, улыбаясь, развел руками перед носом Герасима, давая чувствовать, что и он не понимает его, и, прихрамывая, пошел к двери, у которой стоял Пьер. Пьер хотел отойти, чтобы скрыться от него, но в это самое время он увидал из отворившейся двери кухни высунувшегося Макара Алексеича с пистолетом в руках. С хитростью безумного Макар Алексеич оглядел француза и, приподняв пистолет, прицелился.
– На абордаж!!! – закричал пьяный, нажимая спуск пистолета. Французский офицер обернулся на крик, и в то же мгновенье Пьер бросился на пьяного. В то время как Пьер схватил и приподнял пистолет, Макар Алексеич попал, наконец, пальцем на спуск, и раздался оглушивший и обдавший всех пороховым дымом выстрел. Француз побледнел и бросился назад к двери.
Забывший свое намерение не открывать своего знания французского языка, Пьер, вырвав пистолет и бросив его, подбежал к офицеру и по французски заговорил с ним.
– Vous n"etes pas blesse? [Вы не ранены?] – сказал он.
– Je crois que non, – отвечал офицер, ощупывая себя, – mais je l"ai manque belle cette fois ci, – прибавил он, указывая на отбившуюся штукатурку в стене. – Quel est cet homme? [Кажется, нет… но на этот раз близко было. Кто этот человек?] – строго взглянув на Пьера, сказал офицер.
– Ah, je suis vraiment au desespoir de ce qui vient d"arriver, [Ах, я, право, в отчаянии от того, что случилось,] – быстро говорил Пьер, совершенно забыв свою роль. – C"est un fou, un malheureux qui ne savait pas ce qu"il faisait. [Это несчастный сумасшедший, который не знал, что делал.]
Офицер подошел к Макару Алексеичу и схватил его за ворот.
Макар Алексеич, распустив губы, как бы засыпая, качался, прислонившись к стене.
– Brigand, tu me la payeras, – сказал француз, отнимая руку.
– Nous autres nous sommes clements apres la victoire: mais nous ne pardonnons pas aux traitres, [Разбойник, ты мне поплатишься за это. Наш брат милосерд после победы, но мы не прощаем изменникам,] – прибавил он с мрачной торжественностью в лице и с красивым энергическим жестом.
Пьер продолжал по французски уговаривать офицера не взыскивать с этого пьяного, безумного человека. Француз молча слушал, не изменяя мрачного вида, и вдруг с улыбкой обратился к Пьеру. Он несколько секунд молча посмотрел на него. Красивое лицо его приняло трагически нежное выражение, и он протянул руку.
– Vous m"avez sauve la vie! Vous etes Francais, [Вы спасли мне жизнь. Вы француз,] – сказал он. Для француза вывод этот был несомненен. Совершить великое дело мог только француз, а спасение жизни его, m r Ramball"я capitaine du 13 me leger [мосье Рамбаля, капитана 13 го легкого полка] – было, без сомнения, самым великим делом.
Но как ни несомненен был этот вывод и основанное на нем убеждение офицера, Пьер счел нужным разочаровать его.
– Je suis Russe, [Я русский,] – быстро сказал Пьер.
– Ти ти ти, a d"autres, [рассказывайте это другим,] – сказал француз, махая пальцем себе перед носом и улыбаясь. – Tout a l"heure vous allez me conter tout ca, – сказал он. – Charme de rencontrer un compatriote. Eh bien! qu"allons nous faire de cet homme? [Сейчас вы мне все это расскажете. Очень приятно встретить соотечественника. Ну! что же нам делать с этим человеком?] – прибавил он, обращаясь к Пьеру, уже как к своему брату. Ежели бы даже Пьер не был француз, получив раз это высшее в свете наименование, не мог же он отречься от него, говорило выражение лица и тон французского офицера. На последний вопрос Пьер еще раз объяснил, кто был Макар Алексеич, объяснил, что пред самым их приходом этот пьяный, безумный человек утащил заряженный пистолет, который не успели отнять у него, и просил оставить его поступок без наказания.
Француз выставил грудь и сделал царский жест рукой.
– Vous m"avez sauve la vie. Vous etes Francais. Vous me demandez sa grace? Je vous l"accorde. Qu"on emmene cet homme, [Вы спасли мне жизнь. Вы француз. Вы хотите, чтоб я простил его? Я прощаю его. Увести этого человека,] – быстро и энергично проговорил французский офицер, взяв под руку произведенного им за спасение его жизни во французы Пьера, и пошел с ним в дом.
Солдаты, бывшие на дворе, услыхав выстрел, вошли в сени, спрашивая, что случилось, и изъявляя готовность наказать виновных; но офицер строго остановил их.
– On vous demandera quand on aura besoin de vous, [Когда будет нужно, вас позовут,] – сказал он. Солдаты вышли. Денщик, успевший между тем побывать в кухне, подошел к офицеру.
– Capitaine, ils ont de la soupe et du gigot de mouton dans la cuisine, – сказал он. – Faut il vous l"apporter? [Капитан у них в кухне есть суп и жареная баранина. Прикажете принести?]
– Oui, et le vin, [Да, и вино,] – сказал капитан.

Французский офицер вместе с Пьером вошли в дом. Пьер счел своим долгом опять уверить капитана, что он был не француз, и хотел уйти, но французский офицер и слышать не хотел об этом. Он был до такой степени учтив, любезен, добродушен и истинно благодарен за спасение своей жизни, что Пьер не имел духа отказать ему и присел вместе с ним в зале, в первой комнате, в которую они вошли. На утверждение Пьера, что он не француз, капитан, очевидно не понимая, как можно было отказываться от такого лестного звания, пожал плечами и сказал, что ежели он непременно хочет слыть за русского, то пускай это так будет, но что он, несмотря на то, все так же навеки связан с ним чувством благодарности за спасение жизни.
Ежели бы этот человек был одарен хоть сколько нибудь способностью понимать чувства других и догадывался бы об ощущениях Пьера, Пьер, вероятно, ушел бы от него; но оживленная непроницаемость этого человека ко всему тому, что не было он сам, победила Пьера.
– Francais ou prince russe incognito, [Француз или русский князь инкогнито,] – сказал француз, оглядев хотя и грязное, но тонкое белье Пьера и перстень на руке. – Je vous dois la vie je vous offre mon amitie. Un Francais n"oublie jamais ni une insulte ni un service. Je vous offre mon amitie. Je ne vous dis que ca. [Я обязан вам жизнью, и я предлагаю вам дружбу. Француз никогда не забывает ни оскорбления, ни услуги. Я предлагаю вам мою дружбу. Больше я ничего не говорю.]
В звуках голоса, в выражении лица, в жестах этого офицера было столько добродушия и благородства (во французском смысле), что Пьер, отвечая бессознательной улыбкой на улыбку француза, пожал протянутую руку.
– Capitaine Ramball du treizieme leger, decore pour l"affaire du Sept, [Капитан Рамбаль, тринадцатого легкого полка, кавалер Почетного легиона за дело седьмого сентября,] – отрекомендовался он с самодовольной, неудержимой улыбкой, которая морщила его губы под усами. – Voudrez vous bien me dire a present, a qui" j"ai l"honneur de parler aussi agreablement au lieu de rester a l"ambulance avec la balle de ce fou dans le corps. [Будете ли вы так добры сказать мне теперь, с кем я имею честь разговаривать так приятно, вместо того, чтобы быть на перевязочном пункте с пулей этого сумасшедшего в теле?]
Пьер отвечал, что не может сказать своего имени, и, покраснев, начал было, пытаясь выдумать имя, говорить о причинах, по которым он не может сказать этого, но француз поспешно перебил его.
– De grace, – сказал он. – Je comprends vos raisons, vous etes officier… officier superieur, peut etre. Vous avez porte les armes contre nous. Ce n"est pas mon affaire. Je vous dois la vie. Cela me suffit. Je suis tout a vous. Vous etes gentilhomme? [Полноте, пожалуйста. Я понимаю вас, вы офицер… штаб офицер, может быть. Вы служили против нас. Это не мое дело. Я обязан вам жизнью. Мне этого довольно, и я весь ваш. Вы дворянин?] – прибавил он с оттенком вопроса. Пьер наклонил голову. – Votre nom de bapteme, s"il vous plait? Je ne demande pas davantage. Monsieur Pierre, dites vous… Parfait. C"est tout ce que je desire savoir. [Ваше имя? я больше ничего не спрашиваю. Господин Пьер, вы сказали? Прекрасно. Это все, что мне нужно.]
Когда принесены были жареная баранина, яичница, самовар, водка и вино из русского погреба, которое с собой привезли французы, Рамбаль попросил Пьера принять участие в этом обеде и тотчас сам, жадно и быстро, как здоровый и голодный человек, принялся есть, быстро пережевывая своими сильными зубами, беспрестанно причмокивая и приговаривая excellent, exquis! [чудесно, превосходно!] Лицо его раскраснелось и покрылось потом. Пьер был голоден и с удовольствием принял участие в обеде. Морель, денщик, принес кастрюлю с теплой водой и поставил в нее бутылку красного вина. Кроме того, он принес бутылку с квасом, которую он для пробы взял в кухне. Напиток этот был уже известен французам и получил название. Они называли квас limonade de cochon (свиной лимонад), и Морель хвалил этот limonade de cochon, который он нашел в кухне. Но так как у капитана было вино, добытое при переходе через Москву, то он предоставил квас Морелю и взялся за бутылку бордо. Он завернул бутылку по горлышко в салфетку и налил себе и Пьеру вина. Утоленный голод и вино еще более оживили капитана, и он не переставая разговаривал во время обеда.
– Oui, mon cher monsieur Pierre, je vous dois une fiere chandelle de m"avoir sauve… de cet enrage… J"en ai assez, voyez vous, de balles dans le corps. En voila une (on показал на бок) a Wagram et de deux a Smolensk, – он показал шрам, который был на щеке. – Et cette jambe, comme vous voyez, qui ne veut pas marcher. C"est a la grande bataille du 7 a la Moskowa que j"ai recu ca. Sacre dieu, c"etait beau. Il fallait voir ca, c"etait un deluge de feu. Vous nous avez taille une rude besogne; vous pouvez vous en vanter, nom d"un petit bonhomme. Et, ma parole, malgre l"atoux que j"y ai gagne, je serais pret a recommencer. Je plains ceux qui n"ont pas vu ca. [Да, мой любезный господин Пьер, я обязан поставить за вас добрую свечку за то, что вы спасли меня от этого бешеного. С меня, видите ли, довольно тех пуль, которые у меня в теле. Вот одна под Ваграмом, другая под Смоленском. А эта нога, вы видите, которая не хочет двигаться. Это при большом сражении 7 го под Москвою. О! это было чудесно! Надо было видеть, это был потоп огня. Задали вы нам трудную работу, можете похвалиться. И ей богу, несмотря на этот козырь (он указал на крест), я был бы готов начать все снова. Жалею тех, которые не видали этого.]
– J"y ai ete, [Я был там,] – сказал Пьер.
– Bah, vraiment! Eh bien, tant mieux, – сказал француз. – Vous etes de fiers ennemis, tout de meme. La grande redoute a ete tenace, nom d"une pipe. Et vous nous l"avez fait cranement payer. J"y suis alle trois fois, tel que vous me voyez. Trois fois nous etions sur les canons et trois fois on nous a culbute et comme des capucins de cartes. Oh!! c"etait beau, monsieur Pierre. Vos grenadiers ont ete superbes, tonnerre de Dieu. Je les ai vu six fois de suite serrer les rangs, et marcher comme a une revue. Les beaux hommes! Notre roi de Naples, qui s"y connait a crie: bravo! Ah, ah! soldat comme nous autres! – сказал он, улыбаясь, поело минутного молчания. – Tant mieux, tant mieux, monsieur Pierre. Terribles en bataille… galants… – он подмигнул с улыбкой, – avec les belles, voila les Francais, monsieur Pierre, n"est ce pas? [Ба, в самом деле? Тем лучше. Вы лихие враги, надо признаться. Хорошо держался большой редут, черт возьми. И дорого же вы заставили нас поплатиться. Я там три раза был, как вы меня видите. Три раза мы были на пушках, три раза нас опрокидывали, как карточных солдатиков. Ваши гренадеры были великолепны, ей богу. Я видел, как их ряды шесть раз смыкались и как они выступали точно на парад. Чудный народ! Наш Неаполитанский король, который в этих делах собаку съел, кричал им: браво! – Га, га, так вы наш брат солдат! – Тем лучше, тем лучше, господин Пьер. Страшны в сражениях, любезны с красавицами, вот французы, господин Пьер. Не правда ли?]
До такой степени капитан был наивно и добродушно весел, и целен, и доволен собой, что Пьер чуть чуть сам не подмигнул, весело глядя на него. Вероятно, слово «galant» навело капитана на мысль о положении Москвы.

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

Энциклопедичный YouTube

    1 / 3

    ✪ №4 КАК СТАТЬ ХАКЕРОМ? «Атака Посредника»! |ХАКИНГ от А до Я|

    ✪ MiTM-нападение на iOS. Техника и последствия

    ✪ Биткоин Хронология Хакерских Атак и Взломов Бирж на Криптовалютном Рынке (2012 - 2018)

    Субтитры

Принцип атаки

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

Предположим, объект A планирует передать объекту B некую информацию. Объект C обладает знаниями о структуре и свойствах используемого метода передачи данных, а также о факте планируемой передачи собственно информации, которую С планирует перехватить. Для совершения атаки С «представляется» объекту А как В, а объекту В - как А. Объект А, ошибочно полагая, что он направляет информацию В, посылает её объекту С. Объект С, получив информацию, и совершив с ней некоторые действия (например, скопировав или модифицировав в своих целях) пересылает данные собственно получателю - В; объект В, в свою очередь, считает, что информация была получена им напрямую от А.

Пример атаки

Внедрение вредоносного кода

Атака «человек посередине» позволяет криптоаналитику вставлять свой код в электронные письма, SQL-выражения и веб-страницы (то есть позволяет осуществлять SQL-инъекции , HTML/script-инъекции или XSS-атаки), и даже модифицировать загружаемые пользователем бинарные файлы для того, чтобы получить доступ к учетной записи пользователя или изменить поведение программы, загруженной пользователем из интернета.

Downgrade Attack

Термином «Downgrade Attack» называют такую атаку, при которой криптоаналитик вынуждает пользователя использовать менее безопасные функции, протоколы, которые всё ещё поддерживаются из соображений совместимости. Такой вид атаки может быть проведён на протоколы SSH , IPsec и PPTP .

Для защиты от Downgrade Attack небезопасные протоколы должны быть отключены как минимум на одной стороне; просто поддержки и использования по умолчанию безопасных протоколов недостаточно!

SSH V1 вместо SSH V2

Атакующий может попытаться изменить параметры соединения между сервером и клиентом при установлении между ними соединения. Согласно докладу, сделанному на конференции Blackhat Conference Europe 2003, криптоаналитик может «заставить» клиента начать сессию SSH1 , вместо SSH2 изменив номер версии «1.99» для SSH-сессии на «1.51», что означает использование SSH V1. Протокол SSH-1 имеет уязвимости, которыми может воспользоваться криптоаналитик.

IPsec

При таком сценарии атаки криптоаналитик вводит свою жертву в заблуждение, заставляя её думать, что IPsec-сессия не может начаться на другом конце (сервере). Это приводит к тому, что сообщения будут пересылаться в явном виде, в случае если хост-машина работает в rollback-режиме.

PPTP

На этапе согласования параметров сессии PPTP атакующий может вынудить жертву использовать менее безопасную PAP -аутентификацию, MSCHAP V1 (то есть «откатиться» с MSCHAP V2 до версии 1), либо не использовать шифрование вообще.

Атакующий может вынудить свою жертву повторить этап согласования параметров PPTP-сессии (послать Terminate-Ack-пакет), выкрасть пароль из существующего туннеля и повторить атаку.

Публичные средства коммуникаций без защиты достоверности, конфиденциальности, доступности и целостности информации

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

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

Спасёт ли шифрование?

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

Однако в случае, если клиент и сервер общаются по HTTPS - протоколу, поддерживающему шифрование - тоже может быть проведена атака «человек посередине». При таком виде соединения используется TLS или SSL для шифрования запросов, что, казалось бы, делает канал защищённым от сниффинга и MITM-атак. Атакующий может для каждого TCP-соединения создать две независимые SSL-сессии. Клиент устанавливает SSL-соединение с атакующим, тот, в свою очередь, создает соединение с сервером. Браузер в таких случаях обычно предупреждает о том, что сертификат не подписан доверенным центром сертификации, но рядовые пользователи устаревших браузеров легко обходят данное предупреждение. К тому же у злоумышленника может оказаться сертификат, подписанный корневым центром сертификации (например, такие сертификаты иногда используются для DLP ) и не создающий предупреждений. Кроме того, существует ряд атак на HTTPS. Таким образом, HTTPS протокол нельзя считать защищенным от MITM-атак у рядовых пользователей. [ ] Существует ряд мер, предотвращающих часть атак MITM на https сайты, в частности, HSTS , который запрещает использовать http-соединение с сайтов, Certificate pinning и HTTP Public Key Pinning , запрещающие подмену сертификата.

Обнаружение MITM-атаки

Для обнаружения атаки «человек посередине» необходимо проанализировать сетевой трафик. К примеру, для детектирования атаки по SSL следует обратить внимание на следующие параметры:

  • IP-адрес сервера
  • DNS-сервер
  • X.509 -сертификат сервера
    • Подписан ли сертификат самостоятельно?
    • Подписан ли сертификат центром сертификации ?
    • Был ли сертификат аннулирован?
    • Менялся ли сертификат недавно?
    • Получали ли другие клиенты в интернете такой же сертификат?

Реализации MITM-атаки

Перечисленные программы могут быть использованы для осуществления атак «человек посередине», а также для их обнаружения и тестирование системы на уязвимости.

См. также

  • Aspidistra (англ.) - британский радиопередатчик, использовавшийся во время Второй мировой войны «вторжения», вариант MITM-атаки.
  • Заговор Бабингтона (англ.) - заговор против Елизаветы I , в ходе которого Уолсингем перехватывал корреспонденцию.

Другие атаки

  • «Человек-в-браузере» (Man in the Browser) - вид атаки, при которой злоумышленник получает возможность мгновенно менять параметры транзакции, менять страницы совершенно прозрачно для жертвы.
  • «Встреча посередине » (Meet-in-the-middle attack) - криптографическая атака, которая так же, как и атака «дней рождения» , использует компромисс между временем и памятью .
  • «Потеря посередине» (Miss in the middle attack) - эффективный метод так называемого impossible differential cryptanalysis.
  • Relay attack - вариант MITM-атаки, основанный на пересылке перехваченного сообщения допустимому получателю, но не тому, которому это сообщение предназначалось.

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-атаки не представляют опасности.

MTProto использует оригинальный метод для того, чтобы достичь надёжности в ныне уязвимой мобильной связи и скорости в доставке больших файлов (например, фотографий, видеороликов и документов размером до 1 ГБ). Этот документ предназначен для разъяснения деталей нашей системы и рассмотрения элементов, которые на первый взгляд трудно понять.

Детальная документация протокола доступна на этой странице . Если у вас есть вопросы - пишите в Твиттер .

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

  • идентификатор сессии - session id;
  • длина сообщения - message length;

Note 2: Смотрите дополнительные комментарии по поводу использования , и модифицированной схемы .

Почему вы не используете X [ваш вариант]

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

Почему вы опираетесь на классические криптоалгоритмы?

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

Я — эксперт в области безопасности, и я считаю, что ваш протокол небезопасен.

Вы можете принять участие в нашем конкурсе: Павел Дуров предлагает $200 000 в биткойнах тому, кто первый взломает MTProto. Можете ознакомиться с объявлением и Конкурсным FAQ . Если у вас есть другие замечания, будем рады услышать их на [email protected] .

Защита от известных атак

Атаки на основе открытых текстов (Known-Plaintext Attacks)

Согласно определению, атака на основе открытого текста - вид криптоаналитической атаки, при которой у атакующего есть обе версии текста: зашифрованная и исходная. Используемый в MTProto AES IGE устойчив к таким атакам. К тому же незашифрованный текст в MTProto всегда содержит соль сервера и идентификатор сессии.

Атака на основе адаптивно подобранного открытого текста

Согласно определению , атака на основе адаптивно подобранного открытого текста - вид атаки в криптоанализе, предполагающий, что криптоаналитик может выбирать открытый текст и получать соответствующий ему шифротекст. MTProto использует AES в режиме IGE, который безопасен против таких атак. Известно, что IGE неустойчив к blockwise-adaptive атакам, но MTProto исправляет это нижеописанным способом. Каждое сообщение с открытым текстом, которое предстоит зашифровать, содержит следующие данные, которые проверяются при расшифровке:

  • соль сервера (64-битная) - server salt (64-Bit);
  • порядковый номер сообщения - message sequence number;
  • время отправки сообщения - time.

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

Атаки на основе подобранного шифротекста

Согласно определению , атака на основе подобранного шифротекста — это криптографическая атака, при которой криптоаналитик собирает информацию о шифре путём подбора зашифрованного текста и получения его расшифровки при неизвестном ключе. При такой атаке злоумышленник может ввести в систему один или несколько известных шифротекстов и получить открытые тексты. При помощи этих данных атакующий может попытаться восстановить ключ, используемый для расшифровки. В MTProto при каждой дешифровке сообщения производится проверка на соответствие msg_key к SHA-1 расшифрованных данных. Открытый текст (дешифрованные данные) также всегда содержит информацию о длине сообщения, его порядкового номера и соли сервера. Это сводит на нет атаки на основе подобранного шифротекста.

Атаки повторного воспроизведения

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

Атака «Человек посередине» (MitM)

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

Шифрование

Вы используете IGE? Он же взломан!

Да, мы используем IGE, но в нашей реализации с ним всё в порядке. Тот факт, что мы не используем IGE вместе с другими элементами нашей системы так же, как и MAC, делает попытки взлома IGE бессмысленными. IGE, ровно как и распространённый режим сцепления блоков шифротекста (CBC), подвержен blockwise-adaptive атакам . Но адаптивные атаки являются угрозой лишь тогда, когда один и тот же ключ используется в нескольких сообщениях (в это не так).

Адаптивные атаки даже теоретически невозможны в MTProto, потому что для расшифровки сообщений последние должны быть сперва полностью набраны, так как ключ сообщения зависит от его содержания. Что же касается неадаптивных CPA-атак, IGE защищён от них, как и CBC.