Visualización de mapas de ataques GeoIP de seguridad cibernética Este visualizador de mapas de ataques geoip se desarrolló para mostrar los ataques de red en su organización en tiempo real. El servidor de datos sigue un archivo syslog y analiza la IP de origen, la IP de destino, el puerto de origen y el puerto de destino. Los protocolos se determinan a través de puertos comunes y las visualizaciones varían en color según el tipo de protocolo. Este proyecto no sería posible si no fuera por Sam Cappella, quien creó un visualizador de tráfico de red de competencia de ciberdefensa para el Concurso de Ciberdefensa de Palmetto 2015. Usé principalmente su código como referencia, pero tomé prestadas algunas funciones mientras creaba el servidor de visualización y los aspectos visuales de la aplicación web.
Este programa se basa completamente en syslog, y debido a que todos los dispositivos dan formato a los registros de manera diferente, deberá personalizar las funciones de análisis de registros. Si su organización utiliza un sistema de gestión de eventos e información de seguridad (SIEM), probablemente pueda normalizar los registros para ahorrarle mucho tiempo escribiendo expresiones regulares.
Debido a que no mantengo este proyecto, hay algunas características que probablemente no funcionan, por ejemplo, el mapa probablemente no se mostrará porque no pago por una clave API de MapBox legítima. Para solucionar este problema, probablemente tendrá que crear su propia cuenta MapBox y usar su propia clave.
- Envíe todo el syslog a SIEM.
- Utilice SIEM para normalizar los registros.
- Envíe registros normalizados a la caja (cualquier máquina Linux que ejecute syslog-ng funcionará) que ejecute este software para que el servidor de datos pueda analizarlos.
- Asegúrese en /etc/redis/redis.conf de cambiar bind 127.0.0.1 a bind 0.0.0.0 si planea ejecutar DataServer en una máquina diferente a AttackMapServer.
- Asegúrese de que la dirección WebSocket en /AttackMapServer/index.html apunte a la dirección IP del AttackMapServer para que el navegador conozca la dirección del WebSocket.
- Descargue la base de datos MaxMind GeoLite2 y cambie la variable db_path en DataServer.py al lugar donde almacene la base de datos. ./db-dl.sh
- Agregue la latitud / longitud de la sede a la variable hqLatLng en index.html Utilice syslog-gen.py o syslog-gen.sh para simular tráfico ficticio "listo para usar".
IMPORTANTE: Recuerde, este código solo se ejecutará correctamente en un entorno de producción después de personalizar las funciones de análisis. La función de análisis predeterminada solo se escribe para analizar el tráfico ./syslog-gen.sh.
Si encuentra algún error o error, hágamelo saber. Las preguntas y comentarios también son bienvenidos, y se pueden enviar a [email protected], o abrir un problema en este repositorio.
Probado en Ubuntu 16.04 LTS.
* Clone el repositorio: git clone https://github.com/matthewclarkmay/geoip-attack-map.git
* Instala Dependencias: sudo apt install python3-pip redis-server
* Instala los requerimientos de python: sudo pip3 install -U -r requirements.txt
* Iniciar el servidor: redis-server
* Configuracion del Data Server DB: cd DataServerDB
./db-dl.sh
cd ..
* Iniciar el Data Server: cd DataServer
sudo python3 DataServer.py
* Inicie el Syslog Gen Script, dentro del directorio DataServer:
* Abra una nueva pestaña de terminal (Ctrl + Shift + T, en Ubuntu).
./syslog-gen.py
./syslog-gen.sh
* Configuracion del Data Server DB: cd DataServerDB
./db-dl.sh
cd ..
* Configura el Servidor de Mapa de Ataque, extrae las banderas en el lugar correcto:
* Abra una nueva pestaña de terminal (Ctrl + Shift + T, en Ubuntu).
cd AttackMapServer/
unzip static/flags.zip
* Iniciar el servidor de mapas de ataque: sudo python3 AttackMapServer.py
Acceda al servidor de mapas de ataque desde el navegador:
http://localhost:8888/ or http://127.0.0.1:8888/
Para acceder a través del navegador en otra computadora, use la IP externa de la máquina que ejecuta Attack MapServer.
Edite la dirección IP en el archivo "/static/map.js" at "AttackMapServer" directorio:
var webSock = new WebSocket("ws:/127.0.0.1:8888/websocket");
a, por ejemplo:
var webSock = new WebSocket("ws:/192.168.1.100:8888/websocket");
Reinicie el servidor de mapas de ataque:
sudo python3 AttackMapServer.py
En la otra computadora, apunta el navegador a:
http://IP:8888/
Por favor lee el CONTRIBUTING.md para detalles de nuestro código de conducta, y el proceso para enviarnos pull requests.
Menciona a todos aquellos que ayudaron a levantar el proyecto desde sus inicios
- Oscar Encarnacion Liz - Trabajo Inicial - [oscarliz](http://oscarliz.herokuapp.com/
Este proyecto está bajo la Licencia (Tu Licencia) - mira el archivo LICENSE.md para detalles
- Comenta a otros sobre este proyecto 📢
- Invita una cerveza 🍺 o un café ☕ a alguien del equipo.
- Da las gracias públicamente 🤓.
- etc.