Opgave 27 - Audit af en fil for ændringer¶
🎯 Formålet med øvelsen¶
Formålet med denne øvelse er at give en introduktion til, hvordan audit-regler kan konfigureres med auditd.
Auditd giver mulighed for at overvåge kritiske systemfiler og registrere ændringer, som kan være relevante for sikkerhed og compliance.
I denne øvelse lærer du at opsætte audit-regler både midlertidigt og permanent samt at analysere de loggede hændelser.
📌 Information¶
For at definere begivenheder, der udløser en audit log, skal man opsætte en auditregel. Dette kan gøres på to måder:
1. Dynamisk ved at tilføje reglen via værktøjet auditctl.
2. Permanent ved at tilføje reglen i konfigurationsfilen /etc/audit/rules.d/.
I denne øvelse lærer du at opsætte begge typer regler og analysere audit-logs.
🛠️ Instruktioner¶
⚠️ Brug af generative AI’er i undervisningen¶
Følgende tilgang må kun bruges i undervisningen (Aldrig i en virksomhed).
Generative AI’er, såsom ChatGPT, kan være nyttige til at analysere logfiler i en læringskontekst. Hvis du er i tvivl om outputtet af en audit-log, kan du prøve at bruge en generativ AI til at få en forklaring.
Eksempel på en forespørgsel til en AI:
Jeg brugte denne kommando: <Kommando>.
Jeg fik dette svar: <Log output>.
Kan du forklare, hvad dette betyder?
I en virksomhedsmæssig kontekst må du aldrig indsætte interne logfiler eller følsomme data i en generativ AI, da dette kan bryde virksomhedens sikkerhedspolitikker og føre til datalæk.
Brug derfor kun denne metode i læringsøjemed her på uddannelsen.
🔹 Tilføj auditregel med auditctl¶
- Opret en auditregel, der overvåger ændringer og skrivninger til filen
/etc/passwd, med kommandoen:
Forklaring:
- -w står for "where" og angiver den fil, der skal overvåges.
- -p står for "permissions" og definerer, hvilke handlinger der skal overvåges (wa = write + attribute ændringer).
- -k tildeler en nøgle (key), der gør det lettere at søge efter relaterede hændelser.
- Udskriv en rapport over loggede hændelser med:
Forklaring:
- -i betyder "interpret" og oversætter numeriske værdier (fx bruger-ID) til læsbare navne.
- -k filtrerer loggen baseret på den tidligere definerede nøgle.
Rapporten viser hændelser i formatet: Dato/tid, key, succes-status, udførende proces (bruger, process-id osv.).
- Opret en ny bruger med
useradd. Dette vil tilføje en ny linje i/etc/passwd, da brugeroplysninger gemmes her. - Udskriv loggen igen med
aureport -i -k | grep user_changeog verificér, at der nu er to nye rækker i rapporten (én for skrivning til filen og én for ændring af metadata). - Brug
ausearchtil at analysere hændelserne mere detaljeret:
Dette giver en mere detaljeret logvisning, men kan også være mere uoverskueligt.
🔹 Tilføj auditregel med konfigurationsfilen¶
Auditctl-regler er ikke persistente, hvilket betyder, at de forsvinder ved en genstart. For at gøre reglerne permanente, skal de gemmes i /etc/audit/rules.d/.
- Åbn filen
/etc/audit/audit.rules. Den bør se ud som vist nedenfor:
Denne fil bliver indlæst ved opstart af auditd og indeholder alle aktive audit-regler.
Bemærk: Øverst i filen står der, at den autogenereres ud fra /etc/audit/rules.d/.
- Opret en ny fil med den aktuelle auditregel ved at køre:
Vigtigt! Reglen fra den tidligere sektion skal stadig være aktiv. Kontrollér dette med auditctl -l inden du fortsætter.
-
Genstart auditd med:
-
Udskriv indholdet af
/etc/audit/audit.rules, som nu bør indeholde den nye regel:
-
Tilføj en ny bruger med
useradd, og verificér, at reglen fungerer ved at kontrollere, om ændringer i/etc/passwdregistreres. -
Slet filen
/etc/audit/rules.d/custom.rulesefter øvelsen og genstart auditd.
🔹 Overvågning af en tekstfil¶
Auditd kan også bruges til at overvåge ændringer i almindelige tekstfiler. Dette kan være nyttigt for at sikre filintegritet og spore, hvem der har foretaget ændringer.
-
Opret en fil med noget tekst:
-
Konfigurer Auditd til at overvåge filen:
-
Tilføj noget tekst til filen:
-
Verificér, at ændringen er blevet registreret i audit-loggen:
🤔 Refleksioner¶
Overvej følgende spørgsmål efter at have gennemført øvelsen:
- Hvordan kan auditd hjælpe med at opdage uautoriserede ændringer i systemfiler?
- Hvilke typer af filer eller systemområder ville være kritiske at overvåge i en produktionsserver?
- Hvordan kan AuditD integreres med F.eks. Wazuh?
📁 Auditd vs. Sysmon¶
Hvis du har arbejdet med sikkerhedslogning på Windows, kender du måske Sysmon. Det fungerer på samme måde som auditd, men er designet til Microsoft-systemer.
| Funktion | Auditd (Linux) | Sysmon (Windows) |
|---|---|---|
| Platform | Linux | Windows |
| Overvåger filer? | Ja, filændringer og adgang | Ja, filændringer |
| Overvåger processer? | Ja, systemkald og processkabelse | Ja, detaljeret procesovervågning |
| Overvåger netværk? | Begrænset, kræver ekstra moduler | Ja, registrerer netværksforbindelser |
| Logdestination | /var/log/audit/audit.log |
Windows Event Log |
| SIEM-integration | Ja (ELK, Splunk, Wazuh) | Ja (Splunk, ELK, Defender ATP) |