Collecter
Ingestion locale d'événements d'audit et d'états d'intégrité, sans publier les règles privées.
Pile SecOps locale: auditd, corrélateur, FIM, Secure Boot, sauvegarde, SSD, Waybar, Dunst, maintenance et rapports.
Ingestion locale d'événements d'audit et d'états d'intégrité, sans publier les règles privées.
Ajout du contexte: boot, maintenance paquets, hooks attendus, latence et état des services.
Séparation explicite entre menace active, événement de sécurité, maintenance et information.
Résumé compact dans l'interface locale, avec rapport détaillé disponible hors publication.
Les signaux bas niveau sont utiles mais bruyants. Les maintenances légitimes, les hooks de paquets et les changements d'intégrité attendus peuvent ressembler à une activité suspecte si le contexte n'est pas pris en compte.
Exemple dérivé du chantier post-update: les hooks paquets attendus passent en maintenance, mais un shell root hors contexte reste fort.
famille_evenement = execution hook paquet
exemples = systemd-hook, gtk-update-icon, detect-old-perl
correlation = maintenance_paquet_attendue
classification = maintenance
niveau = information
impact_compteur = exclu des menaces actives
meme_binaire_hors_maintenance
classification = execution_suspecte
niveau = eleve
La page publique montre l'effet opérationnel sans publier les journaux bruts.
avant nettoyage
statut = WARN
menaces = 16
maintenance = 39
integrité = diff paquets
après corrélation et revue de baseline
statut = OK
menaces = 0
maintenance = 0
intégrité = OK
Le format Waybar est publiable quand il ne contient ni chemin ni journal brut.
{
"text": "OK T0",
"class": "info",
"tooltip": "Menaces: 0 | Maintenance: 0 | Integrite: OK | Correlateur: ok"
}
Les commandes ci-dessous sont volontairement anonymisées: chemins, noms de machines, interfaces, dépôts, périphériques et actions destructrices sont remplacés par des placeholders.
<secops-status-script>
tail -n 30 <operator-state>/audit-security.log
tail -n 30 <operator-state>/audit-events.log
systemctl --user status <audit-correlator-service> --no-pager
systemctl status <audit-collector-service> --no-pager
OK T0 reste nominal
les maintenances attendues restent dans l'infobulle
l'état de santé est OK
le heartbeat du corrélateur est à jour
les événements d'information restent dans les journaux sans lever de menace active
<secops-status-script>
tail -n 30 <operator-state>/audit-events.log
<secops-report-script> 24
cat <secureboot-status-cache>
lire d'abord les événements d'audit, puis le rapport d'intégrité
le rapport montre les résumés critique / élevé / moyen
l'état Secure Boot est lu depuis le cache, pas interrogé interactivement
les événements critiques restent visibles même pendant la maintenance
<maintenance-helper> status
<maintenance-helper> on <short-duration> system-update
<package-integrity-check>
<repo-fim-check>
<system-fim-check>
<maintenance-helper> off 0 system-update-done
maintenance_paquet_attendue
verdict=action_admin_attendue
risk=maintenance
level=info
le score reste hors des menaces actives
un shell root arbitraire hors contexte reste exécution_suspecte / élevé
Les hooks de mise à jour ont été classés comme maintenance attendue lorsqu'ils correspondent à une transaction système légitime.
Les séquences root attendues au démarrage restent surveillées et sont reconnues même après une reprise retardée, sans autoriser un shell isolé.
Une fenêtre courte et bornée accompagne les transactions de paquets pour éviter de compter le bruit normal comme menace.
Le corrélateur consomme le spool dès le boot afin d'éviter qu'une ouverture de session rejoue plusieurs heures d'événements.
Supplément de documentation privée anonymisé
Référence publique du système Auditd & SecOps: architecture, règles, corrélations, instantanés d'incident, Waybar/Dunst, exploitation quotidienne, tests et reprise. Les chemins privés, règles complètes, scripts et journaux bruts sont anonymisés.
auditd est le système d'audit du noyau Linux. Il surveille les événements bas niveau: modifications fichiers, appels système, exécutions et changements de sécurité.
| Outil | Type | Portée |
|---|---|---|
| auditd | Surveillance noyau | Événements système bas niveau |
| journald | Journalisation systemd | Services et applications |
| SIEM complet | Corrélation multi-hôtes | Centralisation étendue |
Kernel Audit Framework
-> audit rules
-> ausearch événements récents
-> audit_correlator V2
ingestion + normalisation
classement + correlation
anti-spam + anti-rejeu
journaux structurés
instantanés d'incident
-> FIM + Secure Boot + Backup + SSD status
-> pilule Waybar unifiée
-> Dunst notifications
Comportement nominal: OK T0. Les maintenances attendues restent comptées dans l'infobulle et les journaux, sans allonger la pilule principale.
Repository public anonymisé:
scripts/audit/<AUDIT_RULES>
scripts/audit_correlator.sh
scripts/audit_notify.sh
scripts/audit-report.sh
dotfiles/systemd/user/<CORRELATOR_SERVICE>
dotfiles/waybar/scripts/secops-*.sh
dotfiles/dunst/<DUNST_CONFIG>
Runtime anonymisé:
<STATE_DIR>/audit-security.log
<STATE_DIR>/audit-events.log
<STATE_DIR>/audit-correlator.last_event_id
<STATE_DIR>/audit-correlator.heartbeat
<STATE_DIR>/audit-maintenance.log
<STATE_DIR>/incidents/
<SECUREBOOT_STATUS_CACHE>
<NVME_HEALTH_STATUS_CACHE>
pacman -S audit
systemctl enable auditd
systemctl start auditd
systemctl status auditd
pacman -S dunst libnotify
La page publique ne publie pas le fichier complet. Les familles surveillées sont:
install -Dm640 <REPO_AUDIT_RULES> <TARGET_AUDIT_RULES>
auditctl -D
augenrules --load
auditctl -l
auditctl -l | rg 'secureboot|apparmor|virtualization'
Le corrélateur lit uniquement les événements nécessaires avec une commande fixe et limitée.
<OPERATOR> ALL=(root) NOPASSWD: /usr/bin/ausearch -m SYSCALL\,PATH\,EXECVE -ts recent
visudo -cf <SUDOERS_AUSEARCH_FILE>
| Famille | Niveau public |
|---|---|
| shadow, sudo, bootloader, ld preload | critique |
| passwd | critique |
| cron, systemd root, sshd, pam, politique audit, firewall | élevé |
| persistance user/shell | moyen |
| résiduel contextualisé | information |
Sur critique, un instantané capture le contexte volatile: horodatage, scénario, hôte, noyau, uptime, interfaces, ports, processus, connexions et derniers journaux SecOps.
<STATE_DIR>/incidents/<TIMESTAMP>-critical-<SCENARIO>.log
| Niveau | Comportement |
|---|---|
| critique | Toujours notifié |
| élevé | Silencé pendant maintenance |
| moyen | Silencé pendant maintenance |
| information | Silencé pendant maintenance |
Waybar expose une pilule unifiée audit + intégrité. Dunst affiche les notifications selon criticité.
| Action | Effet |
|---|---|
| Clic gauche | Journal guidé |
| Clic milieu | Rapport guidé |
| Clic droit | Résolution guidée des diffs ou état détaillé |
text: OK T0
tooltip:
Audit C:H:M:I + maintenance
SecureBoot
Integrity
Backup
SSD
Correlateur
<SECOPS_REPORT_SCRIPT> 24
<AUDIT_REPORT_SCRIPT> 24
<AUDIT_REPORT_SCRIPT> 6
install -Dm640 <REPO_AUDIT_RULES> <TARGET_AUDIT_RULES>
auditctl -D
augenrules --load
install -Dm755 <REPO_CORRELATOR> <TARGET_CORRELATOR>
install -Dm644 <REPO_USER_SERVICE> <USER_SERVICE>
systemctl --user daemon-reload
systemctl --user restart <CORRELATOR_SERVICE>
Les intégrations Secure Boot, Waybar et Dunst suivent la même logique: source repo, cible runtime, reload explicite.
systemctl --user status <CORRELATOR_SERVICE> --no-pager
auditctl -l | rg '<CRITICAL_KEYS>'
tail -n 50 <STATE_DIR>/audit-security.log
tail -n 50 <STATE_DIR>/audit-events.log
tail -n 20 <STATE_DIR>/audit-maintenance.log
<SECOPS_STATUS_SCRIPT>
cat <SECUREBOOT_STATUS_CACHE>
cat <NVME_HEALTH_STATUS_CACHE>
Les commandes réelles de modification système et nettoyage post-tests ne sont pas publiées comme recette exécutable. Elles restent dans le runbook privé.
ausearch -k <AUDIT_KEY>
ausearch -ts recent -k <AUDIT_KEY>
ausearch -ua <USER>
ausearch -i -k <AUDIT_KEY>
aureport
aureport -f --start today
aureport -x
aureport -au --summary
-p wa.install -Dm640 <REPO_AUDIT_RULES> <TARGET_AUDIT_RULES>
auditctl -D
augenrules --load
auditctl -l | wc -l
echo '0' > <LAST_EVENT_ID_FILE>
systemctl --user restart <CORRELATOR_SERVICE>
systemctl --user status <CORRELATOR_SERVICE> --no-pager
systemctl --user restart <CORRELATOR_SERVICE>
journalctl --user -u <CORRELATOR_SERVICE> -f
auditctl -l
ausearch -ts recent -i
ausearch -k <AUDIT_KEY> -i
aureport -au --summary
tail -f <STATE_DIR>/audit-security.log
tail -n 50 <STATE_DIR>/audit-events.log
<SECOPS_STATUS_SCRIPT>