SSH sta per Secure SHell ed è il protocollo utilizzato per stabilire connessioni cifrate tra diversi sistemi. Usare una connessione cifrata è uno dei motivi per cui viene normalmente preferito al più anziano telnet. SSH consente l’autenticazione sia mediante username e password che via chiave pubblica. Utilizzare la coppia user/password su sistemi in cui alcuni nomi utente esistono pressoché di sicuro, vuol dire che prima o poi qualcuno proverà ad autenticarsi indovinando la password. Quanti utenti root con password predicibile esistono in giro? Troppi. Quanti utenti Administrator?
Se si ha a che fare con sistemi con una gestione password dignitosa, è necessario effettuare tanti tentativi. Così facendo si genera un fastidioso rumore e molti sistemi sono configurati per bloccare automaticamente i tentativi di accesso su un certo protocollo quando si fallisca l’autenticazione più di un certo numero di volte, in un certo intervallo di tempo e da un certo indirizzo. Si tratta di una correlazione di eventi piuttosto semplice ed efficace ottenibile in diversi modi (magari usando un software specifico sul server bersaglio che dialoghi con il firewall, oppure attraverso un IPS, Intrusion Prevention System).
Che cosa può fare chi voglia comunque tentare un attacco di forza bruta senza far scattare i meccanismi che riconoscano l’attacco? Per esempio creare Hail Mary Cloud, una botnet così sintetizzata da Peter N. M. Hansteen, That Grumpy BSD Guy:
The most remarkable of these botnets is the one that tries to avoid detection by distributing the password guessing for any target across a large number of hosts, so each guesser never shows high enough rates of activity to trigger any of the traditional bruteforce detection mechanism.
Se sul vostro sistema Linux non consentite all’utente root di connettersi via ssh, utilizzate una porta diversa da quella standard e magari disabilitate l’autenticazione interattiva preferendo quella per chiave pubblica, un simile attacco non ha alcuna chance (come molti altri!). Se proprio non potete fare a meno dell’autenticazione interattiva (user/password) e della porta standard, almeno non permettete a root di accedere, utilizzate password non presenti nei dizionari utilizzati per gli attacchi di questo genere e sappiate che il tempo gioca a vostro favore: visti i tempi necessari per completare l’attacco vi accorgerete delle anomalie abbastanza in fretta.
Nella sopravvivenza nel tempo di questa botnet c’è un perseverare molto umano verso il perfezionamento di una tecnica destinata a fallire miseramente nella maggior parte dei casi. Un simile sforzo di coordinamento e manutenzione meriterebbe ben altro (e possibilmente qualcosa di lecito!).