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
easy_install
pip install twisted pycrypto pyasn1
Una volta installati i requisiti scarichiamo l'ultima versione
Prima di mettere in esecuzione la honeypot occorre configurarla agendo sui parametri nel file kippo.cfg
Le principali opzioni sono le seguenti:
ssh_addr
ssh_port
password
123456
difficile[database_mysql]
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:
Kippo rimane in esecuzione in background e... aspetta che qualche attaccante si faccia vivo.
Quando finalmente riusciremo a registrare un attacco
Nella cartella log/
dl/
Il divertimento, una volta collezionati un po di log interattivi, è quello di riprodurli con il playlog
riprodurre i log come se fossero un video
Il programma si trova nella cartella utils/
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
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.
Figura 1. Kippo Graph
(clic per ingrandire)
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