cybercursus

Les règles de détection : écrire une alerte utile

11 min · Intermédiaire · 7 août 2026

Sommaire
  1. Le compromis au cœur de toute règle
  2. Un seuil, une fenêtre temporelle
  3. Régler une règle n’est jamais définitif

Le compromis au cœur de toute règle

Une règle de détection traduit une condition (« ceci ressemble à une attaque ») en alerte automatique. Deux excès la guettent : trop sensible, elle noie les analystes sous des faux positifs jusqu’à ce que les vraies alertes se perdent dans le bruit (la fatigue d’alerte) ; trop stricte, elle laisse passer des attaques réelles sans jamais se déclencher.

Un seuil, une fenêtre temporelle

Reprenons la corrélation du chapitre précédent, sous forme de règle réglable : N échecs de connexion sur un même compte, dans une fenêtre de temps donnée.

python
evenements = [
  {"t": 0,  "compte": "alice", "resultat": "echec"},
  {"t": 2,  "compte": "alice", "resultat": "echec"},
  {"t": 5,  "compte": "alice", "resultat": "echec"},
  {"t": 9,  "compte": "alice", "resultat": "echec"},
  {"t": 40, "compte": "alice", "resultat": "echec"},  # tentative isolee, bien plus tard
]

def regle_seuil(evenements, compte, fenetre_secondes, seuil):
  echecs = sorted(e["t"] for e in evenements if e["compte"] == compte and e["resultat"] == "echec")
  for depart in echecs:
      fenetre = [t for t in echecs if depart <= t <= depart + fenetre_secondes]
      if len(fenetre) >= seuil:
          return True, fenetre
  return False, []

for seuil in [2, 4, 6]:
  declenchee, fenetre = regle_seuil(evenements, "alice", fenetre_secondes=10, seuil=seuil)
  etat = f"ALERTE {fenetre}" if declenchee else "silence"
  print(f"Seuil={seuil} sur une fenetre de 10s : {etat}")

Trois réglages, trois comportements : un seuil de 2 se déclenche sur presque n’importe quoi (fatigue d’alerte garantie), un seuil de 6 ne se déclenche jamais sur ce flux pourtant suspect (la vraie rafale ne compte que 4 échecs rapprochés), un seuil de 4 capture exactement la rafale sans réagir à la tentative isolée bien plus tardive.

Astuce

Sans la fenêtre temporelle, ces mêmes 5 échecs déclencheraient la règle même étalés sur plusieurs jours, un signal bien moins pertinent qu’une rafale concentrée en quelques secondes.

Régler une règle n’est jamais définitif

Un seuil pertinent aujourd’hui peut cesser de l’être : un pic légitime de trafic, un changement d’usage, ou une nouvelle technique d’attaque plus lente (pour rester sous le seuil) imposent de revisiter régulièrement les règles en place, pas de les figer une fois pour toutes.

Pourquoi une règle de détection trop sensible peut-elle finir par réduire la sécurité réelle plutôt que l'améliorer ?
Pourquoi une fenêtre temporelle est-elle nécessaire dans une règle de type « N échecs déclenchent une alerte » ?

Pour aller plus loin

Commentaires

Recherche