Chapitre 224 minIntermédiaire
Journalisation : quoi journaliser et combien de temps
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- dire à quoi sert un journal : détecter, comprendre, prouver ;
- choisir les événements à journaliser sur un système, un réseau et une application ;
- écrire une ligne de journal complète, sans secret ni donnée sensible ;
- fixer une durée de conservation et protéger les journaux comme la CNIL le recommande.
5 exercices corrigés
La journalisation consiste à enregistrer, de façon horodatée, les événements qui se produisent sur un système, un équipement réseau ou une application : connexions, accès aux données, actions d'administration, erreurs. Ces enregistrements s'appellent des journaux, ou logs. Ce chapitre explique à quoi ils servent, quels événements tracer, comment écrire une ligne de journal utile, ce qu'il ne faut jamais y mettre, combien de temps les garder et comment les mettre en place côté infrastructure et côté application.
À quoi sert un journal : détecter, comprendre, prouver
Un journal remplit trois missions.
- Détecter une attaque pendant qu'elle se produit : une rafale d'échecs de connexion, un compte qui se connecte à 3 heures du matin depuis l'étranger, un export massif de données.
- Comprendre après coup ce qui s'est passé : par où l'attaquant est entré, ce qu'il a touché, quelles données il a consultées. C'est indispensable pour corriger la bonne faille et pour remplir une notification de violation de données, qui demande la nature des données et le nombre de personnes concernées.
- Prouver : qui a fait quoi, devant la direction, un auditeur, la CNIL ou un juge. Le RGPD impose au responsable de traitement de pouvoir démontrer sa conformité (principe de responsabilité, article 5) ; les journaux en sont une pièce maîtresse.
La CNIL rattache d'ailleurs la journalisation à l'obligation de sécurité des articles 5 et 32 du RGPD, dans sa recommandation sur la journalisation (délibération n° 2021-122 du 14 octobre 2021). Un système sans journaux, c'est une boutique sans caméras ni registre de caisse : tu découvres le vol des semaines plus tard, sans savoir qui, quand, ni combien.
Les sources de journaux
Chaque couche du système d'information produit ses propres journaux.
| Source | Ce qu'elle enregistre | Où les trouver |
|---|---|---|
| Système Linux | Démarrages, services, connexions SSH, sudo, noyau | Journal de systemd (journalctl), /var/log/ si rsyslog est installé |
| Système Windows | Ouvertures de session, gestion des comptes, services, applications | Observateur d'événements : journaux Sécurité, Système, Application |
| Annuaire | Authentifications Kerberos et NTLM, comptes créés, groupes modifiés | Journal Sécurité des contrôleurs de domaine |
| Réseau | Flux autorisés et bloqués, connexions VPN, changements de configuration | Pare-feu (pfSense, OPNsense), routeurs, commutateurs, points d'accès Wi-Fi (les journaux de pfSense dans Wazuh) |
| Proxy, DNS | Sites visités, noms de domaine demandés | Journaux du proxy (Squid), du serveur DNS |
| Serveur web | Chaque requête HTTP : adresse, URL, code de retour, navigateur | access.log et error.log d'Apache ou de Nginx |
| Application | Événements métier : connexion, consultation d'un dossier, export, suppression | Fichier ou table de journal écrits par le code |
| Base de données | Connexions, requêtes, erreurs, modifications de droits | Journal général, journal des erreurs, greffon d'audit du SGBD |
| Outils de sécurité | Détections de l'antivirus, de l'EDR, de l'IDS | Console de l'outil, puis le SIEM |
Aucune source ne suffit seule. Une connexion VPN (pare-feu), suivie d'une ouverture de session (contrôleur de domaine), puis d'une copie massive de fichiers (serveur de fichiers) ne raconte une histoire que si l'on rapproche les trois. C'est la corrélation.
Quels événements journaliser
On ne journalise pas tout : trop de journaux noient les signaux utiles, coûtent en stockage et contiennent des données personnelles qu'il faut ensuite protéger. On journalise les événements de sécurité.
| Catégorie | Événements | Pourquoi |
|---|---|---|
| Authentification | Connexions réussies et échouées, déconnexions, verrouillages de compte | Repérer la force brute, le bourrage d'identifiants, les horaires anormaux |
| Gestion des comptes | Création, suppression, activation, changement de mot de passe, ajout à un groupe | Un attaquant se crée un compte ou s'ajoute aux administrateurs |
| Privilèges | Utilisation de droits d'administration (sudo, élévation), échecs d'autorisation | Repérer une élévation de privilèges ou une tentative d'accès interdit |
| Accès aux données sensibles | Consultation, création, modification, suppression, export | Savoir qui a lu quel dossier, base d'une notification de violation |
| Administration | Changements de configuration, de règles de pare-feu, de stratégies de groupe | Repérer un affaiblissement volontaire de la sécurité |
| Système | Démarrage et arrêt des services, installation de logiciels, création de services et de tâches planifiées | Repérer une persistance installée par un attaquant |
| Journalisation elle-même | Arrêt du service de journalisation, effacement d'un journal | Le premier geste d'un attaquant prudent est d'effacer ses traces |
| Erreurs | Requêtes rejetées, exceptions, erreurs SQL | Indices d'injection ou de tentative d'exploitation |
Pour les applications qui traitent des données personnelles, la recommandation de la CNIL est précise : les opérations de création, consultation, modification et suppression des données doivent être enregistrées avec l'auteur individuellement identifié, l'horodatage, la nature de l'opération et la référence des données concernées, en évitant de recopier les données elles-mêmes dans le journal.
Anatomie d'une bonne ligne de journal
Une ligne de journal exploitable répond à six questions.
| Question | Champ | Exemple |
|---|---|---|
| Quand ? | Horodatage précis, avec fuseau | 2026-10-13T09:14:02+02:00 |
| Qui ? | Compte identifié individuellement | user=karim.benali |
| D'où ? | Adresse IP, nom de la machine | ip=192.168.10.31 |
| Quoi ? | Type d'événement, lisible et stable | event=CLIENT_EXPORT |
| Sur quoi ? | Ressource concernée, par sa référence | ressource=client:4821 |
| Résultat ? | Succès ou échec, et la raison | result=failure reason=forbidden |
Deux formats coexistent :
2026-10-13T09:14:02+02:00 INFO event=LOGIN_FAIL user=karim.benali ip=192.168.10.31 reason=bad_password
{"ts":"2026-10-13T09:14:02+02:00","level":"INFO","event":"LOGIN_FAIL","user":"karim.benali","ip":"192.168.10.31","reason":"bad_password"}
Le texte se lit facilement dans un terminal. Le JSON structuré se lit moins bien à l'œil, mais un SIEM l'indexe sans effort, champ par champ, ce qui permet des recherches exactes (user = "karim.benali" AND event = "LOGIN_FAIL"). Dès que les journaux sont centralisés, le format structuré l'emporte.
Ce qu'on n'écrit jamais dans un journal
Un journal est souvent moins bien protégé que la base de données : il est copié, envoyé à un prestataire, lu par plus de monde. Tout ce qu'il contient doit pouvoir fuiter sans catastrophe.
- Jamais de secret : mot de passe (même erroné : c'est souvent le bon avec une faute de frappe), jeton de session, cookie, clé d'API, clé privée, code d'authentification à usage unique.
- Pas de données sensibles en clair : numéro de carte bancaire, numéro de sécurité sociale, données de santé, contenu d'un message. Utilise une référence (
client:4821) ou un masque (carte=**** **** **** 4242). - Pas de recopie des données traitées : le journal dit que le dossier 4821 a été consulté, pas ce qu'il contient.
Une autre précaution côté code : l'injection dans les journaux. Si l'identifiant saisi par l'utilisateur est écrit tel quel, un attaquant peut y glisser un retour à la ligne et fabriquer une fausse ligne (karim\n2026-10-13T09:15:00 INFO event=LOGIN_OK user=admin). On neutralise les caractères de contrôle (retours à la ligne, tabulations) avant d'écrire, ou on utilise un format structuré qui les échappe, comme le JSON.
L'horodatage : une heure juste et un fuseau clair
Rapprocher des journaux n'a de sens que si les horloges sont synchronisées. Une machine qui dérive de quatre minutes rend une chronologie fausse et fragilise la valeur de preuve.
- Synchronise toutes les machines sur une source de temps commune avec NTP : dans un domaine Windows, les postes suivent les contrôleurs de domaine, eux-mêmes calés sur une source externe fiable ; sous Linux,
systemd-timesyncdouchrony. Les équipements réseau aussi. - Écris l'heure au format ISO 8601 avec le décalage (
2026-10-13T09:14:02+02:00) ou en UTC (2026-10-13T07:14:02Z). Une heure sans fuseau est ambiguë deux fois par an, au changement d'heure. - Pour la valeur de preuve, la CNIL recommande d'horodater et de signer les journaux dès leur création.
Les niveaux de gravité
Chaque événement porte un niveau de gravité, qui sert à filtrer et à déclencher des alertes. Le protocole syslog en définit huit, de 0 (le plus grave) à 7.
| Code | Nom syslog | Sens | Exemple |
|---|---|---|---|
| 0 | emerg | Système inutilisable | Panne totale du noyau |
| 1 | alert | Action immédiate requise | Base de données corrompue |
| 2 | crit | Condition critique | Disque système défaillant |
| 3 | err | Erreur | Échec de démarrage d'un service |
| 4 | warning | Avertissement | Disque rempli à 90 % |
| 5 | notice | Événement normal mais notable | Connexion d'un administrateur |
| 6 | info | Information | Connexion réussie d'un utilisateur |
| 7 | debug | Mise au point | Détail interne d'une fonction |
Les bibliothèques de journalisation des langages utilisent des niveaux proches (DEBUG, INFO, WARNING, ERROR, CRITICAL). Le niveau DEBUG ne doit pas rester actif en production.
Combien de temps conserver les journaux
Les journaux contiennent des données personnelles : identifiants, adresses IP, actions des salariés. Le principe de limitation de la conservation du RGPD s'applique donc à eux aussi. Il faut trouver l'équilibre entre deux risques : garder trop peu (une intrusion découverte au bout de cinq mois, et les journaux s'arrêtent à trois) et garder trop (un énorme gisement de données exposé, une surveillance excessive des salariés).
La recommandation de la CNIL de 2021 fixe un repère : conserver les journaux entre six mois et un an. Une durée plus longue peut se justifier par une obligation légale ou un risque particulier, et doit alors être documentée. La même recommandation demande :
- de conserver les journaux à part du système principal, par exemple sur des équipements distincts, accessibles en écriture seule par les applications, sans possibilité d'écraser les données existantes ;
- de restreindre l'accès aux journaux aux personnes habilitées, sur le principe de stricte nécessité, et de lever une alerte si un compte habilité modifie des journaux ;
- de ne pas les réutiliser pour un autre usage que la sécurité (surveiller la productivité d'un salarié serait un détournement de finalité) ;
- d'informer les utilisateurs de l'existence de la journalisation, de la nature des données collectées et de la durée de conservation, par exemple par un message à la connexion ou dans la charte informatique.
Protéger les journaux
Un attaquant qui prend la main sur un serveur cherche à effacer ses traces. Les journaux restés sur la machine compromise ne prouvent plus rien.
- Les exporter en continu vers un serveur de collecte distinct, que l'attaquant ne contrôle pas (chapitre 4).
- Les rendre infalsifiables : stockage en ajout seul, signature ou chaînage d'empreintes, support non réinscriptible pour les archives.
- Surveiller la journalisation elle-même : sous Windows, l'événement 1102 signale l'effacement du journal Sécurité ; une source qui se tait d'un coup doit déclencher une alerte.
- Gérer la place : la rotation (
logrotatesous Linux, taille maximale des journaux sous Windows) évite qu'un disque plein arrête le service ou écrase les événements les plus anciens. La taille maximale par défaut du journal Sécurité de Windows est modeste : sur un serveur très sollicité, elle peut ne couvrir que quelques jours, voire quelques heures. On l'augmente par stratégie de groupe et, surtout, on exporte les événements.
Mettre en place la journalisation côté SISR
Sous Windows, l'audit se règle par stratégie de groupe, dans Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Configuration avancée de la stratégie d'audit. Active au minimum, en succès et en échec : l'ouverture et la fermeture de session, la gestion des comptes, la validation des informations d'identification, l'utilisation des privilèges sensibles et la création de processus. L'accès aux fichiers ne se journalise que si tu l'actives et que tu poses une liste de contrôle d'audit (SACL) sur les dossiers concernés. Vérifie la stratégie effective avec :
auditpol /get /category:*
Sous Linux, sur Debian 12 et 13, rsyslog n'est plus installé par défaut : le journal de systemd conserve les événements sur disque, dans /var/log/journal, et se lit avec journalctl. Les fichiers comme /var/log/auth.log n'existent que si tu installes rsyslog (apt install rsyslog), souvent pour envoyer les journaux vers un serveur central (voir aussi l'administration Linux). Pour surveiller un fichier sensible, le démon d'audit auditd enregistre chaque accès :
# Journaliser toute écriture ou modification d'attributs de /etc/shadow, avec une étiquette
sudo auditctl -w /etc/shadow -p wa -k shadow
# Retrouver ces événements
sudo ausearch -k shadow
Une règle posée avec auditctl disparaît au redémarrage : pour la rendre permanente, on l'écrit dans un fichier de /etc/audit/rules.d/.
Sur les équipements réseau, active l'envoi syslog du pare-feu, des commutateurs et des bornes Wi-Fi vers le serveur de collecte, et journalise au minimum les connexions d'administration, les changements de configuration et les flux bloqués.
Mettre en place la journalisation côté SLAM
Côté développement, on n'écrit pas les journaux à la main avec des echo : on utilise une bibliothèque de journalisation, qui gère les niveaux, le format, la rotation et les destinations. En PHP, la référence est Monolog ; en C#, Serilog ou NLog ; en Java, Log4j 2 ou Logback ; en Node.js, pino ou winston.
Voici comment Hugo journalise les connexions au site des Ateliers Morvan avec Monolog 3 :
<?php
use Monolog\Logger;
use Monolog\Level;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\JsonFormatter;
$handler = new StreamHandler('/var/log/morvan/securite.log', Level::Info);
$handler->setFormatter(new JsonFormatter());
$journal = new Logger('securite');
$journal->pushHandler($handler);
// Après la vérification du mot de passe
if ($connexionReussie) {
$journal->info('LOGIN_OK', ['user' => $login, 'ip' => $_SERVER['REMOTE_ADDR']]);
} else {
// Jamais $motDePasse ici, même en cas d'échec
$journal->warning('LOGIN_FAIL', ['user' => $login, 'ip' => $_SERVER['REMOTE_ADDR']]);
}
Le formateur JSON place l'identifiant et l'adresse dans des champs séparés, ce qui neutralise au passage les retours à la ligne glissés dans un identifiant. Si l'application est derrière un proxy inverse, REMOTE_ADDR contient l'adresse du proxy : il faut alors lire l'en-tête transmis par le proxy, en ne lui faisant confiance que s'il vient bien du proxy.
Les journaux peuvent aussi aller dans une table de la base de données, ce qui permet de les interroger en SQL. Une table journal minimale :
CREATE TABLE journal (
id_journal BIGINT AUTO_INCREMENT PRIMARY KEY,
date_heure DATETIME NOT NULL,
id_utilisateur INT NOT NULL,
operation ENUM('select', 'insert', 'update', 'delete') NOT NULL,
nom_table VARCHAR(64) NOT NULL,
ip VARCHAR(45) NOT NULL -- 45 caractères : la forme textuelle la plus longue d'une adresse IPv6
);
Le compte de l'application ne doit avoir que le droit INSERT sur cette table, jamais UPDATE ni DELETE : une injection SQL dans l'application ne pourra pas effacer les traces (les droits avec GRANT).
Enfin, le SGBD a ses propres journaux. Le journal général de MySQL (general_log) enregistre toutes les connexions et toutes les requêtes. C'est précieux pour une enquête, mais très coûteux sur un serveur chargé, et il recopie les valeurs des requêtes, données personnelles comprises. Pour un audit durable, on préfère un greffon d'audit (celui de MySQL Enterprise ou server_audit de MariaDB), qui filtre les événements à garder.
À l'E7
La journalisation tombe sous des formes différentes selon l'option.
- SLAM, métropole 2025 (U7), cas Casterman : la mission C2 fournit une méthode Java
creerEnregLogqui écrit dans un fichier de traces l'utilisateur, l'opération, la table et la date. On demande d'y ajouter l'adresse IP « en ajoutant tous les éléments nécessaires au respect des bonnes pratiques », puis d'écrire des requêtes SQL de surveillance sur une tableLog: le nombre de suppressions des 30 dernières minutes, et le nombre d'ajouts depuis 8 h par utilisateur ayant fait plus de cinq ajouts. - SLAM, métropole 2026 (U7), cas NDV : la mission A1 porte sur les journaux d'activité du SGBD MySQL, exposés par une vue construite sur la table
mysql.general_log: compléter le filtrage en PHP, puis repérer dans les journaux et dans les habilitations qu'un compte applicatif se connecte depuis une autre adresse que le serveur local avec trop de droits, et corriger ces droits. - SISR, métropole 2026 (U7), cas SPARCLE : la question B1.5 demande deux éléments à prendre en compte pour rendre conforme au RGPD l'archivage des journaux système.
- SLAM, métropole 2022 (alors E6, U6), cas Easy2Drive : le dossier B fait concevoir une base
BD_RGPD_LOGS, alimentée par l'application à chaque création ou consultation de données personnelles et interrogée en lecture seule ; dès le dossier A, une question fait justifier la différence de besoin de preuve entre deux récits utilisateurs.
Les réponses attendues reprennent les mots du référentiel et de la CNIL : traçabilité, imputabilité (savoir qui), horodatage, intégrité des journaux, durée de conservation limitée, information des personnes.
Pour aller plus loin. Côté application, la journalisation insuffisante est la neuvième catégorie de l'OWASP Top 10 : voir le chapitre Journalisation (A09) et gestion des erreurs (A10) du cours Sécurité applicative. Les règles de conservation au regard du RGPD sont dans le chapitre RGPD : donnée personnelle, traitement et principes.
Exercices
Exercice 1 sur 5 Journaliser ou pas ? Réussi À revoir
Pour chaque donnée, dis si elle a sa place dans le journal de sécurité de l'application de gestion des clients des Ateliers Morvan, et sous quelle forme.
- L'échec de connexion du compte
karim.benalidepuis 192.168.10.31. - Le mot de passe saisi lors de cet échec.
- La consultation de la fiche du client n° 4821 par une commerciale.
- Le numéro de carte bancaire utilisé pour une commande.
- L'export de toute la liste des clients en CSV par un compte d'administration.
- Le contenu du cookie de session après la connexion.
Voir la réponseMasquer la réponse de l'exercice 1
- Oui : compte, adresse, horodatage, résultat et raison (
bad_password). C'est l'événement de base pour repérer une force brute. - Jamais : un secret, souvent le bon mot de passe à une faute près.
- Oui, par référence : qui, quand,
ressource=client:4821, opération « consultation ». Pas le contenu de la fiche. - Non en clair. Si une trace est nécessaire, les quatre derniers chiffres au plus (
**** 4242) ou la référence de la transaction. - Oui, et avec un niveau élevé : un export massif est l'un des premiers signes d'une fuite. Une alerte peut s'y rattacher.
- Jamais : quiconque lit le journal pourrait se faire passer pour l'utilisateur.
Tu avais trouvé ?
Exercice 2 sur 5 Une ligne qui fuit Réussi À revoir
Voici une ligne écrite par l'application d'un cabinet médical : 13/10 09:14 Connexion OK dr.roux mdp=Lyon2026! patient=Martin Jeanne, né le 12/03/1961, diabète type 2. Relève les défauts et réécris une ligne conforme.
Voir la réponseMasquer la réponse de l'exercice 2
Défauts :
- Horodatage incomplet : pas d'année, pas de secondes, pas de fuseau.
- Pas d'adresse IP ni de machine : on ne sait pas d'où vient la connexion.
- Mot de passe en clair : faute grave, le journal devient une fuite de secrets.
- Identité du patient et donnée de santé recopiées : le journal contient des données sensibles au sens du RGPD, sans nécessité.
- Type d'événement en texte libre : difficile à filtrer.
- Deux événements mélangés : la connexion et la consultation d'un dossier.
Version conforme, en deux lignes :
2026-10-13T09:14:02+02:00 INFO event=LOGIN_OK user=dr.roux ip=10.0.0.42
2026-10-13T09:15:22+02:00 INFO event=DOSSIER_VIEW user=dr.roux ip=10.0.0.42 ressource=patient:P-0421
Tu avais trouvé ?
Exercice 3 sur 5 Ajouter l'adresse IP à une méthode de journalisation Réussi À revoir
Une application PHP journalise ainsi les opérations des utilisateurs :
function creerTrace(int $idUtilisateur, string $operation, string $table): void
{
$ligne = 'util:' . $idUtilisateur . ';operation:' . $operation
. ';table:' . $table . ';date:' . date('d/m/Y-H:i:s');
error_log($ligne . PHP_EOL, 3, '/var/log/appli/traces.log');
}
- Modifie la fonction pour qu'elle reçoive et enregistre l'adresse IP de l'utilisateur.
- Cite deux autres améliorations conformes aux bonnes pratiques.
Voir la réponseMasquer la réponse de l'exercice 3
- On ajoute un paramètre et le champ correspondant :
function creerTrace(int $idUtilisateur, string $operation, string $table, string $ip): void
{
// Une adresse IP valide ne contient ni espace ni retour à la ligne : on refuse le reste
if (filter_var($ip, FILTER_VALIDATE_IP) === false) {
$ip = 'invalide';
}
$ligne = 'util:' . $idUtilisateur . ';operation:' . $operation
. ';table:' . $table . ';ip:' . $ip . ';date:' . date('c');
error_log($ligne . PHP_EOL, 3, '/var/log/appli/traces.log');
}
L'appel passe $_SERVER['REMOTE_ADDR'] comme dernier argument.
-
Améliorations possibles (deux suffisent) :
- un horodatage complet avec fuseau :
date('c')donne2026-10-13T09:14:02+02:00, là oùd/m/Yne dit rien du fuseau ; - neutraliser les caractères de contrôle dans
$operationet$tables'ils peuvent venir de l'utilisateur, ou passer à un format structuré (JSON) ; - un niveau de gravité par ligne, pour filtrer et alerter ;
- utiliser une bibliothèque comme Monolog, qui gère format, niveaux et rotation ;
- écrire dans un fichier dont les droits interdisent la lecture aux autres comptes, et l'exporter vers un serveur de collecte.
Tu avais trouvé ?
Exercice 4 sur 5 Surveiller une table de journal en SQL Réussi À revoir
La table journal est celle du cours : journal (id_journal, date_heure, id_utilisateur, operation, nom_table, ip), sur MySQL 8.4.
- Écris la requête qui compte les suppressions (
delete) des 30 dernières minutes. - Un collègue veut, pour chaque utilisateur ayant fait plus de cinq ajouts (
insert) dans la tableproduitdepuis 8 h ce matin, le nombre de ces ajouts. Il propose :
SELECT id_utilisateur FROM journal
WHERE nom_table = 'produit' AND operation = 'insert'
AND date_heure >= CURDATE() + INTERVAL 8 HOUR;
Explique ce qui ne va pas et corrige.
Voir la réponseMasquer la réponse de l'exercice 4
- Requête :
SELECT COUNT(*) AS nb_suppressions
FROM journal
WHERE operation = 'delete'
AND date_heure >= NOW() - INTERVAL 30 MINUTE;
- La requête renvoie une ligne par ajout, pas un nombre par utilisateur : un même identifiant apparaît autant de fois qu'il a fait d'ajouts, il n'y a ni comptage ni seuil de cinq. Il faut regrouper par utilisateur, compter, et filtrer les groupes avec
HAVING(GROUP BYetHAVING) :
SELECT id_utilisateur, COUNT(*) AS nb_ajouts
FROM journal
WHERE nom_table = 'produit'
AND operation = 'insert'
AND date_heure >= CURDATE() + INTERVAL 8 HOUR
GROUP BY id_utilisateur
HAVING COUNT(*) > 5;
La condition sur le nombre d'ajouts va dans HAVING, pas dans WHERE : elle porte sur un agrégat, calculé après le regroupement.
Tu avais trouvé ?
Exercice 5 sur 5 Fixer la durée de conservation Réussi À revoir
Claire Vasseur propose de garder « tous les journaux pour toujours, au cas où ». Mehdi propose « une semaine, pour économiser le disque ». Que leur réponds-tu ?
Voir la réponseMasquer la réponse de l'exercice 5
Aucune des deux propositions ne tient.
- Pour toujours : les journaux contiennent des données personnelles (identifiants, adresses IP, actions des salariés). Le RGPD impose une durée limitée et justifiée ; une conservation sans limite est un manquement, et elle crée un gisement de données exposé en cas de fuite.
- Une semaine : beaucoup trop court. Une intrusion est souvent découverte après plusieurs semaines ; sans journaux, impossible de savoir par où l'attaquant est entré ni ce qui a fuité, donc impossible de remplir correctement une notification à la CNIL.
Le repère est la recommandation de la CNIL : entre six mois et un an, avec une durée plus longue seulement si une obligation légale ou un risque particulier la justifie, documentée. La durée doit être appliquée automatiquement (rotation, suppression programmée), les journaux conservés à part, avec un accès restreint, et les salariés informés.
Tu avais trouvé ?