FreeBSD handboek
Terug | Hoofdstuk 17. Security Event Auditing | Volgende

# 17.5. Het audit subsysteem beheren.

## 17.5.1. Audit trails inzien

Audit trails worden opgeslagen in het BSM binaire formaat, dus ondersteunende programma's moeten worden gebruikt om de informatie te wijzigen of converteren naar tekst. Het praudit(1) commando converteert trail bestanden naar een simpel tekst formaat; het auditreduce(1) commando kan gebruikt worden om de audit trail te reduceren voor analyse, archivering of voor het uitprinten van de data. `auditreduce` ondersteund een variateit aan selectie parameters, zoals evenement type, evenement klasse, gebruiker, datum of tijd van het evenement en het bestandspad of object dat gebruikt wordt.

Bijvoorbeeld, het `praudit` programma zal een dump maken van de volledige inhoud van een gespecificeerd audit log bestand in normale tekst:

    # praudit /var/audit/AUDITFILE

Waar ``AUDITFILE`` het audit bestand is dat ingelezen moet worden.

Audit trails bestaan uit een serie van audit records die gevormd worden door tokens, welke `praudit` sequentieel print één per regel. Elke token is van een specifiek type, zoals een `header` welke de audit record header bevat, of `path` welke het bestandspad bevat van een lookup. Het volgende is een voorbeeld van een `execve` evenement:

    header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
    exec arg,finger,doug
    path,/usr/bin/finger
    attribute,555,root,wheel,90,24918,104944
    subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
    return,success,0
    trailer,133

Deze audit representeert een succesvolle `execve` aanroep, waarbij het commando `finger doug` is aangeroepen. Het argument token bevat beide commando's gerepresenteerd door de shell aan de kernel. Het `path` token bevat het pad naar het uitvoerbare bestand zoals opgezocht door de kernel. Het `attribute` token beschrijft de binary en om precies te zijn bevat het de bestands mode welke gebruikt kan worden om te zien of het bestand setuid was. Het `subject` token beschrijft het onderwerp proces en bevat sequentieel het audit gebruikers ID, effectieve gebruikers ID en groep ID, echte gebruikers ID, groep ID, proces ID, sessie ID, port ID en login adres. Let op dat het audit gebruikers ID en het echte gebruikers ID van elkaar verschillen omdat de gebruiker `robert` veranderd is naar de `root` gebruiker voordat het commando werd uitgevoerd, maar welke geaudit wordt als de originele geauthoriseerde gebruiker. Als laatste wordt de `return` token gebruikt om aan te geven dat er een succesvolle uitvoer is geweest en `trailer` geeft het einde aan van het record.

In FreeBSD 6.3 en later ondersteund `praudit` ook een XML output formaat, welke geselecteerd kan worden door gebruik te maken van het `x` argument.

## 17.5.2. Het reduceren van audit trails

Omdat audit logs erg groot kunnen worden, zal de beheerder waarschijnlijk een subset van records willen selecteren om te gebruiken, zoals records die gekoppeld zijn aan een specifieke gebruiker:

    # auditreduce -u trhodes /var/audit/AUDITFILE | praudit

Dit selecteert alle audit records die geproduceert zijn voor de gebruiker `trhodes` die opgeslagen is in het ``AUDITFILE`` bestand.

## 17.5.3. Delegeren van audit onderzoek rechten

Leden van de `audit` groep krijgen permissie om de audit trails te lezen in `/var/audit`; standaard is deze groep leeg en kan alleen de `root` gebruiker deze audit trails lezen. Gebruikers kunnen toegevoegd worden aan de `audit` groep zodat onderzoek rechten kunnen worden gedelegeerd aan de geruiker. Omdat de mogelijkheid van het inzien van audit log inhoud significante inzicht kan geven in het gedrag van gebruikers en processen, wordt het aangeraden dat de delagatie van onderzoek rechten eerst goed overdacht wordt.

## 17.5.4. Live monitoren door gebruik van audit pipes

Audit pipes zijn gecloonde pseudo-devices in het device bestands systeem, welke applicaties toestaat om een tap te plaatsen in de live audit record stream. Dit is primair interessant voor schrijvers van intrusion detection en systeem monitoring applicaties. Echter, voor een beheerder is het audit pipe device een makkelijke manier om live monitoring toe te staan zonder dat er problemen kunnen ontstaan met het eigenaarschap van het audit trail bestand, of dat een log rotatie de evenementen stroom in de weg zit. Om de live audit evenementen stroom te kunnen inzien is het volgende commando benodigd:

    # praudit /dev/auditpipe

Standaard zijn de audit pipe device nodes alleen toegankelijk voor de `root` gebruiker. Om deze toegankelijk te maken voor leden van de `audit` groep, moet een `devfs` regel toegevoegd worden aan het `devfs.rules` bestand:

    add path 'auditpipe*' mode 0440 group audit

Zie devfs.rules(5) voor meer informatie over het configureren van het devfs bestands systeem.

> WaarschuwingHet is makkelijk om audit evenement terugkoppeling cyclussen te creëeren, waarbij het tonen van elk audit evenement resulteert in het genereren van nog meer audit evenementen. Bijvoorbeeld, als alle netwerk I/O wordt geaudit en praudit(1) wordt gestart vanuit een SSH sessie, wordt er een grote continue stroom aan audit evenementen gegenereert doordat elk getoond evenement een nieuw evenement genereert. Het is verstandig om `praudit` te draaien op een audit pipe device voor sessies zonder diepgaande I/O auditing om te voorkomen dat dit gebeurd.

## 17.5.5. Het roteren van audit trail bestanden

Audit trails worden alleen beschreven door de kernel en alleen beheerd worden door de audit daemon, auditd. Beheerders mogen geen gebruik maken van newsyslog.conf(5) of soortgelijke programma's om de audit files te roteren. In plaats daarvan kan het `audit` management programma gebruikt worden om auditing te stoppen, het audit systeem te herconfigureren en log rotatie uit te voeren. Het volgende commando zorgt ervoor dat de audit daemon een nieuwe audit log maakt, en vervolgens de kernel een signaal stuurt om het nieuwe logbestand te gaan gebruiken. Het oude logbestand wordt getermineerd en hernoemd, waarna het bestand gemanipuleerd kan worden door de beheerder.

    # audit -n

> WaarschuwingAls de auditd daemon op dit moment niet actief is, zal het commando falen en zal er een error bericht worden geproduceerd.

Als de volgende regel wordt toegevoegd aan het `/etc/crontab` bestand, zal er elke twaalf uur een rotatie plaatsvinden door middel van cron(8):

    0     */12       *       *       *       root    /usr/sbin/audit -n

Deze wijziging wordt van kracht op het moment dat het nieuwe `/etc/crontab` bestand wordt opgeslagen.

Automatische rotatie van het audit trail bestand gebaseerd op de bestand grootte is mogelijk via de `filesz` optie in audit_control(5) en wordt beschreven in de configuratie bestanden sectie van dit hoofdstuk.

## 17.5.6. Audit trails comprimeren

Omdat audit trail bestanden erg groot kunnen worden, is het meestal gewenst om de trails te comprimeren of op een andere manier te archiveren zodra ze afgesloten zijn door de audit daemon. Het `audit_warn` script kan gebruikt worden om bewerkte operaties te doen voor een variateit aan audit gerelateerde evenementen inclusief een nette terminatie van audit trails wanneer deze geroteerd worden. Bijvoorbeeld het volgende kan worden toegevoegd aan het `audit_warn` script, dat de audit trails comprimeert zodra ze afgesloten worden:

    #
    # Compress audit trail files on close.
    #
    if [ "$1" = closefile ]; then
            gzip -9 $2
    fi

Andere archiverings activiteiten kunnen zijn het kopieren van trail bestanden naar een gecentraliseerde server, het verwijderen van oude trail bestanden of het reduceren van de audit trail om onnodige records te verwijderen. Het script zal alleen draaien als audit trail bestanden netjes worden afgesloten, wat betekend dat het script niet uitgevoerd wordt op trails die niet netjes afgesloten zijn, waardoor bestanden corrupt kunnen raken.

Terug | Begin | Volgende
Audit Configuratie | Omhoog | Opslag

Deze en andere documenten kunnen worden gedownload van ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Lees voor vragen over FreeBSD de documentatie alvorens contact te zoeken <questions@FreeBSD.org>.
Vragen over deze documentatie kunnen per e-mail naar <doc@FreeBSD.org>.