Приложения, артефакты и отчётность
Разбор данных приложений и представление результатов
«Приложения, артефакты и отчётность» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Общая картина артефактов приложений
В большинстве случаев сторонние приложения создают наиболее богатые источники доказательств. Каждое приложение хранит данные по-своему, но общие закономерности повторяются.
- БД SQLite для сообщений, истории и метаданных.
- Списки свойств (plist) в iOS и общие настройки XML в Android для хранения параметров и состояния.
- Двоичные данные в форматах Protobuf / JSON, встроенные в столбцы БД.
- Кэши и медиафайлы для эскизов и вложений.
Ваша задача — единообразно разобрать эти данные, связать их с пользователем и временем и представить результаты так, чтобы их можно было обоснованно защитить.
Артефакты чат-приложений
Чат-приложения часто являются источниками доказательств. Каждое хранит основное хранилище сообщений, а также таблицы контактов и групп.
- WhatsApp (Android): msgstore.db (сообщения), wa.db (контакты).
- Signal: зашифрованная БД SQLCipher; ключ хранится в хранилище ключей или связке ключей.
- Telegram: cache4.db с содержимым, закодированным в формате Protobuf.
Восстановите разговор WhatsApp из хранилища сообщений:
sqlite3 -readonly msgstore.db
sqlite> SELECT datetime(timestamp/1000,'unixepoch') ts,
...> key_remote_jid, key_from_me, data
...> FROM messages
...> WHERE key_remote_jid LIKE '%@s.whatsapp.net'
...> ORDER BY timestamp;Зашифрованные БД приложений
Некоторые приложения шифруют собственную БД с помощью SQLCipher (например, Signal и некоторые банковские приложения). Открыть такие БД обычным sqlite3 невозможно.
- Ключ обычно хранится в платформенном хранилище ключей или связке ключей и может быть восстановлен только из достаточно глубокого извлечения.
- Получив ключ, откройте БД с помощью SQLCipher PRAGMA перед выполнением запросов.
Открытие БД SQLCipher после восстановления ключа:
sqlcipher signal.db
sqlite> PRAGMA key = "x'6f3b...c91a'"; -- recovered raw key
sqlite> PRAGMA cipher_compatibility = 4;
sqlite> SELECT * FROM sms LIMIT 5;Декодирование встроенных двоичных данных
БД приложений часто скрывают структурированные данные в столбцах BLOB в виде Protobuf, plist или JSON. Видимые столбцы — лишь часть содержимого.
- Двоичные данные BPLIST (двоичный список свойств Apple) декодируются с помощью plistlib или plutil.
- Двоичные данные Protobuf декодируются с помощью protoc или blackboxprotobuf.
Преобразуйте двоичный список свойств, извлечённый из столбца:
# Apple binary plist -> readable XML
plutil -convert xml1 -o decoded.plist attachment_blob.bin
# Unknown protobuf -> field tree
python3 -m blackboxprotobuf decode message_blob.binАртефакты местоположения и геолокации
Данные о местоположении связывают человека с местом и временем, поэтому с ними необходимо работать особенно тщательно.
- Теги GPS в EXIF фотографии, история поиска в приложении карт, кэшированные фрагменты карт.
- значимые местоположения iOS (кэш routined), история местоположений Android и журналы Wi-Fi и сотовой сети.
Различайте место, где находилось устройство, и место, которое пользователь лишь искал. Извлеките координаты EXIF GPS из фотографии:
exiftool -GPSLatitude -GPSLongitude -DateTimeOriginal \
IMG_0421.HEICОблако, синхронизация и состояние нескольких устройств
Современные приложения синхронизируют данные между устройствами, поэтому данные на одном устройстве могут быть неполными или дублироваться.
- Сообщение, удалённое с телефона, может сохраняться на связанном планшете или в веб-сеансе.
- Метаданные синхронизации могут показать, с какого устройства было отправлено сообщение.
Указывайте устройство-источник в своём анализе и запрашивайте данные из облака или с сопутствующего устройства только при наличии отдельного надлежащего законного разрешения. Никогда не предполагайте, что изъятый телефон содержит полную запись.
Проверка артефактов
Прежде чем включить артефакт в отчёт, проверьте его тремя способами.
- Источник: подтвердите точный файл, таблицу и столбец, из которых он был получен.
- Декодирование: проверьте эпоху отсчёта временной метки и значение поля — по возможности сопоставьте их с эталонным сообщением, правильность которого известна.
- Подтверждение: сопоставьте артефакт со вторым артефактом, например с записью в журнале звонков, соответствующей контакту.
Если вы не можете независимо подтвердить артефакт или точно установить его источник, отметьте его как имеющий низкую степень уверенности, а не представляйте как факт.
Построение сводной временной шкалы
Сводная временная шкала объединяет события из множества артефактов в один хронологический вид, приведённый к UTC.
- Объединяйте сообщения, звонки, сведения об использовании приложений, местоположения и системные события.
- Помечайте каждую строку указанием на её исходный артефакт, чтобы можно было отследить источник.
Такие шкалы собирают с помощью инструментов вроде log2timeline/plaso или скриптов аналитика. В концептуальном плане каждая строка содержит время, событие и сведения о происхождении:
timestamp_utc | source | event
2026-06-01 09:14:02 | sms.db | iMessage sent to +1555...
2026-06-01 09:15:40 | knowledgeC.db | App in foreground: Maps
2026-06-01 09:16:05 | Photos.sqlite | Photo captured (GPS present)Структура отчёта
Криминалистический отчёт должен позволять независимому эксперту воспроизвести и проверить вашу работу. Стандартные разделы:
- Краткое содержание — рамки исследования, полномочия, основные результаты.
- Исследованные доказательства — устройства, идентификаторы, цепочка хранения.
- Методика — инструменты, версии, точные команды, хеш-суммы.
- Результаты исследования — артефакты с указанием источников.
- Выводы — интерпретация, чётко отделённая от исходных фактов.
Каждое утверждение должно восходить к источнику с хеш-суммой и документированному этапу работы.
Факты и мнение
Достоверность отчёта зависит от разделения наблюдений и интерпретации.
- Факт: строка 482 в sms.db содержит текст X с датой Y (UTC).
- Интерпретация: это позволяет предположить, что пользователь планировал встретиться в месте Z.
Излагайте факты нейтрально и обозначайте выводы как выводы, включая альтернативные объяснения. Преувеличение степени уверенности, например утверждение о намерении на основании одного сообщения, подрывает весь отчёт и может быть оспорено в суде.
Этика, рамки и конфиденциальность
Мобильные устройства содержат глубоко личные данные. Специалисты должны действовать в рамках закона и этических норм.
- Работайте только в пределах разрешённых рамок — условий ордера или согласия.
- Сводите к минимуму раскрытие личных данных, не относящихся к делу.
- Сохраняйте объективность — сообщайте также об оправдывающих доказательствах, а не только об обвиняющих.
- Защищайте извлечённые данные с такой же тщательностью, как и исходное устройство.
Этичность — не необязательное дополнение, а основа достоверности и допустимости цифровых доказательств в суде.
Быстрая проверка
В вашем отчёте сказано: «Пользователь намеревался совершить действие, как показывает сообщение 482». Рецензент возражает. В чём основная проблема?
Повторение: приложения, артефакты и отчётность
Теперь вы умеете превращать необработанные результаты извлечения в обоснованный отчёт.
- Данные приложений представлены в форматах SQLite + plist/XML + protobuf/JSON; декодируйте двоичные блоки явно.
- Для зашифрованных хранилищ (SQLCipher) нужны ключи, полученные в результате глубокого извлечения.
- Внимательно работайте с доказательствами, связанными с местоположением; отличайте подтверждённое присутствие от одного лишь поиска.
- Учитывайте синхронизацию между устройствами и запрашивайте облачные данные только при наличии надлежащих полномочий.
- Перед составлением отчёта проверяйте источник, декодирование и подтверждение другими данными.
- Стройте сводную временную шкалу по UTC, структурируйте отчёт так, чтобы его можно было воспроизвести, и держите факты отдельно от мнения.
- Соблюдайте установленные рамки и действуйте этично — именно это делает доказательства допустимыми.
Часто задаваемые вопросы
Урок «Приложения, артефакты и отчётность» бесплатный?
Да — полный текст урока «Приложения, артефакты и отчётность» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Приложения, артефакты и отчётность»?
Разбор данных приложений и представление результатов Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Приложения, артефакты и отчётность»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы мобильной криминалистики
- Получение и анализ данных Android
- Получение и анализ данных iOS
- Приложения, артефакты и отчётность