Документація / 09
Проведіть розслідування у всіх чатах
Працюйте над цілою справою, охоплюючи канали, групи, приватні чати та боти: збирайте, пов’язуйте, відтворюйте та передавайте докази.
Цей покроковий посібник простежує один вигаданий інцидент на прикладі цілого облікового запису. У ньому використовуються реальні функції збору, пошуку, профілів осіб та експорту даних. Карта справи є прикладом документації; ваші висновки та реєстр справ зберігаються поза межами додатка.
Один інцидент. Чотири розмови. Слід, який потрібно відтворити.
У повідомленні в каналі вказано на бота. Оперативна група обговорює нове посилання для оплати. У приватному повідомленні це повторюється. Пізніше повідомлення редагують, а групове повідомлення зникає.
Щодо завантаження історії, опціонального аналізу джерел за допомогою ШІ, MCP, OCR та вихідних веб-хуків див. розділ «Робота з архівом».
1. Забезпечити охоплення всього облікового запису
- Підключіть обліковий запис для збору даних у власному робочому просторі. Зафіксуйте номер справи, ідентифікатор облікового запису, назву робочого простору та відбиток ключа підпису у своїх нотатках щодо справи.
- Відкриті джерела → Область спостереження → Режим розслідування. Перегляньте «Весь обліковий запис», усі чотири типи джерел та «Власні дії». Ця попередня настройка дозволяє зберегти профіль нового джерела та його останні 200 видимих повідомлень. Натисніть «Зберегти область спостереження» та завершіть підтвердження області спостереження.
- Натисніть «Завантажити чати». Порівняйте джерела зі списком діалогів облікового запису та перегляньте виключення. У розділі «Параметри» → «Чати, зчитані зі списку облікового запису» за потреби налаштуйте початковий ліміт списку: за замовчуванням — 1 000 діалогів, можна налаштувати до 20 000. Чати, що перевищують цей ліміт, виявляються, коли вони стають активними.
- У налаштуваннях запису виберіть та збережіть опцію «Уся видима активність». Перевірте типи вкладень, обмеження розміру та вільний простір на диску. Почніть спостереження та перевірте контрольне повідомлення, редагування та видалення, перш ніж покладатися на налаштування.
Повідомлення · редагування · повідомлення про видалення · видимі реакції · події, пов’язані з членством · власні дії
«Весь обліковий запис» охоплює чати, до яких має доступ цей обліковий запис, із налаштованими типами джерел та виключеннями. Таємні чати недоступні. Нові діалоги додаються по мірі надходження оновлень; увімкнення цього режиму не призводить до автоматичного завантаження повної історії всіх існуючих чатів.
2. Збирання історії та збереження файлів
Створіть реєстр джерел для всього розслідування. Кожному чату виділіть окремий рядок із його числовим ідентифікатором, назвою, обліковим записом, доступом/роллю, початком збору даних у реальному часі, отриманою історією, результатами мультимедіа та відомими прогалинами. Позначте джерело як отримане лише після перевірки відповідного результату.
| Потрібно | Дії на панелі | Що він пропонує |
|---|---|---|
| Історія у всіх увімкнених чатах | Джерела → Завантажити повну історію | Поточна основна функція: доступні минулі повідомлення потрапляють до журналу робочого простору з можливістю призупинення/відновлення та підписаним звітом про хід роботи. Посібник з історії. |
| Існуючий контекст чату в журналі | Джерела → Налаштування запису → Знімок історії | Останні видимі повідомлення як підписані спостереження. За замовчуванням — максимум 500; у розділі «Параметри» → «Найбільший знімок історії» можна збільшити це значення до 10 000. |
| Повна історія одного чату, яка наразі доступна для перегляду | Експорт повного чату → Експорт повного чату або Чати → Експорт чату | Окремий підписаний пакет із chat.json та chat.html. Повторювати для кожного джерела; зберігати результати виконання/невдачі. |
| Контекст появи нового чату | Сфера спостереження → Коли з’являється новий чат або бот | Профіль джерела та до 1 000 останніх видимих повідомлень; у режимі розслідування відбирається 200. Існуючі чати не отримують ці дані зворотно. |
| Обсяг вкладення в байтах | Завантаження видимих вкладень + обмеження за типами | Перевірте наявність коду media.saved, його SHA-256 та кількість байтів. Завантаження, що перебуває в черзі, пропущене або завершилося з помилкою, не вважається збереженим файлом. |
Повний експорт чату — це окремий знімок; він не імпортує всю історію чату до журналу або профілів користувачів. Для пошуку історичних даних у TgWitness використовуйте функцію «Завантажити повну історію з усіх увімкнених джерел» або обмежені знімки журналу. Перед запуском перевірте список джерел.
У розглянутому випадку слід зібрати дані з каналу оголошень, оперативної групи, діалогу з ботом та приватного листування. Збережіть байти та хеш вкладеного файлу. Існуюча на сьогодні історія не дозволяє відтворити повідомлення, видалене до моменту фіксації, або проміжні редагування, які Telegram більше не повертає.
3. Відстежуйте розвиток розмови та свої власні дії
Продовжуйте спостереження у міру розвитку справи. Позначте активні чати справи зіркою як пріоритетні джерела; налаштуйте пріоритетну перевірку та перевірку інших джерел у розділі «Налаштування запису» → «Повторна перевірка». Переглядайте показники recheck.completed, продовження наздоганяння, FloodWait та результати з медіа у міру просування роботи.
Скористайтеся меню «Чати» → «Профіль» → «Зберегти профіль зараз», щоб зберегти поточні описи джерел, команди ботів та інші метадані, які надає Telegram. Цей профіль джерела є окремим від профілів користувачів, створених на основі повідомлень журналу.
Підписка на бота або прийняття запрошення в рамках справи
- У розділі «Чати» → «Відкрити посилання Telegram» спочатку збережіть попередній перегляд. Оригінальне посилання та отриманий попередній перегляд стають підписаними записами.
- Якщо це потрібно для розслідування, команда «Join / open and observe» приєднується до джерела або відкриває його та запускає бота з наданим параметром запуску. Запит на приєднання, що очікує на обробку, залишається в записі як такий, що очікує на обробку.
- Щоб задокументувати дію, скористайтеся текстовою відповіддю на панелі або підтримуваною командою «Натиснути кнопку». Журнал зберігає
interaction.requestedтаinteraction.result, включаючи текст або URL-адресу, що повертаються у відповідь.
Ці елементи керування виконують реальні дії в Telegram. Натискання кнопки зворотного виклику в іншому додатку Telegram не відображається для збирача даних; однак наступне повідомлення або редагування бота може бути зафіксовано. Веб-додатки, платежі та запити щодо телефону/місцезнаходження знаходяться поза межами міні-клієнта.
4. Відстежуйте користувачів, посилання та файли у чатах
- Відкрийте журнал, залиште фільтр джерел у положенні «Усі джерела» та здійсніть пошук за характерною фразою, доменом, іменем користувача або збереженим ідентифікатором. Відкрийте кожен запис, що відповідає критеріям пошуку, та зафіксуйте його чат, ідентифікатор повідомлення та порядковий номер у журналі.
- Щоб переглянути відповідний чат, відкрийте «Чати» → «Люди» → «Увімкнути профілі», а потім виберіть особу. Перегляньте історію імені/імені користувача, взаємодію у відповідях, активність, а також інші спостережувані чати та витягнуті посилання, гаманці чи номери телефонів у розділі «Також у…». Відкрийте цитовані записи журналу.
- Відстежуйте один і той самий числовий ідентифікатор користувача Telegram в інших чатах у цьому робочому просторі. Вважайте збіг імені, згадку про гаманець або схожий аватар підказкою, яку слід перевірити. Згадана адреса не підтверджує право власності; схожий аватар не підтверджує, що це та сама особа.
- Порівнюйте збережені значення SHA-256 вкладень у різних записах. Збіг хеш-значень підтверджує ідентичність байтів збережених файлів. Перевіряйте пов’язані записи повідомлень та відправників, перш ніж робити висновки щодо того, хто їх надіслав.
Записи № 101, № 188, повідомлення № 84 · відправник не вказаний
Запис № 146 · повідомлення № 309 Збережена квитанція про отримання файлу № 151
Запис № 173 · повідомлення № 12 Метадані кнопки «Повернутися»
Запис № 205 · повідомлення № 922 Збережена квитанція про отримання файлу № 209
Чотири чати містять різні спостереження. Слідкуйте за вихідними записами для кожного з’єднання; не прив’язуйте публікацію в каналі до користувача 71001 без вказаного відправника.
| Зв’язок | Додаткові спостереження | Висновок: залишити |
|---|---|---|
| Той самий акаунт у Telegram | Ідентифікатор користувача 71001 у групі № 146 та приватному чаті № 205 | В обох чатах вказано один і той самий ідентифікатор відправника. Питання щодо реальної особи залишається окремим. |
| Повторне призначення | pay.example.invalid/new у #146, метадані кнопки #173, відредаговані дописи #188 та #205 | Цей самий ресурс з’являється у чотирьох проаналізованих контекстах. Сам по собі цей факт не дозволяє встановити, хто ним керує. |
| Кількість байтів у файлі | Ідентичні повні значення SHA-256 у завершених квитанціях про надсилання медіафайлів № 151 та № 209 | Два збережені вкладення є ідентичними на рівні байтів. Самі лише імена файлів або ескізи не дозволяють це встановити. |
Профілі користувачів містять інформацію про авторів із збереженими повідомленнями в цьому чаті та пов’язують їх з іншими чатами в журналі того самого робочого простору. Вони не є повним списком учасників. Хеші аватарів беруться з окремого локального кешу; кількість посилань у профілі можна налаштувати в розділі «Параметри» → «Кількість посилань на факт».
5. Відтворити послідовність та позначити пропуски
У розділі «Чати» перегляньте збережені версії та посилання на записи в журналі №… У розділі «Журнал» скористайтеся опціями «Усі джерела», «Редагування», «Видалення» та «Покриття». Створіть хронологію справи, використовуючи як дату Telegram, так і час спостереження збирача даних.
- 09:00 · #101Збережений допис у каналі
Початкове призначення збережено.
- 09:12 · #146 / #151Група надає інше посилання
Користувач 71001 публікує його; завантаження вкладення завершено.
- 09:16 · #173Бот показує те саме місце призначення
Збережені метадані клавіатури містять посилання.
- 09:20 · #188Зміни в оголошеннях каналу
Зберігаються як оригінальні, так і відредаговані спостереження.
- 09:24 · #205 / #209У приватному повідомленні це повторюється
Збережене вкладення має той самий повний SHA-256, що й № 151.
- 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 аватара є лише підказками, а не доказом ідентичності.