Безопасность
Что агент может — и чего не может никогда
Модель угроз Tickwise простым языком: агент не выполняет команды, пакет сигнатур подписан Ed25519, логи очищаются на сервере до отправки.
На странице
Агент Tickwise работает внутри вашего сервера и читает его логи, а логи — это в том числе данные игроков. Поэтому продукт устроен так, чтобы облаку Tickwise не нужно было доверять больше необходимого: агент не умеет выполнять команды, секреты не покидают сервер, а диагнозы ставятся по подписанному пакету сигнатур.
Здесь простыми словами описано, что агент может и чего не может, что уходит в облако и что будет, если облако взломают.
- 0
- команд, которые агент может выполнить на вашем сервере
- Ed25519
- подпись пакета сигнатур; ключ хранится офлайн, не на серверах Tickwise
- 7 дней
- максимальный срок хранения фрагментов логов в облаке
- РФ
- где хранятся данные облака, включая бэкапы
Агент не выполняет команды
В коде агента нет ничего, что могло бы запустить shell, выполнить консольную команду Minecraft или загрузить код по указанию облака. Это не настройка, а архитектурное решение: проверка в сборке падает, если в коде агента или облака появляются ProcessBuilder, Runtime.exec, dispatchCommand или URLClassLoader.
Что из этого следует для вас:
- в закрытой beta агент работает только на чтение, автоисправлений нет;
- Telegram-бот управляет уведомлениями и инцидентами, но не вашими серверами;
- агент не обновляет себя сам: новую версию ставите вы, заменив jar в
plugins/.
Что уходит в облако
До команды tickwise link агент ничего не отправляет. После привязки уходят:
- метрики по минутам: TPS, MSPT, память, GC, CPU, диск, число игроков;
- версии платформы, Java и плагинов;
- значения только тех ключей конфигов, что есть в открытом allowlist; ключи, похожие на секреты (
pass,secret,token,keyи т. п.), передаются только как «есть / длина»; - ошибки: отпечаток, шаблон и счётчик;
- санитизированные фрагменты логов для новых ошибок без известной сигнатуры — до 16 КиБ каждый, по умолчанию не больше 20 в час.
Никогда не отправляются чат и личные сообщения, аргументы команд игроков, пароли и токены, forwarding secret Velocity (агент читает его только затем, чтобы вычёркивать из логов), IP-адреса, UUID и ники в открытом виде. IP, UUID и ники заменяются псевдонимами с солью, которая хранится только на вашем сервере. Санитайзер работает на сервере до отправки и повторно — в облаке.
Отправку можно сузить в config.yml: privacy.send_log_excerpts, privacy.send_player_counts, privacy.send_jar_hashes (по умолчанию выключен) и privacy.ip_mode: drop, чтобы IP удалялись, а не хешировались.
Честное ограничение: секрет короче 32 символов в нестандартном формате и без подсказки вроде password= санитайзер может не распознать. Поэтому фрагменты логов отправляются редко и хранятся коротко.
Подписанный пакет сигнатур
Известные проблемы агент распознаёт сам, по пакету сигнатур. Пакет подписывается ключом Ed25519, который хранится офлайн у мейнтейнера — не на серверах облака и не в CI. Агент проверяет подпись и хеш каждого скачанного пакета. Если проверка не прошла, пакет отклоняется, агент возвращается к предыдущему или встроенному в jar и сообщает об этом облаку.
AI-диагноза в beta нет: причины берутся только из проверенных сигнатур и правил облака. Содержимое логов считается недоверенным: регулярные выражения работают на RE2/J с линейным временем, а текст из логов показывается как обычный текст.
Привязка и токены
- Код привязки одноразовый и действует 15 минут. Даже принятый ботом код ничего не даёт без
tickwise link confirmв вашей консоли, а бот перед этим показывает имя, версию и замаскированный IP агента. - Право
tickwise.ownerна привязку не выдаётся автоматически даже операторам. В группе Telegram привязывать серверы и менять настройки могут только администраторы чата. - Токен агента лежит в
credentials.jsonна сервере, а облако хранит только его SHA-256. Токен разрешает отправлять данные одного сервера, и ничего больше. - Если токен украли, злоумышленник сможет присылать мусорные данные этого сервера. Нажмите «🔌 Отвязать» в карточке сервера в боте — токен будет отозван.
- Каждый запрос облака к данным ограничен организацией вашего чата: чужие серверы и инциденты через бота не открыть.
Если облако Tickwise взломают
Мы исходим из того, что это может случиться, и проектируем так, чтобы последствия были ограничены.
| Что сможет злоумышленник | Почему |
|---|---|
| Прочитать санитизированные данные: метрики, версии, отпечатки ошибок, фрагменты логов за последние 7 дней | они хранятся в базе облака. Паролей и токенов там нет, IP и ники — только псевдонимы |
| Получить пароли и ключи с вашего сервера — нет | агент их не отправляет, а команды «прочитать файл» не существует |
| Выполнить команду на вашем сервере — нет | такого кода в агенте нет |
| Подменить пакет сигнатур — нет | ключ подписи офлайн, агент отклонит пакет с неверной подписью |
| Выпустить вредоносное обновление агента — нет | агент не обновляется через облако |
| Прислать фальшивое уведомление в Telegram | бот принадлежит облаку |
Где и сколько хранятся данные
Облако и все базы данных, включая бэкапы, находятся в России. Соль псевдонимизации никогда не покидает ваш сервер, поэтому по данным облака нельзя восстановить IP или ник игрока и сопоставить игрока между разными серверами.
| Данные | Срок хранения |
|---|---|
| Фрагменты логов | 7 дней |
| Метрики по минутам | 14 дней |
| Метрики по часам | 395 дней |
| События агента, счётчики ошибок | 90 дней |
| Ссылка на страницу инцидента | 30 дней |
Секреты ваших серверов облако не хранит вовсе, потому что не получает их.
Чего Tickwise не защищает
Агент работает в той же JVM, что и остальные плагины, а Bukkit не изолирует плагины друг от друга. Вредоносный плагин на вашем сервере может прочитать токен агента и сделать с сервером что угодно и без Tickwise. Защиты от уже установленного вредоносного плагина у нас нет. Ставьте плагины только из источников, которым доверяете.
Как проверить самому
- Код агента открыт: всё, что написано на этой странице, можно проверить в исходниках.
tickwise privacyв консоли показывает, что отправляется при текущих настройках и что ушло в последнем батче.tickwise pause [мин]временно останавливает отправку,tickwise unlink— полностью. Локальная диагностика при этом продолжает работать.
Подробнее о данных — на странице Конфиденциальность, об установке — в инструкции, о боте — на странице Telegram-бот.