Como segunda parte del laboratorio de honeypots vamos a continuar por donde lo dejamos.
A modo resumen: ya instalamos nuestro Cowrie, pero faltaba instalar el Logstash para poder enviar todos los logs normalizados a nuestro Elasticsearch.
Por tanto estamos en este punto:
A modo resumen: ya instalamos nuestro Cowrie, pero faltaba instalar el Logstash para poder enviar todos los logs normalizados a nuestro Elasticsearch.
Por tanto estamos en este punto:
Parte 2: Instalando Logstash en nuestro Honeypot
*Nota: Necesita java y al menos 2gb de ram disponibles. (Esto es más doloroso si pagamos por un servicio de VPS xD).
Descargamos Logstash (en nuestro caso es la versión 5.6.3). Os recomiendo mirar la última release que estuviera disponible en el momento que lo instaléis.
$ curl –O https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.deb $ dpkg –i logstash-5.6.3.deb
Creamos el fichero de configuración de Logstash /etc/logstash/conf.d/logstash-cowrie.conf con el siguiente contenido:
input { file { path => ["/home/cowrie/cowrie/log/cowrie.json"] codec => json type => "cowrie" } } filter { if [type] == "cowrie" {
json { source => message } date { match => [ "timestamp", "ISO8601" ] } if [src_ip] { mutate { add_field => { "src_host" => "%{src_ip}" } } dns { reverse => [ "src_host" ] nameserver => [ "8.8.8.8", "8.8.4.4" ] action => "replace" hit_cache_size => 4096 hit_cache_ttl => 900 failed_cache_size => 512 failed_cache_ttl => 900 } } mutate { remove_tag => [ "beats_input_codec_plain_applied"] remove_field => [ "source", "offset", "input_type" ] } } } output { if [type] == "cowrie" { elasticsearch { hosts => ["localhost:9200"] # cambiar en caso de tenerlo remoto. } file { path => "/home/cowrie/tmp/cowrie-logstash.log" codec => json } stdout { codec => rubydebug } } }
*Nota: En este caso es la configuración que funciona para este laboratorio. Podéis modificar este fichero a vuestro antojo. Logstash tiene infinitas posibilidades, pero como el laboratorio ya es en sí muy largo hemos omitido ciertas partes. Eso ya lo dejo para que el lector indague por su cuenta si le interesa el tema.
Dentro del apartado "file {}" la opcion "path =>" es la ruta de donde va a coger los logs del cowrie, recomiendo incluirlo en el logrotate para evitar problemas de espacio.
Arrancamos el Logstash:
Podéis arrancarlo en screen y luego “deatacharlo”.$ cd /usr/share/logstash/bin ; ./logstash -f /etc/logstash/conf.d/logstash-cowrie.conf --path.settings /etc/logstash/
*Nota: Los comandos de ./logstash van en una sola línea. Los muestro así para que se vean mejor en el blog, pero tenerlo en cuenta.$ screen $ cd /usr/share/logstash/bin ; ./logstash -f /etc/logstash/conf.d/logstash-cowrie.conf --path.settings /etc/logstash/ $ screen -d
y deberéis ver algo de este estilo cuando el Elasticsearch este montado:
El siguiente paso, como es lógico, es instalar la base de datos para poder almacenar toda la información que nos proporciona el honeypot. Pero este paso lo veremos en la parte 3...
Un saludo y nos vemos en la siguiente.
Aquí tenéis todas las partes del laboratorio:
¿En serio son necesarios los 2Gb de RAM? En algunos foros hablan de instalar Logstash en Raspberry Pi y dicen que funciona. No lo he probado.
ResponderEliminarSi lo podemos meter todo en un "honey-pi" casi major que el VPS, ¿no? (Más baratito)
Yo no lo metería en mi red de mi casa , con mi ip como honey para que me estén atacando, pero bueno eso soy yo que soy un poco paranoico, en lo de la ram, si con 1 gb puede tirar pero por eso recomiendo almenos 2gb para que vaya bien, con menos lo probé en digital ocean con vps de 512 y no hubo manera de arrancarlo, de todas maneras la pobre rasp tiene que ir petadisima con el logstash xD, el caso dandole una vuelta con 512 mb de ram y 2gb de memoria swap podría tambien funcionar pero yo eso no lo he probado.
ResponderEliminarA mí es exactamente lo que me interesa: Saber de dónde proceden los ataques a mi IP de casa.
EliminarDesde luego sé que los hay, porque los logs de intentos de login cantan muchísimo. De hecho ya tuve cowrie funcionando echándole un ojo a lo que iba apareciendo (Todo bots).
Si alguien se anima antes que yo a ponerlo a prueba en RPi que comente cómo va. Si no, yo mismo comentaré por aquí.
Alguien puede explicarme los conceptos de logtash y honeypot...
ResponderEliminarPara logstash: https://es.wikipedia.org/wiki/Logstash
EliminarPara honeypot: https://es.wikipedia.org/wiki/Honeypot