API REST para deteccao de phishing em URLs utilizando Machine Learning. O servico extrai mais de 50 features de uma URL, incluindo padroes estruturais, caracteristicas de dominio e sinais do conteudo da pagina, e classifica como phishing ou legitima atraves de um modelo Gradient Boosting.
- Classificacao de URLs como phishing ou legitima com score de confianca
- 53 features engenheiradas: estrutura da URL, dominio e conteudo HTML
- Endpoint para analise individual e em lote
- Treinamento com K-Fold cross-validation e tuning via GridSearchCV
| Componente | Tecnologia |
|---|---|
| Linguagem | Python 3.12+ |
| Framework Web | Flask |
| ML | scikit-learn (GradientBoostingClassifier) |
| Extracao de Features | tldextract, BeautifulSoup4, Requests |
| Dados | pandas, NumPy |
| Gerenciador de Pacotes | uv |
- Python 3.12 ou superior
- uv (recomendado) ou pip
- Clone o repositorio:
git clone https://github.com/jpaullopes/phishlink-analyzer.git
cd phishlink-analyzer- Crie o ambiente virtual e instale as dependencias:
uv venv
source .venv/bin/activate
uv pip install -e .-
Baixe o dataset do Kaggle:
Phishing URL Dataset -- baixe
Training.parqueteTesting.parquete coloque emsrc/data/. -
Treine o modelo:
python src/core/train_model.py- Inicie o servidor:
flask --app app run --host 0.0.0.0 --port 5000A API estara disponivel em http://localhost:5000.
Para analisar uma URL, envie uma requisicao POST para o endpoint /analyze. Se quiser analisar em lote, envie uma requisicao POST para o endpoint /analyze/batch.
Exemplo:
curl -X POST http://localhost:5000/analyze \
-H "Content-Type: application/json" \
-d '{"url": "https://www.google.com"}'Resposta:
{
"url": "https://www.google.com",
"analise_ml": {
"previsao": "legitimate",
"confianca": "98%"
}
}Este projeto esta licenciado sob a licenca MIT. Veja o arquivo LICENSE para mais detalhes.