Chiunque abbia un minimo di esperienza nel mettere a punto server rivolti verso Internet conosce bene la quantità di scan e di attacchi automatizzati che si possono ricevere in brevissimo tempo.
Molti scanner non sono sofisticati e si limitano a cercare porte ssh aperte, tentare un bruteforce e, in caso di successo, passare il controllo ad un attaccante umano.
In questo contesto si colloca Kippo: un honeypot che simula un server ssh vulnerabile il cui obiettivo è quello di impegnare un attaccante e registrarne i movimenti.
Kippo nel tempo si è guadagnato una certa popolarità dovuta alla sua semplicità d'uso, portabilità e al fatto che permette di riprodurre i log degli attacchi registrati.
Installazione
Kippo è programmato in Python e si basa sul framework Twisted, è necessario quindi un interprete python almeno alla versione 2.5.
I requisiti sono i seguenti:
- Python 2.5+
- Twisted 8.0+
- PyCrypto
- Zope Interface
È installabile su qualsiasi sistema operativo, di seguito faremo riferimento ad un sistema Linux generico (per installare su Windows potete consultare la wiki ufficiale).
Le librerie possono essere comodamente installate tramite pip
(o easy_install
):
pip install twisted pycrypto pyasn1
Una volta installati i requisiti scarichiamo l'ultima versione (0.5 al momento della stesura di questo articolo) e decomprimiamo il pacchetto.
Prima di mettere in esecuzione la honeypot occorre configurarla agendo sui parametri nel file kippo.cfg
.
Le principali opzioni sono le seguenti:
ssh_addr
: l'indirizzo dell'interfaccia su cui vogliamo mettere kippo in ascolto (di default su tutte)ssh_port
: il numero di portapassword
: la password per collegarsi alla honeypot, di default è123456
che statisticamente è la password più comune che si può trovare. Se impostiamo una password difficile rischiamo di far fallire un attacco brute force![database_mysql]
: parametri per loggare tutta l'attività di kippo su un db mysql. Di default questa opzione non è attiva.
Su Linux per motivi di sicurezza kippo non può essere eseguita come root e quindi non può mettersi direttamente in ascolto sulle porte basse del sistema (< 1024) tra cui anche quella di default del server ssh (la porta 22).
Per reindirizzare la porta 22 sulla porta in cui abbiamo messo in ascolto la honeypot dobbiamo impostare un reindirizzamento con il firewall di sistema. L'impostazione corretta dipende dal firewall che state usando sul vostro server e dalla tipologia della rete.
Ad esempio con iptables:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 22 -j REDIRECT --to-port 2222
Riprodurre gli attacchi registrati da Kippo
Una volta completati i passaggi precedenti non ci resta che mettere in esecuzione:
./start.sh
Kippo rimane in esecuzione in background e... aspetta che qualche attaccante si faccia vivo.
Quando finalmente riusciremo a registrare un attacco (e solitamente è questione di solo poche ore!) l'honeypot si occuperà di registrare ogni movimento.
Nella cartella log/
verranno salvati i log interattivi delle sessioni registrate e in dl/
verranno salvati i file e gli eseguibili che gli ignari attaccanti tenteranno di scaricare sul server (di solito rootkit, malware generici, etc)
Il divertimento, una volta collezionati un po di log interattivi, è quello di riprodurli con il playlog
che è una utilità che permette di riprodurre i log come se fossero un video.
Il programma si trova nella cartella utils/
, per eseguirlo (da linea di comando):
python playlog.py /path/to/xxx.log
Un esempio di log:
Visualizzare i log può essere molto educativo ma altrettanto interessante può essere anche dare un'occhiata ai campione di malware che riusciamo a raccogliere (di solito è questo il princiaple motivo d'essere di una honeypot).
Per ottenere più informazioni sui campioni raccolti è possibile cimentarsi in un'analisi manuale oppure utilizzare servizi online come VirusTotal.
Statistiche
Quando si ha una honeypot funzionante a pieno regime può risultare scomodo controllare periodicamente i log per capire il numero di attacchi ricevuti, la durata e altre informazioni utili.
Per facilitarci le cose possiamo affidarci a un programma come Kippo Graph che si occupa di generare statistiche dettagliate e farci risparmiare del tempo prezioso.
Conclusioni
Il mondo degli honeypot è vasto e affascinante. Se desiderate approfondire l'argomento, o provare honeypot differenti c'è un solo sito da consultare ed è quello ufficiale della fondazione Honeynet