Специалист по безопасности заявил о возможности перехвата переписки во «ВКонтакте» через Wi-Fi Статьи редакции

Специалист по безопасности компании HeadLight Security Михаил Фирстов опубликовал код скрипта, позволяющего обрабатывать перехваченную переписку пользователей приложения «ВКонтакте» для Android и iOS, находящихся в одной локальной сети с хакером. Об этом он сообщил в своём микроблоге.

Обновлено: представители «ВКонтакте» опровергли возможность перехвата переписки при включённом HTTPS-соединении.


Пример работы скрипта

Код утилиты под названием vkmitm (от MITM — «man in the middle», тип атаки) Фирстов опубликовал на GitHub. Её исполняемая часть является скриптом на Python, который ищет в локальной сети запросы приложений «ВКонтакте» для Android или iOS на обновление списка сообщений.

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

Чтобы иметь возможность прослушивать трафик, устройству злоумышленника достаточно находиться в одной локальной сети с жертвой — например, открытом Wi-Fi в кафе. «Слушать» сообщения в режиме реального времени необязательно: можно создавать дампы трафика через PCAP и разбирать их по заданной маске позднее.

Пример перехваченного трафика

Как рассказал Фирстов TJ, возможность получать сообщения в незашифрованном виде заложена в мобильных приложениях «ВКонтакте». По какой-то причине они передают их через протокол HTTP, даже если в настройках аккаунта стоит галочка «Всегда использовать защищённое соединение (HTTPS)».

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

Даже при включённой галочке «HTTPS» в настройках приложения данные о сообщениях (входящие/полученные/различные ивенты) передаются всё равно по HTTP. Я потестировал и написал небольшой скрипт, который получает эти данные из проходящего трафика и расшифровывает их — даже, скорее, расставляет по местам, так как в «сыром» виде сообщения малочитабельны.

Чтобы пропустить через себя чужой трафик, достаточно применить даже самую простую атаку — ARP-спуфинг. Находясь в одной сети, мы сможем видеть весь трафик, проходящий от чужого устройства к роутеру, а от роутера в интернет, ну и как следствие сможем видеть данные от «ВКонтакте», проходящие по незашифрованному HTTP и выводить их в удобоваримом виде.

Михаил Фирстов, специалист по безопасности HeadLight Security

Параметр key берётся из сниффинга всего объёма трафика по определённой маске. Определять личность пользователя по этому параметру Фирстов пока не научился, однако считает, что это можно сделать по косвенным признакам — например, по IP-адресу или по тексту самой переписки.

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

Обновлено в 15:52: Как уточнил Фирстов, в последнем обновлении приложения VK App для iOS передача сообщений по HTTP была исправлена, но только в том случае, если пользователь указал на сайте «Всегда использовать защищённое соединение (HTTPS)».

Обновлено в 19:05: Пресс-секретарь «ВКонтакте» Георгий Лобушкин заявил TJ, что клиент для iOS использует HTTPS уже больше года (в нём нет возможности выключить защищённое соединение), а в случае Android трафик шифруется при включённой опции на сайте или в приложении. Когда именно соцсеть полностью собирается перейти на HTTPS, он не уточнил.

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

Георгий Лобушкин, пресс-секретарь «ВКонтакте»

По словам Фирстова, пользователи «ВКонтакте» зачастую не используют HTTPS, и сообщения передаются в незашифрованном виде: «С Android точно известно, что если в настройках аккаунта не стоит галочка рядом с HTTPS, то в приложении всё передаётся в открытом виде — как у большинства, если судить по трафику в публичных сетях».

0
41 комментарий
Написать комментарий...
Откровенный Данила

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

Ответить
Развернуть ветку
Критический татарин

От товарищей не должно быть секретов! Не баг, а фича!

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

...он сразу выложил код на Гитхаб. Пусть ВК о дырках в своём приложении от прессы узнает. Это же так прикольно.

Ответить
Развернуть ветку
Немой месяц

Дыра? Ты ещё на все сайты которые не используют https напиши что у них дыра.

Ответить
Развернуть ветку
Ученый Паша

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

Ответить
Развернуть ветку
Правый Абдужаббор

Разработчик мог сознательно этого не сделать. В таком случае это не баг и не дыра, а недоработка.

Ответить
Развернуть ветку
Лекарственный месяц

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

Ответить
Развернуть ветку
Ученый Паша
поэтому представителям «ВКонтакте» он об обнаруженном способе сниффинга не сообщал: «Это не уязвимость, а “фича”, которая изначально была заложена разработчиками».
Ответить
Развернуть ветку
Лекарственный месяц

Окей, не увидел. Но сама дыра, конечно, очень дурацкая.

Ответить
Развернуть ветку
Драматический щит

Ну об этой "фиче" было известно давно, коллега у нас в офисе демонстрировал пол года назад, тупо перехватывая трафик варежкой.

Ответить
Развернуть ветку
Известный щит

У нас в сети университета тоже пару лет назад был один "умелец", который перехватывал данные и исправлял всем статусы и писал сообщения. После этого полунивера познало и признало https.

Ответить
Развернуть ветку
Любовный Влад

Да вы серьёзно? Аж целый скрипт? Скачайте Wireshark и будет счастье. И не используйте wife в кафе, трафика давно уже хватает всем.

Ответить
Развернуть ветку
Остальной яд

Скрипт нужен для предоставления данных в удобоваримом виде.

Ответить
Развернуть ветку
Любовный Влад

Иллюстрацию прокрутил на автомате. Там все сразу понятно. Каюсь. :3

Ответить
Развернуть ветку
Разнообразный утюг
который обновляется не реже двух часов и не чаще суток

Я сломался

Ответить
Развернуть ветку
Начальный франт
HTTP был отключён специально, так как в мобильных приложениях принято экономить трафик

Заговор жидомасонов.

Ответить
Развернуть ветку
Партийный кот

HTTPS, поправил.

Ответить
Развернуть ветку
Страховой ключ

И много жрет хттпс?

Ответить
Развернуть ветку
Немой месяц

Там соединение намного медленнее. Когда соединение установлено то разницы уже почти нет.

Ответить
Развернуть ветку
Конечный историк

Насколько обязательным является правило использования впн при подключении к публичным вай-фаям?

К тому же гмайлу, по идее, соединение идет зашифрованное - смысл тогда впн использовать? С вк, видимо, баг.

Ответить
Развернуть ветку
Необыкновенный бинокль

Комментарий недоступен

Ответить
Развернуть ветку
Лекарственный месяц

Nuff said.

Ответить
Развернуть ветку
Мощный пришелец

Какой у нас там год на дворе, 2007й? А не, 2015, показалось

Ответить
Развернуть ветку
Отечественный хот-дог

Комментарий недоступен

Ответить
Развернуть ветку
Немой месяц

А почему бы не похаять и тех и тех?

Ответить
Развернуть ветку
Временной Денис

Твой фирменный стиль

Ответить
Развернуть ветку
Принципиальный шар

А давайте!

Ответить
Развернуть ветку
Повышенный химик

В эпоху моды на кнопку "поделиться", раскрытие переписки видится как логичный шаг... VK создает тренды :D

Ответить
Развернуть ветку
Остальной яд

Чем больше людей протестирует, тем лучше. В основном интересен Android, в последней версии приложения на iOS разработчики закрыли данную уязвимость.

Ответить
Развернуть ветку
Чудесный Слава

Спасибо за информацию!

Ответить
Развернуть ветку
Лекарственный Кирилл

Что мне бесит, так это то, что раньше в приложении был пункт "Использовать HTTPS", а потом недокодеры решили, что это не нужно и тупо снесли эту опцию.

Ответить
Развернуть ветку
Остальной яд

Можно чуть подробнее? Когда эта опция была в приложении? Когда я тестировал, ее, как я понимаю, уже не было.

Ответить
Развернуть ветку
Страховой ключ

У меня и сейчас есть.

Ответить
Развернуть ветку
Сложный блик

Она есть и сейчас

Ответить
Развернуть ветку
Зимний блик
поэтому представителям «ВКонтакте» он об обнаруженном способе сниффинга не сообщал: «Это не уязвимость, а “фича”, которая изначально была заложена разработчиками».

Т.е. автор за них решил, что это не баг а фича? И Вк теперь узнаёт о дыре из новостей? Это как-то не профессионально.

Ответить
Развернуть ветку
Иркутский микрофон

Проблемы негров шерифа не волнуют.

Ответить
Развернуть ветку
Исторический колос

Гришка всех переиграл.

Ответить
Развернуть ветку
Итальянский череп

Ну вообще-то это не новость, а баян
И это не уязвимость, а опция. Проблема только в том, что шифрование выключено по дефолту, но и это понятно, HTTPS требует мощностей, которые вк не хочет тратить на миллионы школоты, типичное для mail.ru отношение к пользователю

Ответить
Развернуть ветку
Необходимый динозавр

Ребятки, кто-то уже скомпилил exeшник? Или разобрался с установкой Scapy???

Ответить
Развернуть ветку
Всероссийский велосипед

Неужели так лень познать Python?

Ответить
Развернуть ветку
Необходимый динозавр

С чего стоит начать?

Ответить
Развернуть ветку
Читать все 41 комментарий
null