Zemlya whatsapp что это
Команда популярного мессенджера WhatsApp прекратила поддержку с сегодняшнего дня, 1 ноября, смартфонов со старыми версиями Android и iOS.
Напомним, с февраля 2020 года прекратилась поддержка смартфонов с установленной операционной системой Android версии 2.3.7 и более старыми, а также iOS 8 и более старыми. Теперь же прекратилась поддержка WhatsApp для версий Android начиная с 4.0.4 и старше, а также iOS 9 и старше.
Отметим, что WhatsApp не прекращает поддержку конкретных моделей смартфонов — речь идёт только об установленной на них версии ОС. В сети уже опубликован список из нескольких десятков моделей смартфонов, которые находятся под угрозой — если пользователи вовремя не смогли установить на них более свежую версию ОС, то могут лишиться доступа к WhatsApp.
Например, среди смартфонов Apple под угрозой находятся iPhone SE, iPhone 6S и iPhone 6S Plus. Для этих iPhone Apple предлагает сейчас обновления до iOS 15 включительно.
Среди смартфонов на базе Android под угрозой потери доступа к WhatsApp такие модели именитых производителей:
- LG: Lucid 2, Optimus F7, Optimus F5, Optimus L3 II, Dual Optimus L5, Best L5 II, Optimus L5, Dual Best L3 II, Optimus L7, Optimus L7, Dual Best L7 II, Optimus F6, Enact Optimus F3, Best L4 II, Best L2 II, Optimus Nitro HD, Optimus 4X HD и Optimus F3Q;.
- Huawei: Ascend G740, Ascend Mate, Ascend D Quad XL, Ascend D1 Quad XL, Ascend P1 S и Ascend D2;
- Samsung: Galaxy Trend Lite, Galaxy Trend II, Galaxy SII, Galaxy S3 mini, Galaxy Xcover 2, Galaxy Core и Galaxy Ace 2;
- ZTE: Grand S Flex, ZTE V956, Grand X Quad V987 и Grand Memo;
- Sony: Xperia Miro, Xperia Neo L и Xperia Arc S.
Среди менее известных сейчас брендов — Alcatel One Touch Evo 7, Archos 53 Platinum, HTC Desire 500, Caterpillar Cat B15, Wiko Cink Five и Wiko Darknight, Lenovo A820, UMi X2, Run F1 и THL W8.
Обновлённые требования для WhatsApp теперь выглядят так: iPhone c iOS 10 и новее, Android 4.1 или новее. Также для Android уточняется, что телефон должен быть способен принимать SMS или звонки во время процесса подтверждения номера.
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-атак!
WhatsApp сегодня установлен практически на каждом российском смартфоне — среди наших соотечественников этот мессенджер завоевал просто фантастическую популярность. Через WhatsApp люди переписываются со знакомыми, созваниваются с родственниками, читают новостные и развлекательные каналы. По итогу в приложении накапливается много личной информации, и вряд ли кто-то обрадуется, если к его аккаунту получат доступ не то что третьи лица, а даже родные или знакомые.
Расскажем, как полностью защитить свой WhatsApp от чужого доступа и чтения личной переписки. Для этого нужно соблюдать 5 важных правил.
Подключите двухфакторную аутентификацию
По факту все, что требуется постороннему человеку для получения доступа к вашему WhatsApp, — это завладеть вашим телефоном на короткий промежуток времени. Установить приложение на другом устройстве, указать ваш номер и ввести подтверждение из SMS, которое придет на ваш же телефон. Провернуть подобное под каким-нибудь предлогом несложно, если это делает, к примеру, ваш знакомый.
От подобной ситуации можно защититься, если пользоваться двухфакторной аутентификацией. Обычно такую используют в социальных сетях, где для входа в аккаунт нужен не только пароль, но и одноразовый код из SMS. С ним никто не сможет залогиниться в ваш аккаунт, даже зная пароль, ведь постоянного доступа к телефону нет. В WhatsApp есть похожая функция, только работает она наоборот. Она называется «Двухшаговая проверка».
Чтобы ее включить, нужно: Открыть WhatsApp и нажать на иконку с тремя точками в правом верхнем углу.
В открывшемся меню выбрать пункт «Настройки».
Перейти в раздел «Аккаунт».
Выбрать пункт «Двухшаговая проверка». Дальше мессенджер предложит вам придумать шестизначный PIN-код. Именно его WhatsApp будет запрашивать вместе с кодом из SMS при любой попытке подтверждения номера. Другими словами, злоумышленник не сможет авторизовать ваш аккаунт, даже если получил код из SMS — нужен еще и пароль, который знаете только вы.
Важно: убедитесь в том, что хорошо запомнили выбранный PIN-код, и укажите действующий e-mail при активации двухшаговой проверки — мессенджер предложит это сам — с помощью электронной почты можно будет восстановить доступ, если PIN вы все-таки забудете.
Проверяйте, кто заходит в ваш WhatsApp
Не все знают, но в WhatsApp можно проверить, с каких устройств заходили в ваш профиль. Для этого нужно открыть меню приложения и перейти во вкладку WhatsApp Web. Перед вами откроется полный список устройств, с которых осуществлен вход в учетную запись. Проверяйте незваных гостей хотя бы раз в пару недель, вероятность, что кто-то тайно читает вашу переписку всегда есть. Пользуйтесь только официальным приложением
В сети пользуется популярностью развод, в котором пользователям предлагают бесплатно установить премиум-версию WhatsApp. Вместе с новым приложением, как правило, идет внушительный список возможностей, которых нет у оригинального мессенджера. Соблазняться ими не стоит, с вероятностью 99%, как только вы залогинитесь во взломанном неофициальном WhatsApp, доступ к вашему аккаунту сразу же перейдет третьим лицам. Поэтому пользуйтесь исключительно официальным приложением мессенджера, скачанным из Google Play или App Store.
Проверяйте, с кем вы общаетесь и по каким ссылкам переходите
Большинство взломов аккаунтов в WhatsApp осуществляются методом социальной инженерии. Обычно взлом осуществляется с помощью фишинговых ссылок, по которым мошенники вынуждают пользователей перейти. Подводки могут быть разными, начиная выгодной акцией от известной компании и заканчивая типовым «смотри, я тут наткнулся на фото с тобой». В связи с этим, не переходите по сомнительным ссылкам и проверяйте аккаунты, с которых их вам присылают.
Регулярно обновляйте приложение
И, последнее, но не менее важное правило — регулярно обновляйте приложение WhatsApp. Это далеко не самый защищенный мессенджер, в нем регулярно находят различные уязвимости, которыми пользуются хакеры для взлома аккаунтов. Разработчики приложения в свою очередь выпускают апдейты, где устраняют найденные бреши в безопасности, поэтому важно всегда пользоваться самой последней версией WhatsApp.
Читайте «Хайтек» в
С чего все началось?
В 2016 году WhatsApp предоставил пользователям единовременную возможность отказаться от передачи данных учетной записи Facebook. Теперь обновленная политика конфиденциальности меняет это.
Согласно новым условиям, Facebook оставляет за собой право делиться собранными данными со своими компаниями.
«Как часть группы компаний Facebook WhatsApp получает информацию от этой группы компаний и обменивается ею», — говорится в новой политике конфиденциальности. — Мы можем использовать информацию, которую получаем от них, а они могут использовать информацию, которой мы с ними делимся, чтобы помочь работать, предоставлять, улучшать, понимать, настраивать, поддерживать и продвигать наши услуги и их предложения».
В некоторых случаях, например, когда кто-то использует WhatsApp для взаимодействия со сторонними компаниями, Facebook также может делиться информацией с этими сторонними организациями.
О новой политике конфиденциальности компания объявила в январе, но перенесла обновление на май из-за оттока пользователей.
Кого затронет новая политика?
Новая политика конфиденциальности WhatsApp — это набор новых условий, которые, среди прочего, позволяют мессенджеру вести учет и передавать пользовательские данные своей материнской компании: Facebook.
Политика влияет на учетные записи WhatsApp Business, а не на обычные учетные записи WhatsApp. Данные, к которым будет иметь доступ WhatsApp, включают номера телефонов и данные о транзакциях.
Журналисты Wired и Ars Technica выяснили, что на самом деле для подавляющего большинства пользователей ничего не поменялось.
Люди, общающиеся в WhatsApp, на самом деле уже давно, возможно, неосознанно разрешили передавать свои данные Facebook. Старые пользователи сделали это еще в 2016 году при очередном обновлении пользовательского соглашения. Те, кто завел аккаунты после этого срока, сделали это автоматически при регистрации в мессенджере.
Вот кого действительно коснутся изменения, так это небольшой группы людей, которые осознано запретили WhatsApp делиться своими данными с Facebook при обновлении пользовательского соглашения еще в 2016 году. Те, кто тогда согласился делиться информацией, могли передумать, но только в течение 30 дней. Стоит отметить, что этой опции уже давно нет в настройках.
Если вы не помните, запрещали ли WhatsApp делиться с Facebook своими данными, запросите у компании отчет о настройках учетной записи.
Теперь переписка и звонки будут доступны всем?
Так какую информацию собирает WhatsApp?
«Информация, которую мы передаем другим компаниям Facebook, включает регистрационную информацию о вашей учетной записи (например, номер телефона), данные транзакции (например, если вы используете Facebook Pay или магазины в WhatsApp), информацию, связанную с услугами, информацию о том, как вы взаимодействуете с предприятиями при использовании наших сервисов, информацию о мобильных устройствах, ваш IP-адрес и может включать другую информацию», — говорится в разделе часто задаваемых вопросов на странице WhatsApp.
По сути, это означает, что действия пользователей, некоторые их персональные данные и предпочтения отслеживаются и передаются не только WhatsApp, но и Facebook, а также всем компаниям, которые приобрела соцсеть — например, Instagram. Подчеркиваем — это уже происходит, с 2016 года.
Подведем итоги. Вот что уже собирает WhatsApp:
Почему последний срок — 15 мая?
WhatsApp, принадлежащий Facebook, давно пытается убедить людей принять новые условия конфиденциальности с помощью различных средств, включая обновления статуса WhatsApp и постоянный баннер, который регулярно призывает пользователей принять новые условия. Сервис также неоднократно объяснял пользователям, что на самом деле меняет новая политика конфиденциальности и что это «никак повлияет на конфиденциальность пользователей».
Первоначально WhatsApp планировал принудительно внедрить новую политику с 8 февраля этого года. Однако, столкнувшись с серьезной критикой из-за плохо сформулированной политики и поставленного ультимата, был вынужден перенести дату на 15 мая. Теперь служба заявила, что пользователи обязаны принять новые условия до 15 мая.
Что произойдет, если вы не примете новые условия до 15 мая?
Также Business Insider сообщает, что пользователи, решившие не принимать новые условия соглашения, будут терять доступ к своим спискам чатов в течение двух недель после 15 мая. По его словам, отключение не будет единовременным, сроки будут варьироваться. Для каждого пользователя период будет индивидуальным.
WhatsApp удалит «несогласные» аккаунты?
Возможно, но не сразу. Но и пользоваться мессенджером не получится.
Опять же, компания «не удалит вашу учетную запись» даже на этом этапе, но в конечном итоге все же может это сделать. Как пишет WhatsApp, на этом этапе «будет применяться наша существующая политика в отношении неактивных пользователей». Она утверждает, что обычно удаляет неактивные учетные записи после 120 дней бездействия. И даже если этого не произойдет, приложение все равно не будет служить реальной цели в данный момент — вот почему WhatsApp объясняет, как экспортировать ваши чаты и загрузить отчет о вашей учетной записи на той же странице часто задаваемых вопросов.
При удалении учетные записи потеряют все свои чаты и группы WhatsApp. Если после этого вы захотите использовать мессенджер с тем же номером телефона, вам придется создать новую учетную запись и начать с нуля. Однако для этого, опять же, потребуется сначала принять новые условия конфиденциальности.
При этом представитель WhatsApp сообщил Business Insider, что компания не станет удалять учетные записи пользователей, которые не согласятся с новой политикой конфиденциальности. «Мы продолжим напоминать этим пользователям [о новой политике] WhatsApp в ближайшие недели», — сказал он.
Стоит ли принять новую политику конфиденциальности WhatsApp?
Однако эти пользователи будут продолжать делиться данными, которые уже предоставляют с Facebook, часто неосознанно. Они часто используются Facebook, чтобы предлагать более релевантную рекламу. Более подробная информация об этом представлена в разделе «Наша международная деятельность» политики конфиденциальности.
Стоит отметить, что после принятия политики отменить действие невозможно.
Реакция пользователей и WhatsApp
Даже если вы используете WhatsApp только для общения с друзьями и семьей и планируете так и дальше, вам все равно придется принять новые условия. Так или иначе, характер обновления вызвал у многих недоумение. Поскольку в прошлом Facebook был втянут в череду утечек данных, многие пользователи WhatsApp опасаются этого обязательного обмена данными, несмотря на его громкие заявления о конфиденциальности.
Поскольку WhatsApp получил серьезную негативную реакцию после раскрытия своей новой политики конфиденциальности, сервис, принадлежащий Facebook, приложил много усилий, чтобы прояснить, что на самом деле меняет новая политика конфиденциальности. Для этого WhatsApp сделал ряд общедоступных разъяснений.
Nothing comes between you and your privacy. Messaging with a business is optional, and their chats are clearly labeled on the app. You are in control.
Читайте также: