API-attack-detection-with-AI

Détection des attaques SQL/XSS sur API Web avec intelligence artificielle / machine learning

Ce projet vise à détecter les injections SQL et XSS dans des requêtes/params d’API en utilisant du machine learning.

Présentation du projet

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 :


Workflow du projet

  1. 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.

  2. Nettoyage et découpage du dataset
    ```bash python scripts/clean_and_split.py

Le script :

et il génère :

  1. Entraînement du modèle
    ```bash 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.

  1. Tests automatiques
    ```bash pytest -v -s tests/test_pipeline.py

Le test vérifie que :

  1. Dépendances Python
    ```bash pip3 install -r requirements.txt

Librairies

  1. Notes
    Les scripts sont conçus pour être exécutés localement, dans un environnement Python 3.13+ avec les dépendances listées.