
Malcom - Analizador de Comunicaciones de Malware
Malcom es una herramienta diseñada para analizar la comunicación de red de un sistema utilizando representaciones gráficas del tráfico de red y cotejarlas con fuentes de malware conocidas. Esto resulta útil al analizar cómo ciertas especies de malware intentan comunicarse con el exterior.
Malcom puede ayudarle a:
El objetivo de Malcom es hacer que el análisis de malware y la recopilación de inteligencia sean más rápidos al proporcionar una versión legible para humanos del tráfico de red originado desde un host o red determinados. Convierta la información del tráfico de red en inteligencia procesable más rápido.
Consulte la wiki para obtener una guía de inicio rápido con algunas capturas de pantalla y un tutorial sobre cómo agregar sus propios feeds.
Si necesita ayuda o desea contribuir, no dude en unirse a la lista de correo o intente contactar a alguien en IRC (#malcom en freenode.net, está bastante tranquilo pero siempre hay alguien cerca). También puede contactarme en Twitter @tomchop_
Aquí hay un ejemplo de gráfico para el host tomchop.me

Vista del conjunto de datos (filtrada para mostrar solo IPs)

mongodb y redis-server estén ejecutándose./malcom.py -c malcom.conf (o vea las opciones con ./malcom.py --help)
** Para un archivo de configuración de ejemplo, puede copiar malcom.conf.example a malcom.conf
** El puerto predeterminado es 8080
** Alternativamente, ejecute los feeds desde celery. Consulte la sección feeds para obtener detalles sobre cómo hacer esto.Malcom está escrito en Python. Siempre que tenga las bibliotecas necesarias, debería poder ejecutarlo en cualquier plataforma. Recomiendo encarecidamente el uso de entornos virtuales de Python (virtualenv) para no estropear las bibliotecas de su sistema.
Lo siguiente fue probado en Ubuntu Server 14.04 LTS:
Instale git, python y libevent libs, mongodb, redis, y otras dependencias
$ sudo apt-get install build-essential git python-dev libevent-dev mongodb libxml2-dev libxslt-dev zlib1g-dev redis-server libffi-dev libssl-dev python-virtualenv
Clone el repositorio Git:
$ git clone https://github.com/tomchop/malcom.git malcom
Cree su virtualenv y actívelo:
$ cd malcom
$ virtualenv env-malcom
$ source env-malcom/bin/activate
Obtenga e instale scapy:
$ cd ..
$ wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz
$ tar xvzf scapy-latest.tar.gz
$ cd scapy-2.1.0
$ python setup.py install
Aún desde su virtualenv, instale los paquetes de Python necesarios desde el archivo requirements.txt:
$ cd ../malcom
$ pip install -r requirements.txt
Para que la geolocalización IP funcione, debe descargar la base de datos de Maxmind y extraer el archivo en el directorio malcom/Malcom/auxiliary/geoIP. Puede obtener la base de datos gratuita de Maxmind (y por lo tanto más o menos precisa) desde el siguiente enlace: http://dev.maxmind.com/geoip/geoip2/geolite2/:
$ cd Malcom/auxiliary/geoIP
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
$ gunzip -d GeoLite2-City.mmdb.gz
$ mv GeoLite2-City.mmdb GeoIP2-City.mmdb
Lance el servidor web desde el directorio malcom usando ./malcom.py. Consulte ./malcom.py --help para conocer la interfaz y los puertos de escucha.
malcom.conf.example a malcom.conf y ejecutar ./malcom.py -c malcom.confDe forma predeterminada, Malcom intentará conectarse a una instancia local de mongodb y creará su propia base de datos, llamada malcom. Si esto está bien para usted, puede omitir los siguientes pasos. De lo contrario, debe editar la sección database de su archivo malcom.conf.
De forma predeterminada, Malcom usará una base de datos llamada malcom. Puede cambiar este comportamiento editando el archivo malcom.conf y estableciendo la directiva name de la sección database a su gusto.
[database]
...
name = my_malcom_database
...
De forma predeterminada, Malcom intentará conectarse a localhost, pero su base de datos puede estar en otro servidor. Para cambiar esto, simplemente establezca la directiva hosts. Puede usar nombres de host o direcciones IPv4/v6 (solo tenga en cuenta que debe encerrar las direcciones IPv6 entre [ y ], por ejemplo, [::1]).
Si desea usar una base de datos independiente en el host my.mongo.server, simplemente establezca:
[database]
...
hosts = my.mongo.server
...
También puede especificar el puerto en el que mongod está escuchando especificándolo después del nombre/dirección de su servidor, separado con :
[database]
...
hosts = localhost:27008
...
Y si está usando un ReplicaSet que agrupa my.mongo1.server y my.mongo2.server, simplemente establezca:
[database]
...
hosts = my.mongo1.server,my.mongo2.server
...
Es posible que haya configurado sus instancias de mongod para exigir conexiones autenticadas. En ese caso, debe establecer el nombre de usuario que el controlador deberá usar para conectarse a su instancia de mongod. Para hacer esto, simplemente agregue una directiva username a la sección database en el archivo malcom.conf. También es posible que deba establecer la contraseña con la directiva password. Si el usuario no tiene contraseña, simplemente ignore (es decir, comente) la directiva password.
[database]
...
username = my_user
password = change_me
...
Si el usuario no está vinculado a la base de datos malcom sino a otra (por ejemplo, la base de datos admin para un usuario administrador), deberá establecer la directiva authentication_database con el nombre de esa base de datos.
[database]
...
authentication_database = some_other_database
...