TgWitness / Документация

Документация / 09

Расследование по всем чатам

Работайте с делом в полном объёме, охватывая каналы, группы, личные чаты и ботов: собирайте, сопоставляйте, реконструируйте и передавайте доказательства.

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

ПРАКТИЧЕСКИЙ ПРИМЕР / ИЗМЕНЕНИЕ ПОЛУЧАТЕЛЯ ПЛАТЕЖА

Один инцидент. Четыре переписки. След, который необходимо восстановить.

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

Кто опубликовал каждую версию?Где появилась эта ссылка?Какой файл был сохранен?Что изменилось и когда?

Информацию о загрузке истории, опциональной проверке источников с помощью ИИ, MCP, OCR и исходящих веб-хуках см. в разделе «Работа с архивом».

1. Обеспечить охват всего аккаунта

  1. Подключите аккаунт для сбора данных в отдельном рабочем пространстве. Зафиксируйте в заметках по делу номер дела, идентификатор аккаунта, название рабочего пространства и отпечаток ключа подписи.
  2. Открытые источники → Область наблюдения → Режим расследования. Просмотрите «Весь аккаунт», все четыре типа источников и «Собственные действия». Эта предустановка позволяет сохранить профиль нового источника и его последние 200 видимых сообщений. Нажмите «Сохранить область» и завершите подтверждение области.
  3. Нажмите «Загрузить чаты». Сравните источники со списком диалогов учетной записи и проверьте исключения. В разделе «Параметры» → «Чаты, считываемые из списка учетной записи» при необходимости настройте начальный лимит списка: по умолчанию установлено 1 000 диалогов, максимальное значение — 20 000. Чаты, выходящие за пределы этого лимита, обнаруживаются по мере их активации.
  4. В настройках записи выберите и сохраните параметр «Вся видимая активность». Ознакомьтесь с типами вложений, ограничениями по размеру и объёмом свободного места на диске. Начните наблюдение и проверьте, как система фиксирует контролируемые сообщения, их редактирование и удаление, прежде чем полагаться на настройки.
КаналыГруппыЧастные чатыБоты
ОДИН АККАУНТ / ОДИН КЛЮЧ ПОДПИСИВся выбранная активность, видимая в учетной записи, → один журнал

Сообщения · правки · уведомления об удалении · видимые реакции · события, связанные с членством · собственные действия

Термин «весь аккаунт» охватывает все чаты, к которым имеет доступ данный аккаунт, с учётом настроенных типов источников и исключений. Секретные чаты недоступны. Новые диалоги добавляются по мере поступления обновлений; включение данного режима не приводит к автоматической загрузке полной старой истории каждого существующего чата.

2. Получение истории и сохранение файлов

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

Выберите вариант ответа, который отвечает на вопрос
ТребованияДействия в панелиЧто он предлагает
История по всем включенным чатамИсточники → Загрузить полную историюТекущая основная функция: доступные прошлые сообщения попадают в журнал рабочей области с возможностью приостановки/возобновления и подписанным отчетом о ходе работы. Руководство по истории.
Существующий контекст чата в журналеИсточники → Настройки записи → Снимок историиПоследние видимые сообщения представлены в виде подписанных наблюдений. По умолчанию максимальное количество составляет 500; в разделе «Параметры» → «Максимальный объем исторического снимка» его можно увеличить до 10 000.
Полная история одного чата, доступная на данный моментЭкспорт всего чата → Экспорт всего чата или «Чаты» → Экспорт чатаОтдельный подписанный пакет с chat.json и chat.html. Повторяйте для каждого источника; сохраняйте результаты успешного выполнения или сбоя.
Контекст появления нового чатаОбласть наблюдения → При появлении нового чата или ботаПрофиль источника и до 1 000 последних видимых сообщений; в режиме расследования выбирается 200. Существующие чаты не получают эти данные задним числом.
Объём вложения в байтахЗагрузка видимых вложений + ограничения по типам файловПроверьте наличие кода media.saved, его SHA-256 и количество байтов. Файл, находящийся в очереди, пропущенный или загрузка которого завершилась сбоем, не считается сохраненным.

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

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

3. Отслеживайте ход разговора и свои собственные действия

Продолжайте наблюдение по мере развития дела. Отметьте активные чаты по делу звездочкой в качестве приоритетных источников; настройте повторную проверку приоритетных и других источников в разделе «Настройки записи» → «Повторная проверка». Проверяйте показатели recheck.completed, продолжение наверстывания, FloodWait и результаты работы с мультимедиа по мере продвижения работы.

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

Подписка на бота или принятие приглашения в рамках расследования
  1. В разделе «Чаты» → «Открыть ссылку Telegram» сначала сохраните предварительный просмотр. Исходная ссылка и полученный предварительный просмотр становятся подписанными записями.
  2. Если это требуется в ходе расследования, команда «Join / open and observe» присоединяется к источнику или открывает его и запускает бота с указанным параметром запуска. Ожидающий запрос на присоединение остаётся в записи в статусе «ожидающий».
  3. Для действия, которое необходимо задокументировать, воспользуйтесь текстовым ответом на панели или поддерживаемым элементом управления «Нажать кнопку». Журнал сохраняет значения interaction.requested и interaction.result, включая возвращённый текст обратного вызова или URL-адрес.

Эти элементы управления выполняют реальные действия в Telegram. Нажатие кнопки обратного вызова в другом приложении Telegram не отображается в коллекторе; последующее сообщение или редактирование, выполненное ботом, может отображаться. Веб-приложения, платежи и запросы на номер телефона/местоположение находятся за пределами мини-клиента.

4. Отслеживайте пользователей, ссылки и файлы в различных чатах

  1. Откройте журнал, оставьте настройку фильтра источников в положении «Все источники» и выполните поиск по характерной фразе, домену, имени пользователя или сохраненному идентификатору. Откройте каждую найденную запись и запишите название чата, идентификатор сообщения и порядковый номер записи в журнале.
  2. Чтобы перейти к нужному чату, откройте «Чаты» → «Люди» → «Включить профили», затем выберите нужного человека. Просмотрите историю имен/имений пользователей, взаимосвязи ответов, активность, а также разделы «Также в…», другие отслеживаемые чаты и извлеченные ссылки, кошельки или номера телефонов. Откройте указанные записи журнала.
  3. Отслеживайте один и тот же числовой идентификатор пользователя Telegram в других чатах данного рабочего пространства. Рассматривайте совпадающее имя, упоминание кошелька или похожий аватар как зацепку для проверки. Упомянутый адрес не подтверждает право собственности; похожий аватар не подтверждает, что речь идет об одном и том же лице.
  4. Сравнивайте значения SHA-256 сохраненных вложений в разных записях. Совпадение хэшей подтверждает идентичность байтов сохраненных файлов. Изучите связанные записи сообщений и отправителей, прежде чем делать выводы о том, кто их отправил.
СХЕМА ДЕЛА / ПЕРЕЙДИТЕ ПО ССЫЛКАМВымышленный случай · не является реальным графиком
КАНАЛ / ОБЪЯВЛЕНИЕИсходный текст → отредактированный текст

Записи № 101, № 188 Сообщение № 84 · отправитель не указан

ГРУППА / ОПЕРАЦИИПользователь 71001 публикует новую ссылку

Запись № 146 · сообщение № 309 · подтверждение сохранения файла № 151

БОТ / ПЕРЕПИСКА О ЗАКАЗЕКнопка ведёт на эту страницу

Запись № 173 · сообщение № 12 Метаданные кнопки «Вернуться»

ЧАСТНОЕ / ДАЛЬНЕЙШИЕ ДЕЙСТВИЯПользователь 71001 повторяет адрес назначения

Запись № 205 · сообщение № 922 · Квитанция о сохранении файла № 209

В четырёх чатах приводятся различные наблюдения. Следуйте исходным записям для каждого соединения; не приписывайте сообщение в канале пользователю 71001 без указания отправителя.

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

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

5. Восстановите последовательность и отметьте пробелы

В разделе «Чаты» просмотрите сохраненные версии и ссылки на записи в журнале №… В разделе «Журнал» воспользуйтесь функциями «Все источники», а также «Редактирования», «Удаления» и «Охват». Составьте хронологию дела, указав как дату, указанную в Telegram, так и время наблюдения сборщика данных.

  1. 09:00 · #101Зафиксированное сообщение в канале

    Первоначальное назначение сохраняется.

  2. 09:12 · #146 / #151Группа предоставляет другую ссылку

    Пользователь 71001 публикует сообщение; завершается загрузка вложения.

  3. 09:16 · #173Бот показывает тот же пункт назначения

    Сохраненные метаданные клавиатуры содержат ссылку.

  4. 09:20 · #188Изменения в объявлениях канала

    Сохраняются как исходные, так и отредактированные записи.

  5. 09:24 · #205 / #209В частном сообщении это повторяется

    Сохраненное вложение имеет тот же полный SHA-256, что и № 151.

  6. 09:28 · #231Поступает уведомление об удалении группы

    Предыдущее замечание остаётся в силе: ни лицо, удалившее сообщение, ни точное время удаления не указываются.

Приведены примерные временные рамки наблюдений и ссылки. Между этими записями содержатся и другие записи журнала.

Порядок записей в журнале соответствует порядку получения, а не обязательно исходным действиям в Telegram. Снимок истории более раннего периода может поступать после более свежего сообщения в режиме реального времени. Чётко разграничивайте наблюдения в режиме реального времени, снимки, восстановленные сообщения, уведомления об удалении и сообщения «отсутствует при повторной проверке». Добавляйте явную пометку «неизвестный интервал» везде, где в охвате данных наблюдается пробел; более поздний снимок не устраняет этот пробел.

6. Расширьте сферу применения на другие учетные записи, используемые для сбора данных

Создайте рабочую область для каждой отдельной учетной записи и повторите процедуру определения объёма данных и составления перечня истории. Зафиксируйте членство/роль и отпечаток ключа подписи для каждой из них. Указывайте идентификаторы с указанием рабочей области и чата: один и тот же номер сообщения не является глобальным межучётным идентификатором.

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

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

7. Предоставьте полный и поддающийся проверке пакет материалов по делу

Экспортируйте ZIP-архив с подписанным журналом из каждой рабочей области. Он содержит полный записанный журнал независимо от фильтров поиска на панели. Экспортируйте профили соответствующих лиц отдельно, сохраняйте каждый полный пакет истории чатов и сохраняйте полные доказательства в виде вложений.

CASE-001/                         # assembled by the analyst
  case-notes.md                   # question, findings, alternative explanations
  sources.csv                     # every chat, role, acquisition result and gap
  timeline.csv                    # account + chat + message + seq + both times
  workspace-A/
    evidence.zip                  # complete signed observation journal
    retained-checkpoint.json
    profiles-operations.json      # separately signed people profiles
    history-channel.zip           # signed current-history export
    history-group.zip
    verification.txt
  workspace-B/                    # separate journal and trusted fingerprint
  witness/                        # retained checks, journal and signed posts
  SHA256SUMS                      # hashes of the delivered files

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

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 имеют собственные подписи.

Применяйте тот же метод в других расследованиях

Спор по поводу заказа или оплаты, инициированный ботом

Вопрос: что обещал бот, какая целевая ссылка была указана и что изменилось впоследствии?

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

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

Сообщения, удалённые после инцидента, связанного с перекрестным обменом сообщениями между чатами

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

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

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

Один из участников использует разные имена в нескольких чатах

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

Путь отслеживания: числовой идентификатор отправителя → история сохраненных имен/имен пользователей → ответы → другие чаты в рабочей области → упомянутые адресаты и сохраненные файлы. Проверяйте исходные записи для каждого заявленного соединения; отдельно учитывайте аккаунты с похожими именами.

Результат: хронология активности учетной записи с указанием источников и отдельные гипотезы о взаимосвязях. Схожесть имен и pHash аватара являются лишь зацепками, а не доказательством личности.