Kippo è un honeypot SSH che permette di loggare tentativi di attacco da parte di cracker e i comandi impartiti alla shell una volta penetrati nel nostro server.
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 porta
password: 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.
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.
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
Se vuoi aggiornamenti su Un honeypot SSH con Kippo inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni
relative ai servizi di cui alla presente pagina ai sensi
dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i
seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni
relative ai servizi di cui alla presente pagina ai sensi
dell'informativa sulla privacy.
I Video di HTML.it
Per me il futuro è ora! #dilloalfuturo
Il futuro è una incognita, da quello che ho visto oggi, per me il futuro è oggi
Le vulnerabilità in dettaglio: un attacco basato su chiavi SSH compromesse consente di accedere al box linux per guadagnare poi il controllo della macchina
Come creare applicazioni Java complete in grado di comunicare in modo sicuro con terminali remoti tramite SSH (Secure Shell), un protocollo divenuto ormai uno standard su Unix e Linux che consente di creare sessioni cifrate da riga di comando.