cybercursus

Comprendre les logs : où ils sont, ce qu'ils disent

9 min · Débutant · 7 août 2026

Sommaire
  1. Trois familles de logs, trois usages
  2. Décortiquer une ligne de log
  3. Les champs les plus utiles pour détecter

Trois familles de logs, trois usages

Aucun système ne produit un seul journal unique : plusieurs couches enregistrent chacune leur propre vision des évènements.

  • Logs d’accès (serveur web) : chaque requête HTTP reçue, indépendamment de son résultat métier.
  • Logs applicatifs : évènements propres à la logique de l’application (une commande passée, une erreur interne, une exception).
  • Logs d’authentification : tentatives de connexion, réussies ou échouées, souvent générés séparément des logs d’accès.

Info

Une même attaque laisse presque toujours des traces dans plusieurs de ces journaux à la fois. C’est précisément ce que le chapitre sur les SIEM (plus loin dans ce cours) exploite : croiser ces sources plutôt que de les lire isolément.

Décortiquer une ligne de log

Le format « Combined », très répandu chez les serveurs web (dont Nginx et Apache), structure chaque requête sur une seule ligne :

text
203.0.113.7 - - [07/Aug/2026:14:22:01 +0000] "GET /fr/cours/ HTTP/1.1" 200 5423 "-" "Mozilla/5.0"
python
import re

ligne = '203.0.113.7 - - [07/Aug/2026:14:22:01 +0000] "GET /fr/cours/ HTTP/1.1" 200 5423 "-" "Mozilla/5.0"'

motif = re.compile(
  r'(?P<ip>\S+) \S+ \S+ \[(?P<horodatage>[^\]]+)\] '
  r'"(?P<methode>\S+) (?P<chemin>\S+) \S+" '
  r'(?P<statut>\d+) (?P<taille>\S+)'
)

correspondance = motif.match(ligne)
if correspondance:
  for cle, valeur in correspondance.groupdict().items():
      print(f"{cle:12} : {valeur}")

Chaque champ isolé devient exploitable : l’adresse IP source, le chemin exact demandé (là où une charge d’injection SQL ou XSS finirait par apparaître, voir le chapitre suivant), le code de statut, la méthode HTTP.

Les champs les plus utiles pour détecter

  • Le chemin et sa chaîne de requête : c’est là qu’apparaît une charge d’injection.
  • Le code de statut : une charge qui échoue produit souvent un code différent d’une requête normale.
  • L’adresse IP : permet de regrouper plusieurs requêtes suspectes venant de la même source.
  • L’horodatage : indispensable pour reconstituer une chronologie, condition de toute corrélation.
Qu'enregistre un log d'accès (access log) d'un serveur web, par opposition à un log applicatif ?
Dans une ligne de log au format Combined, à quoi correspond le champ entre crochets ?

Pour aller plus loin

Commentaires

Recherche