En el capítulo de hoy vamos a jugar un poco con MISP Malware Information Sharing Platform. Una herramienta que nos puede servir para controlar los análisis de amenazas que efectuamos en nuestros centros de operaciones de seguridad o SOC.
El concepto es un repositorio central de eventos de seguridad codificados en formato OpenIoc "friendly" en el que podemos crear información de valor sobre nuestras informaciones en materia de ciberseguridad.
El objetivo del proyecto principal es el de compartir la información, pero una de las cosas que más me ha gustado es su capacidad para crear reglas para Snort/Suricata rapidamente.
Para realizar la práctica de hoy vamos a partir de una instalación de centos 7 minimal. En mi caso sobre un humilde virtualbox. En la documentación está todo explicado a la perfección.
Una vez instalado el framework vamos a realizar una gestión básica con una amenaza.
Tus sistemas de seguridad han funcionado en la detección, pero quieres registrar el evento para comprobarlo o compartirlo con otras empresas o analistas.
Vamos a crear un evento sencillo:
Puedes indicar la visibilidad del evento, para tu organización, para tus organizaciones "amigas" o para todo el mundo. De momento no importa este detalle.
Calificamos el nivel y estado del evento y escribimos una pequeña descripción. En el caso de muestras de malware podríamos adjuntar en este punto el fichero zip en formato GFI.
Añadimos un atributo como la ip de origen del evento e indicamos que queremos tener el dato disponible para IDS.
Bajo este punto podríamos incluir más información como adjunto, o incluso un fichero OpenIOC que podamos haber obtenido de una fuente externa, como pueda ser OTX2 de Alienvault o cualquier otro repositorio.
Vamos a publicar el evento.
Podemos indicar que queremos descargarlo en cualquier de los innumerables formatos que ofrece.
Elegimos una regla Snort y vemos el resultado:
alert ip 2.56.45.45 any -> $HOME_NET any (msg: "MISP e6 Incoming From IP: 2.56.45.45"; classtype:trojan-activity; sid:2841; rev:1; priority:3; reference:url,misp/events/view/6;)
No muy descriptivo, ya veremos como solucionarlo...
Ahora vamos a crear un evento en el que el origen o destino sea un dominio malicioso, para comprobar la exportación de la regla.
alert udp any any -> any 53 (msg: "MISP e7 Domain: www.cacadelavaca.com"; content:"|01 00 00 01 00 00 00 00 00 00|"; depth:10; offset:2; content:"|03|www|0c|cacadelavaca|03|com|00|"; fast_pattern; nocase; classtype:trojan-activity; sid:2851; rev:1; priority:1; reference:url,misp/events/view/7;)
alert tcp any any -> any 53 (msg: "MISP e7 Domain: www.cacadelavaca.com"; content:"|01 00 00 01 00 00 00 00 00 00|"; depth:10; offset:2; content:"|03|www|0c|cacadelavaca|03|com|00|"; fast_pattern; nocase; flow:established; classtype:trojan-activity; sid:2852; rev:1; priority:1; reference:url,misp/events/view/7;)
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg: "MISP e7 Outgoing HTTP Domain: www.cacadelavaca.com"; flow:to_server,established; content: "Host|3a|"; nocase; http_header; content:"www.cacadelavaca.com"; nocase; http_header; pcre: "/(^|[^A-Za-z0-9-])www\.cacadelavaca\.com[^A-Za-z0-9-\.]/H"; tag:session,600,seconds; classtype:trojan-activity; sid:2853; rev:1; priority:1; reference:url,misp/events/view/7;)
Otra de las cosas que podemos hacer es exportar la información en un simple fichero de texto delimitado, para importarlo en algún firewall o sistema de prevención.
Le damos a generar la información y pinchamos el campo que queremos y lo tenemos.
En otro episodio probaremos con otro servidor e intentaremos compartir los datos entre distintas instalaciones filtrando los eventos que nos interesan.
Espero que os sirva de ayuda, gracias por leerme !!!
Recuerda que puedes buscar entre mis libros de hacking en español en en recopilatorio de libros sobre hacking