Aller au contenu

Prioriser le risque

Trois pages travaillent ensemble pour passer de « des milliers de CVE » à « quoi corriger lundi matin, et pourquoi » :

Page Question à laquelle elle répond
Risk Intel (/graph/) Quoi corriger en premier, sur quel serveur, et selon quelle règle ?
PathFinder (/pathfinder/) Si un serveur est compromis, jusqu'où un attaquant peut-il aller ?
Cases (/cases/) Ce constat que j'ai décidé de suivre — est-il toujours d'actualité ?

Aucune action offensive

Ces modules modélisent le risque à partir des données déjà collectées. Aucun paquet n'est envoyé vers le parc, aucune authentification n'est tentée, aucun exploit n'est joué.


Risk Intel — les verdicts SSVC

Où les trouver

Sur la page Risk Intel, les verdicts SSVC viennent en premier (juste après l'analyse IA), puis les serveurs les plus exposés et les CVE les plus dangereuses. L'ordre est le même pour tout le monde : une page de décision montre à chacun le même « quoi d'abord ». La pastille ! à côté du titre « Verdicts SSVC » résume le calcul (survol, ou toucher sur téléphone).

Un verdict, pas un score

Pour chaque couple (CVE, serveur), InfraRiver rend un verdict d'action plutôt qu'une note sur 100, selon le modèle SSVC de la CISA et de l'université Carnegie Mellon :

Verdict Action attendue
Act Corriger en urgence
Plan Planifier au prochain cycle de patch
Watch Surveiller, agir si la situation évolue
Track Journaliser, pas d'action immédiate

Le verdict résulte d'une table de décision déterministe : mêmes données, même verdict, toujours. Il est affiché avec la règle qui l'a produit et la valeur de chaque axe — un verdict se justifie ligne par ligne devant un auditeur.

Les quatre axes de décision

Axe Question Valeurs Source
Exploitation Est-elle exploitée maintenant ? active (CVE au catalogue CISA KEV), likely (EPSS ≥ 10 %, ou EPSS pas encore publié), none CveRiver
Exposition Le serveur est-il atteignable ? open (Exposé Internet, DMZ), controlled (Interne), small (Enclavé, Air-gap) Champ Zone d'exposition de la fiche serveur
Mission Ce serveur est-il critique ? high, medium, low, calculée à partir des deux criticités du serveur (voir ci-dessous) Inventaire
Sévérité Quelle gravité intrinsèque ? high (CVSS ≥ 9), medium (7 à 8,9), low (< 7) Scanner de vulnérabilités

Comment la mission est calculée

Chaque serveur porte une criticité business et une criticité sécurité. Sur l'échelle basse 1, moyenne 2, haute 3, critique 4, la mission combine les deux :

  • mode pondéré (par défaut) : moyenne des deux valeurs avec un poids de 3 pour la sécurité et de 1 pour le business ;
  • mode maximum : la plus élevée des deux l'emporte.

Une valeur de 3,25 ou plus donne une mission haute, de 2,5 ou plus une mission moyenne, sinon faible. Un serveur rebond de business moyenne et de sécurité critique donne ainsi 3,5 : mission haute. À criticités égales, le résultat est celui d'avant (critical → haute, high → moyenne, medium et low → faible).

Les utilisateurs qui ont la permission « Risk Intel — Régler le calcul de la criticité mission (SSVC) » règlent le mode, les poids et les seuils sur la page Risk Intel — Calcul (menu Modules).

Le bouton Simuler l'impact montre, sans rien enregistrer, combien de verdicts changent ; Enregistrer et recalculer applique les réglages, les trace dans le journal d'audit et recalcule les verdicts. Dans le détail d'un verdict, survoler la mission affiche son calcul.

Le score de risque du graphe, lui, utilise la criticité sécurité seule. Il va de 0 à 100 sur une échelle linéaire : 100 correspond au pire cas de la formule (CVE de note 10, exploitation certaine, présente au catalogue KEV, serveur de criticité sécurité critical).

Il n'est jamais plafonné : deux serveurs qui portent la même CVE critique n'ont pas le même score si leur criticité sécurité diffère.

Niveau Score
critical à partir de 60
high à partir de 30
medium à partir de 12

Règles de prudence pour les données manquantes

  • Zone d'exposition non qualifiée → traitée comme exposée. Le pourcentage de serveurs concernés est affiché sur la page : renseigner la zone d'exposition de ses serveurs fait baisser les verdicts Act et Plan injustifiés.
  • Criticité sécurité non saisie → elle vaut medium par défaut. Les serveurs à criticité business élevée peuvent donc descendre d'un cran de mission tant que leur criticité sécurité n'est pas renseignée.
  • EPSS absent (CVE trop récente) → likely : l'absence de score est une incertitude, pas une preuve d'innocuité.

Extrait de la table de décision (lue de haut en bas, la première ligne qui correspond l'emporte)

Exploitation Exposition Mission Sévérité Verdict
active open ou controlled * * Act
active small high * Act
active small * * Plan
likely open high * Act
likely open * high Act
likely open * * Plan
likely controlled high high Plan
likely controlled ou small * * Watch
none open high high Plan
none open * high ou medium Watch
tout le reste Track

La politique est versionnée : la version appliquée est affichée à côté des verdicts, et chaque verdict reste rejouable avec la version qui l'a produit.

L'analyse IA

Le panneau Analyse IA — Posture de risque produit une synthèse en langage naturel des verdicts : concentrations de risque, CVE activement exploitées, serveurs exposés.

  • Elle tourne sur le modèle local (Ollama), aucune donnée ne sort du serveur.
  • Elle explique les verdicts ; elle ne les calcule pas. La priorisation reste celle de la table de décision.
  • Chaque point cite ses références (serveurs, CVE) et indique le modèle utilisé et la date de génération. Le bouton Relancer régénère la synthèse sur les données du moment.
  • Si AIRiver est désactivé, les verdicts restent calculés et affichés normalement.

PathFinder — les chemins d'attaque

PathFinder répond à la question d'un test d'intrusion interne — « si ce poste est compromis, jusqu'où l'attaquant va-t-il ? » — en continu, à partir de la posture déjà collectée : clés SSH réutilisées, règles sudo, comptes partagés, binaires SUID, montages réseau.

Lire la page

Bandeau de périmètre — en tête de page, toujours :

  • vert : liste des sources de posture actives, les chemins sont calculés ;
  • orange : aucune source de posture — PathFinder fonctionne en mode dégradé (classement par vulnérabilités seulement) et le dit.

Une analyse qui ne voit pas une partie du parc le signale : elle ne donne jamais une fausse assurance.

Graphe d'attaque — orienté de gauche à droite :

Couleur Rôle du nœud
Cyan Entrée — point de départ d'un chemin
Orange Pivot — serveur traversé
Rouge Cible — fin de chemin

Chaque arête indique comment on passe d'un serveur à l'autre (ssh_key, sudo…).

Chemins d'attaque — le panneau de droite liste, pour chaque cible, jusqu'à 5 chemins les plus courts (8 sauts au maximum) avec leur nombre de sauts. Cliquer un chemin le surligne dans le graphe ; Effacer la sélection revient à la vue complète.

Vue tableau — classement des serveurs par niveau de risque, filtrable par environnement et par niveau, avec le nombre de CVE ouvertes et de CVE activement exploitées (KEV) par serveur.

Les indicateurs

Indicateur Signification
Posture Nombre de serveurs dont la posture est synchronisée
Chemins critiques Nombre de couples (point d'entrée, crown jewel) où le crown jewel est atteignable par une chaîne de pivots
Blast radius max Plus grand nombre d'actifs atteignables depuis un seul serveur compromis (le serveur est nommé sous le chiffre)
Chokepoints Serveurs dont la remédiation seule coupe au moins un chemin vers un crown jewel (le n°1 est nommé)
Min-cut Plus petit nombre de liens à couper pour isoler tous les crown jewels de tous les points d'entrée

Crown jewels et points d'entrée

Les crown jewels sont les serveurs que vous cochez « Crown jewel » sur leur fiche (Inventaire). Les points d'entrée sont les serveurs dont la zone d'exposition est internet ou dmz. Si aucun serveur n'est exposé, PathFinder prend à défaut les sources du graphe (serveurs sans lien entrant) et l'indique. Sans crown jewel désigné, les chemins critiques, chokepoints et min-cut valent 0 ; le blast radius se calcule dans tous les cas.

La carte Surface d'attaque vers les crown jewels détaille le résultat : pour chaque chokepoint, le nombre de chemins qu'il coupe (« 6 sur 13 »), et un jeu minimal de liens à couper pour tout isoler (un parmi plusieurs possibles de même taille). Le calcul est déterministe.

Alimenter PathFinder

Les chemins viennent des sources de posture — InfraRiver Collector (module posture) sur Linux, Active Directory et vCenter pour les chemins d'administration. Plus il y a de sources, plus le graphe est complet — chaque source ajoutée élargit le périmètre affiché dans le bandeau.


Cases — suivre une exposition dans le temps

Un case est un constat de l'analyse IA qu'un humain a décidé de suivre. Ce n'est pas un ticket : le travail se suit dans votre ITSM (GLPI, ServiceNow, EasyVista). Le case suit l'exposition, et sait dire tout seul si sa cause a disparu.

Créer un case

Dans le panneau Analyse IA de Risk Intel, chaque constat porte un bouton + Case. Le formulaire est presque entièrement pré-rempli :

Champ Pré-rempli Remarque
Titre Oui, depuis le constat Modifiable
Références Oui (serveurs, CVE) On peut en retirer, pas en ajouter
Visibilité Non — choix obligatoire Privé, partagé, ou toute l'organisation
Verdict Oui, depuis les verdicts SSVC Jamais proposé par l'IA
Responsable Le créateur
TLP AMBER Voir ci-dessous
Échéance, étiquettes, note Non Facultatifs
Référence ITSM Non Numéro du ticket correspondant — texte libre, aucune synchronisation

Si un case existe déjà sur le même constat, un avertissement s'affiche sans bloquer — sans en révéler le titre ni l'auteur s'il ne vous est pas partagé.

L'état de la cause, recalculé automatiquement

Le case ne stocke pas le texte de l'IA : il stocke le constat et les données qui l'ont produit. À chaque reconstruction du graphe, InfraRiver vérifie si la cause existe toujours.

État Signification Clôture proposée ?
Actif Le constat se reproduit Non
Remédiation probable La source est à jour et le constat a disparu Oui — à confirmer
Source silencieuse La source ne remonte plus : l'état réel est inconnu Non
Hôte hors périmètre Un serveur cité a quitté l'inventaire (décommission ou perte de collecte) Non

Une absence de données n'est pas une absence de risque

Seul l'état Remédiation probable propose la clôture. Une source muette ou un serveur disparu de l'inventaire ne ferment jamais un case, et la clôture reste toujours une décision humaine.

Partager un case

Un case est privé par défaut. Le partage est explicite, nominatif, avec trois niveaux de droits :

Droit Permet
Lecture Voir le case et ses commentaires
Commentaire + Ajouter une note
Écriture + Modifier, fermer

Le destinataire est prévenu dans sa messagerie InfraRiver (jamais par e-mail : le nom des serveurs ne sort pas de l'application). Un partage se révoque à tout moment ; la révocation est tracée, rien n'est effacé.

Partager, c'est partager des noms de serveurs

Dans un environnement cloisonné, un nom d'hôte est déjà une information sensible. Partagez au plus juste.

TLP — un marquage de diffusion affiché en bandeau, qui indique ce que le destinataire a le droit de faire du contenu en dehors d'InfraRiver :

TLP Diffusion autorisée
RED Aucune, hors des personnes nommées
AMBER Au sein de l'équipe du destinataire (défaut)
GREEN Au sein de l'organisation
CLEAR Sans restriction

Fermer un case

La fermeture exige un motif : remédié, risque accepté, faux positif, cause disparue, transféré à l'ITSM ou doublon. Sauf pour un doublon, la décision est enregistrée dans la mémoire d'InfraRiver : un risque accepté aujourd'hui reste connu comme tel demain.

Droits nécessaires : cases.read pour consulter, cases.manage pour créer et gérer (attribués par défaut aux rôles admin, auditor et super_admin).