Недавно в сети получила широкую огласку и негодование информация об отслеживании фактов взаимодействия между пользователями популярных месенжджеров. Я решил привести алгоритм реализации данных действий, опираясь только на информацию, доступную при анализе трафика.
1. Сегментация трафика мессенджеров и зеркалирование в отдельные хранилища данных
C помощью DPI (Deep Packet Inspection) и фильтров (например, адресу сервера), провайдеры и СОРМ могут обнаруживать целевой сетевой трафик пользователя и применять особые правила зеркалирования (которое в РФ должно происходить для всех пользователей согласно закону Яровой).
2. Связывание аккаунта пользователя с пулом устройств и IP адресов пользователя
С помощью ботов, включая функциональных, вроде антиспам ботов, ботов статистики, которые многие администраторы добавляют в каналы, или же модифицированных клиентов мессенджера владельцы данных сервисов могут в реальном времени получать и логгировать сообщения, действия пользователей и техническую информацию пользователей (например user_id, онлайн статус) целевого пула (например, с выборкой по стране).
Затем, с помощью сигнатур пакетов и timestamp (временной метки) с коэффициентом времени доставки сообщения, довольно несложно соотнести активность сегментированного для мессенджера траффика и пул устройств и IP адресов пользователя.
Подобным образом возможно свзязывание пользователя по другим активностям в групповых чатах и канала мессенджера (использование реакций под сообщениями, комментариев, просмотра сообщений).
Для пользователей, не использующих групповые чаты и каналы месседжера, может использоваться следующий метод:
Выборка пула пользователей (например, по номеру телефона, базам username, парсингу bio по ключевым словам или языку), а затем, с помощью модифицированного клиента, посредством бота рассылки или даже живого человека, отправка личных сообщений пользователю и, по вышеприведенному примеру, связывание его пула устройств и IP адресов с аккаунтом в мессенджере (ответ на сообщение, прочтение, удаление диалога, блокировка собеседника, и т. д.).
Дополнительные сигнатуры могут быть получены путем отслеживания активности пользователя в мессенджере, например, смены публичного онлайн статуса, изменений аватара или метаданных, например bio.
3. Связывание диалогов или звонков пользователей
После того, как пользователи мессенджера идентифицированы с пулом их устройств и IP адресов, достаточно по сигнатурам сообщений анализировать сегментированный трафик, фильтруя только события, связанные с полезной нагрузкой: p2p соединения, сообщения, звонки.
После этого возможны выборки как активности конкретных пользователей и устройств в мессенджерах: по местоположению связанных устройств, по ФИО конкретных пользователей (и связанных с ними IP адресами у провайдеров), и т. д. Так и категоризация по другим параметрам, например, по общим контактам, контактам, идентифицированным как иностранные пользователи или пользователи конкретой страны или региона.
Возможные решения для противодействию незаконной слежки
Решения со стороны мессенджеров:
-
Генерация большого количества дополнительного «мусорного» трафика, замаскированного под полезный в случайные моменты времени.
-
Изменение серверной архитектуры, с отказом от сквозного идентификатора пользователя для чатов, диалогов и других опций мессенджера, путём проксирования user_id или использования деривативных user_id, например, сформированных по принципу генерации иерархических ключей ECDSA.
Решения со стороны пользователя:
-
Регистрация нового аккаунта (при изменении параметров авторизации, user_id остается прежним).
-
Отказ от использования мобильного номера телефона для авторизации в мессенджерах, особенно если сим карта приобретена ранее по документам владельца.
-
При использовании адреса электронной почты — использование нового, нигде ранее не используемого
-
Использование приватного VPN на личном сервере с загрузкой канала трафиком.
Автор: Dmitry Mandrika