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 аватара є лише підказками, а не доказом ідентичності.