EagleEye - sistema IDS baseado em host e monitoramento de rede
Este projeto precisa de muito trabalho para estar pronto para uso, pois é meu projeto de graduação, então não é amigável para o usuário, apenas para usuários experientes, versão beta, e eu publiquei/fiz apenas para fins educacionais!

- EagleEye consiste em duas partes:
- Cliente (Escrito em Golang)
- Propósito: Capturar todos os pacotes no dispositivo e extrair detalhes importantes em protocolos famosos e, finalmente, enviar todos os dados coletados para o mestre se estiver online!
- Uso: Deve ser instalado em cada dispositivo que você deseja monitorar (ex: dispositivos de funcionários para empresas).
- Mestre: (Escrito em Python e Bootstrap)
- Propósito: Receber todos os pacotes enviados pelos clientes, exibi-los organizados na tabela de monitoramento da GUI, exibir informações dos dispositivos conectados, como usuário atual do sistema/informações do sistema, comparar os dados capturados com os modelos de ameaças já escritos anteriormente e, finalmente, alertar o usuário mestre sobre possíveis ameaças de segurança na rede, como um sistema IDS típico faria!
- Uso: Deve estar em execução em um servidor na mesma rede que os clientes (ex: um servidor gerenciado pelo departamento de TI ou pela equipe de hacking azul da empresa, talvez).
Para mais informações, você precisará ler sobre (S)istemas de (D)etecção de (I)ntrusão e seus tipos. Eu recomendo o guia do NIST.
Capturas de tela
GUI Principal


Tabela de monitoramento
Observe que os botões na tabela oferecem a capacidade de exportar a tabela como (CSV, Excel, PDF), copiar os dados da tabela para a área de transferência e imprimir os dados da tabela, se desejar.
Pesquisa na tabela de monitoramento
Pesquisa simples
Pesquisa detalhada
Como você pode ver, a pesquisa aqui oferece a capacidade de pesquisar qualquer coisa representada na tabela.
Tabela de dispositivos conectados
Quando um novo cliente se conecta ao cliente
Observe que a tabela é atualizada automaticamente a cada 5 segundos ou ao atualizar a página!
Tabela de ameaças
Quando ameaças são detectadas
Detalhes sobre quaisquer ameaças possíveis detectadas + referência ao clicar


Notificação de desktop para ameaças
Observe que a tabela é atualizada automaticamente a cada 5 segundos ou ao atualizar a página!
Instruções de instalação
O Cliente
Requisitos
- Atualmente suporta apenas sistema Windows (Devido aos dados obtidos do registro, precisa ser alterado).
- As instruções a seguir
Instruções de instalação
- Certifique-se de ter o Golang instalado.
- Instale a biblioteca gopacket usando este comando:
go get github.com/google/gopacket
- Baixe e instale o npcap daqui aqui.
- Altere as seguintes variáveis no código de acordo com suas necessidades:
- Linha57: Altere a variável url para a URL do seu Mestre atual
- Linha59: Altere a variável device para a interface de rede que você deseja escutar, para Windows você precisará deste artigo!
- Linha66: Altere a variável filter para o filtro que você deseja na captura de pacotes de rede ou deixe vazio como está (se você quiser capturar todos os pacotes). A sintaxe do filtro é bpf, que é a mesma usada na pesquisa do Wireshark, você pode aprendê-la neste guia. Também deixei alguns exemplos nos comentários, se alguém quiser usá-los.
- No CMD, navegue até o diretório do cliente, é claro.
- Agora você pode executar o cliente como um script com este comando:
go run main.go
- Para compilá-lo/construí-lo, você pode usar o seguinte comando:
go build -o client.exe main.go, talvez você precise deste guia.
- Se você fez tudo isso, vá ter uma vida, cara 😆 (Brincadeira)
O Mestre
Requisitos
- Qualquer sistema operacional.
- As instruções a seguir, é muito mais fácil que o cliente, não se preocupe LOL!
Instruções de instalação
- Certifique-se de ter o Python 3 instalado (Versão 3.5 ou superior) e o pip.
- No CMD, navegue até a pasta do mestre e instale os requisitos usando este comando:
pip install -r requirements.txt ou python -m pip install -r requirements.txt
- Se você estiver no Windows e a impressão colorida no CMD for importante para você, execute este comando:
pip install -r coloring-requirements.txt ou python -m pip install -r coloring-requirements.txt
- Agora algumas variáveis para alterar de acordo com suas necessidades 😆
- Linha21: Altere a variável host_port para a porta na qual você deseja servir (Padrão:8000)
- Linha23: Altere a variável serve_localhost para True se quiser executar o mestre apenas no localhost (Padrão:True)
- Linha24: Altere a variável view_browser para True se quiser que o mestre abra a URL de serviço no navegador automaticamente (Padrão:True)
- Agora você pode executar o mestre com
python interface.py
- Divirta-se :)
Lista de tarefas