Bem-vindo ao repositório da Ferramenta de Detecção de Ataques DoS/DDoS! Este repositório contém o código-fonte da aplicação que monitora o tráfego de rede em tempo real para detectar ataques DDoS. O projeto é construído com Python e inclui uma interface gráfica para fácil configuração e uso. A ferramenta de detecção de ataques DoS/DDoS é uma aplicação projetada para monitorar o tráfego de rede em tempo real e identificar atividades suspeitas que possam indicar a ocorrência de um ataque de negação de serviço distribuído (DDoS). A ferramenta utiliza técnicas de inspeção de pacotes para analisar o tráfego e alertar os administradores sobre possíveis ameaças, permitindo uma resposta rápida para mitigar ataques.
Detecção em Tempo Real: Monitorar o tráfego de rede para identificar ataques DDoS assim que eles ocorrem.
Interface de Usuário Intuitiva: Fornecer uma interface gráfica (GUI) que permita a configuração, visualização de logs, e geração de relatórios de eventos.
Flexibilidade e Configurabilidade: Permitir que os administradores configurem os parâmetros de detecção, como portas monitoradas e IPs ignorados.
Funcionalidades Implementadas:
- Detecção de Ataques DDoS: O módulo
detector.py
utiliza a bibliotecascapy
para capturar pacotes de rede e identificar possíveis ataques DDoS. A detecção é baseada em um limite de pacotes por IP que, quando excedido, gera um alerta. - Monitoramento de Logs: O módulo
logger.py
registra eventos de segurança e informações do sistema em arquivos de log. Os logs são categorizados por nível de risco. - Interface Gráfica: O módulo
gui.py
utiliza a bibliotecatkinter
com ottkbootstrap
para criar uma interface gráfica moderna. A interface permite iniciar/parar a detecção, configurar parâmetros, gerar relatórios, e visualizar logs. - Geração de Relatórios: A aplicação gera relatórios em PDF dos eventos de segurança, utilizando a biblioteca
reportlab
.
Para começar a trabalhar com o projeto, você precisará clonar o repositório para o seu ambiente local. Execute o seguinte comando:
git clone https://github.com/seu-usuario/nome-do-repositorio.git
- Navegue até o diretório do projeto e instale as dependências necessárias com o
pip
:
cd nome-do-repositorio
pip install -r requirements.txt
- Configuração: Execute
app.py
e insira as configurações necessárias para a rede e sistema. - Iniciar Detecção: Clique no botão "Iniciar Detecção" na interface gráfica.
- Visualizar Logs: Os logs são exibidos em tempo real na interface.
- Gerar Relatório: Utilize o botão "Gerar Relatório" para criar um PDF com os eventos registrados.
Aqui estão alguns comandos Git essenciais para ajudar a gerenciar seu trabalho no repositório:
- Clonar o Repositório:
git clone <URL do repositório>
- Verificar Status:
git status
- Adicionar Arquivos:
git add <arquivo>
- Fazer Commit:
git commit -m "Mensagem do commit"
- Puxar Alterações:
git pull
- Enviar Alterações:
git push
- Criar uma Nova Branch:
git checkout -b nome-da-branch
- Mudar de Branch:
git checkout nome-da-branch
- Mesclar Branches:
git merge nome-da-branch
Para garantir um fluxo de trabalho suave e evitar conflitos de código, siga estas etapas ao contribuir para o projeto:
-
Atualize seu Repositório Local: Antes de começar a trabalhar, certifique-se de que seu repositório local está atualizado com as últimas alterações do repositório remoto.
git pull origin main
-
Crie uma Branch para suas Alterações: Crie uma nova branch a partir da branch
main
para suas alterações. Nomeie a branch de forma descritiva, usando a convençãotipo/descrição
, por exemplo,feature/detector-improvements
.git checkout -b feature/nova-funcionalidade
-
Faça Commit de suas Alterações: Após concluir suas alterações, adicione e faça commit dos arquivos modificados.
git add . git commit -m "Descrição das alterações realizadas"
-
Envie sua Branch para o Repositório Remoto: Envie sua branch para o repositório remoto para iniciar o processo de revisão.
git push origin feature/nova-funcionalidade
-
Crie um Pull Request (PR): No GitHub, navegue até o repositório e crie um Pull Request da sua branch para a branch
main
. Descreva as mudanças que fez e solicite uma revisão. -
Revisão de Código: Aguarde a revisão dos mantenedores do projeto. Faça qualquer alteração necessária com base no feedback.
-
Mesclar o Pull Request: Após a aprovação do PR, ele será mesclado na branch
main
.
Para manter a qualidade e a consistência do código, siga estas diretrizes ao contribuir para o projeto:
- Código Limpo e Bem Documentado: Escreva código que seja fácil de ler e mantenha a documentação atualizada.
- Testes: Sempre que possível, adicione testes para as novas funcionalidades ou correções de bugs.
- Commits Granulares: Faça commits pequenos e focados, que sejam fáceis de entender e reverter, se necessário.
- Respeite o Estilo do Código: Siga o estilo de codificação PEP8 para Python e quaisquer outras convenções definidas no projeto.
A estrutura básica do repositório é a seguinte:
/nome-do-repositorio
│
├── /backend # Código backend para detecção de ataques
│ ├── detector.py # Lógica central para detecção de ataques DDoS
│ └── logger.py # Módulo de monitoramento de logs
│
├── /frontend # Código frontend para a interface gráfica
│ ├── app.py # Script principal para iniciar a GUI
│ └── gui.py # Código da interface gráfica do usuário
│
├── /tests # Testes automatizados
│ └── test_detector.py # Testes para o módulo de detecção
│
├── requirements.txt # Dependências do projeto
└── README.md # Documentação principal do projeto
Manter o repositório atualizado é fundamental para o desenvolvimento contínuo do projeto. Siga estas práticas para manter o repositório saudável:
- Sincronize Regularmente: Antes de começar a trabalhar, sempre sincronize seu repositório local com a branch
main
. - Revise e Refatore: Regularmente, revise o código e refatore-o para melhorar a eficiência e a legibilidade.
- Documente Mudanças: Atualize a documentação sempre que fizer mudanças significativas no código.
Sinta-se à vontade para abrir uma Issue se encontrar algum problema ou tiver sugestões para melhorar a ferramenta. Agradecemos sua contribuição!