Resumo técnico
O EncFind foi projetado para detecção operacional de códigos suspeitos em bases web PHP. A engine combina assinatura estática, heurística contextual e análise de cadeia de decode/execução (ex.: base64_decode + eval) para gerar risco de 0 a 100 com justificativas claras por ocorrência. O objetivo é reduzir tempo entre varredura e decisão (ignorar, revisar ou tratar como incidente).
Escopo técnico implementado
- Reescrita/evolução de utilitário legado (
ecpp_2.pl) para Python. - Scoring multicamada:
- Context-awareness para diferenciar:
- Integrações opcionais:
- Modos de saída para públicos diferentes:
- Export em
JSON,CSVeHTML. - Baseline e allowlist para diminuir ruído recorrente.
- assinaturas conhecidas de webshell, - heurísticas de execução dinâmica, - profundidade de decode e chegada a sink executável.
- código executável real, - string literal/comentário/simulação.
- YARA local, - YARA remoto (Abuse.ch), - lookup de hash no VirusTotal, - Wordfence CLI.
- simple, technical, executive.
Instalação e requisitos
# requisitos básicos
python3 --version
# dependências Python (arquivo do projeto)
pip install -r requeriments.txt
# opcional: wordfence cli
python3 -m pip install git+https://github.com/wordfence/wordfence-cli.git
Execução prática (casos reais)
1) Varredura local padrão
python3 encfind.py -d /home/user/public_html/
2) Modo completo com múltiplos scanners
python3 encfind.py -d /home/user/public_html \
--vt --yara --wordfence --wordfence-accept-terms \
--export-html report.html
3) Modo estrito de produção
python3 encfind.py -d /home/user/public_html/ --strict --only-actionable
4) Auditoria mais sensível
python3 encfind.py -d /home/user/public_html/ --audit
Indicadores e diagnóstico operacional
- Faixas de risco por achado (0-100), com classificação operacional.
- Diagnóstico orientado a ação:
- Razões de decisão por linha:
- “revisão urgente”, - “monitorar”, - “provável não executável”.
- função perigosa (eval, execução dinâmica), - obfuscação/decodificação, - profundidade de decode, - regra YARA acionada, - contexto de execução.
Integrações e chaves
- VirusTotal:
- Abuse.ch YARA remoto:
- Wordfence:
- chave embutida no script ou arquivo externo --vt-keys-file.
- chave embutida ou --yara-keys-file.
- chave embutida ou --wordfence-keys-file.
Fluxo inicial Wordfence (não interativo):
wordfence configure -r -D
Operação para times de resposta a incidente
- Usar
--strict --only-actionableem produção para triagem rápida. - Usar
--auditem janela de investigação para ampliar sensibilidade. - Exportar HTML para reporte executivo e JSON/CSV para pipeline técnico.
- Aplicar baseline/allowlist após validação manual para reduzir falso positivo recorrente.
Troubleshooting prático
# validar python e ambiente
python3 -V
# validar dependências
python3 -m pip list | grep -Ei 'yara|requests|wordfence'
# testar scan mínimo
python3 encfind.py -d /home/user/public_html/ --min-risk 50
Stack e ferramentas
- Python 3
- YARA
- VirusTotal API
- Wordfence CLI
- Exportadores JSON/CSV/HTML
Tags operacionais
- Python
- Malware Analysis
- Web Security
- YARA
- VirusTotal
Resultado operacional
- Redução do tempo de triagem em ambientes com muitos arquivos PHP.
- Melhoria na priorização de evidências por score e razão técnica.
- Adoção simples em operação diária de segurança para hosting e web apps.