Mówi się, że żaden system nie jest tak naprawdę bezpieczny, jeśli nie jest audytowany. Jest w tym stwierdzeniu sporo prawdy. Właśnie ta metoda zabezpieczeń często pomaga ustalić, co było przyczyną awarii, jeśli już się zdarzy; jeśli system zostanie zaatakowany, istnieje spora szansa, że będzie możliwe ustalenie adresu IP komputera, z którego nastąpił atak, czasu zdarzenia, jego rodzaju, tego, czy atak się udał, a być może nawet tożsamości sprawcy.
Dlatego też w zdecydowanej większości wypadków celowe jest włączenie audytu (a w wypadku komputera pracującego jako serwer to w zasadzie konieczność). Właściwie jedyna sytuacja, w której można to pominąć, ma miejsce wtedy, gdy komputer jest przez cały czas lub większość czasu odcięty od świata zewnętrznego.
Audyt polega na zapamiętywaniu historii pewnych zdarzeń. Zdarzenia te obejmują najczęściej próby logowania do systemu (zarówno udane, jak i nieudane), uruchamianie programów przez użytkowników, wykorzystywanie uprawnień użytkowników (zmiana czasu systemowego, zmiana hasła...), zdarzenia systemowe takie jak restart i zamknięcie, zarządzanie użytkownikami.
Do systemów, które standardowo udostępniają takie możliwości, należą między innymi: wszelkie Uniksy, Windows linii NT (NT/2000/XP), Mac OS X, VMS od wersji 4.2.
W Uniksach mamy do czynienia z kilkoma procesami działającymi w tle, uruchamianymi typowo przy starcie systemu i logującymi zdarzenia do plików. Poniżej znajduje się krótki opis tych usług.
POLECENIE | PLIK(I) | ZAWARTOŚĆ |
who | wtmp, utmp | nazwy użytkowników, terminale, czasy zalogowania |
last | wtmp | nazwy użytkowników, terminale, zalogowania, wylogowania |
acctcom (System V) | /usr/adm/acct lub /var/adm/pacct | polecenia, czasy uruchomienia/zakończenia wykonania, czas procesora itd. |
lastcomm (BSD i pochodne) | jak acctcom | ostatnio wykonane polecenia (w odwróconej kolejności |
whodo (System V) | utmp, wtmp | to, co zwraca who + ps |
sa (BSD i pochodne) | ||
ac (BSD) | wtmp | dane o zalogowaniach/wylogowaniach |
ps | różne pliki w /dev, /proc i inne, zależnie od rodzaju Uniksa | bieżące procesy |
reszta | różnie | zależnie od rodzaju Uniksa |
Inną usługą jest syslog - pozwala administratorowi na logowanie komunikatów systemowych do różnych plików. Należy ustawić, co ma być logowane, w pliku konfiguracyjnym /etc/syslog.conf. Można ustawić priorytet komunikatów, które mają być logowane - jeden z następujących (wymienione w kolejności malejącego priorytetu i wzrastającego rozmiaru logów): emerg, alert, crit, err, warning, notice, info, debug.
Można również ustawić, jakie zdarzenia mają być logowane. Dostępne rodzaje zdarzeń to:
Syslog potrafi też wysyłać logi odpowiednich zdarzeń do wskazanych osób.
Domyślnie audyt jest wyłączony. Aby go włączyć, należy w Start|Programs|Administrative Tools| User Manager lub User Manager for Domains (zależnie od wersji WinNT) w zakładce Auditing ustawić odpowiednie zdarzenia. Grupy zdarzeń są podobne jak w Uniksie i zawierają m.in. następujące zdarzenia: