
Les journaux Linux sont une ressource vitale pour détecter les intrusions, diagnostiquer les incidents et surveiller le bon fonctionnement d’un SI. Ce guide avancé propose une approche systémique combinant journald
, rsyslog
, logrotate
, Logstash
, Falco
, AIDE
et détection comportementale en temps réel.
1. Extraction ciblée multi-critères avec journalctl
journalctl -p err -u sshd -S -1h --output json-pretty | jq 'select(.MESSAGE | test("fail|denied"; "i"))'
Combine gravité, unité, date et mot-clé pour isoler les événements suspects (fail2ban, brute-force SSH…)
2. Détection comportementale avec Falco
apt install -y falco
systemctl start falco
cat /etc/falco/falco_rules.yaml | grep -A 10 "Write below etc"
Surveille les actions non conformes (ex : exécution de binaire dans /tmp, accès root non attendu, modification de /etc/…)
3. Corrélation d’événements multiples (log + processus)
ausearch -x /usr/bin/passwd --start today | aureport -x --summary
Associe les appels système, les événements d’audit et les journaux pour une vision complète de l’activité utilisateur.
4. Vérification d’intégrité avec AIDE
apt install aide
aideinit
diff /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
Compare les hashes des fichiers critiques entre deux scans pour détecter une compromission silencieuse.
5. Envoi conditionnel d’alertes vers SIEM
if grep -q "segfault" /var/log/syslog; then
logger -p auth.warning "Segfault détecté sur $(hostname)";
fi
Remonte automatiquement des alertes spécifiques vers rsyslog ou une passerelle Syslog/NXLog vers le SIEM.
6. Parsing structuré et enrichi avec Logstash
filter {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:host} %{DATA:program}: %{GREEDYDATA:msg}" }
}
date { match => ["timestamp", "MMM d HH:mm:ss"] }
geoip { source => "host" }
}
Ajoute un contexte enrichi aux logs (géolocalisation, date formattée, programme source) pour Kibana ou Elastic.
7. Journaux kernel et sécurité avancée
dmesg --ctime | grep -E "(segfault|audit|apparmor|selinux)"
auditctl -l
ausearch -k pam_auth
Analyse des messages noyau liés à la sécurité et audit de modules sensibles (PAM, AppArmor, SELinux, LSM).
8. Rotation conditionnelle et archive chiffrée
/etc/logrotate.d/secure_logs
{
weekly
size 100M
rotate 4
postrotate
/usr/bin/gpg -r [email protected] -e /var/log/auth.log
endscript
}
Chiffre automatiquement les journaux critiques après rotation pour conformité RGPD ou PCI-DSS.
9. Alerte comportementale sur fichiers sensibles
inotifywait -m -e modify,attrib,delete,create /etc/passwd | while read line; do
echo "[ALERTE FICHIER] $line" | mail -s "/etc/passwd modifié" [email protected];
done
Surveillance en temps réel de la modification de fichiers sensibles du système (passwd, shadow, sudoers…)
10. Export sécurisé de logs vers cloud ou SIEM
*.* @@logs.mon-siem.fr:6514;RSYSLOG_SyslogProtocol23Format
\$DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-certificates.crt
\$ActionSendStreamDriverMode 1
\$ActionSendStreamDriverAuthMode anon
Transfert sécurisé de journaux structurés (RFC5424) vers un agrégateur cloud distant ou SIEM d’entreprise.
Conclusion
Une stratégie de supervision avancée doit articuler collecte, analyse, enrichissement, alerte et traçabilité. En intégrant journaux système, audit, surveillance en temps réel, corrélation et centralisation, un SOC Linux peut détecter précocement les intrusions, respecter la conformité, et réduire considérablement le temps moyen de détection (MTTD).