На одном из мобильных пентестов в прошлом году я извлекал iTunes-бекап с iPhone в состоянии AFU через
idevicebackup2. Стандартный набор артефактов - контакты, история Safari, база SMS - ничего необычного. А потом в выгрузке всплыла таблица с preview-текстами Signal-уведомлений. Сообщения, которые владелец настроил на самоуничтожение через 30 секунд, спокойно лежали в системной базе iOS четыре месяца. Тогда это выглядело как забавный forensic-курьёз, edge case для отчёта. В апреле 2026 года федеральный суд Техаса показал, что ФБР использует тот же механизм для чтения «удалённой» переписки подозреваемых - а Apple экстренно выпустила патч CVE-2026-28950, закрывая баг в подсистеме push-уведомлений. О баге знали forensic-специалисты. Правоохранители - молчали.В статье используется информация из зарубежных источников.
CVE-2026-28950: анатомия бага в подсистеме уведомлений iOS
CVE-2026-28950 - ошибка логирования в iOS и iPadOS. Описание от Apple предельно лаконичное: уведомления, помеченные для удаления, непредвиденно сохранялись на устройстве. Исправление - «improved data redaction». Патч вышел 22 апреля 2026 года в составе iOS 26.4.2, iPadOS 26.4.2, iOS 18.7.8 и iPadOS 18.7.8. По данным Xakep.ru, затронут широкий спектр устройств - от iPhone XR до iPhone 16 и iPad различных поколений.Apple не раскрыла деталей эксплуатации и не уточнила, как долго данные сохранялись. Зато обновление вышло аккурат после публикации 404 Media, которая описала использование этого бага агентами ФБР в реальном судебном деле. Совпадение? Не думаю.
CVSS-вектор и что он значит для пентестера
CVSS-оценка: 6.2 (MEDIUM), вектор[URL='https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N']CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N[/URL]. Разберём по частям:- AV:L (Local) - нужен физический доступ к устройству или его бекапу. Удалённого вектора нет.
- AC:L (Low) - сложность низкая, хватит стандартных forensic-инструментов.
- PR:N (None) - специальные привилегии не нужны. Устройство в AFU - данные доступны через логический бекап.
- UI:N (None) - взаимодействие пользователя не требуется.
- C:H (High) - конфиденциальность страдает максимально: раскрывается содержимое приватных сообщений.
- I:N, A:N - целостность и доступность не затронуты.
Федеральный суд Техаса: как уязвимость уведомлений iOS стала доказательством
Баг всплыл не через bug bounty и не через исследовательский advisory - через судебные показания. По данным 404 Media (на которую ссылаются SecurityAffairs, Bleeping Computer и другие EN-источники), группа лиц в июле 2025 года запустила фейерверки на территории центра содержания иммигрантов Prairieland ICE в Альварадо (Техас), повредив имущество. Один из обвиняемых ранил полицейского.ФБР извлекло входящие сообщения Signal с iPhone подсудимой Линетт Шарп (Lynette Sharp). Мессенджер к тому моменту был удалён с устройства, сообщения настроены на самоуничтожение. По данным SecurityAffairs, шифрование Signal-протокола не пострадало - содержимое вытащили из совершенно другого слоя: системной базы push-уведомлений iOS.
Критический момент: end-to-end шифрование не было скомпрометировано. Проблема в том, как iOS обращается с уже расшифрованными данными на стороне получателя. Signal сделал свою работу - iOS подвела.
Apple Push Notification Service: где утекает контент и метадата
Чтобы понять, почему мессенджер с disappearing messages оставляет читаемые следы, нужно разобрать путь push-уведомления через APNs на уровне, который разработчиков обычно не волнует, но при forensic-анализе и мобильном пентесте iOS - решает всё.Путь push-уведомления от сервера до Lock Screen
Когда кто-то отправляет вам сообщение через Signal, запускается такая цепочка:- Сервер Signal формирует payload и передаёт его через APNs (Apple Push Notification Service).
- Apple доставляет уведомление на устройство получателя через защищённый канал, привязанный к push-токену - уникальному идентификатору, связывающему конкретную установку приложения с конкретным устройством. По данным Wired, push-токены не закреплены за пользователем навсегда: новый токен генерируется при переустановке приложения или смене устройства.
- iOS расшифровывает payload и рендерит уведомление: выводит на Lock Screen, в Notification Center, обновляет badge count.
- Если в настройках включён показ содержимого (Show Previews → Always или When Unlocked), iOS сохраняет текст сообщения в системной notification database для Notification History и восстановления уведомлений после перезагрузки.
По данным исследователя Andrea Fortuna (цитируется SecurityAffairs): «Когда кто-то отправляет вам сообщение в Signal, сервер приложения пушит уведомление через инфраструктуру Apple, которая доставляет его на ваше устройство. Если содержимое уведомления не было скрыто до доставки, текст попадает в базу уведомлений операционной системы. Исходящие сообщения, которые отправляются напрямую с устройства на сервер, никогда не проходят через этот путь и не оставляют аналогичного следа».
Почему ФБР восстановило только входящие сообщения
В судебных показаниях уточняется: извлечены только входящие сообщения, не исходящие. Это полностью бьётся с архитектурой APNs:- Входящие → проходят через APNs → iOS рендерит notification → текст оседает в notification database.
- Исходящие → уходят напрямую с устройства на сервер Signal, минуя APNs. Notification trail отсутствует.
Forensic extraction: методы извлечения артефактов push-уведомлений
Требования к окружению
Для воспроизведения техники на мобильном пентесте:- Целевое устройство: iPhone или iPad с iOS ниже 26.4.2 / 18.7.8 (непатченная версия)
- Состояние устройства: AFU (After First Unlock) - устройство было разблокировано хотя бы раз после перезагрузки. В BFU (Before First Unlock) файловая система зашифрована, большинство артефактов недоступно
- Рабочая станция: macOS или Linux с установленным libimobiledevice (проект активно поддерживается, github.com/libimobiledevice)
- USB-кабель и trust-пара: устройство должно быть спарено с компьютером (lockdown-сертификат)
- Альтернатива: коммерческая forensic-платформа (Cellebrite UFED или Magnet AXIOM)
Логическое извлечение и анализ notification database
Чистый метод - логическое извлечение черезidevicebackup2 из пакета libimobiledevice. Устройство не модифицируется, юридически прозрачнее exploit-based подходов. По данным Andrea Fortuna (цитируется SecurityAffairs), именно этот путь - логическая копия в состоянии AFU с последующим анализом зашифрованного iTunes-бекапа - наиболее вероятный сценарий получения данных в деле Шарп.
Bash:
# Создание полного бекапа устройства
idevicebackup2 backup --full /path/to/backup/
# Поиск баз уведомлений в извлечённом бекапе
find /path/to/backup/ -name "*.db" \
| xargs grep -l "notification" 2>/dev/null
# Анализ найденной базы
sqlite3 /path/to/found_notification.db ".tables"
По данным SecurityAffairs, правоохранительные органы применяют несколько методов:
| Метод | Инструмент | Что извлекает | Ограничения |
|---|---|---|---|
| Логический бекап | idevicebackup2 | iTunes-бекап без модификации устройства | Нужна trust-пара, состояние AFU |
| Коммерческий forensic | Cellebrite UFED, Magnet AXIOM | Глубокий доступ: backup + AFC + exploit-based методы | Стоимость лицензии, юридические рамки |
| iCloud-бекап | Судебный запрос к Apple | Облачная копия с системными данными | Только по судебному ордеру |
Все три метода опираются на одно: iOS сохраняет notification-артефакты за пределами контроля приложения. Forensic-инструменты работают не с шифрованием Signal, а с тем, что iOS уже расшифровала и закешировала «для удобства пользователя».
Push notification слежка: масштаб проблемы за пределами одного CVE
CVE-2026-28950 - конкретный баг с конкретным патчем. Но Apple push notification слежка как вектор этим не ограничивается.В декабре 2023 года сенатор Рон Уайден (Ron Wyden) направил письмо в Министерство юстиции США, раскрыв механизм surveillance через push-уведомления, который использовался правительственными структурами разных стран. По данным Wired, Уайден получил информацию об этой практике весной 2022 года и расследовал её больше года.
Механизм работает на уровне инфраструктуры, а не конкретной уязвимости:
- Каждому пользователю приложения присваивается push-токен, связывающий установку приложения с устройством через APNs или Firebase Cloud Messaging.
- Правоохранительные органы запрашивают у разработчика приложения push-токен конкретного пользователя.
- С токеном обращаются к Apple или Google, которые сопоставляют его с аккаунтом и устройством.
После публикации письма Уайдена Apple обновила политику: теперь для получения записей о push-уведомлениях в США нужен судебный ордер с одобрением судьи. Раньше хватало повестки (subpoena). Google заявил, что уже требовал судебного одобрения.
Это не уязвимость iOS в техническом смысле - это архитектурная особенность push-инфраструктуры. Apple и Google оказываются посредниками с обзором того, кто какие приложения использует. По дизайну.
OPSEC для оператора: минимизация артефактов уведомлений
Понимание APNs-уязвимости и push-surveillance даёт пентестеру два вектора: обнаружение артефактов при forensic-анализе клиентских устройств и контроль собственных следов при работе с iOS-инфраструктурой.Контроль notification previews на уровне приложения и ОС
Главный рубильник - настройка содержимого уведомлений. Для Signal: Signal Settings → Notifications → Notification Content → Name Only (только имя отправителя) или No Name or Content (ни имени, ни содержимого). В этом режиме iOS не получает текст сообщения в payload, и notification database не содержит контента - только факт доставки.На уровне iOS: Settings → Notifications → Show Previews → Never - глобальная настройка для всех приложений. На рабочем устройстве, через которое идёт коммуникация с командой, это первое, что стоит проверить.
По данным разработчиков Signal (цитируются CNews и Xakep.ru), после установки патча iOS 26.4.2 / 18.7.8 ошибочно сохранённые уведомления удаляются автоматически, новые не кешируются сверх нормы.
Decision tree: когда notification database релевантна
| Условие | Действие | Ожидаемый результат |
|---|---|---|
| Физический доступ к непатченному устройству (< iOS 26.4.2 / 18.7.8), AFU | Логическое извлечение через idevicebackup2, анализ notification DB | Тексты входящих сообщений из мессенджеров |
| Устройство в BFU (после перезагрузки, не разблокировано) | Ограниченный доступ к зашифрованным данным | Большинство артефактов недоступно |
| Previews отключены (Name Only / No Content) | Анализ notification DB | Только метадата без текста сообщений |
| Пропатченное устройство (>= iOS 26.4.2 / 18.7.8) | Артефакты прошлых уведомлений удалены при обновлении | Свежие уведомления не кешируются сверх штатного |
Ограничения техники
Извлечение notification-артефактов работает при одновременном соблюдении условий: непатченная iOS, состояние AFU, наличие trust-пары, включённые notification previews у целевого приложения. Выпадает хотя бы одно звено - метод бесполезен. Против устройств с Lockdown Mode (режим блокировки Apple) эффективность в контексте CVE-2026-28950 в доступных источниках не описана - тут пока белое пятно. Коммерческие forensic-платформы типа Cellebrite UFED или Magnet AXIOM могут применять exploit-based методы для обхода некоторых ограничений, но это выходит за рамки стандартного пентеста и требует отдельного юридического обоснования.И ещё один нюанс, о котором часто забывают: речь не только о Signal. Любое приложение, отправляющее push-уведомления с текстовым содержимым - Telegram, WhatsApp, корпоративные мессенджеры - потенциально оставляло следы в тех же системных таблицах. Signal просто оказался в центре внимания из-за судебного дела, но механизм универсален для всей notification-подсистемы iOS.
CVE-2026-28950 получила CVSS 6.2 - среднюю оценку. Локальный вектор, нет удалённой эксплуатации, нет повышения привилегий. По формальным метрикам - не критическая уязвимость уведомлений iOS. Но формальная оценка и реальный импакт - разные вещи. Федеральный суд использовал эту «среднюю» уязвимость для чтения переписки, которую пользователь считал уничтоженной. Для Линетт Шарп разница между CVSS 6.2 и 9.8 не имела никакого значения - её сообщения прочитали.
Эта история вскрывает разрыв между моделью доверия пользователя и реальной архитектурой. Пользователь доверяет приложению - Signal - но приложение работает внутри среды, которую не контролирует. Signal шифрует, удаляет, обнуляет - а iOS живёт своей жизнью, кеширует данные «для удобства», и ни один мессенджер не в состоянии вычистить все слои, которые ОС создаёт самостоятельно. До апреля 2026-го об этом знали forensic-специалисты и силовые структуры. Теперь знают все. Но вряд ли что-то изменилось в привычках большинства - notification previews по умолчанию включены, и Apple не собирается менять дефолт.
Push-токены - отдельная плоскость. Даже после патча CVE-2026-28950 инфраструктурный механизм surveillance через APNs и Firebase никуда не делся. Apple и Google по-прежнему видят, кто какие приложения использует и когда получает уведомления. Судебный ордер - единственное, что стоит между этими метаданными и теми, кто хочет их получить. В 2022 году хватало повестки. Я ожидаю, что в ближайшие пару лет мы увидим новые кейсы, где notification-артефакты станут ключевым доказательством - не потому что появятся новые баги, а потому что forensic-сообщество стало лучше понимать, что именно iOS хранит «для удобства». Если хочешь покопаться в notification database на живом iOS-стенде - на HackerLab есть лаба с forensic extraction без подсказок.