Sistema de detecção de intrusão de rede para Linux. Monitora uma interface de rede em tempo real e detecta ataques de SYN flood e ICMP flood, enviando alertas em JSON via UDP para um servidor de logs.
O c-passive-ids usa a libpcap para capturar pacotes brutos diretamente da interface de rede. Um filtro BPF aplicado no nÃvel do kernel garante que apenas pacotes relevantes (SYN puro e ICMP Echo Request) cheguem ao programa. Cada IP de origem é rastreado em uma tabela hash com contadores por janela de tempo. Quando um limite é atingido, um alerta é enviado como datagrama UDP para um servidor configurável.
| Ataque | Limite | Janela |
|---|---|---|
| SYN Flood | 100 pacotes | 10 segundos |
| ICMP Flood | 3 pacotes | 10 segundos |
Formato do alerta:
{"alerta":"SYN_FLOOD", "ip_atacante":"192.168.1.100", "pacotes":105, "timestamp":1710000000}- Linux
- GCC
- libpcap
sudo apt install libpcap-dev gcc makegcc -O2 -Wall -Wextra -o c-passive-ids main.c captura/captura.c tracker/tracker.c alerta/alerta.c -lpcapRequer privilégios de root para capturar pacotes.
sudo ./build/c-passive-ids [ip_do_servidor] [porta]Se nenhum argumento for passado, usa 127.0.0.1:5555 por padrão.
sudo ./build/c-passive-ids 192.168.1.10 9999Para encerrar, use Ctrl+C.
main.c — ponto de entrada, tratamento de sinais, loop principal
captura.c — seleção de interface e configuração da sessão pcap
tracker.c — contagem de pacotes por IP e detecção de ataques
alerta.c — envio de alertas via UDP