
detecção de ataques sql/xss em API web com IA
Este projeto visa detectar injeções SQL e XSS em requisições/parâmetros de API usando machine learning.
Este projeto visa detectar injeções SQL e XSS em requisições e parâmetros de API usando técnicas de Machine Learning.
O objetivo é criar um pipeline simples que permita:
benign, sql_injection ou xss,Preparar o dataset
O arquivo generated_payloads.csv na pasta data/ contém exemplos de requisições de API rotuladas (sql_injection, xss, benign) provenientes de fontes externas como Kaggle ou geradas localmente.
Limpeza e divisão do dataset
python scripts/clean_and_split.py
O script:
remove duplicatas e linhas vazias,
limpa os textos (espaços, quebras de linha, tabulações),
normaliza os rótulos,
e gera:
data/combined.csv : dataset completo limpo,
data/train.csv : dados de treinamento (80%),
data/test.csv : dados de teste (20%).
python scripts/train_model.py
O modelo utiliza um pipeline de ML:
TF-IDF Vectorizer (TfidfVectorizer): transforma as requisições de texto em vetores numéricos, capturando a importância das palavras ou símbolos suspeitos.
Regressão Logística (LogisticRegression): classificador supervisionado que aprende a associar os vetores TF-IDF às classes sql_injection, xss ou benign.
Após o treinamento, o modelo é salvo na pasta models, e pode então ser usado para prever a classe de uma nova requisição.
pytest -v -s tests/test_pipeline.py
O teste verifica que:
o modelo é carregável,
ele prevê corretamente vários exemplos simples,
nenhum erro de pipeline ocorre.
pip3 install -r requirements.txt
Bibliotecas
pandas
scikit-learn
joblib
pytest