MISP: Introducción e instalación

Buenas conejetes,

Desde Fwhibbit, siempre hemos optado y defendido el libre conocimiento, y por ello hoy os presentamos una herramienta que se basa en compartir información sobre Malware.

Estamos hablando de MISP (Malware Information Sharing Platform), una herramienta desarrollada por CIRCL, el equipo de Defensa de Bélgica, y la OTAN (NCIRC). Principalmente, MISP es una plataforma para compartir, almacenar y correlacionar Indicadores de Compromiso de ataques dirigidos, permitiendo así a las distintas organizaciones compartir información sobre Malware y sus indicadores.

Con esto se consigue una comunidad colaborativa sobre amenazas existentes, cuyo objetivo es ayudar a mejorar las contramedidas utilizadas contra los ataques dirigidos y establecer acciones preventivas y de detección.

Entre sus objetivos, podemos destacar:

  • Ofrecer un lugar donde almacenar información tanto técnica como no técnica sobre malware y ataques ya detectados
  • Crear automáticamente relaciones entre malware y sus atributos
  • Almacenar datos en un formato estructurado, permitiendo así un uso automatizado de la base de datos para alimentar sistemas de detección o herramientas forenses
  • Generar reglas para NIDS (Network Intrusion Detection System) para luego importarse a IDS (IPs, dominios, hashes de archivos maliciosos, patrones en las zonas de memoria, …)
  • Compartir los atributos de malware y amenazas con otras organizaciones y grupos de confianza
  • Mejorar de la detección y el reverse del malware para promover el intercambio de información entre distintas organizaciones
  • Crear una plataforma de confianza
  • Posibilidad de almacenar localmente toda la información de otras instancias

MISP está lleno de facilidades, podemos conectarnos o bien por la interfaz web o bien por su API (PyMISP) y así alimentar otros dispositivos internos como los IDS o SIEM. Pero… ¿qué tal si lo montamos?

 

Montando MISP

Tenemos varias opciones para montar nuestro MISP:

  • Instalando por scripts desde el código fuente en GitHub
  • Imágenes virtuales preconfiguradas por CIRCL para VMware y VirtualBox
  • Contenedores Docker
  • Puppet si se quiere instalar y configurar MISP en CentOS 7
  • Ansible

En este caso, y debido a la sencillez y comodidad…

 

En Fwhibbit ya hemos hablado un par de veces de dockers, por lo que ciertas funcionalidades y requerimientos los daremos por sabidos. Si aún así queréis que hagamos una entrada sobre ellos, comentadlo y vuestros deseos serán cumplidos. Un poco de SPAM más de información sobre Dockers:

 

MISP y Dockers

Según la documentación oficial disponemos de dos contenedores oficiales. En este caso vamos a utilizar el de Ventz Petkov (@ventzpetkov), pero sois libres de hacerlo como queráis. También existen imágenes que están disponibles desde el buscador de imágenes de docker (docker search misp).

Antes de nada, deberemos iniciar el servicio de los dockers:

service docker start

 

Para poder montar nuestra imagen MISP en Docker, clonamos el repositorio, y accedemos al mismo:

git clone https://github.com/harvard-itsecurity/docker-misp.git
cd docker-misp

 

Modificamos el fichero build.sh para así cambiar tanto las contraseñas de root y MISP para el MySQL, además del valor MISP_FQDN para añadir nuestra FQDN:

 

Del mismo modo, tenemos que modificar el fichero Dockerfile, que se encuentra en la ruta /docker-misp/container:

 

Ya podemos ejecutar como root nuestro build. Tened en cuenta que puede tardar bastante tiempo, ya que se van a descargar dos imágenes y se va a configurar todo internamente para su correcto funcionamiento. Lanzamos directamente el comando:

cd ..
./build.sh

 

Una vez haya terminado, nos indicará que se ha descargado y construido correctamente la imagen, y que le ha asignado como nombre harvarditsecurity/misp. Podemos comprobar que imágenes tenemos actualmente de la siguiente manera:

 

Llegados a este punto y antes de poder comenzar a utilizar MISP, deberemos iniciar la base de datos, y arrancar el contenedor harvarditsecurity/misp. Utilizaremos para ello los siguientes comandos:

docker run -it --rm \
     -v /docker/misp-db:/var/lib/mysql \
     harvarditsecurity/misp /init-db
docker run -it -d \
    -p 443:443 \
    -p 80:80 \
    -p 3306:3306 \
    -v /docker/misp-db:/var/lib/mysql \
    harvarditsecurity/misp

 

Podemos comprobar que nuestro container está levantado de la siguiente manera:

 

Parece que todo está funcionando… ya podemos entrar en MISP desde nuestro navegador favorito, ingresando el FQDN que hayamos indicado en los ficheros de configuración editados anteriormente. En este caso, ya que vamos a hacerlo de manera local ingresamos la dirección https://localhost (es posible que tengamos que añadir las posibles excepciones):

 

De manera predefinida, podremos acceder con las siguientes credenciales:

Login: admin@admin.test
Password: admin

 

Debido a la importancia general de cambiar las contraseñas por defecto, y más aún si vais a implementar MISP con salida a Internet (y no de manera local tal y como estamos haciendo en esta POC), nada más realizar el login MISP nos indicará que la modifiquemos:

 

Una vez cambiada, podremos ver un warning indicando que MISP está deshabilitado para todos los usuarios, pero que podremos cambiar esto si nos vamos a la ruta Administration/Server Settings & Maintenance/ MISP/live. Deberemos marcar el valor en true:

 

 

Para dejar MISP bien preparado para vuestros intereses o los de vuestra EvilCorp, lo suyo es que vayáis resolviendo todos los mensajes de error, y echando un ojo al resto. Podéis elegir el valor que está predefinido, no hay problema alguno.

Como comentamos anteriormente, MISP es una plataforma para compartir información sobre Malware, muy enfocado a ser implementado en empresas de Inteligencia, por lo que lo suyo sería crear un pool de usuarios para que se vayan conectando a MISP, asignar distintos eventos a cada usuario, y no acceder todos desde la cuenta root. Para ello podemos crear usuarios de la siguiente manera, asignando un rol según corresponda:

 

Y con esto, podríamos dar concluida la primera parte sobre MISP, en la que hemos aprendido a instalar y configurar esta potente plataforma. La chicha vendrá en la segunda entrada, en la que crearemos eventos y veremos su potente funcionamiento… prometo que será bien pronto, y no me pasará como a Juan 😉

 

gonx0

 

12 comentarios en «MISP: Introducción e instalación»

    1. It is an honor to receive a reply from you. Thank you for your great work, from FWHIBBIT it is a pleasure to share it with the community

  1. Interesantísimo artículo, gracias.
    La parte de suscribirse a un CERT, FBI,… para recibir sus notificaciones, entiendo ¿Será algo a negociar con esa institución? ¿existen repositorios «públicos»?

    Gracias nuevamente

    1. Muchas gracias por tu comentario Imanol, siento la demora en la respuesta!!
      Esta semana saldrá la segunda parte, y podrás ver como suscribirte a feeds de otras comunidades.

    1. Hola Fer,
      ¡Esta semana saldrá la segunda parte! Cualquier cosa puedes escribirme un comentario o por Telegram.
      Muchas gracias por tu comentario

  2. Hola, actualmente tengo MISP pero no he podido ver la forma de conectar con otros MIPS, sera posible que comparta algún documento para esta conexión.

    Gracias

  3. Hola que tal!!
    muchas gracias por todo!! eres genial!!

    oye tengo unas de dudas:

    1.- necesito apagar la virtual donde instalé todo, como detengo los contenedores? y docker y luego al iniciar como la levanto? corro los últimos commandos de la base de nuevo?

    2.- trabajar con esta imagen de Docker es ya para tenerla como productive o solo es un «demo» y le hacen falta cosas?

    3.- intenté instalarla de manera «clásica» pero el script que baja solito truena… no sirve y me late usar mas Docker 😉

    4.- oye.. al ser con contenedores, … la base de datos como es? si la quiero accede? si quiero estar respaldando? si le pasa algo como la arreglo? o es nada mas iniciar / bajar la imagen? pero donde guarda los settings que yo voy ajustando para que al levantarla reconozca lo que ya dejé o las actualizaciones que haya bajado?

    Muchas gracias!!

  4. hola que tal, disculpa como puedo saber la versión de MISP para Docker? y si esta todo bien para integrar con The Hive? y si la versión de Docker la puedo considerar productiva? (lo pregunto porque muchos mencionan que la usan solo para test y ya

    muchas gracia

  5. Saludos , excelente todo . Instale Misp con Docker, pero me gustaria saber como lo conecto a internet.

    1. Hola Camilo, me alegro de que te gustase.

      No llego a entender del todo tu pregunta, escríbeme un privado por telegram.

      Saludos,

Los comentarios están cerrados.