log-forensics
Detector de ataques em logs de autenticação (brute-force SSH, user scan, root login).
10 testes · 10 passou · 0 falhou · 0 skip
- test_bruteforce_detected0.00s
- test_user_scanning_detected0.00s
- test_root_login_detected0.00s
- test_benign_ip_not_flagged0.00s
- test_per_ip_stats0.00s
- test_unique_ips_count0.00s
- test_privesc_detected0.00s
- test_threshold_adjusts_bruteforce0.00s
- test_cli_stdin0.00s
- test_cli_json0.00s
Entrypoints (CLI)
logforensics
Módulos e funções principais
src/logforensics/__init__.py
- —
src/logforensics/cli.py
build_parser()render_text()main()
src/logforensics/core.py
parse_lines()— Processa linhas de log e acumula estatísticas por IP.analyze()— Analisa linhas e gera relatório de indicadores por IP.
Estrutura de arquivos
- LICENSE
- README.md
- pyproject.toml
- src/log_forensics.egg-info/PKG-INFO
- src/log_forensics.egg-info/SOURCES.txt
- src/log_forensics.egg-info/dependency_links.txt
- src/log_forensics.egg-info/entry_points.txt
- src/log_forensics.egg-info/top_level.txt
- src/logforensics/__init__.py
- src/logforensics/cli.py
- src/logforensics/core.py
- tests/test_logforensics.py
README
# log-forensics
Ferramenta defensiva de linha de comando que analisa logs de autenticação
(estilo `/var/log/auth.log`) e detecta tentativas de ataque, agregando
estatísticas e indicadores **por endereço IP**.
## O que detecta
- **Brute-force SSH** — muitas ocorrências de `Failed password` de um mesmo IP.
- **Scanning de usuários** — tentativas contra múltiplos usuários inválidos.
- **Root login** — tentativas/aceites de login como `root`.
## ⚠️ Aviso ético
Esta é uma ferramenta **defensiva e educacional**, voltada à análise de logs
de sistemas **de sua propriedade ou nos quais você tenha autorização** para
investigar. Não a utilize para monitorar sistemas de terceiros sem
permissão. O autor não se responsabiliza por uso indevido.
## Requisitos
- Python 3.10+
- Apenas biblioteca padrão (sem dependências externas).
## Instalação
```bash
pip install -e .
```
## Uso
A partir de um arquivo de log:
```bash
logforensics /var/log/auth.log
```
Lendo de stdin (exemplo com um log de exemplo):
```bash
cat auth.log | logforensics
```
Com limiar personalizado de brute-force e saída JSON:
```bash
logforensics auth.log --threshold 10 --json
```
## Saída
- Modo texto: resumo por IP (falhas de senha, usuários inválidos, root
login, usuários testados) e lista de indicadores de ataque.
- Modo `--json`: relatório estruturado com `per_ip`, `indicators` e o
limiar utilizado.
## Testes
```bash
pytest
```
## Licença
MIT — Copyright (c) 2026 Diogo Damasceno.
Como rodar na prática (entrada → saída):
$ lf auth.log --top 3
192.0.2.10 142 root,admin\n3 IPs com user-scanning