InfraGuard

Liste de blocage et réputation

Raconte la table blacklist_info (blocages par plage /24) que la défense automatique IA/IDS alimente, et permet aux opérateurs de bloquer, lever et rebloquer des plages directement.

Vue d’ensemble — à quoi sert cet écran

Liste de blocage et réputation (/security/blocklist) raconte l’histoire des plages malveillantes que Kitsune ML et Suricata IDS bloquent automatiquement, et offre aux opérateurs une console de contrôle pour bloquer (ajouter) · lever · rebloquer des plages à la main.

Un « blocage » couvre toujours une plage /24 entière. Même si vous saisissez une IP isolée, seuls les trois premiers octets sont conservés et l’entrée est normalisée en x.y.z.0/24. Les faux positifs sont exemptés via la Liste blanche, et non en rétrécissant le blocage.

Quand l’utiliser

Disposition

Indicateurs en haut de page

Calculés par summary() avec un cache de 30 secondes (infr:sec:blocklist:summary).

Indicateur Signification Calcul
Blocages actifs Plages /24 actuellement appliquées COUNT(*) WHERE is_use=1
Adresses protégées (sous-titre) Adresses couvertes par les blocages actifs active × 256 (/24 ≈ 256)
Bloquées aujourd’hui Nouveaux blocages sur les 24 dernières heures is_use=1 AND created_at >= today 00:00
Taux de défense automatique Part traitée automatiquement par l’IA et l’IDS (kitsune + suricata) / active × 100
Pays surveillés Pays distincts parmi les plages actives COUNT(DISTINCT country) WHERE is_use=1
Levées Actuellement levées (en attente d’un nouveau blocage) COUNT(*) WHERE is_use=0

Contribution des moteurs de défense

Les blocages actifs sont répartis par étiquette de source dans une barre de parts complétée par des tuiles. Le classement repose sur une correspondance LIKE sur reason.

Moteur Règle de correspondance Signification
Kitsune ML reason LIKE '%Kitsune%' Détection d’anomalies par auto-encodeur d’ensemble
Suricata IDS reason LIKE '%Suricata%' Blocage automatique sur balayage ou violation de protocole
Manuel reason LIKE '%Manual%' ou %수동% Blocage désigné par l’opérateur
Autre Tout ce qui ne correspond à rien de ce qui précède active − (kitsune+suricata+manual), plancher à 0

Origine des menaces

blockByCountry(12) agrège les plages actives en un top 12 des pays (GROUP BY country ORDER BY COUNT DESC), affiché sous forme d’émojis de drapeaux et de barres de classement. Cliquer sur une barre filtre la liste sur ce pays.

Fil d’activité de défense récente

blockFeed(16) affiche les 16 lignes les plus récentes, tous statuts confondus (ORDER BY created_at DESC, id DESC) dans une grille 4×4 — une perception en direct de ce qui vient d’être attrapé.

Liste de blocage filtrable

40 cartes par page (PER_PAGE=40, ORDER BY created_at DESC, id DESC). Chaque carte affiche la plage · le pays · le badge de source · la puce de preuve (comportement + chiffre clé) · l’heure du blocage · le statut, avec les actions de ligne [Réputation] · [Détails] · [Lever]/[Rebloquer]. Si une plage correspond à un réseau interne enregistré, elle reçoit un badge Internal et son bouton de réputation est masqué (internal_scope.js).

Filtres :

Comment l’utiliser

Lire le motif

La puce de preuve de chaque carte retient le seul jeu de règles au poids le plus élevé dans la chaîne reason et l’affiche sous forme de libellé accompagné d’un chiffre représentatif. Parmi les catégories heuristiques de srct, la principale est choisie selon cet ordre de poids :

Marqueur de catégorie Poids Clé behavior Libellé Chiffre représentatif (détail)
[A2:...] 6 brute Force brute sur l’administration hits=N → N hits
[A:...] 5 scanner Balayage de chemins vulnérables hits=N → N hits
[D:...] 4 ja3 Empreinte JA3 de botnet ja3=N → ja3×N
[B:...] 3 bot_ua Accès de robot malveillant hits=N → N hits
[C:...] 2 err_flood Déluge d’erreurs 4xx err_rate=NN%
[E:...] 1 short_scan Balayage de ports TCP port=N ou N scan

Si la source est Kitsune, ou si reason contient score=, la ligne est classée en ml_anomaly (anomalie d’apprentissage automatique) avant toute catégorie, avec affichage de top= (la composante à l’erreur la plus forte) et de score. Le manuel et le reste retombent sur manual / auto.

Faits supplémentaires extraits de reason : score=, top=, port=, short_scan_sessions=, bytes=. Exemples de motifs :

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

Ajouter un blocage manuel

  1. [Blocage manuel] dans l’en-tête de la liste ouvre la fenêtre d’ajout. (Lorsque vous arrivez depuis Menaces ou une investigation d’IP, l’IP est préremplie à partir de ?add=203.0.113.10.)
  2. Saisissez une IP ou un CIDR. Une IP isolée est étendue en /24 (203.0.113.10 → 203.0.113.0/24).
  3. Saisissez un motif facultatif (≤ 160 caractères) et cliquez sur [Bloquer].
  4. Comportement du serveur :
    • La saisie est normalisée en x.y.z.0/24 via cclassCidr() (tout ce qui n’est pas de l’IPv4 est rejeté avec invalid_cidr).
    • Pour une IPv4 complète, le pays est enrichi depuis ip_info_loop (sinon la valeur existante / Unknown).
    • Si (server_index=0, c_class) existe déjà, la ligne passe à is_use=1 (réactivée) ; sinon une nouvelle ligne est insérée. Le motif devient "[Manual] <note> (uid=N)".
    • Le cache du résumé est vidé, puis la liste et le résumé rafraîchis sont renvoyés.

Le blocage atteint blacklist_info immédiatement, mais le DROP effectif du pare-feu n’est appliqué que lorsque le démon sync_black de chaque hôte le synchronise ensuite dans ipset/iptables. Si ce traitement par lot ne tourne pas, le blocage n’est pas appliqué au niveau du pare-feu.

Lever / Rebloquer

Interrogation périodique

security-blocklist.js appelle /security/blocklist/live toutes les 30 secondes pour rafraîchir le résumé et la page courante.

Sources de données

Élément Source Remarques
Registre des blocages blacklist_info (legacy_glory) id, server_index, c_class, country, reason, is_use, created_at, updated_at · UNIQUE(server_index, c_class)
Enrichissement du pays ip_info_loop (legacy_glory) recherche du pays pour une IPv4 complète lors de l’ajout
Contrôle de réseau interne SecurityScope::internalMatchers() IP des instances enregistrées + liste blanche de la Politique d’exploitation → badge Internal
Application par le pare-feu démon sync_black blacklist_info → DROP ipset/iptables
Alimentation du blocage automatique kts_tx.js · srct_tx.js écrivent les étiquettes de source et les chaînes probantes de reason
Journal d’audit infr_audit_log sec.block_add · sec.block_release · sec.block_readd

L’ossature de lecture est App\Repositories\SecurityRepository ; la narration et les écritures sont orchestrées par App\Services\Security\BlocklistService. Les identifiants proviennent uniquement de config('database.connections.legacy_glory') — jamais codés en dur.

Accès

Comme il s’agit d’actions de sécurité destructrices, l’interface affiche une boîte de dialogue de confirmation (step-up) avant l’exécution. Vérifiez deux fois le CIDR pour ne pas bloquer par accident une plage étendue.

Dépannage et FAQ

Voir aussi

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