MPITM - Major Pronin in the Middle
«Люди! Я любил вас. Будьте бдительны» Юлиус Фучик
🕛 11.03.2008, 19:21
В последнее время популярность так называемых социальных сетей растет невиданными темпами, как в России, так и за ее пределами. Предполагаю, что уже много сказано и написано о ненадежности такого способа общения, возможностях утечки и откровенного «слива» информации. Однако, в большинстве случаев рассматриваются варианты, связанные с захватом учетных записей, нелегитимным использованием компьютеров, взломом защиты сайтов, перехватом пакетов в сети. Однако существует совсем иной вариант перехвата информации, не требующий незаконного вмешательства в работу сервера или пользовательских компьютеров. Более того, такой способ перехвата, почти неуязвим с юридической точки зрения и при грамотном его использовании крайне сложно заметить перехват. Довольно интриги - к делу.Предположим, что есть две персоны (X и Y), которые связаны между собой (обмениваются информацией) через социальную сеть. Технология подходит практически для любой социальной сети, но для примера будем рассматривать популярную российску сеть «В контакте». Итак есть X, Y и я - MP (Майор Пронин). В качестве майора могу выступать не только я, но и жена, любовница, родители, дети, конкуренты и т. п. любого из персонажей X и Y. MP хочет получать информацию, передаваемую между X и Y, а в некоторых случаях изменять ее. Что же нужно сделать для перехвата информации?
1. Во время отсутствия в сети персонажей X и Y создаются «клоны» их страниц с переносом публично доступной информации (имя, фамилия, опубликованные данные, фотографии). Очевидно, что полного клонирования не получить без вмешательства в работу сервера, но тождественность и не требуется - достаточно подобия.
Можно клонировать страницы и в присутствии X и Y, поскольку эта деятельность никак не отразится на них.
2. Во время отсутствия в сети X и Y злокозненный MP активизирует на своем компьютере клоны X1 и Y1 и ждет появления кого-нибудь из жертв в сети. 3. Предположим, что первым появился X. Шлем ему запрос на добавление в список друзей, сопроводив комментарием «Вчера компьютер глюканул, все слетело, восстанови пожалуйста». Скорей всего «дружба» будет восстановлена без дополнительных вопросов. Если же X окажется бдительным, он заглянет на страницу Y1 и увидит там похожую, но неполную страницу Y. Отмечу, что неполная идентичность работает на MP в данном случае - страница же слетела.
Итак, с X мы уже подружились. Можно с ним (ней) поболтать о чем-нибудь нейтральном, но делать нужно осторожно с учетом информированности о контексте общения между X и Y. Лучше всего деактивировать пока Y1, во избежание засветки.
4. Теперь ждем появления в сети настоящего Y и повторяем с ним п. 3, от имени X1. В результате MP имеет в списке друзей как X, так и Y. Для повышения уровня достоверности можно добавить описанным выше путем еще несколько друзей в списки X1 и Y1. Если не хочется многократно повторять п. 3, можно создать «клонов» с соответствующими именами и «подружиться» с ними. 5. Далее можно начинать общение между X и Y с использованием MP в качестве посредника (Proxy). Для этого нужно активизировать на своем компьютере X1 и Y1. Лучше всего делать это в разнотипных браузерах, во избежание путаницы. Общение может быть как синхронным (X и Y одновременно присутствуют в сети), так и асинхронно. Выберем для простоты синхронный вариант. 6. Итак в сети оба желанных персонажа. Пишем от Y1 долгожданному X: «Привет X, тут такое дело …». Х отвечает Y1, думая, что это Y: «Привет. …». Тупо копируем ответ в буфер обмена и создаем сообщение для настоящего Y (который полагает, что MP - это X). Он получает это сообщение и, скорей всего отвечает на него. Ответ, естественно, попадает к X1, который на самом деле MP. Разговор завязался и MP с интересом просматривает информацию, не забывая ее транслировать между настоящими X и Y. Можно похулиганить, внеся те или иные изменения, но это рискованная операция, поскольку можно и сфальшивить.
Работа у MP на этом этапе хлопотная, но позволяет видеть информацию «на лету». Если такой синхронизации не требуется, или просто лень, можно написать не очень сложный демон, который будет автоматически выполнять эту работу, складывая все добытое в кубышку MP.
В описанном процессе есть несколько подводных камней, но опыт показыват, что обойти их не составляет труда. Самый большой «камень» это появление у X двух друзей Y и наоборот. Однако на это в большинстве случаев внимания не обратят - был же сбой (см. п. 1).
Идея проста до безобразия, поэтому грех отказываться от ее реализации, что и было сделано. Для начала в качестве жертв были выбраны знакомые, присутствовавшие в реальном списке друзей. Все прошло «на ура». Следующий шаг, добавление в число своих (MP) друзей незнакомого друга X или Y также прошел без осложнений. Дальше оставалось только выбрать в качестве жертв двух совершенно незнакомых людей, случайно выбранных из числа пользователей сайта vkontakte.ru. Может показаться странным, но и на этом пути серьезных затруднений не было отмечено. Все попытки организации перехвата по методу MPITM закончились успехом.
Пришло время задуматься. Идея проста и лежит на поверхности. Реализация особых затруднений не вызывает. Вывод - вполне возможно, что эта идея уже кем-то тихо реализована. Начинаю опрос знакомых пользователей и нахожу множество подтверждений того, что на деле так и происходит. Но MP в середине пути между X и Y при аккуратной работе без хулиганства следов не оставляет, кроме появления «клонов», которые могут служить лишь косвенным подтверждением.
Вот такая грустная история. Мораль простая - общаясь с кем-либо в социальной сети следует принимать во внимание, что на пути между вами и собеседником может находиться ваша жена/муж, друг/недруг, мама/папа и т. д. Выбирайте сами.
В заключение хочу попросить прощения у всех, кого затронули эксперименты, связанные с проверкой работоспособности идеи. Заверяю всех затронутых, что полученная при экспериментах информация никому не передавалась и не будет передаваться. Ни одно из перехваченных таким путем сообщений не было сохранено нигде, кроме моей памяти, а она весьма дырява.
Николай Малых
nmalykh@bilim.com