System Event Audit: Monitoring en beveiligingsanalyse¶
In dit artikel
Het waarborgen van de beveiliging en stabiliteit van een Linux-systeem vereist meer dan alleen het voorkomen van bedreigingen; het is essentieel om incidenten te detecteren en te onderzoeken. System audit blokkeert aanvallen niet, maar stelt u in staat om de inbreuk te registreren, de bron en het bereik ervan te identificeren en bewijsmateriaal samen te stellen voor analyse.
De belangrijkste audittool in de meeste distributies is de auditd-daemon. Deze houdt kerneloproepen (systeemoproepen) bij, registreert gebruikers- en procesacties en slaat gebeurtenissen op in gestructureerde logs.
Hoe auditd werkt¶
Het auditsysteem maakt verbinding met de kernel via triggers die afvuren bij het binnenkomen van een systeemoproep (entry) of het verlaten ervan (exit). Regels bepalen welke oproepen, bestanden, gebruikers of processen worden gemonitord. Alle vastgelegde gebeurtenissen worden geschreven naar /var/log/audit/audit.log.
Met auditd kunt u het volgende bijhouden:
- Starten/stoppen van het systeem en services
- Acties op kritieke bestanden zoals
/etc/passwd,/etc/shadow, SSH-configuraties, enz. - Wijzigingen in bestandsrechten, eigendom of attributen
- Aanmaken/verwijderen van bestanden, mappen en koppelingen
- In- en uitmounten van bestandssystemen
- Netwerkverbindingen en configuratiewijzigingen
- Acties van specifieke gebruikers of processen
Installatie en componenten¶
In CentOS/RHEL is het pakket audit standaard geïnstalleerd.
In Debian/Ubuntu installeert u het met:
Belangrijkste hulpprogramma's:
| Hulpprogramma | Doel |
|---|---|
auditctl | Auditregels en -status beheren (dynamische configuratie) |
ausearch | Logs doorzoeken op basis van verschillende criteria (gebruiker, bestand, syscall, enz.) |
aureport | Samenvattende rapporten genereren (op bestand, gebruiker, tijd, enz.) |
autrace | Systeemoproepen van een proces traceren (vergelijkbaar met strace, maar geïntegreerd met audit) |
De daemonconfiguratie staat in /etc/audit/auditd.conf (buffers, gedrag bij overloop, logrotatie, enz.). De standaardinstellingen zijn meestal geschikt voor de meeste scenario's.
Auditregels configureren¶
Regels kunnen dynamisch worden ingesteld via auditctl of statisch in /etc/audit/audit.rules.
Basis syntaxis:¶
-
Gebeurtenislijsten:
task— procesaanmaak
entry/exit— binnenkomst/vertrek van syscall (meest voorkomend)
user— gebeurtenissen in de gebruikersruimte
exclude— uitsluitingen -
Acties:
always— log de gebeurtenis
never— negeer -
Voorbeelden:
# Volg bestandsopeningen in /etc met schrijfwijzigingen of attribuutwijzigingen
sudo auditctl -a task,always -S open -F dir=/etc -F auid>=1000 -F perm=wa
# Dezelfde, maar eenvoudiger en effectiever voor bestanden/mappen
sudo auditctl -a task,always -S open -F dir=/etc -F perm=wa
# Specifiek bestand
sudo auditctl -a task,always -F path=/etc/passwd -F perm=wa
Opmerking
De filter -p wa betekent write (schrijven) en attribute (attribuut) wijzigingen.
Permanente regels — in /etc/audit/audit.rules¶
Het formaat komt overeen met auditctl-opdrachten, maar zonder de opdracht zelf:
# Voorbeeldregels (één per regel)
-a task,always -S open -F dir=/etc -F perm=wa
-a task,always -S open -F path=/etc/passwd -F perm=wa
Pas de wijzigingen toe na het bewerken van het bestand:
Loganalyse¶
Logs worden opgeslagen in /var/log/audit/. De belangrijkste hulpprogramma's zijn aureport en ausearch.
aureport — Samenvattingen en rapporten¶
# Rapport over bestandstoegang
sudo aureport -f
# Alleen de laatste 10 minuten (menselijk leesbare namen)
sudo aureport -f -i --start recent
# Samenvatting per bestand (hoe vaak elk is geopend)
sudo aureport -f --summary
# Rapport voor een specifieke periode
sudo aureport --start 08/20/2025 12:00 --end 08/20/2025 13:00 -f
# Handige tijdsmarkers: today, yesterday, this-week, recent, now
sudo aureport -f --start today --summary
Voorbeeld van het zoeken naar verdachte toegang:
ausearch — Gedetailleerde gebeurtenisanalyse¶
# Op gebeurtenis-ID (van aureport)
sudo ausearch -a 123456
# Op gebruiker (UID)
sudo ausearch -ui 1001 -i
# Op uitvoerbaar bestand
sudo ausearch -x /usr/bin/sudo -i
# Op systeemoproep
sudo ausearch -sc openat -i
# Op service (bijv. cron)
sudo ausearch -tm cron -i
# Met een tijdslimiet
sudo ausearch --start 08/20/2025 12:00 --end 08/20/2025 13:00 -f /etc/passwd
Opmerking
De vlag -i (of --interpret) vervangt UID/GID en syscall-codes door menselijk leesbare namen.