◈ ProjView
← todos os projetos

log-forensics

Python Defensiva GitHub ↗

Detector de ataques em logs de autenticação (brute-force SSH, user scan, root login).

10 testes · 10 passou · 0 falhou · 0 skip

Entrypoints (CLI)

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

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.
log-forensics SIM NÃO SIM NÃO Ler log de auth (arquivo/stdin) Iterar linhas; regex em Failed password / Accepted É falha de senha? Agregar por IP (contador + usuários) Mesmo IP em >N usuários? Marcar como user-scanning Gerar relatório: IP, contagem, indicadores Imprimir estatísticas por IP

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