Данные Signal и Telegram остаются после удаления. Объясняем как ФБР получила доступ к данным после чистки

от автора

Мы покажем что конкретно остаётся на iOS и Android после удаления Telegram и Signal, через какие инструменты это находится и сколько времени проходит, прежде чем артефакты начинают исчезать.

ФБР получила доступ к удаленным сообщениям Signal

Условия эксперимента

На оба устройства поставили Telegram и Signal, попользовались несколько дней в обычном режиме (переписка, звонки, медиа), после чего удалили оба приложения. Извлечения делались в три этапа:

  1. С установленными приложениями (контрольное)

  2. Сразу после удаления

  3. Через 6 дней (iOS) / 14 дней (оба)

Извлечения обрабатывались в Cellebrite PA, Magnet AXIOM, Oxygen Forensic Detective, iLEAPP/aLEAPP. Это важно, потому что разные инструменты видят разное. Забегая вперёд: ни один из них не нашёл всё.

Анализ iOS

Поиск по ключевым словам

Запускаем в Cellebrite PA поиск по bundle ID ph.telegra.Telegraph. В контрольном извлечении (при установленном приложении) находит кучу результатов. Удалили Telegram, извлекли снова. Количество результатов просело, но все еще есть. Через 6 дней после удаления результатов стало чуть меньше, но они всё ещё есть.

С Signal (org.whispersystems.signal) картина аналогичная:

AXIOM показывает похожую динамику, но находит другие файлы: (сравнение по колонкам — установлено-удалено-спустя неделю)

AXIOM поиск ph.telegra.Telegraph

AXIOM поиск org.whispersystems.signal

Гораздо больше совпадений находится по полным ключевым словам:

Поиск по Signal:

Telegram:

Пока картина следующая — даже банальный поиск по ключевым словам после удаления приложения даёт десятки и сотни совпадений. Сам факт установки приложения на устройство предполагает возможное наличие в нем учетной записи подозреваемого, что может помочь аналитику в дальнейшем.

Факт установки и удаления в Mobile Installation Logs

iOS ведёт логи установки и удаления приложений. Эти записи пережили и удаление, и 14 дней ожидания.

В AXIOM видно запись об установке и удалении Signal:

iLEAPP показывает то же для Telegram:

Тут фиксируются конкретные временные метки: когда поставили и когда снесли. Для следствия это бывает важнее самой переписки.

SMS с кодами активации

Оба мессенджера при регистрации/авторизации присылают SMS с кодом. Эти сообщения лежат в стандартной SMS-базе и никуда не деваются при удалении приложения.

Казалось бы, мелочь. Но SMS от Telegram с кодом подтверждения однозначно доказывает, что пользователь как минимум начал процесс регистрации на этом устройстве. А дата SMS фиксирует, когда это произошло.

Тем более, СМС хранятся даже после удаления, пока их не затрет новыми данными.

Анализ уведомлений

iOS хранит уведомления в отдельной базе. Эта база — самый ценный артефакт из тех, что переживают удаление приложения. Потому что (как вы могли догадаться) в уведомлениях лежит не только метаинформация (время, отправитель), но и текст сообщений. База доступна для анализа даже после удаления приложения.

Cellebrite PA достаёт уведомления от Telegram:

AXIOM находит уведомления от Signal:

iLEAPP показывает уведомления Telegram в другом формате, но суть та же:

Если пользователь не отключил уведомления для мессенджера, мы получаем фрагменты переписки даже после полного удаления приложения. Signal позиционируется как защищённый мессенджер, но от уведомлений защищать никто не обещал 😉

interactionC.db — анализ контактов

Здесь обнаружился интересный нюанс. База interactionC.db хранит записи о взаимодействиях пользователя с контактами через приложения.

При удалении Telegram записи из неё удаляются (но поддаются восстановлению через Oxygen). А вот при удалении Signal записи остаются нетронутыми.

Почему так? Telegram, видимо, реализует очистку своих данных из этой базы при удалении (или iOS делает это за него). Signal этого не делает. Так что в этом конкретном месте более «защищённый» мессенджер оставляет больше следов.

Анализ Power Log

Current Power Log хранит данные об энергопотреблении приложений за 3-5 дней. Но у iOS есть привычка делать бэкапы этих логов.

В итоге через 6 дней после удаления данных оказалось даже больше, чем сразу после удаления, за счёт дубликатов из резервных копий.

Axiom — Telegram

Axiom — Signal

Telegram App Usage

Power Log фиксирует состояние приложения (foreground/background), использование сети, расход батареи. По этим данным можно восстановить паттерн использования — когда человек открывал мессенджер, как долго он был активен, сколько трафика ушло.

Biome

Добавленный в 2021 в iOS Biome Framework пришел на замену knowledgeC и создан для логирования системной и пользовательской активности. Большая часть данных Biome удаляется вместе с приложением, но два типа записей уцелели:

  • Notifications (метаданные уведомлений)

  • Text Input Sessions (сессии ввода текста)

iLEAPP Biome Notifications — Telegram

iLEAPP Biome Text Input Sessions — Signal

Text Input Sessions и Уведомления сохраняются через 6 дней после удаления. То есть мы видим, когда пользователь набирал текст в Signal. Не что набирал, но когда и как долго.

اشترك في قناتنا!

KnowledgeC и Screen Time

Записи в KnowledgeC удаляются при деинсталляции, но удалённые строки можно вытащить из SQLite, пока их не успело затереть. Если извлечение сделано быстро, восстановление реально. Через 6 дней Screen Time восстановить уже не удалось, а вот факт установки/удаления в KnowledgeC остался.

Telegram

Signal

Net Usage, TCC, storeUser.db

Net Usage (статистика сетевого трафика) была доступна сразу после удаления, но через 6 дней исчезла.

В TCC (базе разрешений) записи обычно удаляются вместе с приложением, но разрешение kTCCServiceLiverpool для Telegram почему-то осталось:

storeUser.db содержит две таблицы: установленные приложения и история покупок через Apple ID.

Опять же, сравнивая две эти таблицы, можно увидеть, что было удалено. Правда, нужно учитывать, что приложение могло быть установлено на другом устройстве с тем же аккаунтом.

Через 14 дней после удаления на iOS

Что осталось:

Артефакт

Сразу после удаления

Через 14 дней

Mobile Installation Logs

да

да

SMS (коды активации)

да

да

Уведомления (с текстом!)

да

да

InteractionC

Signal: да. Telegram: восстановим

да

Power Logs

да (с бэкапами)

да (меньше)

Biome (Notifications, Text Input)

да

да

KnowledgeC

факт установки/удаления

да

Screen Time

восстановим

нет

Net Usage

да

нет

TCC

частично (Telegram)

да

storeUser.db

да

да

Опять же, через две недели после удаления Telegram и Signal с айфона мы всё ещё можем доказать факт использования, восстановить фрагменты переписки из уведомлений и построить таймлайн активности по Power Log.


Анализ Android

Поиск по ключевым словам

Cellebrite PA, поиск по org.telegram.messenger:

Поиск по org.thoughtcrime.securesms (package name Signal):

localappstate.db и gass.db

Это, по сути, главные базы Google Play.
localappstate.db хранит аккаунт Google, время первой установки и последнего обновления. gass.db содержит версию и SHA-256 хеш APK. Оба файла переживают удаление приложения.

Та же инфа, что и на iOS — какая версия Telegram была установлена, когда, через какой аккаунт. Для Signal данные аналогичные.

SMS с кодами

Аналогично iOS. Лежат в mmssms.db и message_content.db:

Telegram и медиафайлы на SD-карте

Telegram по умолчанию сохраняет полученные медиафайлы на эмулированную SD-карту. А при удалении приложения эти файлы не удаляются. Все фотографии, видео и документы, полученные через Telegram, остаются на месте.

Signal, к слову, этого не делает. Его медиа хранятся в дате приложения и удаляются вместе с ним.

Digital Wellbeing

Это Android-аналог Screen Time. Отслеживает использование приложений и уведомления. Данные остаются после удаления.

Недоставленные сообщения в Firebase Cloud Messaging

FCM хранит очередь push-уведомлений, которые не были доставлены. Если приложение удалили, сообщения остались в очереди. Некоторые форензики это называют «золотым вторым шансом»

По факту это канал утечки контента даже из Signal, который в норме не оставляет текст сообщений нигде, кроме своей зашифрованной базы.

PkgPredictions.db (Samsung)

Samsung-специфичная база, хранит временные метки запуска приложений. Данные живут 7-14 дней.

notification_log.db (старые Samsung)

Это целиком журнал уведомлений с типами событий и временными метками:

Usage Stats

Самый живучий артефакт из всех.
Эта статистика использования приложений не удаляется при деинсталляции. И все.

Battery Stats

Содержит информацию о работе приложений: wakelock-и, сетевая активность, расход батареи. Лучший способ анализа: извлечь через баг-репорт и открыть в Battery Historian.

Library.db

Привязана к аккаунту Google, не к устройству. Заполняется при входе, включая приложения с других устройств. Для привязки к конкретному девайсу не годится, но для общей картины полезна.
Этим похожа на storeUser.db в iOS, которую описывали выше

Android: итог через 14 дней

Артефакт

Сразу после удаления

Через 14 дней

localappstate.db / gass.db

да

да

SMS (коды активации)

да

да

Медиафайлы на SD-карте (Telegram)

да

да

Digital Wellbeing

да

да

Firebase Cloud Messaging

да

да

PkgPredictions.db (Samsung)

да

да

Usage Stats

да

да (частично)

Battery Stats

да

да

Library.db

да

да

Разрешения, AppOps, Network stats

нет

нет


Кто оставляет больше следов?

Оба мессенджера оставляют достаточно артефактов, чтобы доказать факт использования. Но есть нюансы.

Telegram оставляет больше контента: медиафайлы на SD-карте (Android), данные в interactionC удаляются, но восстанавливаемы.

Signal не хранит медиа вне песочницы, но неожиданно оставляет больше метаданных: записи в interactionC не удаляются при удалении на iOS, а через FCM на Android могут утечь части контента.

Оба мессенджера одинаково беззащитны перед: SMS-кодами активации, уведомлениями iOS, Power Log, Usage Stats/Digital Wellbeing, Battery Stats.

Блокировки и дыры в безопасности мессенджеров в нашем тгк.
Ничего лишнего!

ссылка на оригинал статьи https://habr.com/ru/articles/1023506/