# Режим расследования

Canonical page: https://phishdestroy.github.io/TgWitness/ru/docs/reference/investigation/

Комплексные расследования по всем учетным записям, включая каналы, группы, личные чаты и ботов — от определения объёма расследования до формирования подтверждённого пакета материалов по делу.

Отслеживайте ход дела по каналам, группам, личным чатам и ботам — от первоначального сбора данных до составления хронологии с указанием источников и проверяемой передачи материалов. Интерактивная версия веб-сайта доступна по адресу `/docs/cases/`; [инструкции по предварительному просмотру](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md#preview-the-website-locally).

## Пример из практики: изменение пункта назначения в четырёх беседах

В одном из сообщений упоминается бот. Группа оперативников обсуждает новый адрес для платежа, он отображается на клавиатуре бота, а в частном сообщении, следующем за этим, он повторяется. Затем сообщение редактируется, и групповое сообщение исчезает.

Вопросы заключаются в следующем: что наблюдалось до и после изменения, какие аккаунты в Telegram опубликовали каждый элемент, где появился адрес назначения, какие байты вложения сохранились и какие интервалы остаются неизвестными?

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

Блок-схема · Каналы → Журнал рабочей среды; Группы → Журнал рабочей среды; Частные чаты → Журнал рабочей среды; Боты → Журнал рабочей среды; Журнал рабочей среды → Поиск по всем источникам; Журнал рабочей среды → Профили лиц со ссылками на записи; Журнал рабочей среды → Сохраненные версии и подтверждения получения вложений; Поиск по всем источникам → Хронология аналитика и реестр источников; Профили лиц со ссылками на записи → Хронология аналитика и реестр источников; Сохраненные версии и подтверждения получения вложений → Хронология аналитика и реестр источников; Журнал рабочей среды → ZIP-архив с подписанными доказательствами; Хронология аналитика и реестр источников → Передача дела с отдельно проверенными доказательствами; ZIP-архив с подписанными доказательствами → Передача дела с отдельно проверенными доказательствами · Каналы · Группы · Частные чаты · Боты · Журнал рабочей среды · Поиск по всем источникам · Профили лиц со ссылками назаписи · Сохраненные версии иподтверждения получениявложений · ZIP-архив с подписаннымидоказательствами · Хронология аналитика иреестр источников · Передача дела с отдельнопровереннымидоказательствами

**Схема в текстовом формате**

1. Каналы → Журнал рабочей среды
2. Группы → Журнал рабочей среды
3. Частные чаты → Журнал рабочей среды
4. Боты → Журнал рабочей среды
5. Журнал рабочей среды → Поиск по всем источникам
6. Журнал рабочей среды → Профили лиц со ссылками на записи
7. Журнал рабочей среды → Сохраненные версии и подтверждения получения вложений
8. Поиск по всем источникам → Хронология аналитика и реестр источников
9. Профили лиц со ссылками на записи → Хронология аналитика и реестр источников
10. Сохраненные версии и подтверждения получения вложений → Хронология аналитика и реестр источников
11. Журнал рабочей среды → ZIP-архив с подписанными доказательствами
12. Хронология аналитика и реестр источников → Передача дела с отдельно проверенными доказательствами
13. ZIP-архив с подписанными доказательствами → Передача дела с отдельно проверенными доказательствами

## 1. Определите суть дела и соберите полную информацию

1. Подключите аккаунт для сбора данных в отдельном рабочем пространстве. Во внешних заметках по делу укажите номер дела, идентификатор аккаунта, рабочее пространство, дату начала наблюдения и надежный отпечаток ключа подписи.
2. Открытые **источники → Область наблюдения → Режим расследования**. В настройках по умолчанию выбраны: **«Весь аккаунт»**, «каналы/группы/личные чаты/боты», «собственные действия», «профили источников» и последние 200 видимых сообщений для вновь обнаруженных источников. Просмотрите настройки, нажмите **«Сохранить область**» и подтвердите выбор области.
3. **Загрузите чаты** и сравните источники со списком диалогов учетной записи. Проверьте исключения. **Параметр «Чаты, считываемые из списка учетной записи»** по умолчанию установлен на 1 000 и допускает до 20 000. Источники, выходящие за пределы этого лимита, добавляются, когда они становятся активными. Записывайте то, что было фактически перечислено.
4. В **настройках записи** выберите **«Вся видимая активность**» и сохраните настройки мониторинга. Проверьте типы вложений и ограничения, а также свободное место на диске.
5. Начните наблюдение. Проверьте новое контролируемое сообщение, его редактирование и удаление, а затем сохраните тестовые ссылки и информацию о любых сбоях.

Режим «Весь аккаунт» фиксирует всю видимую пользователю активность в рамках сохраненных настроек. Он не получает доступ к секретным чатам и не присоединяется автоматически ко всем связанным группам. Кроме того, он не заполняет данные по всем существующим беседам. См. [раздел «Объем сбора данных](https://phishdestroy.github.io/TgWitness/ru/docs/reference/collection/#observation-scope-chosen-chats-a-folder-or-the-whole-account)».

## 2. Составьте перечень всех источников и изучите исторический контекст

Ведите реестр источников, в котором каждая строка соответствует одному чату:

| Область применения | Запись |
| --- | --- |
| Идентичность | Рабочая область, идентификатор учётной записи, числовой идентификатор чата, название и тип |
| Видимость | Членство/роль, подтверждённый или неподтверждённый доступ, исключения |
| Захват в режиме реального времени | Время начала работы, выбранные типы событий и последующие изменения политики |
| История журнала | Запрошенные/выполненные снимки, ограничения, время и ссылки на записи |
| Полная история | Имя файла экспорта по каждому чату с подписью, границы и статус завершения/сбоя |
| Вложения | Завершённые подтверждения получения медиафайлов, хэши, размеры, а также результаты пропущенных или неудачных операций |
| Область применения | Сбои в работе, неполный сбор данных, функция FloodWait, недоступные сообщения и другие пробелы |

Используйте подходящий способ сбора данных для каждого источника:

- **Функция «Загрузить полную историю** из **источников**» (текущий `main`) загружает доступные прошлые сообщения из включенных источников в журнал рабочей области. Она поддерживает приостановку/возобновление и подписанный отчет о ходе выполнения. См. раздел [«Получение истории](https://phishdestroy.github.io/TgWitness/ru/docs/reference/history/)».
- **Снимок истории** сохраняет последние видимые сообщения в журнале наблюдений. По умолчанию максимальное количество составляет 500; в разделе **«Параметры» → «Максимальный объем снимка истории»** это значение можно увеличить до 10 000. Речь идет о текущих наблюдениях за историей, а не о реконструированных изменениях.
- **«Экспорт всего чата» → «Экспорт всего чата**» или **«Чаты» → «Экспорт чата**» позволяет извлечь видимую на данный момент историю одного чата в отдельный подписанный пакет формата `chat.json` / `chat.html`. Повторите эту операцию для всех источников по данному делу и сохраните каждый результат.
- **При появлении нового чата или бота** можно сохранить его профиль и до 1 000 последних сообщений; в режиме расследования выбирается 200. Существующие чаты не получают эти данные задним числом при включении данного режима.
- **Загрузка видимых вложений** обеспечивает сохранение байтов в соответствии с настроенной политикой. Требуется заполненная квитанция `media.saved` с SHA-256 и указанием количества байтов. Задание в очереди, миниатюра или имя файла не являются сохраненным вложением.

Полный экспорт чата **не** заполняет журнал или профили участников всеми сообщениями. Для анализа истории в TgWitness используйте функцию **«Загрузить полную историю»** или ограниченные снимки журнала. Перед запуском обработки истории проверьте список включенных источников. Ни один из этих способов не позволяет восстановить материалы, которые Telegram больше не возвращает.

## 3. Сохранение динамики дела и целенаправленного взаимодействия

Отметьте активные чаты по текущим делам в качестве приоритетных источников. Проверяйте интервалы повторной проверки, продолжайте наверстывать упущенное и анализируйте результаты работы с медиафайлами. Обеспечьте постоянное наблюдение за сбором данных во время использования аккаунта. Воспользуйтесь **меню «Чаты» → «Профиль» → «Сохранить профиль сейчас»**, чтобы сохранить метаданные источника, такие как описания и команды бота. Эти данные отличаются от профилей пользователей, сгенерированных на основе сохраненных сообщений.

В случаях, когда речь идет о слежении за источником или взаимодействии с ботом:

1. **«Открыть ссылку в Telegram» → «Сохранить предварительный просмотр»** записывает предоставленную ссылку и результат предварительного просмотра до выполнения действия.
2. **Команда «Join / open and observe»** выполняет присоединение/открытие и отправляет параметр запуска бота, если он указан. Запрос на присоединение, ожидающий одобрения, регистрируется как «pending».
3. Текстовые ответы, сгенерированные панелью, и нажатия поддерживаемых кнопок сохраняют значения `interaction.requested` и `interaction.result`. Квитанции обратного вызова могут сохранять возвращаемый текст всплывающего окна, состояние оповещения и URL-адрес.

Это реальные действия учетных записей. Нажатия кнопки обратного вызова в другом приложении Telegram не видимы сборщику данных, хотя последующие сообщения или изменения могут быть зафиксированы. Мини-клиент не выполняет рабочие процессы, связанные с веб-приложениями, платежами, телефоном или местоположением. Точное поведение описано в разделе [«Взаимодействие с панелями](https://phishdestroy.github.io/TgWitness/ru/docs/reference/collection/#act-from-the-panel)».

## 4. Установление связей между наблюдениями в разных чатах

В разделе **«Журнал**» выберите **«Все источники**» и выполните поиск по записанному контенту. Откройте соответствующие записи и сохраните рабочую область, чат, идентификатор сообщения, порядковый номер и хеш записи.

В соответствующем чате откройте меню **«Люди**»**→ «Включить профили»** и просмотрите информацию об одном из участников:

- Имена/имена пользователей, зафиксированные в течение определенного периода, а также числовой идентификатор Telegram.
- Связь между ответами с указанием ссылок на исходные записи.
- **Также в…** других чатах данного рабочего пространства, где писал этот пользователь.
- Активность, изменения/удаления, а также упомянутые кошельки, телефоны, имена пользователей и ссылки.
- Сохраненные метаданные аватаров и аналогичные кэшированные аватары с указанием их отдельного источника.

Перед использованием профиля, сформированного на основе данных, в выводах необходимо открыть указанные записи. Профили охватывают лиц, чьи сообщения сохранены, а не всех участников группы. **Параметры → Количество записей, указанных для каждого факта**, ограничивает список ссылок, но не влияет на количество базовых действий. Упоминания и сходство аватаров являются ориентирами; они не подтверждают принадлежность или личность.

В приведённом примере:

| Ссылка | Записи | Поддерживаемые наблюдения |
| --- | --- | --- |
| Один и тот же аккаунт отправителя | Группа № 146 и частная переписка № 205 | Оба источника указывают идентификатор отправителя в Telegram: 71001 |
| Тот же адрес назначения | № 146, клавиатура бота № 173, редактирование канала № 188, личное сообщение № 205 | Все записи содержат код `pay.example.invalid/new`; владение/контроль не установлены |
| Тот же сохраненный файл | Завершено оформление квитанций № 151 и № 209 | Полные значения SHA-256 совпадают для сохраненных байтов |
| Указание источника канала | № 101 и № 188 | Не приписывайте сообщение в канале пользователю 71001 без указания отправителя |

Сравните хэши вложений и связанные с ними ссылки на сообщения. Идентичные файлы не позволяют установить автора, пересылающего лицо или общего оператора. Одинаковые имена и похожие аватары сами по себе не позволяют сопоставить два идентификатора Telegram с одним и тем же лицом.

## 5. Создание хронологии событий, охватывающей несколько чатов

Используйте ссылки на сохраненные версии в **чатах** и их **записи в журнале №…** В **журнале** объедините **все источники** с **редактированиями**, **удалениями** и **охватом**. Сохраняйте как `source_at` (если указан), так и `observed_at`.

| Примерный период наблюдения | Справочная информация | Замечание |
| --- | --- | --- |
| 09:00 | Канал № 101 | Зафиксирован исходный адрес назначения |
| 09:12 | Группа № 146; СМИ № 151 | Опубликован новый адрес; загрузка файла завершена |
| 09:16 | Бот № 173 | Клавиатура указывает на новый пункт назначения |
| 09:20 | Канал № 188 | Объявление отредактировано; обе сохраненные версии остаются |
| 09:24 | Частный #205; медиа #209 | Идентификатор отправителя, повторяющийся в поле получателя; байты файла сохранены без изменений |
| 09:28 | Группа № 231 | Получено уведомление об удалении; лицо, удалившее сообщение, и точное время удаления неизвестны |

Между приведёнными в примерах ссылками могут присутствовать и другие записи. Порядковые номера упорядочивают наблюдения; моментальные снимки истории могут содержать более ранние даты источников и поступать позже, чем текущие события. Разграничивайте моментальные снимки, восстановленные сообщения, уведомления об удалении и результаты, указывающие на отсутствие данных при повторной проверке. Обозначьте пробелы в охвате как неизвестные интервалы. Получение данных истории позднее не означает ретроактивного установления непрерывности наблюдения.

## 6. Добавление точек зрения учетных записей без потери информации об их происхождении

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

Корреляция данных между рабочими пространствами осуществляется во внешних заметках по делу или с помощью инструментов анализа. В настоящее время TgWitness не поддерживает глобальный поиск по всем рабочим пространствам, объединенную временную шкалу, график расследования или объединенный архив дел. Экспорт данных по нескольким аккаунтам из **одного** канала или супергруппы представляет собой отдельную операцию, а не объединение журналов этих аккаунтов.

При работе с более объёмными материалами соблюдайте границы, прибегая к услугам [независимого свидетеля](https://phishdestroy.github.io/TgWitness/ru/docs/reference/witness/). Используйте контролируемые проверки доставки для подтверждения пути захвата и видимости каждого аккаунта.

## 7. Подготовка и проверка передачи дела

Сохраните эти материалы в едином каталоге дела, сформированном аналитиком:

| Материалы | Цель |
| --- | --- |
| Заметки по делам и реестр источников | Вопросы, политика сбора данных, доступ/роли, выводы, альтернативные объяснения и пробелы |
| Хронология событий | Для каждой записи указываются как время, так и ссылки на рабочую область, чат, сообщение и последовательность сообщений |
| ZIP-архив с подписанными доказательствами для каждого рабочего пространства | Полный журнал записей, манифест и включенные сохраненные медиафайлы; фильтры панели не ограничивают экспорт журнала |
| Отдельно подписанные файлы с профилями пользователей | Проверка полученных ссылок на соответствие доказательствам в рабочей области |
| Подписанные полные экспорты чатов | Сбор текущей видимой истории, отдельно от журнала наблюдений |
| Достоверные отпечатки и предыдущие контрольные точки | Ключевые идентификационные данные и границы сохраняемого журнала |
| Артефакты Witness, при наличии соответствующей настройки | Отдельный журнал, подписанные записи и «отпечаток» свидетеля |
| Результаты проверки и хэши переданных файлов | Что было проверено, какие байты были переданы и кому |

Из надёжной установки, с указанием имён файлов и фактических отпечатков каждого рабочего пространства:

```
python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json
python -m tgwitness.verify profiles-operations.json --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --evidence evidence.zip
python -m tgwitness.verify history-channel.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256
```

Сохраняются фактические результаты проверки и исходные артефакты. Каталог дел верхнего уровня, реестр источников и выводы аналитиков хранятся во внешних хранилищах; каждый артефакт TgWitness имеет собственную подпись и процедуру проверки.

## Адаптация к условиям расследования

| Пример | Trace | Доставить |
| --- | --- | --- |
| Рассмотрение споров по заказам и оплате с помощью бота | Уведомление о входе → предварительный просмотр сохраненной ссылки → параметр запуска бота → версии сообщений и клавиатурных вводов → подтверждения обратного вызова панели → последующие действия в личных переписках и группах | Учтена хронология предложений и ответов, а также проверены источники; наличие одной лишь ссылки на оплату само по себе не является доказательством совершения платежа |
| Удалённые сообщения после инцидента | Все затронутые чаты → сохраненные оригиналы/изменения → результаты проверки на удаление или отсутствие при повторной проверке → сохраненные медиафайлы → охват и другие точки зрения участников | Сохраненные версии и явно обозначенные промежутки времени; отсутствие вымышленных субъектов, удаляющих сообщения |
| Участник использует разные имена в разных чатах | Числовой идентификатор отправителя → история имен/имен пользователей → ответы → другие отслеженные чаты → упомянутые адреса/файлы | Хронология активности указанного аккаунта в Telegram, в которой реальные личности и гипотезы о взаимосвязях представлены отдельно |

[Ссылка на сборник](https://phishdestroy.github.io/TgWitness/ru/docs/reference/collection/) · [Проверка личности](https://phishdestroy.github.io/TgWitness/ru/docs/reference/evidence/#people-profiles) · [Передача доказательств](https://phishdestroy.github.io/TgWitness/ru/docs/reference/evidence/#investigation-handoff) · [Проверка завершена](https://phishdestroy.github.io/TgWitness/ru/docs/reference/verification/)
