Whatsapp message announcer что это
Тренд этой весны — использование сервисов видеоконференций. Они напомнили нам, что в Сети ваши данные могут утечь в открытый доступ. Мессенджеры взломать сложнее. Они защищены сквозным шифрованием. Но есть другие способы. Мы собрали признаки того, что вам стоит задуматься о приватности. Иначе злоумышленники получат доступ к переписке или файлам на смартфоне.
Вы разговариваете по видеосвязи
Видеосервисы — тренд среди мессенджеров в 2020 году на фоне пандемии коронавируса. Учебные занятия, рабочие совещания, встречи с друзьями — всё это происходит по видеосвязи.
И у видеосвязи есть проблемы: она либо работает с низким качеством, либо становится уязвимой для взлома. Свежий пример — утечка данных в Zoom. Из-за уязвимости в системе утилиты в открытый доступ попали тысячи видеозвонков пользователей Zoom. На YouTube, Vimeo и других сайтах были размещены школьные занятия, сеансы у психотерапевтов, совещания и другие видеовстречи.
Видеозвонки в Zoom не защищены сквозным шифрованием, когда доступ к беседе имеют только участники. Шифруются только диалоги на сайте, в технических документах и интерфейсе приложений, но не видеосвязь.
На пальцах: сквозное шифрование (end-to-end, E2E) — это когда система превращает текст или файлы в набор символов, а расшифровать их могут только собеседники (система сделает это автоматически). Сервис при этом может иметь доступ к этим данным, его также могут получить злоумышленники. Но, если ключа нет, значит, и возможности разобраться в них не будет.
Решение: пользуйтесь мессенджерами, в которых видеосвязь защищена сквозным шифрованием. Приложения, где его официально нет или разработчик не указывает, игнорируйте. Заявлено сквозное шифрование видео у WhatsApp и FaceTime.
Zoom или Discord? Выбираем сервис видеоконференций, чтобы разговор не слили в Сеть
Получить вирус и лишиться данных через мессенджер ещё проще. Таким приложениям по умолчанию предоставляется доступ к хранилищу, а файлы загружаются автоматически. Так на ваш телефон проберётся вирус, который будет копировать данные или записывать происходящее на экране.
Решение: придерживайтесь двух правил — не скачивайте документы от неизвестных адресатов и ограничьте автоматическую загрузку файлов.
Вот как это делается на WhatsApp для Android: пройдите в "Настройки" —> "Данные и хранилище" —> "Автозагрузка медиа". Мессенджер может самостоятельно загружать четыре вида файлов: фото, видео, аудио и документы. Чтобы обезопасить себя от взлома, отключите автоматическую загрузку последних.
В ваш аккаунт входили с неизвестных устройств
В соцсетях, мессенджерах и ряде других сервисов есть две важные функции: просмотр, с каких устройств был произведён вход в учётную запись, и возможность выхода из аккаунта со всех устройств.
Бывает, сайты показывают, на каких конкретно устройствах наблюдается активность. Например, "ВКонтакте" отображает, с каких аппаратов вы авторизованы. Если вы видите в списке не принадлежащее вам устройство, значит, в ваш аккаунт вошёл посторонний.
Решение: выйдите со всех устройств. Вы останетесь авторизованы только на одном своём, на котором выполняете операцию, для входа с остальных нужно будет снова авторизоваться.
- Как это сделать во "ВКонтакте": зайдите в "Настройки" —> "Безопасность" —> "История активности". Вам будут показаны устройства, их местоположение и IP-адреса. Это позволяет точно идентифицировать взлом учётной записи.
- Как это сделать в "Фейсбуке": пройдите по "Настройки" —> "Безопасность и вход". Вы увидите список устройств, с которых заходили в соцсеть. Нажмите "Дополнительно" (три вертикально стоящие точки) и выберите "Выход". Эта соцсеть позволяет выходить с конкретного устройства, а не со всех сразу.
- Как это сделать в WhatsApp: здесь этого не требуется, на WhatsApp можно авторизоваться только с одного мобильного устройства, а с десктопа — по QR-коду.
После выхода со всех устройств смените пароль, чтобы злоумышленник не зашёл в аккаунт снова.
Вам прислали код аутентификации, который вы не запрашивали
Telegram хотят разблокировать, но смысл? Одна функция "Яндекс.Мессенджера" убивает его и WhatsApp
Причём "Телеграм" — одно из уязвимых приложений. Ещё это могут быть другие мессенджеры, соцсети, электронная почта и приложения мобильных банков.
TL;DR: можно защититься от этого хака, изменив настройки конфиденциальности аккаунта. По умолчанию WhatsApp делится вашим статусом с другими людьми. Но так как в наши дни никто не меняет настройки, этот хак срабатывает практически всегда.
Дисклеймер: эта статья является proof of concept, призванной привлечь внимание к проблеме, а также попрактиковать свои технические навыки. Не используйте код для слежки за людьми.
WhatsApp на Android
Эксплойт функции
Я хочу создать эксплойт этой функции для слежения за пользователями (ради научного исследования, конечно). Возникает первый вопрос: как она работает?
Изначально статус имеет значение Offline, и в этом случае WhatsApp передаёт вам абсолютную дату вида last seen 16/03/2020 at 15:40 .
Разблокирую телефон друга и открываю приложение (не WhatsApp), занимаюсь этим минуту, на моей стороне ничего не происходит.
Ладно, теперь переключаемся на WhatsApp. 10 секунд спустя статус изменился на online . Я не перехожу в беседы, которые являются общими с этим телефоном/контактом, чтобы убедиться, что статус передаётся без этого условия.
Статус online сохраняется, пока я не выхожу из WhatsApp или не отключаю экран целевого телефона.
После этого приложение возвращается к новому last seen и состоянию offline.
- Мы не сможем следить за местоположением пользователя в мире при помощи его телефона (надеюсь!)
- Но мы можем отслеживать, пользуются ли WhatsApp те, кто находится в наших контактах
- Утекающая информация представляет собой дату last seen и статус online для каждого контакта
- Можно ожидать как минимум точность до минуты для даты last seen
- А статус online отображается, если WhatsApp был открыт хотя бы в течение 5-10 секунд
Технический анализ
Открываю отладчик Firefox, чтобы посмотреть, как фронтенд веб-приложения WhatsApp получает нужные данные.
Фронтенд использует для получения данных в реальном времени связь через веб-сокеты, примерно через каждые 10-15 секунд.
Если внимательно следить, то можно заметить, что фронтенд «пингует» сервер примерно каждые 15 секунд строкой . , и почти всегда за этим следует ответ ! . Что-то типа проверки активности соединения. Нам это неинтересно.
Частично скрытое мной значение id — это номер телефона, type — это флаг «доступен/недоступен», t — это временная метка даты last seen . Вся полезная нагрузка инкапсулирована в объект Presence , который легко можно распознать.
Временная метка совпадает с тем, что мы видим в UI.
Ограничения
Для получения событий presence от сервера через веб-сокеты, мы (фронтенд) подписываемся на конкретный номер телефона ( id ). Это срабатывает, когда мы выбираем другую беседу/контакт при помощи веб-интерфейса.
Итак, в этой концепции мы можем получать только события presence активного контакта. Другими словами, мы можем отслеживать одновременно только один контакт через веб-сокетное подключение. Очень жаль!
Также WhatsApp не позволяет нам открывать несколько параллельных экземпляров приложения (с одинаковыми куки). То есть мы никак не сможем одновременно открыть два канала веб-сокетов. Это было бы слишком просто!
И, наконец, это поведение вида «одна веб-сессия WhatsApp за раз» сохраняется при попытке создания двух независимых сессий (с разными куки). Новая сессия заставляет старую закрыться, в частности, на слое веб-сокетов.
Ещё одно ожидаемое ограничение: валидность сессии ограничена по времени. Срок моей истёк 22.10.2020, спустя шесть с лишним месяцев. Странно, что можно так получить подобную информацию на фронтенде. Возможно, я что-то не так понял.
Наивная реализация
Теперь, когда мы определили, в чём заключается функция status WhatsApp и как её можно злонамеренно использовать для слежения за пользователями, настало время писать код. Также мы взглянем на техническую реализацию и поищем возможные простые уязвимости безопасности.
Я мог бы заново написать код обмена данными через веб-сокеты, чтобы получать данные о статусе, но это будет сложно. Слишком сложно, если мы можем отслеживать одновременно только один контакт. Я начну с высокоуровневой технологии, учту известные нам пока ограничения, и посмотрю, к чему это может нас привести.
Мне хочется увидеть, чего можно добиться дешёвым хакингом, а уже потом приступать к более сложным вещам.
Я разобью proof of concept на три этапа:
- Получение данных
- Сохранение данных (легко)
- Визуализация данных (легко, но у меня вызовет сложности)
Мы реализовали базовую функциональность в 38 строках кода.
Чтобы двигаться дальше, нам нужно спарсить формат last seen today at 13:15 в формат даты. Для этого я использую замечательный npm-пакет chrono-node .
Наконец, я реализовал в коде цикл, постоянно сканирующий статус и сохраняющий его в InfluxDB 2.0.
InfluxDB — это база данных временных рядов (time-series database). Она идеально нам подходит.
На основании даты last seen я запишу UInteger в переменную offline since . Это будет счётчик секунд, прошедших после даты last seen .
Если статус online , то offline since будет иметь значение 0 .
Извлечение наших данных — это превращение данных событий в данные временных рядов.
Такая структура лучше подходит для InfluxDB и особенно для Grafana, которая будет отображать наши данные. К тому же она не хранит состояния, мне это нравится.
Для сохранения данных в InfluxDB 2.0 я использую клиент Node.js с форматом line protocol базы данных InfluxDB.
Сохраняемые данные выглядят так:
Существует пограничный случай, который бы я хотел обрабатывать: иногда в WhatsApp статус вообще не отображается.
В таком случае мы не введём в базу данных значение offlineSince , потому что у нас его нет. Вместо этого мы при каждом сканировании статуса будем записывать значение statusAvailable (которое равно 0 или 1 ).
Теперь мы подключим Grafana к InfluxDB и создадим дэшборд для слежения за полученными данными.
Исходный код этого proof of concept можно найти здесь.
Часть 2. Отслеживаем 5000 случайных телефонов
В предыдущей части мы выяснили, что достаточно легко взломать онлайн-статус контакта WhatsApp. Простую информацию Online или last seen yesterday at 19:00 реверс-инжинирингом можно заставить выполнять утечку пользования телефоном с точностью в несколько секунд.
Но я ещё не сказал о гораздо более странной вещи: можно отслеживать любой мобильный телефон! Давайте поиграем и увеличим масштабы слежения до 5000 случайных номеров.
Как и в первой части, я делюсь исходным кодом как PROOF OF CONCEPT. Если вам больше интересны результаты, чем технические подробности, то можете сразу переходить в конец статьи. Мы снова будем использовать предыдущий код на основе Node.js, Puppeteer и Grafana.
Мои друзья, мои контакты
WhatsApp считывает контакты в телефоне и позволяет чатиться с теми, кто тоже добавлен в список. Поэтому мы можем свободно добавить в качестве контакта случайный номер и найти его в WhatsApp.
Как ни удивительно, это не относится к статусу Last Seen.
Ой, а почему я вижу эти данные last seen ?
Как мы видели в первой части, существует препятствующая этому настройка конфиденциальности. По умолчанию она имеет значение Everyone , но никто его не меняет.
Если вы не хотите делиться своим статусом Last Seen , то WhatsApp отключает эту функцию в обоих направлениях
Экспериментируем с 5000 контактов
Мне стало любопытно, как далеко мы сможем зайти с этой уязвимостью. Я не хочу отслеживать конкретных людей и не буду спрашивать разрешения у 5000 людей, как мог это сделать в первом хаке.
Поэтому я усложню задачу, вычислю анонимную статистику и запишу данные. Давайте увеличим масштаб до 5000 телефонов.
Генерируем 5000 контактов
Чтобы расширить proof of concept до 5000 контактов, мне нужно будет зарегистрировать 5000 контактов в телефоне! И я не собираюсь делать это вручную.
Для этого я перешёл в свой аккаунт Google на десктопном веб-сайте, зашёл на страницу Contacts и нашёл там кнопку import a CSV .
Документация выглядит очень запутанной и длинной. Я не стал её изучать и экспортировал уже имеющиеся контакты, чтобы изучить модель данных. И она действительно оказалась сложной. После нескольких попыток мне удалось импортировать пару контактов с минимально возможным количеством заполненных полей.
Additional Name Yomi ?
На случай, если вы больше привыкли к CSV в Excel…
Я написал скрипт для генерации CSV из 5000 контактов:
Набор из 5000 французских номеров
И импортировал их в Gmail.
Почему это так легко, Google, ты что, крэйзи?
Затем я убедился, что мой телефон их синхронизировал (бедному телефону потребовался на синхронизацию целый час, не думаю, что он сможет выдержать ещё пять тысяч контактов).
Получение данных
Я модифицировал свой код так, чтобы он обходил в цикле все 5000 импортированных неизвестных контактов, и запустил его.
Оставил этот краулер на пару дней. (На самом деле на шесть дней, и это при помощи совершенно тупого кода! Серьёзно, здесь нет никакой защиты.) И вот какие получились красивые данные в дэшборде Grafana, взятом из предыдущего проекта.
Исходная выборка в 100 контактов. Каждое падение до 0 означает, что контакт пользовался смартфоном.
Заключение
Мне удалось продолжать сканировать 5000 телефонов непрерывно в течение месяца при помощи простого кода скрейпинга.
Очевидно, WhatsApp не проверяет и не предупреждает злонамеренное использование этой функции. Мне удалось 15 000 раз использовать движок поиска для получения данных last seen за одну веб-сессию.
Для исследования я наскрейпил множество данных из 112 тысяч записей.
Моё исследование показало, что можно:
Я использовал французский диапазон номеров 06xxxxxxxx (или 00336xxxxxxxx ), который переполнился 10 лет назад (поэтому тогда появился диапазон 07xxxxxxxx ). Поэтому, вероятно, можно допустить, что по крайней мере 80% номеров телефонов действительны.
Вот визуализация пользователей, сгруппированных по дате last seen , дающей представление о пользовании WhatsApp. Я собрал данные примерно в первую неделю февраля.
Снижение с 1357 активных пользователей в прошлом месяце до 281 на прошлой неделе довольно значительно, его можно связать с критикой WhatsApp в конце декабря 2020 года. Мне не очень интересно изучать эти данные подробнее, на этом всё, спасибо за внимание.
Messenger, Signal и Telegram (бонус)
(Facebook) Messenger не использует номеров телефонов контактов для поиска пользователей, потому что пользуется для этого аккаунтами Facebook. Совершенно иная структура, поскольку это социальная сеть и она меньше похожа на мобильный сервис VOIP. Думаю, множество похожих хаков с получением информации можно реализовать и в Messenger. Но это уже другая история, возможно, оставим её на следующий раз?
Signal и Telegram больше похожи на WhatsApp с точки зрения работы с контактами. Однако утечки там не так велики.
Данные last seen из Telegram менее доступны публично и менее подробны, например, они сообщают, что пользователь был онлайн около месяца назад . Движок поиска не имеет утечек, позволивших бы оценить количество пользователей во время моего исследования. Но теперь, спустя шесть недель, похоже, что это возможно. Меня это немного расстроило.
У Signal вообще нет функции last seen , здесь он чист. Однако посчитать пользователей было просто. Signal имеет уведомление is on Signal! , когда контакт начинает им пользоваться. Это помогает отслеживать переход пользователей на Signal.
В первый день исследования из 5000 пользователей 94 было в Signal, и каждый последующий день появлялось по 1-2 новичка. Никто не использует Signal во Франции, очевидно, влияние Илона Маска здесь не так велико.
Да, это картинка, чтобы за вами не могли следить.
На правах рекламы
VDSina предлагает безопасные серверы с посуточной оплатой. Возможно установить любую операционную систему, в том числе из своего образа. Каждый сервер подключён к интернет-каналу в 500 Мегабит и бесплатно защищён от DDoS-атак!
В начале 2020 года количество активных пользователей в Ватсапе превысило 2 миллиарда человек, число установок в Google Play составило более 5 миллиардов. Большинство юзеров использует основные функции мессенджера, не подозревая про наличие скрытых опций. Следует рассмотреть главные и дополнительные возможности Ватсап и как ими пользоваться.
Основные возможности WhatsApp
Пользователю доступно создание групповых чатов, в которых могут общаться до 256 человек одновременно. В голосовых и видеозвонках могут участвовать до восьми человек как из групповых, так и из индивидуальных переписок.Дополнительные функции
Основные фишки, которые облегчат работу в Ватсапе, можно найти, покопавшись в настройках. Ниже представлены основные возможности и способы их использования.
Тёмная тема
Разработчики Вацапа решили не отставать от других мессенджеров и социальных сетей и добавили возможность установки тёмного оформления. Включить тему на Андроиде можно следующим образом:
- Открыть «Настройки», перейти в раздел «Чаты».
- В пункте «Экран» выбрать «Тема», затем «Тёмная».
В разделе «Экран» также можно изменить обои, которые будут отображаться на фоне переписок. Пользователь может установить любое изображение из галереи, залить фон сплошным цветом, убрать обои вовсе или вернуться к стандартному варианту.
В Ватсапе на Айфоне тема привязана к текущему оформлению на устройстве. Чтобы активировать тёмную тему в мессенджере, её нужно включить в настройках телефона. Для этого нужно перейти в параметры, открыть раздел «Экран и яркость», выбрать пункт «Тёмное».
Уведомления о прочтении
Синхронизация с компьютером
Чтобы переписки в Ватсапе были доступны даже в отсутствие смартфона, аккаунт можно синхронизировать на компьютере через скачиваемую программу или веб-версию. Пользоваться настольным приложением можно только при наличии учётной записи на телефоне. В компьютерной версии недоступно общение через аудио- и видеозвонки.
Автоматическая загрузка файлов
Активные пользователи Ватсапа сталкиваются с проблемой переполнения памяти. Ведь все фотографии, gif-файлы и видео автоматически сохраняются на телефон. Чтобы не тратить время на очистку галереи смартфона, автозагрузку можно отключить. Тогда медиа будут сохраняться только по требованию владельца аккаунта.
Чтобы деактивировать функцию, нужно перейти в Настройки – Данные и Хранилище – Автозагрузка медиа. В этом разделе можно отрегулировать автоматическое сохранение файлов в условиях работы мобильной сети, Wi-Fi или роуминга.
Секреты
Существует несколько хитростей, которые могут помочь в общении: форматирование текста и цитирование СМС. А также каждый юзер может использовать мессенджер приватно, чтобы никто из контактов не мог отследить время последнего посещения.
Форматирование текста
- жирный – *text*;
- курсив – _text_;
- зачёркнутый –
Режим невидимки
Каждый пользователь WhatsApp может настроить параметры конфиденциальности так, чтобы никто из контактов не узнал, когда он последний раз был в сети. Следует перейти в раздел Ещё – Настройки – Аккаунт – Конфиденциальность – Видимость персональных данных – Был (-а). При выборе варианта «Никто» включится режим невидимки: у собеседников перестанет отображаться время последнего посещения, а у владельца аккаунта – время активности контактов.
Если пользователь получил и прочёл СМС, но не знает, как сейчас на него ответить, он может воспользоваться этой функцией. Нужно открыть вкладку «Чаты», зажать диалог, тапнуть по многоточию вверху экрана и выбрать «Пометить как непрочитанное».
Частые вопросы
Можно ли установить обои для конкретного чата?
Чтобы установить фон для переписки, нужно открыть её, нажать на многоточие вверху экрана, «Обои» и выбрать подходящий вариант.
Советы
Совет №1
Совет №2
В разделе «Видимость персональных данных» помимо настройки последнего посещения, можно скрыть аватар, сведения о профиле и статус, а также запретить отправлять приглашения в группы.
Очень часто после установки приложения WhatsApp не позволяет пользователю войти в меню, где представлены чаты с другими пользователями, утверждая, что оно нуждается в инициализации. Не все знают, что это такое и как можно решить эту проблему в целом.
Эта проблема может возникнуть не только после установки приложения, но и в том случае, если оно было переустановлено, или если программа долгое время была неактивна без обновления. Приложение просто сообщает, что идет инициализация, после чего может появиться уведомление о том, что процесс не был успешно завершен.
В сети многие пользователи пишут следующие варианты решения проблемы.
Некоторые пользователи сообщают, что эта проблема связана с самим телефоном, а точнее с его операционной системой. На некоторых устройствах WhatsApp больше не сможет работать. Это связано с тем, что версия операционной системы слишком старая и обновленный мессенджер просто не совместим с возможностями операционной системы. В этом случае вам может быть рекомендовано обновить прошивку вашего Android или iOS. Если это невозможно, следует поменять телефон.
Кроме того, сообщается, что в некоторых случаях перезапуск устройства помогает. После выполнения этого действия приложение снова работает без проблем для некоторых пользователей.
Также рекомендуется попробовать полностью удалить приложение с устройства, а также перезагрузить и установить его через торговую площадку.
Также было обнаружено, что данный тип проблем иногда возникает при переносе приложения на SD-карту из внутренней памяти телефона. В этом случае программа не распознает устройство и теряет его функциональность. Затем рекомендуется полностью удалить WhatsApp со смартфона, а затем переустановить его и ввести необходимую информацию.
Если вы не можете получить доступ к программе (если вы перепробовали все предложенные методы), рекомендуется обратиться в техническую поддержку мессенджера напрямую. Специалисты обязательно найдут решение проблемы.
Читайте также: