Comprendre les logs : où ils sont, ce qu'ils disent
9 min · Débutant · 7 août 2026
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 :
203.0.113.7 - - [07/Aug/2026:14:22:01 +0000] "GET /fr/cours/ HTTP/1.1" 200 5423 "-" "Mozilla/5.0" 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.