~/portfolio $ cat ./projetos/sniffer.mdx
Sniffer com Análise de Ameaças
Sniffer de pacotes em Python que detecta port scanning, ARP spoofing, DNS tunneling e beaconing.
./ficha
- subject
- Redes I
- semester
- 2023/2
- date
- 2023-11-10
- category
- interactive
- impact
- high
./links
- primary./abrir-demo
Sobre o projeto
Sniffer acadêmico para Redes I: captura offline de PCAPs (sem raw sockets em produção) e quatro detectores heurísticos que emitem alertas quando padrões de ameaça aparecem no tráfego.
A UI Next.js consome a API FastAPI via upload multipart; gráficos Recharts mostram distribuição por tipo, origem e bucket temporal.
Demo
A workbench é embebida no mesmo deploy do portfólio (@projects/sniffer-web consumido por apps/web). A API Python roda separadamente — localmente com dev:api, ou no Fly.io quando o backend estiver deployado.
Use os PCAPs de demonstração na workbench (port scan, ARP spoofing, DNS tunneling, beaconing) — cada um dispara o detector correspondente. PCAPs genéricos podem retornar zero alertas; isso é esperado.
Detectores
| Detector | Sinal |
|---|---|
| Port scan | ≥50 portas TCP SYN distintas da mesma origem para um destino |
| ARP spoof | Mesmo IP com MACs diferentes na LAN |
| DNS tunnel | Queries com labels longos / alta entropia |
| Beaconing | Conexões periódicas para o mesmo destino |
Destaques técnicos
- Motor Python com Scapy + pytest (PCAPs sintéticos gerados nos testes)
- Pipeline ordena alertas por timestamp
- Upload limitado a 50 MB (
.pcap/.pcapng) - CORS configurado para desenvolvimento local e origem do portfólio
Limitações
- Sem captura live no deploy gerenciado — apenas análise de arquivos enviados
- Heurísticas didáticas, não substituem IDS/IPS de produção
- Vídeo walkthrough em breve (roadmap 2023/2)
Código
Monorepo: apps/projects/sniffer (Python em python/, UI em web/).
~/portfolio/projetos $ cd ..
cd ..