InfraGuard

Блок-лист и репутация

Рассказывает о таблице blacklist_info (блокировки диапазонов /24), которую наполняет автоматическая защита ИИ/IDS, и позволяет операторам напрямую блокировать, снимать и снова блокировать диапазоны.

Обзор — что делает экран

Блок-лист и репутация (/security/blocklist) рассказывает историю тех диапазонов угроз, которые Kitsune ML и Suricata IDS блокируют автоматически, и даёт операторам консоль управления, чтобы вручную блокировать (добавлять) · снимать · блокировать снова диапазоны.

«Блокировка» всегда охватывает весь диапазон /24. Даже если вы введёте один IP, сохранятся только первые три октета, а запись будет приведена к виду x.y.z.0/24. Ложные срабатывания исключаются через Белый список, а не сужением блокировки.

Когда использовать

Структура экрана

Показатели вверху

Вычисляются методом summary() с кэшем на 30 секунд (infr:sec:blocklist:summary).

Показатель Значение Расчёт
Действующие блокировки Диапазоны /24, применяемые сейчас COUNT(*) WHERE is_use=1
Защищённых адресов (подзаголовок) Адреса, покрытые действующими блокировками active × 256 (/24 ≈ 256)
Заблокировано сегодня Новые блокировки за последние 24 ч is_use=1 AND created_at >= today 00:00
Доля автоматической защиты Часть, обработанная ИИ/IDS автоматически (kitsune + suricata) / active × 100
Отслеживаемые страны Различные страны среди действующих диапазонов COUNT(DISTINCT country) WHERE is_use=1
Снято Снятые сейчас (ожидают повторной блокировки) COUNT(*) WHERE is_use=0

Вклад механизмов защиты

Действующие блокировки раскладываются по тегу источника в полосу долей и плитки. Классификация выполняется сопоставлением LIKE по полю reason.

Механизм Правило сопоставления Значение
Kitsune ML reason LIKE '%Kitsune%' Обнаружение аномалий ансамблевым автокодировщиком
Suricata IDS reason LIKE '%Suricata%' Автоблокировка при сканировании или нарушении протокола
Вручную reason LIKE '%Manual%' или %수동% Блокировка, назначенная оператором
Другое Всё, что не подошло выше active − (kitsune+suricata+manual), не ниже 0

Происхождение угроз

blockByCountry(12) агрегирует действующие диапазоны в топ-12 стран (GROUP BY country ORDER BY COUNT DESC) и показывает их эмодзи флагов и полосами рейтинга. Щелчок по полосе фильтрует список по этой стране.

Лента недавней активности защиты

blockFeed(16) показывает 16 самых свежих строк независимо от статуса (ORDER BY created_at DESC, id DESC) сеткой 4×4 — живое ощущение того, что попалось только что.

Список блокировок с фильтрами

40 карточек на страницу (PER_PAGE=40, ORDER BY created_at DESC, id DESC). На каждой карточке — диапазон · страна · значок источника · чип доказательства (поведение + ключевое число) · время блокировки · статус, а также строковые действия [Репутация] · [Подробности] · [Снять]/[Заблокировать снова]. Если диапазон принадлежит зарегистрированной внутренней сети, он получает значок Internal, а кнопка репутации скрывается (internal_scope.js).

Фильтры:

Как пользоваться

Как читать основание

Чип доказательства на каждой карточке выбирает из строки reason единственный набор правил с наибольшим весом и показывает его подписью с представительным числом. Среди эвристических категорий srct главная определяется по такому порядку весов:

Маркер категории Вес Ключ behavior Подпись Представительное число (подробности)
[A2:...] 6 brute Перебор к админке hits=N → N hits
[A:...] 5 scanner Сканирование уязвимых путей hits=N → N hits
[D:...] 4 ja3 Отпечаток JA3 ботнета ja3=N → ja3×N
[B:...] 3 bot_ua Обращения вредоносного бота hits=N → N hits
[C:...] 2 err_flood Шквал ошибок 4xx err_rate=NN%
[E:...] 1 short_scan Сканирование TCP-портов port=N или N scan

Если источник — Kitsune либо reason содержит score=, запись относится к ml_anomaly (аномалия машинного обучения) прежде любой категории и показывает top= (компонент с наибольшей ошибкой) вместе с score. Ручные и прочие случаи откатываются к manual / auto.

Дополнительные факты, извлекаемые из reason: score=, top=, port=, short_scan_sessions=, bytes=. Примеры оснований:

[Kitsune v2.2] anomaly top=TLS score=0.83
[Suricata Auto-Block] [A:URL] hits=42 port=443
[Manual] repeated login abuse (uid=5)

Добавление ручной блокировки

  1. Кнопка [Ручная блокировка] в заголовке списка открывает окно добавления. (При переходе из раздела Угрозы или из расследования IP адрес подставляется из ?add=203.0.113.10.)
  2. Введите IP или CIDR. Одиночный IP расширяется до /24 (203.0.113.10 → 203.0.113.0/24).
  3. При желании укажите причину (не более 160 символов) и нажмите [Заблокировать].
  4. Поведение сервера:
    • Ввод приводится к виду x.y.z.0/24 функцией cclassCidr() (всё, что не IPv4, отклоняется как invalid_cidr).
    • Для полного адреса IPv4 страна дополняется из ip_info_loop (иначе остаётся имеющееся значение / Unknown).
    • Если пара (server_index=0, c_class) уже существует, запись обновляется до is_use=1 (повторная активация); иначе вставляется новая строка. Причина записывается как "[Manual] <note> (uid=N)".
    • Кэш сводки сбрасывается, и возвращаются обновлённые список и сводка.

Блокировка попадает в blacklist_info немедленно, но фактический DROP на межсетевом экране применяется тогда, когда демон sync_black на каждом хосте в следующий раз синхронизирует её в ipset/iptables. Если этот пакетный процесс не запущен, блокировка на межсетевом экране не действует.

Снятие / повторная блокировка

Опрос

security-blocklist.js вызывает /security/blocklist/live каждые 30 секунд, чтобы обновить сводку и текущую страницу.

Источники данных

Элемент Источник Примечания
Реестр блокировок blacklist_info (legacy_glory) id, server_index, c_class, country, reason, is_use, created_at, updated_at · UNIQUE(server_index, c_class)
Дополнение страны ip_info_loop (legacy_glory) поиск страны для полного IPv4 при добавлении
Проверка внутренней сети SecurityScope::internalMatchers() IP зарегистрированных инстансов + белый список Операционной политики → значок Internal
Применение на межсетевом экране демон sync_black blacklist_info → DROP в ipset/iptables
Поставка автоблокировок kts_tx.js · srct_tx.js записывают теги источника и доказательные строки в reason
Журнал аудита infr_audit_log sec.block_add · sec.block_release · sec.block_readd

Опорой чтения служит App\Repositories\SecurityRepository; повествование и запись оркестрирует App\Services\Security\BlocklistService. Учётные данные берутся только из config('database.connections.legacy_glory') — никогда не задаются в коде.

Доступ

Поскольку это разрушительные действия по безопасности, интерфейс перед выполнением показывает диалог подтверждения (step-up). Перепроверьте CIDR, чтобы случайно не заблокировать крупный диапазон.

Диагностика и частые вопросы

Смежные разделы

차단 목록 · 평판
차단 목록 · 평판