
détection des attaques sql/xss sur API web avec IA
Ce projet vise à détecter les injections SQL et XSS dans des requêtes/params d'API en utilisant du machine learning.
Ce projet vise à détecter les injections SQL et XSS dans des requêtes et paramètres d'API en utilisant des techniques de Machine Learning.
L'objectif est de créer un pipeline simple permettant de :
benign, sql_injection ou xss,Préparer le dataset
Le fichier generated_payloads.csv dans le dossier contient des exemples de requêtes d'API étiquetées (, , ) provenant de sources externes comme Kaggle ou générées localement.
data/sql_injectionxssbenignNettoyage et découpage du dataset
python scripts/clean_and_split.py
Le script :
supprime les doublons et les lignes vides,
nettoie les textes (espaces, retours à la ligne, tabulations),
normalise les labels,
et il génère :
data/combined.csv : dataset complet nettoyé,
data/train.csv : données d'entraînement (80%),
data/test.csv : données de test (20%).
python scripts/train_model.py
Le modèle utilise un pipeline ML :
TF-IDF Vectorizer (TfidfVectorizer) : transforme les requêtes texte en vecteurs numériques, en capturant l’importance des mots ou symboles suspects.
Logistic Regression (LogisticRegression) : classifieur supervisé qui apprend à associer les vecteurs TF-IDF aux classes sql_injection, xss ou benign.
Après l’entraînement, le modèle est sauvegardé dans le dossier models, il peut ensuite être utilisé pour prédire la classe d’une nouvelle requête.
pytest -v -s tests/test_pipeline.py
Le test vérifie que :
le modèle est chargeable,
il prédit correctement plusieurs exemples simples,
aucune erreur de pipeline ne survient.
pip3 install -r requirements.txt
Librairies
pandas
scikit-learn
joblib
pytest