Недавно стало известно о новом виде слежки за пользователями смартфонов: через пуш-уведомления в iOS и Android. Газета Washington Post написала, в частности, что эту тактику начало использовать ФБР (кэш статьи).
Довольно интересно, как работает такой метод выслеживания.
Согласно расследованию, для идентификации пользователей ФБР запрашивает у компаний Apple и Google данные пуш-уведомлений, так называемые «пуш-токены» (push token). Эти данные можно запрашивать без предъявления ордера. С помощью пуш-токенов можно идентифицировать конкретный смартфон, а потом запросить у компании данные о его владельце.
Как сообщается, спецслужбы используют этот метод как минимум с 2019 года. Тогда Apple и Google получили судебные предписания на передачу информации об аккаунтах, идентифицированных по пуш-токенам и связанных с предполагаемыми сторонниками исламской террористической группировки.
Но широкая общественность узнала об этой практике только в декабре 2023-го. Тогда в ходе расследования выяснилось, что Минюст запретил Apple и Google обсуждать эту технику. Видимо по той причине, что она используется в оперативной работе. Поэтому от названных компаний технических комментариев ожидать не приходится.
Пуш-токены
В отличие от обычных уведомлений, пуш-уведомления могут вывести телефон из спящего режима и включить экран, что делает их полезными для срочных вызовов в повседневном использовании. Многие приложения предлагают такую функцию, потому что это удобный способ оставаться «в курсе событий» даже при выключенном экране. Но оказалось, что эта функция угрожает приватности и позволяет деанонимировать пользователя.
Чтобы отправить пуш-уведомление, операционная система требует от приложения сначала создать токен, по которому Apple и Google сможет найти устройство. Затем эти «пуш-токены» сохраняются на серверах Apple и Google.
Но поскольку пуш-токен однозначно идентифицирует устройство, то и спецслужбы тоже по нему могут узнать аккаунт пользователя и получить доступ к его конфиденциальной информации.
Отправить пуш-уведомление (и создать пуш-токен) незаметно для пользователя iOS можно через разрешение com.apple.developer.usernotifications.filtering.
Согласно официальной документации, для скрытия уведомления внутри метода didReceive(_:withContentHandler:) нашего расширения создаётся пустой объект UNNotificationContent и передаётся обработчику контента. Для контента не должны быть указаны заголовок, подзаголовок, тело, вложения или звук. Пример:
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
// Determine whether you should suppress the notification.
let suppress = myShouldSuppressNotification(request: request)
if suppress {
// Don't deliver the notification to the user.
contentHandler(UNNotificationContent())
} else {
// Deliver the notification.
guard let updatedContent = request.content.mutableCopy() as? UNMutableNotificationContent else {
// This error should never occur.
fatalError("Unable to create a mutable copy of the content")
}
// Update the notification's content, such as decrypting the body, here.
contentHandler(updatedContent)
}
}
Чтобы скрыть удалённо отправляемое уведомление, при отправке уведомления на сервер APNS необходимо установить поле заголовка
apns-push-type
в значение alert
. Таким образом, жертва не увидит пуш-уведомление и не заподозрит, что против неё началось расследование.В официальной документации Apple приводится пример, как выслать пуш-уведомления всем пользователям, которые пересекли физическую границу (см. UNLocationNotificationTrigger). Например, внутри зоны стихийного бедствия. Логически можно предположить, что у Apple есть информация обо всех устройствах на определённой территории. Соответственно, эту информацию могут получить и правоохранительные органы, скажем, для составления списка всех участников массового мероприятия.
Впрочем, для составления такого списка можно использовать и метод попроще вроде обычной фальшивой базовой станции (StingRay), на которой будут регистрироваться все мобильные телефоны в радиусе её действия.
Консоль для StingRay производства Harris Corporation, источник
Риски применения новой технологии
Статья рассказывает об использовании пуш-токенов специалистами ФБР против различных террористов и людей совершивших серьезные преступления. На данный момент обнаружено более 130 случаев использования пуш-токенов с последующим запросом персональной информации у Apple, Google, Facebook и других технологических компаний. Казалось бы, не так уж и много. «Но мы все знаем, чем это заканчивается», — пишет известный специалист по безопасности Брюс Шнайер.
«Так начинается любой новый метод слежки. Правительство говорит, что будет использовать это только в самых крайних случаях, и все это поддерживают», — говорит Купер Куинтин (Cooper Quintin), специалист по технологиям из Фонда электронных рубежей (Electronic Frontier Foundation).
Но в итоге сфера действия технологии рано или поздно расширяется. Это может случиться по-разному. Может, в один прекрасный день генпрокурор штата принимает решение использовать её для более широких категорий преступников.
Даже если в данный момент вы полностью доверяете властям и спецслужбам в применении какой-либо технологии, никогда нельзя знать, что сделает с ней новая администрация через год или несколько лет.
Поэтому при появлении любой новой технологии слежки всегда разумно предполагать, что она может и будет использоваться не самым этичным способом, в том числе против добропорядочных граждан.
Комментарии (63)
vassabi
19.05.2024 19:10+2вот потому, что у айфона таких "незаметных от пользователя" возможностей больше чем у андроида, я им и не пользуюсь :)
functyon
19.05.2024 19:10+10таки поэтому? андроид лучше, потому что "поменьше следит"? я вас умоляю
HardWrMan
19.05.2024 19:10+6Я думаю посыл был немного другим. Речь не про "поменьше следит". Речь скорее про "следит более незаметно для пользователя". А в инфополе преподносится как противовес андроиду, который всем очевидно следит всегда и не скрывает этого.
vassabi
19.05.2024 19:10+10дело не в возможностях железа за кем-то следить. Все смартфоны это могут.
Но у одной компании реально больше способов доступа к устройству чем у другой - она его монопольно под себя выпускает.
egribanov
19.05.2024 19:10+1Держу в курсе, что гугл не хочет аосп выпускать, а хочет только на свои пиксели делать операционку. Не знаю насколько в этом они продвинулись сейчас, но они это делают
vassabi
19.05.2024 19:10+4ну дык понятно, что приятно быть владельцем еще и железа, а не только софтового магазина.
Просто гугл еще только хочет, когда эпл уже давно может....
lorc
19.05.2024 19:10+2Я вот буквально вчера узнал что последние айфоны можно отслеживать даже когда они выключены и батарея (почти) разряжена. Он тогда начинает вести себя как AirTag. Правда, только если его перевести в режим Lost Phone.
HardWrMan
19.05.2024 19:10+3Все модели с момента внедрения BLE, вроде как. Ну а меш у них давно работает, делалось для AirTag и Lost Phone.
me21
19.05.2024 19:10+5А мне непонятно. То есть, суть в том, что можно запросить у компании A или G, кому отправлялось определённое пуш-уведомление?
vassabi
19.05.2024 19:10+2Насколько я понял - можно прийти к компании, которая распространяет свое приложение (например мессенжер - М или Т) и которое установлено у нужного человека - и попросить их разослать пуш-уведомление в их приложение в определенную местность, а потом у компании A или G попросить - какие токены с них ушли устройствам.
Таким образом вы получите ИД всяких телефонов. Если проделать так несколько раз или если это уединенная местность - то мы получим 1-2 айди, по которым уже можно будет копать дальше (ну или периодически отсылать пуши, чтобы оно нам возвращало новые координаты телефона).
Advisory
19.05.2024 19:10+3Думаю, что что-то изначально должно быть известно.
1. Изначально известны либо email, либо аккаунт пользователя в приложении (у разработчиков, у пользователя и у посредников A или G хранится один и тот же токен, связанный с устройством пользователя).
2. Если известен email, запрашивается пуш-токен у Apple или Google.
Если известен аккаунт, запрашивается пуш-токен у разработчиков приложения.
3. Разработчики приложения используют пуш-токен для отправки целевых уведомлений и сбора информации.
4. Приложение отслеживает взаимодействие пользователя с уведомлениями и логирует активность.
5. Спецслужбы могут запросить дополнительную информацию у Apple или Google на основе пуш-токена, если изначально был известен аккакунт в приложении.
6. Сопоставление всех собранных данных для определения личности пользователя.vassabi
19.05.2024 19:10+1я думаю что изначально должно быть известно только
1) что чел использует какое-то приложение (например гуглдоки)
2) что чел находится в %область%
потом приходят к разрабам приложения и просят их послать невидимый пуш в эту %область% и у транспортеров пушей смотрят - какие аппараты получили этот пуш.
ну а дальше по вашим пунктам 3 - 6mayorovp
19.05.2024 19:10+1А откуда разрабы приложения узнают какие смартфоны находятся в нужной области, чтобы выборочно послать им пуши? У них-то есть только пуш-токены...
Chamie
19.05.2024 19:10+2Вот так?
В официальной документации Apple приводится пример, как выслать пуш-уведомления всем пользователям, которые пересекли физическую границу (см. UNLocationNotificationTrigger).
Layan
19.05.2024 19:10Не всем пользователям, а только на конкретном устройстве, где этот код с отправкой уведомления и выполнится.
vassabi
19.05.2024 19:10+1да - разрабы не знают, но телефоны-то знают и они сами запросят у провайдера пушей (а дальше - просто посмотреть логи)
Woffko
19.05.2024 19:10я из текста понял несколько иначе, у есть есть какая-то БС фейковая, которая объявляет на зоне действия какую-нибудь ЧС (какой-нибудь пожар, наводнение и т.д.) и при покидании этой зоны или наоборот при попадании в неё, генериться пустое пуш, которое просто включает подсветку, и на фейкойвой БС по итогу есть эти зареганые пуши от системы, после чего у того же яблока или гугла запрашивается какой аппарат получит такой вот уникальный пуш.
mayorovp
19.05.2024 19:10+1Если делать через фейковую БС - то весь обмен так и останется между фейковой БС и смартфоном. Никакие пуш-токены тут участвовать не будут.
elron
19.05.2024 19:10Как это работает(как я понял): на телефоне у каждого приложения с пушами есть свой уникальный токен, список этих токенов лежит на сайте гугла(и мессенджера), фбр говорит типа "дайте мне токены" и получает табличку из "приложение", "токен", "какой-то чел", потом фбр формирует фейковое пуш-уведомление для, допустим телеги, с сообщением типа "у тебя новое сообщение" и отправляет его - сообщение долетает, девайс просыпается и тригерит приложение, приложение начинает стучаться к серверу, и соответственно выдавать свой IP.
SadOcean
19.05.2024 19:10+2Мне не совсем понятно, есть ли какие то универсальные способы получить токен.
Потому что получить токен = иметь какое то приложение.
То есть ФБР создаёт приложение, пользователь его ставит и разрешает нотификации, приложение получает токен.
И вот уже после этого можно послать на телефон сообщение, которое разбудит это приложение, запустит код по определению положения и подавит сообщение, поэтому пользователь ничего не заметит.
Но тут либо описывается нечто другое, типа пушей на приложения самой Эппл. В этом случае естественно все будет работать, но это просто значит что у их приложений есть шпионский функционал
sunsexsurf
19.05.2024 19:10+2Думается, что в первом тезисе немного не так. Не ФБР создается приложение, а берется к использованию приложение, которое _скорее всего_ есть в смартфоне пользователя.
Это может быть как мессенджер Т, W или соцсеть какая-нибудь - что-то очень популярное.
Дальше - дело за малым, как уже описано выше с комментариях: по запросу органов с такого приложения уходят пуши в определенное место, в А или Г спрашивают - кому такое ушло?
jonic
19.05.2024 19:10+1Так, давайте по порядку… Окей, если это мессенджер Т, то могут попросить всех пользователей Т которые получают уведомления. В определенном месте.
А с приложения никакие пуши не уходят. Сервер приложения всегда подключатся к серверу эпл или гугл и отправляет уведомление по токену, причем трафик шифрован. А сервис уведомлений на телефоне, всегда держит соединение с сервером Эппл/гугл и реагирует. Это банальный брокер сообщений, чуть расширенный.
vassabi
19.05.2024 19:10+1скажите, ведь "банальный брокер сообщений" логирует - какие аппараты (а точнее - какие айдишки пушей) подтвердили получение пуша?
vikarti
19.05.2024 19:10+2Даже если это по каким то причинам не делает сервер apple/google - как минимум некоторые приложение при получении "silent push notification" с идшником сообщения - дергают свой сервер для получения данных что показывать то. механизм сделан потому что в пакете от apple/google мало места ну и такое решение - более приватное. Собственно например у клиентов Matrix сделано именно так (правда реально там чуть сложнее).
Да - можно проблему частично обойти (пуш просто будет приходит другому, не совсем очевидному сообщению, возможно - от вашего же сервера) - смотрим https://unifiedpush.org/ и как он работает с self-hosted ntfy и Matrix-клиентами. Но это решения скажем так не очень массовые (и очень криво работающие на iOS)(Я вот жду не соберется ли ктонибудь сделать unifiedpush provider на базе rustore и его пушей - https://habr.com/ru/companies/oleg-bunin/articles/728516/
jonic
19.05.2024 19:10А зачем? Ведь если он онлайн то онлайн, мы знаем как минимум айпи. А если нет - то нет. Логи подключений скорее всего ведутся. Так же и то с каким аккаунтом связан тот или иной токен. А еще если приложение удалить, то токен тоже инвалиднуется на сервере пушей.
anzay911
19.05.2024 19:10+2А Китай, соответственно, пушит Huawei, Tencent, ByteDance и остальных.
egribanov
19.05.2024 19:10+2У них попроще, они сразу выпускают с завода устройства с необходимым софтом. Согласие пользователя не требуется)
HardWrMan
19.05.2024 19:10И не только в Китае, кстати. Уже даже было тут расследовано: https://habr.com/ru/articles/575626/
Dmitri-D
19.05.2024 19:10С каких пор Apple не знает пользователя, если он уже создал и пользуется Apple ID? И что персонального, кроме локации и этого Apple ID, может узнать Apple достоверно?
Логически можно предположить, что у Apple есть информация обо всех устройствах на определённой территории
Это есть и у базовых станций. Т.е. каждый владелец сетей и каждая сотовая компания это знает кто где на какой территории и с каким устройством. Что в этом принципиально нового?
Mausglov
19.05.2024 19:10+3Как понимаю, новое то, что не требуется ордер. То есть раньше надо было прийти с судебным ордером на условного Васяна. Ордер - дело публичное, и Васян сразу узнавал, что под него копают.
А теперь приходят расследовать как бы внутреннюю кухню самой компании. Дают список токенов и говорят: "разошлите по этому списку невидимые пуши, и сдайте нам технические данные ответов". Васян даже не упоминается.
А потом "следствие установило, что Васян владел смартфоном с установленным приложением Y, эта инсталляция была связана с пуш-токеном NNN. Устройство с данным токеном в такое-то время находилось в таком-то месте."
Казуистика, но де-юре все чистенькие.
Wesha
19.05.2024 19:10+5"Говорил мне Горбатый: как идёшь на дело — оставь телефон у любовницы. Алиби — во!"
vikarti
19.05.2024 19:10+2В официальной документации Apple приводится пример, как выслать пуш-уведомления всем пользователям, которые пересекли физическую границу (см. UNLocationNotificationTrigger).
А ничего что это Create a
UNLocationNotificationTrigger
object when you want to schedule the delivery of a local notification when the device enters or leaves a specific geographic region. The system limits the number of location-based triggers that it schedules at the same time.ЛОКАЛЬНАЯ нотификация. мониторится самим устройством и будится приложение по необходимости. Не Apple присылает.
Геолокацияю Apple то отслеживает хотя бы для Find My iPhone (и это отключаемо, но в некоторых случаях работает и без сотовой связи/на устройствах где тупо нет GPS, правда с точностью и задержками все не очень но это штатный функционал AirTag).
vassabi
19.05.2024 19:10насколько я понимаю - раньше такое называлось "отслеживание аппарата по базовым вышкам", но для этого надо было чтобы это были ваши вышки (в смысле - чтобы спецслужбы могли прийти в гости к ОПСОСу).
А этот способ помогает вам найти аппарат, даже когда он в другой стране и без доступа к вышкам. Нужно конечно чуть попотеть (по базовым станциям - это все-таки физика, а тут чисто софт), но тем не менее :Dvikarti
19.05.2024 19:10Возможно у вас путаница - фокус с вышками - можно любой аппарат, хоть кнопочный, но надо содействие оператора. То что делают Apple и Google - если аппарат может сам свои координаты определить (пофиг как - там способов хватает - вплоть до сетей WiFi, пусть точность и страдает) - эта информация доступна приложениями на нем (с соответствующими разрешениями...вот только иногда это даже для рекламы надо(!)(ладно - тут потихоньку совсем уж дыры закрывают...)) и авторам ОС (c учетом политики приватности и прочего). Вот только - авторы ОС используют эти данные для многих интересных и полезных задач а приложений которые вероятно есть у целевой аудитории и у которых доступ к геолокации есть и она даже используется - хватает. например, такси/доставки. если же хватит и не очень точных координат и не прям сразу - да чуть ли не все поголовно мессенджеры.
egribanov
19.05.2024 19:10Есть еще общая сеть, когда где то включается что смарт украли его сигнал примет ближайший айфон к нему, отключить такое нельзя насколько я знаю. Такое же гугл выпустила недавно
vikarti
19.05.2024 19:10+1Отключить как раз можно но отключите и поиск своих своих устройств и участие в сети.
Там даже интересные дырки есть (которые не очень понятно как заткнуть) что по сути - это еще и канал слива данных из всяких из мест где связи нет, небыло и не будет, достаточно чтобы там ненадолго айфоновладелец оказался (Пусть даже у него в этот момент тоже не будет сотовой связи или WiFi). https://habr.com/ru/companies/macloud/articles/561384/
fndrey357
19.05.2024 19:10+1Интересно, а если телефон с 2-мя симками. Может зловред с одной симки добраться до второй? Т.е. тупо разделить функции на две симки с различными ограничениями и прочее?
avost
19.05.2024 19:10+4А какая вам разница какая из двух ваших симок сдаст вас?
А в данном случае вас сдаёт даже не симка, а сама операционка, или гуглосервисы. Тут основная фишка в том, что в отличие от других способов, вас сдают по упрощённой процедуре - без решения суда. А сам техничемкий способ, конечно, любопытен, но не более того. Хотя, нет, всё же более того - отслеживать же можно за пределами страны и вообще без привязки к симкам.fndrey357
19.05.2024 19:10Ну если на одной симке/номере сидит мобильный банк, а на другой вся остальная помойка.
Реально ли зацепить через помоечный номер другой? Или речь идет о вскрытии телефона полностью?
vassabi
19.05.2024 19:10+2о вас будет известно все - что можно получить из приложения.
Есть у приложения доступ к симкам и сетям? Оно отдает эти данные на сервер телеметрии?
Ну вот значит и получат "аппарат 1234, с двумя симками, ИМЕИ1 СИМ1 ИМЕИ2 СИМ2, в сети провайдера АБВГД, виден SSID вайфая вокзала Еклмн"fndrey357
19.05.2024 19:10Получается, если зловред встанет на симку 12-34, а банк привязан к симке 56-78, то он до нее не достучится.
А данные. что телефон с симкой 56-78 имеется в наличии карман не опустошают.
vassabi
19.05.2024 19:10+3какой еще зловред? вы о чем? Это всё стандартные функции аппарата и стандартные АПИ платформы, которые используются обычными приложениями, получающими пуши
Antra
19.05.2024 19:10+2спецслужбы тоже по нему могут узнать аккаунт пользователя и получить доступ к его конфиденциальной информации
Узнать аккаунт какого пользователя? Если "разрабатывают меня", обо мне что-то уже знают. Как формулируют запрос/фильтр, чтобы узнать обо мне еще боьше?
Если наконец-то узнали мой аккаунт (e-mail), какую конфиденциальную информацию после этого они могут получить?
vassabi
19.05.2024 19:10вот представьте, что вы за океаном пользуетесь телефоном вашей бабушки (т.е. непонятно какой номер - ваш), но примерно понятно что вы ночью - дома, днем на работе, а иногда ходите в гости или кино.
Примерно по этим местам рассылаются пуши и смотрится - какие именно телефоны находятся там, где в это время находитесь вы. Сначала таких будет тысячи, но если повторять, то за пару-тройку дней останется совсем немного таких телефонов (а скорее всего только один - ваш).
После этого мы получаем из пуша - аккаунт пользователся, а по аккаунту пользователя - например эпл отдает содержимое вашего облака, список приложений и т.д. (это называется "ой я забыл свой пароль, можете восстановить?" только когда это делаете не вы).
Также можно смотреть - с кем вы общались/созванивались и т.д. ведь пока вы не знаете что за вами следят - вы же продолжаете как обычно это делать ....
Antra
19.05.2024 19:10И каковы исходные данные? Очевидно, что спецслужбы знают не меня лично (тогда бы уже знали аккаунты), а ... что? Ориентировка какая? "Некий чел пишет на Хабре в такое-то время, а в такое-то не пишет - примерно определили ночь/день (часовой пояс плюс-минус часа 3".
какие именно телефоны находятся там, где в это время находитесь вы
Они знают примерные координаты (скажем, город) искомого преступника? Ну так горожан прорва, хоть год ежедневно пуши шли - куча совпадений останется.
Или они отслеживают мои маршруты (знают, когда я поехал в другой город и жахнули пуши в другой регион)? Тогда действительно другие смартфоны его получат. Но тогда они настолько много обо мне уже знают...
Chamie
19.05.2024 19:10"Некий чел пишет на Хабре в такое-то время, а в такое-то не пишет - примерно определили ночь/день (часовой пояс плюс-минус часа 3".
Как насчёт «некий чел днём появляется в НИИ-2 ФСБ»?
Antra
19.05.2024 19:10Звучит красиво. Можете деталей атаки добавить? Например:
Пункт1: С помощью API вызова разослали пуши всем с GPS координатами внутри такого-то прямоугольника. (Я сильно сомневаюсь, что таковой существует. Как минимум, потому что PUSH-центру смартфоны не сливают постоянно свои координаты, это другой сервис. Разослать пуш всем с командой "отзовитесь только те внутри прямоугольника"? Не знаю, как это работает, как смартфон не просто забирает, а что может сообщить в ответ, но допустим).
Пункт 2: A|G получили список push токенов, как-то отреагировавших исключтельно с учетом заданных координат.
Следующие шаги? По плану должны узнать аккаунт (email) и получить конфиденциальную инфрмацию.
Valodzimir
19.05.2024 19:10По умолчанию надо считать, что все что есть на телефоне, доступно спецслужбам. Вопрос в том, куда бежать. На РС хотя бы Линукс есть
vikarti
19.05.2024 19:10+2GrapheneOS.
Ну и всякие Librem и прочие Firephone - там хоть попытки в рабочее отключение радиомодуля + контроль что радиомодуль - средство связи а не один большой эксплоит.
Lagovi
19.05.2024 19:10Да некуда бежать, если вы в разработке именно у спецслужб, вас просто ломанут непубличным эксплоитом, и неважно на чем вы, нет гарантий защищенности ни у одной OS, что декстопной, что мобильной. Если вами заинтересованы органы, тут есть варианты конечно, зависит от страны и ситуации.
Krasnogolovy
19.05.2024 19:10Как указано в статье - функционал описан в официальной документации, не удивлюсь если им пользуются разработчики приложений для персонализации рекламы и пр.
vcKomm
19.05.2024 19:10+2Видимо, никто не удосужился походить по ссылкам в начале статьи, но при этом кинулись рассуждать рассуждать.
Спецслужбы приходят к автору приложения, который находится в их юрисдикции, просят пуш-токен пользователя. После этого, у Гугла просят email, относящийся к этому пуш-токену. Конец.
dekeyro
" Чтобы отправить пуш-уведомление, операционная система требует от приложения сначала создать токен, " - то есть если у вас не будет пуш уведомлений на телефоне, то и метод этот не будет для вас уязвимостью?
Tomasina
"не будет пуш уведомлений на телефоне" неравнозначно "не отображать пуш уведомления на телефоне"
snuk182
То есть - тело с Lineageos, без гуглосервисов. Я еще помню времена, когда так жили. Не очень, правда, долго - собственнозапущенный пользовательский event loop жрал батарею только в путь.
moonlight_blackberry
У google services схожий "event loop". Во времена android 2.3, отрубал синхронизацию гугла через менеджер учёток, для экономии траффика и немного батареи. Или как пример, telegram foss, без гугл сервисов вполне неплохо прилетают уведомления