Vue d’ensemble — à quoi sert cet écran
Vue d’ensemble de la sécurité (/security) est la pièce maîtresse du domaine de rôle sécurité. Elle fait remonter la « télémétrie cachée » qu’InfraGuard collecte, évalue et traite déjà automatiquement — mais qui n’avait jamais été visualisée — sous la forme d’un unique récit en entonnoir de défense.
Le message central tient en une phrase : « En ce moment même, la défense automatique IA + IDS bloque des réseaux hostiles. » Pour le rendre crédible, l’écran montre en un coup d’œil :
- Entonnoir de défense à 4 étages — menace (événements bruts) → détection (signalements) → jeu de règles de réponse automatique (règles du catalogue + jeux JA3) → réponse (blocages). Chaque étage porte un décompte mesuré.
- Jauge d’intensité de la menace — un anneau en dégradé conique dérivé du score de sécurité (plus la valeur est élevée, plus c’est dangereux).
- Cartes de réponse automatique — menaces/heure, menaces sur 24 h, blocages actifs /24, blocages sur 24 h.
- Panneau des contrevenants JA3 — principaux contrevenants par empreinte JA3 sur les 6 dernières heures (candidats automatisation / botnet).
- Principales IP de menace + flux des actions automatiques récentes (le récit du « pourquoi nous avons bloqué »).
- Tendance des menaces : une sparkline sur la fenêtre sélectionnée.
Tout est en lecture seule : cet écran ne bloque et ne modifie jamais rien. Les opérations réelles se font dans Menaces, Liste de blocage et réputation et Détections.
Il n’y a pas de « domaine » ici : la Vue d’ensemble de la sécurité est un résumé par domaine de rôle (exploitation de la sécurité), et non par TLD web.
Quand l’utiliser
- En début de vacation, pour saisir toute la posture de sécurité en 30 secondes.
- Pour expliquer de façon crédible à la direction ou aux auditeurs que le blocage fonctionne réellement (décomptes de l’entonnoir + taux d’automatisation).
- Pour repérer un pic de menaces sur la sparkline de tendance, puis choisir une IP suspecte et approfondir dans Menaces / Détections.
- Pour parcourir rapidement les botnets/scanners JA3 détectés et accéder aux jeux de règles détaillés.
Disposition
Haut — jauge d’intensité de la menace + entonnoir de défense
| Zone | Contenu |
|---|---|
Intensité de la menace (t.ov.score) |
Le score de sécurité rendu sous forme d’anneau en dégradé conique. Valeur affichée = 100 − score (plus c’est élevé, plus c’est mauvais). Sous-titre : « plus la valeur est élevée, plus c’est dangereux ; d’après ce qui reste non traité ». |
Entonnoir de défense (t.ov.funnel_title) |
Quatre barres d’étage qui se rétrécissent de haut en bas, chacune avec un décompte mesuré et une légende. |
Milieu — réponse automatique + tendance des menaces
| Carte | Contenu |
|---|---|
Réponse automatique (t.ov.resp_title) |
Quatre tuiles de métriques : menaces/heure · menaces sur 24 h · blocages actifs /24 · blocages sur 24 h. |
Tendance des menaces (t.ov.tseries_title) |
Une sparkline SVG des alertes IDS sous-échantillonnées en 30 compartiments, avec des métadonnées Σ total · ▲ max/bucket-min et un badge de retard de collecte (⏱ Nm). |
Bas — contrevenants JA3 · principales IP de menace · actions automatiques récentes
- Analyse de séquences JA3 (
t.ov.ai_title) — les principaux contrevenants des 6 dernières heures dans une grille 3×3 (jusqu’à 9 cartes). Chaque carte indique la variété de JA3 · les connexions TLS · la variété de SNI · le pays/ASN/FAI · un badge « bloqué », ainsi qu’une barre de rotation et une étiquette de comportement choisie dans le navigateur à partir det.ov.ai_behavior(elle suit donc la langue du lecteur). Un clic sur une IP ouvre la fenêtre de réputation ; les jeux de règles eux-mêmes se trouvent dans Détections. - Principales IP de menace (
t.ov.top_title) — alertes · gravité · signatures distinctes · dernière observation · indicateur de blocage · pays. - Actions automatiques récentes (
t.ov.feed_title) — plages /24 récemment bloquées, avec pays · étiquette de source (Kitsune/Suricata/manuel) · motif court · horodatage.
Contrôles de l’en-tête
- Sélecteur de fenêtre :
1h / 6h / 24h(24h par défaut). - Bascule LIVE / PAUSED : active ou désactive l’interrogation automatique toutes les 30 secondes.
- Bouton Plein écran : masque la navigation supérieure pour un mode tableau de bord (ESC pour sortir).
- stamp : l’heure du dernier calcul.
Comment l’utiliser
- Lisez la jauge d’intensité de la menace en haut pour connaître le niveau de risque actuel (plus c’est grand, plus c’est mauvais).
- Lisez l’entonnoir de défense de haut en bas pour suivre le récit : « combien sont entrées (menace) → combien ont été signalées (détection) → combien de jeux de règles se sont déclenchés (réponse automatique) → combien ont été bloquées (réponse) ».
- Regardez la sparkline de tendance des menaces à la recherche de pics. Un badge
⏱ Nmélevé signifie que la collecte est en retard : interprétez alors les décomptes à cette heure d’ancrage. - Choisissez une IP suspecte parmi les contrevenants JA3 / les principales IP de menace, puis passez à Menaces / Détections pour une investigation approfondie, la recherche de réputation et le blocage.
- Utilisez le flux des actions automatiques récentes pour voir ce que la défense automatique vient de bloquer, et pourquoi.
Définition exacte des étages de l’entonnoir
Chaque décompte est limité à la fenêtre sélectionnée (1h/6h/24h). Il est produit par SecurityOverviewService::compute().
| Étage | Clé | Formule | Source |
|---|---|---|---|
| Menace | threats |
alertCount + nginxSuspiciousCount |
suricata_alert_ct + nginx_meta_ct (is_suspicious=1) |
| Détection | detections |
distinctAlertIps + kitsuneBlockedCount |
src_ip distinctes (suricata_alert_ct) + kitsune_detail_log (is_blocked=1) |
| Jeu de règles de réponse automatique | rulesets |
active rulesets + firing rulesets |
infr_sec_ruleset (status=active) + ceux qui se déclenchent dans le catalogue de 44 jeux de règles |
| Réponse | response |
blockedCount |
blacklist_info (created_at ≥ fenêtre) |
Le décompte du « jeu de règles de réponse automatique » n’est PAS le nombre de signatures brutes (sid). Il est compté dans la même unité « jeu de règles » que la bibliothèque de jeux de règles (RulebookService est réutilisé) : il ne dépasse donc jamais le catalogue de 44 éléments et correspond à l’écran Jeux de règles.
Définition des métriques des cartes de réponse automatique
| Métrique | Signification | Calcul |
|---|---|---|
| Menaces/heure | threats_hr |
alertes sur 24 h basées sur l’ancrage ÷ 24 |
| Menaces sur 24 h | threats_24h |
alertCount sur 24 h basé sur l’ancrage |
| Blocages actifs /24 | active |
nombre d’enregistrements blacklist_info avec is_use=1 |
| Blocages sur 24 h | blocks_24h |
blockedCount des 24 dernières heures |
La section de réponse automatique contient aussi des textes pour « isoler (automatique) » et « coopération internationale (manuelle) » (
resp.isolate/resp.coop), mais ces deux éléments relèvent d’une phase ultérieure et seront comptabilisés une fois l’outillage de réponse déployé — aujourd’hui, seules les quatre métriques ci-dessus sont réellement calculées.
Formule de l’intensité de la menace (score de sécurité)
La formule appartient à Services\Security\PostureService (révisée le 2026-09-04). C’est le même nombre que celui affiché par la carte « Base de la sécurité » d’Overview :
score = weighted mean of ids, ai, web, rep, tls, fw # each metric 0..100
metric = 100 − 45 × open / (total + floor) # open = 0 -> metric = 100
displayed threat intensity = 100 − score # 0..45, higher = worse
open= ce que l’on n’a pas réussi à arrêter,total= tout ce qui a été observé de ce type (blocages compris), floor = constante de lissage pour qu’un petit échantillon n’emballe pas le ratio.- Un résidu nul donne 100 à la métrique : quelle que soit l’intensité de l’attaque, tout arrêter n’est pas un motif de pénalité.
- La prise en charge compte à la fois
blacklist_info(appliqué) etblacklist(en attente). Vos propres plages réseau sont retirées du numérateur comme du dénominateur. - L’ancienne formule pénalisait les blocages de
kitsune_detail_loget les requêtes suspectes denginx_meta_ct: le score baissait à mesure que la défense automatique réussissait. - Le score est plafonné par le bas à 55 (= intensité de la menace au maximum à 45).
Sources de données
Tous les décomptes de menaces/détections/blocages lisent les grandes tables de télémétrie sur la connexion héritée legacy_glory, en lecture seule. Les identifiants proviennent uniquement de config('database.connections.legacy_glory') (= .env) et ne sont jamais codés en dur.
| Table | Connexion | Usage |
|---|---|---|
suricata_alert_ct |
legacy_glory | alertes IDS (menace, détection, principales IP de menace, tendance). Index alert_ts |
nginx_meta_ct |
legacy_glory | requêtes web suspectes (is_suspicious). idx_suspicious |
kitsune_detail_log |
legacy_glory | blocages d’anomalies par ML (is_blocked) |
suricata_tls_ct |
legacy_glory | séquences d’empreintes JA3 (contrevenants JA3) |
blacklist_info |
legacy_glory | blocages automatiques/manuels (CIDR /24). réponse, blocages actifs, flux |
ip_info_loop |
legacy_glory | enrichissement geo/ASN/FAI (ipEnrichment) |
infr_sec_ruleset |
app (MAIN) | jeux de règles de séquence JA3 (nombre de jeux actifs + résumé) |
Discipline de performance et de fraîcheur
- Les requêtes n’utilisent que des fenêtres temporelles étroites + index + LIMIT (pour éviter les requêtes lentes sur d’énormes tables).
SecurityRepositoryles isole avec le générateur de requêtes et la liaison de paramètres. - Ancrage = heure de la dernière alerte (
latestAlertTs()=MAX(alert_ts)). Lorsquenow()prend de l’avance sur les données parce qu’eve_ingest a pris du retard, la série temporelle et les statistiques sur 24 h sont ancrées ici pour supprimer la « queue vide ». Un retard supérieur à 5 minutes est signalé par un badge⏱ Nm. - Cache de 30 secondes : les résultats sont mis en cache pendant 30 secondes sous la clé
infr:sec:ov:{range}pour correspondre à l’interrogation de 30 secondes. Les échecs de lecture individuels sont absorbés parsafe(), de sorte qu’une zone en panne ne bloque pas tout l’entonnoir.
SecurityScope — exclusion automatique de votre propre réseau
Les listes des principales IP de menace et des contrevenants JA3 excluent automatiquement votre propre réseau afin que vos serveurs n’apparaissent pas comme attaquants (sans codage en dur).
SecurityScope::excludePrefixes()fusionne les instances enregistrées (IP publiques/privées/de carte réseau deinfr_instance→ préfixe /24) avec la liste blanche de la politique d’exploitation (internal_networks— IP, préfixes, CIDR) en un tableau de préfixes.- Ces préfixes sont appliqués dans la requête sous la forme
src_ip NOT LIKE 'prefix%'(avec liaison de paramètres). - Le comparateur est mis en cache pendant 60 secondes et invalidé à chaque enregistrement de la Politique d’exploitation.
e.g. register 203.0.113.10 in infr_instance → prefix "203.0.113." auto-excluded
add 10.0.0.0/8 to OpsPolicy internal_networks → CIDR → "10." coarse prefix excluded
Si vos propres serveurs continuent d’apparaître parmi les menaces ou les contrevenants, enregistrez ces IP dans Actifs ▸ Instances ou ajoutez-les à la liste blanche
internal_networksde la Politique d’exploitation. Elles disparaîtront automatiquement.
Accès
- L’ensemble du domaine
/security/*, cet écran compris, est protégé par le middlewareinfr.level:2: il fautuser_level ≥ 2pour y entrer. - Un compte demo (1) n’a donc pas accès aux données de sécurité, tandis que staff (5) et admin (10) peuvent les consulter.
- La Vue d’ensemble de la sécurité est entièrement en lecture seule : il n’y a aucune action d’écriture, de blocage ou de modification, elle n’a donc besoin ni de vérification renforcée ni de journalisation d’audit. Le blocage et le déblocage réels ont lieu dans Liste de blocage et réputation (écriture niveau ≥ 2 + audit).
Dépannage et FAQ
Q. Tous les décomptes de l’entonnoir sont à 0.
La fenêtre sélectionnée (1h/6h/24h) ne contient peut-être aucune donnée, ou la connexion legacy_glory est peut-être coupée. Élargissez à 24h ; si le badge de retard ⏱ est très élevé, un collecteur (eve_ingest / kts_tx / srct_tx) s’est arrêté et les données sont périmées.
Q. L’IP de notre propre serveur apparaît dans les principales menaces/contrevenants.
L’exclusion du réseau propre ne la couvre pas. Enregistrez cette IP dans Instances ou ajoutez-la à internal_networks dans la Politique d’exploitation (SecurityScope exclut par préfixe /24).
Q. Le nombre du « jeu de règles de réponse automatique » diffère de celui de la bibliothèque de jeux de règles.
L’étage des jeux de règles vaut active rulesets + firing rulesets. Les jeux de règles de séquence JA3 actifs (infr_sec_ruleset active) s’y ajoutent, il peut donc dépasser le simple nombre de déclenchements du catalogue.
Q. Un jeu de règles indique action=block, mais rien n’a été bloqué.
Ce champ est une recommandation, pas une instruction. Le blocage automatique calcule la rotation JA3 directement depuis suricata_tls_ct et ne lit jamais infr_sec_ruleset ; le blocage réel se fait depuis Liste de blocage ou via le planificateur de blocage automatique. Voir Détections.
Q. L’intensité de la menace est toujours faible (≤45).
C’est normal. La valeur affichée est 100 − score, et le score est plafonné par le bas à 55 : l’intensité de la menace va donc de 0 à 45.
Q. Les chiffres varient légèrement toutes les 30 secondes. C’est la combinaison de l’interrogation toutes les 30 secondes et du cache de 30 secondes, qui recalcule sur la fenêtre la plus récente à chaque interrogation. Désactivez LIVE pour arrêter le rafraîchissement automatique.
Voir aussi
- Menaces — triage des entités de menace IDS, exploration par IP, lien avec le blocage.
- Détections + IA JA3 — récit de l’algorithme de détection et jeux de règles de séquences JA3 (analyse à la demande).
- Bibliothèque de jeux de règles — le catalogue des 44 jeux de règles de détection (source canonique du nombre de déclenchements).
- Liste de blocage et réputation — récit de la défense automatique blacklist_info + contrôles de blocage/déblocage.
- Politique d’exploitation — liste blanche
internal_networks(exclusion du réseau propre par SecurityScope). - Recherche de réputation d’IP — fenêtre AbuseIPDB intégrée à l’application.

