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).