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 data/ contient des exemples de requêtes d’API étiquetées (sql_injection, xss, benign) provenant de sources externes comme Kaggle ou générées localement.
Nettoyage et découpage du dataset
```bash
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%).
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.
Le test vérifie que :
le modèle est chargeable,
il prédit correctement plusieurs exemples simples,
aucune erreur de pipeline ne survient.
Librairies
pandas
scikit-learn
joblib
pytest