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.
praudit
ook een XML output formaat,
welke geselecteerd kan worden door gebruik te maken van het
x
argument.
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.
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.
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.
Het 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.
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
Als 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.
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.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.