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

Справочник / Сбор

Работа и обслуживание

Ежедневная эксплуатация панели управления: режимы работы, категории мониторинга, параметры, уведомления, экспорт данных, резервное копирование и емкость хранилища.

При первом подключении используйте учетные записи и форматы сеансов. Объяснение понятий «сохраненные версии», «политики событий» и «пробелы» см. в разделе «Как работает сбор данных». В данном руководстве рассматриваются вопросы повседневной эксплуатации и восстановления данных.

Рабочий процесс оператора#

Блок-схемаВыберите тип хранения и способ защиты ключей → Откройте панель с помощью токена; Откройте панель с помощью токена → Выберите рабочую область; Выберите рабочую область → Настройка прямого или прокси-маршрута; Настройка прямого или прокси-маршрута → Введите номер телефона или выберите файлы / QR-код; Введите номер телефона или выберите файлы / QR-код → Проверьте личность владельца аккаунта и выберите доступные группы; Проверьте личность владельца аккаунта и выберите доступные группы → Сохраните политики событий и вложений, после чего начните наблюдение; Сохраните политики событий и вложений, после чего начните наблюдение → Мониторинг ошибок, доступа, очередей и дискового пространства; Мониторинг ошибок, доступа, очередей и дискового пространства → Сохранение независимых контрольных точек; Сохранение независимых контрольных точек → Экспорт и проверка материаловВыберите тип храненияи способ защиты ключейОткройте панель спомощью токенаВыберите рабочуюобластьНастройка прямого илипрокси-маршрутаВведите номер телефонаили выберите файлы /QR-кодПроверьте личностьвладельца аккаунта ивыберите доступныегруппыСохраните политикисобытий и вложений,после чего начнитенаблюдениеМониторинг ошибок,доступа, очередей идискового пространстваСохранение независимыхконтрольных точекЭкспорт и проверкаматериалов
Схема в текстовом формате
  1. Выберите тип хранения и способ защиты ключей → Откройте панель с помощью токена
  2. Откройте панель с помощью токена → Выберите рабочую область
  3. Выберите рабочую область → Настройка прямого или прокси-маршрута
  4. Настройка прямого или прокси-маршрута → Введите номер телефона или выберите файлы / QR-код
  5. Введите номер телефона или выберите файлы / QR-код → Проверьте личность владельца аккаунта и выберите доступные группы
  6. Проверьте личность владельца аккаунта и выберите доступные группы → Сохраните политики событий и вложений, после чего начните наблюдение
  7. Сохраните политики событий и вложений, после чего начните наблюдение → Мониторинг ошибок, доступа, очередей и дискового пространства
  8. Мониторинг ошибок, доступа, очередей и дискового пространства → Сохранение независимых контрольных точек
  9. Сохранение независимых контрольных точек → Экспорт и проверка материалов

Авторизация, транспортная связь, доступ к группе и полнота доставки являются разными свойствами. Зелёный статус соединения не означает, что все события были зафиксированы.

Делитесь результатами работы, не раскрывая главный ключ#

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

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

Режимы работы#

Режим Действие Поведение
Демонстрационная версия scripts\Demo.cmd или --demo Синтетические данные; подключение к реальным аккаунтам отключено
Замечание Начать наблюдение Регистрация обновлений по выбранным источникам
Снимок истории Источники → моментальный снимок истории До 500 текущих сообщений; реконструкция всех прошлых изменений не производится
Пауза Наблюдение с паузой Остановка сбора данных с сохранением имеющихся данных и заданий в очереди
Проверка/передача Экспорт Форматы ZIP, JSONL/CSV/HTML, контрольные точки, подтверждение обработки и запрос временных меток
Наличие нескольких учётных записей Рабочие пространства или кнопка «+» вверху Неограниченное количество отдельных рабочих пространств в рамках одного процесса

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

Категории мониторинга#

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

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

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

Оставьте функцию «Новые сообщения» включённой, если важно сохранить предыдущее содержимое: уведомление об удалении не позволяет восстановить текст, который никогда не был зафиксирован. Оперативные записи, записи об охвате и другие события, связанные с работой групп, всегда сохраняются. Откровенные моментальные снимки истории отделены от выбора категорий в режиме реального времени и могут включать служебные сообщения. Эти настройки не удаляют метаданные о реакциях/участниках, встроенные в иначе зафиксированный объект Telegram.

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

Функция «Lock» очищает доступ к браузеру и скрытые поля, но оставляет процесс сбора данных запущенным. Закрытие вкладки также оставляет процесс запущенным. Остановка процесса Python или службы прекращает сбор данных независимо от состояния браузера.

Удаление дополнительного рабочего пространства останавливает работу его сборщика и удаляет локальные данные. Если удаление прерывается из-за заблокированного файла или ошибки файловой системы, панель сообщает об ошибке и сохраняет рабочее пространство в списке как недоступное (DeletionPending). Закройте программы, в которых открыты его файлы, и повторите попытку удаления. Перезапуск TgWitness оставляет данную рабочую область в остановленном состоянии и не восстанавливает её частично удалённый журнал или ключи. Успешное удаление фиксируется только после удаления каталога; отдельно экспортированные или резервные копии остаются в соответствии с собственной политикой хранения.

Уведомления#

Откройте Источники → Уведомления → Уведомления и ежедневный отчёт. TgWitness отправляет уведомления через Apprise в Matrix, Telegram, Discord, Slack, ntfy, на электронную почту и в другие поддерживаемые сервисы. В каждом рабочем пространстве можно настроить несколько получателей.

  1. Введите по одному адресу Apprise в каждой строке. Формат адреса для своего сервиса найдите в каталоге сервисов и форматов URL.
  2. Включите Отправлять уведомления и выберите оповещения о проблемах, изменениях в наблюдаемых чатах и ежедневный отчёт. Время ежедневного отчёта задаётся по часовому поясу сервера.
  3. Включите Добавлять короткие выдержки, если хотите получать в уведомлениях сохранённый текст удалённых и отредактированных сообщений.
  4. Нажмите Сохранить уведомления, затем Отправить тест, чтобы проверить доставку.

Для собственного сервера используйте JSON-вебхук Apprise. Например, jsons://notify.example.org/tgwitness отправляет JSON по HTTPS на указанный адрес. Это вымышленный пример — замените его адресом своего получателя.

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

В демо настройки уведомлений видны, но отправка отключена. Настройте доставку в рабочем пространстве вне демо. Уведомления используют его прямое соединение, SOCKS5 или HTTP; MTProxy для них не подходит. Получателям без HTTP, например SMTP, требуется прямое соединение.

Структура панели#

Рабочая среда «Connection» с использованием синтетических данных

Журнал отображает наблюдения, функции поиска и фильтры. При редактировании открываются сохраненные версии; при удалении — предыдущее содержание, если оно доступно. Неизвестные источники указываются явно. Статистика доступна в разделе «Обзор»; подробности о сборе данных приводятся в локальном руководстве.

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

Режим Live обновляет журнал и чаты по мере поступления записей. Приостановите его на время проверки или используйте кнопку новых событий, когда будете готовы; сбор данных при этом продолжает работать. Сочетание Ctrl/Cmd+K находит действия панели и выполняет поиск по журналу.

Раздел «Источники» содержит информацию о сфере наблюдения (выбранные чаты, папка Telegram или весь аккаунт), доступные чаты всех типов, выбранные источники с отметками приоритета, настройки вложений и повторной проверки, а также снимки истории. Частные источники выбираются по диалогу/ID без публичной ссылки. Статус доступа отражает результаты последней проверки, а не постоянные разрешения.

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

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

Раздел Witness позволяет создать токены свидетелей с доступом только для чтения, показывает время их последней проверки и содержит команды и параметры запуска (независимый свидетель).

В разделе «Параметры» указаны все ограничения и темпы работы рабочей среды, которые не представлены на других страницах: количество прочитанных диалогов, частота повторного считывания списка чатов, интервалы проверки работоспособности и контрольных точек, буфер запуска, способ распределения запросов при повторной проверке (начальная задержка, количество чатов за проход, пауза между чатами, восстановленные и повторно запрашиваемые сообщения), резерв дискового пространства, таймауты и повторные попытки загрузки, критерии поиска профилей пользователей (включая ваши собственные регулярные выражения), размер и частота уведомлений, ограничения на создание снимков, ZIP-архивы и загрузку через браузер, а также таймауты и повторные попытки клиента Telegram. В каждом поле отображается диапазон значений и значение по умолчанию; изменённые поля отмечаются и могут быть восстановлены по отдельности или все сразу. Каждое изменение фиксируется как «parameters.changed» с указанием значений до и после, а записи о начале наблюдения содержат названия действующих значений. Значения вступают в силу при следующем использовании; таймауты и повторные попытки клиента — при следующем подключении. Интервалы повторной проверки, типы и размеры вложений, а также интервалы хранения доказательств и резервных копий за пределами сайта остаются на отдельных страницах и могут принимать любые значения в пределах своего диапазона, а не только предустановленные настройки.

Звоночек в верхней панели отображает список недавних проблем и изменений в отслеживаемых чатах; непрочитанные сообщения подсчитываются до тех пор, пока не будут помечены как прочитанные. Изменения сгруппированы по чатам и часам («12 удалено, 1 отредактировано, 0 не найдено»), а такие проблемы, как выход из системы или переполнение диска, остаются в списке независимо от интенсивности активности в чатах.

Регистрация начинается с поля ввода номера телефона. Нажатие кнопки «Продолжить» ведёт непосредственно к вводу кода; запрос учетных данных API происходит только в случае их отсутствия. Вкладки «QR» и «Импорт файла» являются альтернативными вариантами. Сохраненные учетные данные API используются повторно только в пределах собственной рабочей области. На экране ввода отсутствуют боковая панель, статистика и разделы настроек. Значок «Настройки» открывает управление API, прокси, хранилищем и дополнительными учётными записями. Новая установка начинается здесь; для подключённых учётных записей без выбранных источников процесс начинается со страницы «Выбрать чаты». Изменение маршрута требует приостановки наблюдения и отменяет незавершённый вход в систему. Существующий журнал не может быть незаметно привязан к другой учётной записи Telegram.

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

На панели отображается состояние коллектора, медиафайлы в очереди/с ошибками, самые старые медиафайлы в ожидании, свободное место на диске, паузы в запросах и источники, доступ к которым не подтверждён, в разделе «Состояние коллектора» . Изначально эти сведения свернуты и скрыты на вкладке «Учётная запись». На карточке настроек отображается следующий шаг: подключить учётную запись, выбрать источники или начать мониторинг. Список учётных записей представляет собой моментальный снимок на момент загрузки; выбранная рабочая область обновляется периодически. Это не многопроцессный монитор SLA.

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

Среды развертывания#

Среда Установка Статус проверки
ПК/сервер под управлением Windows Python 3.11+, scripts\Setup.cmd/Start.cmd, каталог с конфиденциальными данными Проверено локально на Windows/Python 3.12
Сервер Linux/VPS Python venv, выделенный сервер, HTTPS/SSH Приведены примеры кода, CI и systemd; на данном хосте не выполняются
macOS Python venv, процесс в фоновом режиме или пользовательский агент Приведён пример с использованием launchd; требуется отдельная проверка установки
Docker/Compose Постоянный объём данных, один рабочий узел Предоставляются определение и проверка работоспособности CI; Docker недоступен локально
Мобильный браузер Войдите в защищённую панель управления на работающем сервере Проверена версия с узким макетом на базе Chromium; сборщик данных не работает на iOS/Android

Переносимость означает отсутствие обязательного использования облачного сервиса или сборки интерфейса. Каждому целевому компьютеру по-прежнему требуются совместимые зависимости Python/crypto, а также доступ к локальному диску и сети. См. файл DEPLOYMENT.md и шаблоны сервисов.

Рабочие пространства совместно используют ЦП, память и цикл событий. Для изоляции процессов используйте отдельные экземпляры, порты, каталоги данных и авторизации учетных записей. Единой панели управления для отдельных экземпляров не существует. Ни в коем случае не направляйте несколько рабочих процессов на одну базу данных.

Проверка и экспорт данных#

Перед запуском подготовленной среды выполните команду python start.py --check. Добавьте --json для машинно-читаемых проверок или передайте необходимые параметры --data-dir, --host и --port. Данная команда проверяет наличие необходимых условий без входа в Telegram и без создания журнала. Она не проверяет журнал и не подтверждает готовность к записи; проверка журнала выполняется во время запуска приложения. Занятый порт может просто означать наличие существующего экземпляра.

Браузеры, поддерживающие API доступа к файловой системе, сохраняют экспортированные данные через поток с правом записи. Другие браузеры буферизуют не более 128 MiB. Для экспорта больших объемов данных или при использовании браузеров без поддержки потоковой передачи файлов воспользуйтесь командной строкой потоковой передачи:

python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip

Добавьте --profile ID из раздела «Экспорт» для дочернего рабочего пространства. Для удалённого доступа используйте --url https://server . Простой HTTP допускается только для адресатов с обратной связью. Токен считывается из файла и отправляется в заголовке, а не выводится на экран или включается в URL-адрес. Перенаправления не допускаются. Существующие адресаты не перезаписываются. При сбое передачи удаляется её временный фрагмент файла. Указанный SHA-256 представляет собой контрольную сумму передачи; проверьте подписанный архив ZIP отдельно с помощью надёжного отпечатка/контрольной точки.

Резервное копирование, восстановление и сбои в работе#

  1. Приостановите наблюдение и аккуратно завершите процесс.
  2. Скопируйте весь каталог данных: базы данных, файлы WAL/SHM (если имеются), мультимедиа, файлы credentials.enc, signing.enc, network.enc, ключи хранилища/метаданные, токен, контрольные точки и каждый каталог profiles/.
  3. В режиме внешнего ключа следует отдельно хранить мастер-ключ и сохранять каждый ключ vault.external.json. Генерирование нового ключа не позволяет восстановить старые секретные данные.
  4. Выполните восстановление при остановленном целевом устройстве; настройте исходный ключ, ограничьте доступ и проверьте целостность данных перед возобновлением работы.
  5. Фиксируйте время простоя и результаты проверки. Снимок истории не может служить доказательством того, что во время перерыва в работе удаления не происходили.

Архивы ZIP с доказательствами не содержат сеансов и закрытых ключей и не являются полными резервными копиями сервиса. Четыре вида данных защищаются по-разному:

Что Защита
Файлы экспорта без пароля (по умолчанию) Не зашифровано. Подписано, поэтому изменения можно обнаружить, но любой, у кого есть этот файл, может его прочитать.
Файлы экспорта с паролем Если вы установите пароль, готовый экспортный файл без изменений сохраняется в формате ZIP с шифрованием AES-256, который можно открыть с помощью программ 7-Zip и WinRAR; пароль не сохраняется (в целях обеспечения сохранности доказательств)
База данных журнала и сохраненные вложения на диске TgWitness не обеспечивает шифрование; используйте зашифрованный диск или том
Сессии Telegram и ключи подписи Зашифровано в каталоге данных (credentials.enc, signing.enc, network.enc)

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

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

Вместимость и срок хранения#

Значения по умолчанию, все из которых можно изменить в разделе «Параметры»: первые 1 000 диалогов, 500 сообщений в каждом снимке, 4 ГиБ несжатого подписанного ZIP-содержимого (для архивов большего размера требуется verify.py --max-gib N) и резервный вариант для браузера объёмом 128 МиБ. Вложения занимают от 1 до 2 000 MiB на тип в разделе «Источники» → «Вложения». По умолчанию для CLI-загрузки предусмотрен лимит в 5 GiB переданных данных. Доступное дисковое пространство может служить нижним пределом. Зарезервируйте место для журналов, мультимедиа, WAL, временных экспортов и резервных копий. При экспорте используется объем данных, а не ограничение Compose в 512 MiB (/tmp).

Измеряйте количество событий в секунду, время нахождения в очереди, объём мультимедиа в байтах и задержку диска, а не ограничивайтесь подсчётом только групп. Результаты синтетических локальных тестов не гарантируют доставку сообщений в Telegram. Автоматического удаления сохраненных данных не предусмотрено. Удаление конечной части журнала приводит к утрате его связи с сохраненными контрольными точками.

Уже реализована система приоритетной повторной проверки: источники, отмеченные звездочкой, по умолчанию перепроверяются каждые 15 минут, остальные — каждые 6 часов (см. уровни повторной проверки). Имеются защищённые паролем экспорты данных, как описано выше. Приём данных из Telegram/прокси в режиме реального времени, надёжное воспроизведение, журнал администратора и опрос реакций, изолированные рабочие процессы, шифрование локального журнала и медиафайлов самим TgWitness, а также независимая экспертиза остаются отдельными направлениями работы. Ограниченный доступ описан в разделе «Доступ и разрешения». См. READINESS.md, LIVE_ACCEPTANCE.md и VERIFICATION.md.