
Mapa de ataques geoip para segurança cibernética que acompanha o syslog e analisa IPs/números de porta para visualizar atacantes em tempo real.
Não tenho muito tempo na minha vida agora para manter este projeto. Aceitei este desafio como uma forma de aprender JavaScript e melhorar o Python que já conhecia. Tenho certeza de que há várias coisas que poderia ter feito de forma diferente na minha implementação, e não me ofenderei se receber críticas construtivas de alguém que baixar e visualizar meu código. Sei que aprendi muito ao trabalhar nisso e espero que a comunidade de código aberto continue me ensinando coisas :)
NOTA: Como não mantenho este projeto, alguns recursos provavelmente não funcionam de imediato. Por exemplo, o mapa provavelmente não será exibido porque não pago por uma chave legítima da API MapBox. Para corrigir isso, provavelmente terá que criar sua própria conta MapBox e usar sua própria chave.
Este visualizador de mapa de ataques geoip foi desenvolvido para exibir ataques de rede à sua organização em tempo real. O servidor de dados monitora um arquivo syslog e extrai IP de origem, IP de destino, porta de origem e porta de destino. Os protocolos são determinados por portas comuns e as visualizações variam em cor com base no tipo de protocolo. CLIQUE AQUI para um vídeo de demonstração. Este projeto não seria possível sem Sam Cappella, que criou um visualizador de tráfego de rede para competição de defesa cibernética na Palmetto Cyber Defense Competition de 2015. Usei principalmente seu código como referência, mas peguei emprestadas algumas funções ao criar o servidor de exibição e os aspectos visuais do webapp. Gostaria também de agradecer especialmente a Dylan Madisetti pelos conselhos sobre certos aspectos da minha implementação.
Este programa depende inteiramente de syslog, e como todos os appliances formatam logs de forma diferente, você precisará personalizar a(s) função(ões) de análise de log. Se sua organização usa um sistema de gerenciamento de eventos e informações de segurança (SIEM), ele provavelmente pode normalizar logs para economizar muito tempo escrevendo regex.
Se encontrar algum erro ou bug, por favor me avise. Perguntas e feedback também são bem-vindos, e podem ser enviados para [email protected], ou abra uma issue neste repositório.
Testado no Ubuntu 16.04 LTS.
Clone o aplicativo:
git clone https://github.com/matthewclarkmay/geoip-attack-map.git
Instale as dependências do sistema:
sudo apt install python3-pip redis-server
Instale os requisitos Python:
cd geoip-attack-map
sudo pip3 install -U -r requirements.txt
Inicie o Servidor Redis:
redis-server
Configure o Banco de Dados do Servidor de Dados:
cd DataServerDB
./db-dl.sh
cd ..
Inicie o Servidor de Dados:
cd DataServer
sudo python3 DataServer.py
Inicie o Script Gerador de Syslog, dentro do diretório DataServer:
Abra uma nova aba do terminal (Ctrl+Shift+T, no Ubuntu).
./syslog-gen.py
./syslog-gen.sh
Configure o Servidor de Mapa de Ataques, extraia os flags para o local correto:
Abra uma nova aba do terminal (Ctrl+Shift+T, no Ubuntu).
cd AttackMapServer/
unzip static/flags.zip
Inicie o Servidor de Mapa de Ataques:
sudo python3 AttackMapServer.py
Acesse o Servidor de Mapa de Ataques pelo navegador:
Para acessar pelo navegador em outro computador, use o IP externo da máquina que está executando o AttackMapServer.
Edite o endereço IP no arquivo "/static/map.js" no diretório "AttackMapServer". De:
var webSock = new WebSocket("ws:/127.0.0.1:8888/websocket");
Para, por exemplo:
var webSock = new WebSocket("ws:/192.168.1.100:8888/websocket");
Reinicie o Servidor de Mapa de Ataques:
sudo python3 AttackMapServer.py
No outro computador, aponte o navegador para:
http://192.168.1.100:8888/