Ga naar inhoud

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:

sudo apt-get install auditd

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:

sudo auditctl -a <lijst>,<actie> -S <syscall> -F <filter>
  • 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:

sudo systemctl restart auditd

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:

sudo aureport -f -i --start today | grep /etc/passwd

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.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×