Why is it possible for the root user to delete the logs?
Perché devi essere in grado di gestire il server.
Whats stopping a hacker with root access from deleting the logs in order to cover their tracks?
Per quanto riguarda la registrazione locale, solo la loro stupidità. Per quanto riguarda la registrazione esterna, il loro set di abilità e il tuo.
Ci sono molti, molti modi diversi per "accedere". In effetti, si potrebbe fare in modo che il log della macchina di root si colleghi a un dispositivo nascosto separato che non può essere facilmente sovrascritto, come un logger raspberry pi / arduino, di cui ne ho alcuni.
In Linux, si suppone che root sia in grado di fare praticamente tutto. In Windows, si applica lo stesso concetto; se hai accesso root a una macchina, sarai in grado di fare quasi tutto ciò che vuoi su quella macchina, che include l'eliminazione dei log.
È inoltre possibile registrare tutte le connessioni su una determinata macchina, soprattutto se non si prevede che venga "acceduta" in primo luogo.
Come scopriresti cosa sta succedendo e come lo eludere?
Ecco un modo per trovare tutte le modifiche negli ultimi 120 minuti:
find / -mmin -120 -printf '%p\t%a\n'
Bello, eh? Gotcha, hacker! Mwahahaha ... ma puoi cambiare questi attributi se sai cosa stai facendo, in questo modo:
touch -d "24 hours ago" <file>
Peggio ancora, automatizzandolo:
find / -print | while read file; do
touch -d "$(date -r "$file") - 24 hours" "$file"
done
Ma aspetta, Mark Hulkalo! Se tutti i file sono stati modificati l'ultima volta 24 ore fa, ciò dimostra chiaramente che abbiamo un haxor! È vero, ma puoi anche applicare $RANDOM
dove 24 esiste. Ecco un esempio di un numero compreso tra 1 e 24: $((RANDOM % 10) + 1)
. Ora non sembra così facile da scoprire, vero?
E se tutti i file fossero così, specialmente i file che non dovrebbero essere modificati? Limita l'ambito a una determinata directory, ad esempio /root
. Esistono molti modi per mascherare la tua presenza localmente.
A meno che l'attaccante non dimentichi di pulire ~/.bash_history
, starai volando alla cieca. In realtà, se l'unica "registrazione" che hai è ~/.bash_history
, allora sei nei guai se il tuo aggressore è almeno moderatamente intelligente. Questo può essere cancellato su ogni account utente con estrema facilità, così da avere le autorizzazioni appropriate.
È molto più facile registrare le voci da qualche parte che non saranno facilmente rilevate o modificate, come un dispositivo esterno. Mentre è possibile usare la scientifica per recuperare le impronte degli attaccanti, è molto, molto facile da aggirare se sai cosa stai facendo. Questo è il motivo per cui il logging esterno è una soluzione molto migliore.
E questa è la ragione per cui il logging esterno è generalmente la risposta ... tieni presente che ci sono anche modi per aggirare il logging esterno. Nulla è mai sicuro al 100%; puoi rendere più difficile per il tuo aggressore, non impossibile.