Как работает Axis
Что он отслеживает, когда действует и что хранит. Цифры на этой странице — значения по умолчанию в работающем коде; каждый сервер может настроить их в панели.
- Подсистемы
- 8
- Слои проверки
- 15
- Срабатывание анти-нюка
- 4 действия за 10 с
- Медленный нюк
- 24 действия за 15 мин
- Блок рейда
- 8 входов за 10 с
- Журнал
- цепочка SHA-256
- Публичная подпись
- Ed25519
- IP-адреса
- scrypt · 16 МБ на хеш
- Резервные копии
- AES-256-GCM
От события Discord до ответа
Axis слушает шлюз Discord: каждую запись журнала аудита, каждого нового участника, каждое сообщение и каждое взаимодействие. ONYX передаёт событие восьми подсистемам, которые решают, нужно ли действовать. Каждое решение записывается в журнал.
Сколько весит каждое действие
Нюк — это серия разрушительных действий. Axis суммирует вес того, что делает каждый аккаунт, в окне 10 секунд и останавливает его на 4. Удаление весит больше создания, а правка — мало, поэтому перестройка сервера ничего не запускает.
- Удаляет #general+1
- Создаёт вебхук+0,75
- Удаляет роль @Модерация+1
- Переименовывает #правила+0,25
- Удаляет #объявления+1
| Действие | Вес |
|---|---|
| Удаление канала, роли, эмодзи или стикера; бан, кик или чистка; смена ролей участника | 1 |
| Создание вебхука | 0,75 |
| Создание канала или роли; удаление вебхука | 0,5 |
| Правка каналов, ролей, прав или сервера; создание эмодзи или стикеров; разбан | 0,25 |
| Медленный режим или закрытие прав — так работает блокировка во время рейда | 0 |
Рейд виден по скорости входа
8 аккаунтов за 10 секунд закрывают вход: сервер повышает уровень проверки, а новые аккаунты ждут. Медленное окно в 2 часа ловит рейды, заходящие понемногу, а канал-ловушка — ботов, которые пишут там, где человек писать не стал бы.
15 слоёв, чтобы узнать вернувшегося
Забаненный возвращается с другим аккаунтом, другим IP, а иногда и другим браузером. Каждый слой смотрит на своё. Ни одного не хватает в одиночку, а слабые сигналы учитываются, только когда совпадают несколько.
Сильные совпадения — cookie или то же устройство в необщей сети — задерживают аккаунт. Слабые открывают проверку для стаффа. Мобильный интернет, одинаковая модель телефона или школьный Wi-Fi сами по себе никогда не достаточны.
Журнал, который нельзя переписать незаметно
Каждое действие связано с SHA-256-хешем предыдущего: изменение одной строки ломает всё, что идёт после. Корень дерева Меркла (RFC 6962) подписывается Ed25519 и публикуется, поэтому переписать всю историю тоже не выйдет незаметно.
Что Axis хранит, а что нет
Хранит
- IP — только как хеш scrypt (16 МБ памяти на хеш) с ключом, которого нет в базе данных.
- Отпечаток браузера — только как HMAC-SHA256.
- Записи проверки — 90 дней; записи наказанных аккаунтов — пока действует наказание.
- Копии сервера — зашифрованные AES-256-GCM, с ключом, выведенным через scrypt для каждой копии.
- Отчёты об инцидентах — 180 дней.
Не хранит
- IP в открытом виде.
- Личные сообщения между участниками: бот не может их читать.
- Текст сообщений, которые автомод проверил и пропустил.
- Платёжные данные: их обрабатывает Lemon Squeezy.
- То, что анализирует ИИ: сохраняется только вердикт, никогда — кто опубликовал.
Два узла и ни одного открытого порта
Axis работает на основном узле и на резервном у другого провайдера. Если основной перестаёт отвечать, резервный берёт управление с реплицированной конфигурацией. Веб-сервер слушает только 127.0.0.1, доступ к нему — через туннель Cloudflare с его межсетевым экраном.
Чего Axis сделать не может
Добавьте Axis и проверьте сами
В документации описана каждая настройка. Статус сервиса публичный.