Installazione e utilizzo dell'addons Guardian
Guardian è un addons che è in grado di rilevare e prevenire attacchi di forza bruta contro l'interfaccia web e il servizio SSH di IPFire.
Monitorando diversi file all'interno del sistema, il servizio di Guardian, analizza ogni dispositivo che tenta una connessione al nostro firewall tramite servizio SSH o all'interfaccia web e sulla base del numero di tentativi di login non andati a buon fine (parametro configurabile con un minimo di 3), crea dinamicamente una regola iptables che elimina o blocca, il traffico proveniente dall'indirizzo IP richiedente per un periodo che di default è 24 ore (86400 secondi).
Installazione di Guardian
L'installazione avviene tramite Packfire, selezionando semplicemente l'addons "Guardian".
Una volta installato il pacchetto con le relative dipendenze, vi troverete sulla GUI Web di IPFire una voce nuova sul menù:
Il link "Guadian", permette di accedere alla schermata di configurazione del servizio.
La configurazione è molto semplice e funziona già con i valori di default, basta abilitare il servizio:
Come è intuibile capire vi è la possibilità di scegliere se proteggere il servizio web(httpd), quello SSH o entrambi.
Per i log è possibile scegliere tra diverse opzioni, per i test ho preferito scegliere su file, così da poter analizzare facilmente le azioni di Guardian.
Stesso discorso vale per il livello di log, nel nostro caso ho scelto Debug.
Le azioni che Guardian può intraprendere tramite iptable sono due, vi è la possibilità di scegliere se effettuare il Drop del traffico dell'IP bloccato, quindi IPFire scarterà il traffico proveniente da quel determinato IP o bloccarlo completamente. Ovviamente quello che cambia è la risposta che riceve il client che vuole connettersi.
Le altre due opzioni sono Strike Threshold, cioè dopo quanti tentativi deve intraprendere l'azione Guardian e la durata dell'azione intrapresa (Block Time), espressa in secondi.
Oltre alle impostazioni, su questa stessa pagina è possibile impostare eventuali esclusioni (indirizzi IP da escludere), la lista di quelli bloccati e la possibilità di sbloccarli prima che il Block Time rilasci nuovamente l'IP bloccato:
Come è facile notare il blocco avviene a livello IP, quindi se l'attaccante cambiasse il proprio, ogni 2 tentativi, il sistema non attiverebbe mai la regola su iptables, ma comunque rallenterebbe in modo esponenziale la velocità di attacco del brute force.
Attacco a Forza Bruta
La maggior parte degli attacchi a forza bruta (brute force), viene eseguita effettuando ciclicamente dei tentativi di autenticazione, prendendo le possibili password da una raccolta "word lists". Questa tipologia di attacco viene chiamata anche attacco a dizionario, proprio perché questi file contendono migliaia di password formate da parole più o meno complesse, spesso provenienti anche da leaks che sono stati resi pubblici.
Una volta scelto il dizionario che desideriamo, provvederemo a eseguire il vero e proprio attacco.
Guardian un guardiano efficiente
Per il nostro test ho scelto di utilizzare Hydra semplice ma potente tool utilizzato per gli attacchi a forza bruta, che permette di scegliere il dizionario e come bersaglio il servizio SSH di IPFire:
Hydra eseguirà come da nostre istruzioni l'attacco sulla porta 22 (SSH) del nostro firewall, utilizzando l'utente root e verificando se la password del nostro sistema è presente nel file dizionario (in questo caso rockyou.txt) eseguendo contemporaneamente 4 tasks paralleli.
Il servizio guardian che si trova a difesa della porta SSH entra in azione al terzo tentativo sbagliato di Hydra, bloccando l'IP di provenienza dell'attaccante:
Una volta che l'IP dell'attaccante viene bloccato resterà in questo stato fin quando il BlockTime scade o viene manualmente rilasciato:
Accorgimenti e considerazioni
Importanti sono gli accorgimenti da prendere: esporre i servizi di monitoraggio (web e SSH) solo sull'interfaccia GREEN, utilizzare password complesse e per il servizio SSH, utilizzare una porta differente da quella standard (es. SSH porta 222).
Sui test effettuati il nostro guardian ha lavorato in modo semplice ed efficace bloccando i nostri tentativi di brute force. Il servizio non pesa sulla configurazione. Nel caso in cui si utilizzano sistemi di monitoraggio degli apparati di rete (Es. Nagios) è importante per evitare falsi positivi configurare bene le dovute esclusioni.
Per la documentazione ufficiale vi invito a consultare il wiki presente sul sito di ipfire