Специалист по безопасности заявил о возможности перехвата переписки во «ВКонтакте» через 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, то в приложении всё передаётся в открытом виде — как у большинства, если судить по трафику в публичных сетях».

{ "author_name": "Никита Лихачёв", "author_type": "editor", "tags": ["\u0441\u043d\u0438\u0444\u0444\u0438\u043d\u0433","\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f_\u0434\u043b\u044f_ios","\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f_\u0434\u043b\u044f_android","\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f_\u0432\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435","\u043d\u043e\u0432\u043e\u0441\u0442\u044c","\u043d\u043e\u0432\u043e\u0441\u0442\u0438","\u043c\u0438\u0445\u0430\u0438\u043b_\u0444\u0438\u0440\u0441\u0442\u043e\u0432","\u0432\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435","\u0432\u0437\u043b\u043e\u043c\u044b","\u0432\u0437\u043b\u043e\u043c_\u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438_\u0432\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435","\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c","https_\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b","headlight_security"], "comments": 41, "likes": 79, "favorites": 35, "is_advertisement": false, "subsite_label": "flood", "id": 56441, "is_wide": true, "is_ugc": false, "date": "Sat, 17 Oct 2015 15:16:07 +0300", "is_special": false }
Комментарии

Оперативный дебаркадер

3

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

Жесткий микроскоп

11

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

Тюремный цвет

2

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

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

Офтоп
дискуссии в сообществе доступны только владельцам клубного аккаунта
С клубным аккаунтом вы сможете
создавать записи и вести дискуссии в закрытых сообществах
наслаждаться нашим сайтом без рекламы
помочь проекту и почувствовать себя лучше
Купить за 75₽
Обсуждаемое
Новости
Правительство рекомендовало ограничить использование мобильных телефонов в школах
Для родителей, учеников и педагогов также разработали памятку по использованию гаджетов.
Москва
Как потерять годовой имидж за неделю: инструкция от Мосгортранса
В Твиттере гневно отреагировали на попытку предприятия объяснить, почему оно подало в суд на участников акции 27 июля.
Новости
Преподавателя лицея ВШЭ обвинили в растлении. Это стало поводом для служебной проверки
Ольга Старкова обвинила преподавателя литературы лицея ВШЭ в растлении. Она рассказала, что когда в 1996 году она училась в школе №548 в 9 классе, у неё был роман с Александром Кузнецовым.

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovy", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfk" } } }, { "id": 6, "disable": true, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byswn", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "cndo", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223677-0", "render_to": "inpage_VI-223677-0-130073047", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=cndo&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudv", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "ccydt", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvc" } } } ]