
обнаружение SQL/XSS атак на веб-API с помощью ИИ
Этот проект направлен на обнаружение SQL-инъекций и XSS в запросах/параметрах API с использованием машинного обучения.
Этот проект направлен на обнаружение инъекций SQL и XSS в запросах и параметрах API с использованием методов Машинного обучения.
Цель — создать простой конвейер, позволяющий:
benign, sql_injection или xss,Подготовка набора данных
Файл generated_payloads.csv в папке data/ содержит примеры помеченных запросов API (sql_injection, xss, benign) из внешних источников, таких как Kaggle, или сгенерированных локально.
Очистка и разделение набора данных
python scripts/clean_and_split.py
Скрипт:
удаляет дубликаты и пустые строки,
очищает текст (пробелы, переносы строк, табуляции),
нормализует метки,
и создает:
data/combined.csv : полный очищенный набор данных,
data/train.csv : данные для обучения (80%),
data/test.csv : данные для тестирования (20%).
Обучение модели
python scripts/train_model.py
Модель использует конвейер ML:
TF-IDF Vectorizer (TfidfVectorizer) : преобразует текстовые запросы в числовые векторы, захватывая важность подозрительных слов или символов.
Logistic Regression (LogisticRegression) : контролируемый классификатор, который учится сопоставлять векторы TF-IDF с классами sql_injection, xss или benign.
После обучения модель сохраняется в папке models и впоследствии может быть использована для предсказания класса нового запроса.
Автоматические тесты
pytest -v -s tests/test_pipeline.py
Тест проверяет, что:
модель загружается,
она корректно предсказывает несколько простых примеров,
не возникает ошибок конвейера.
Python-зависимости
pip3 install -r requirements.txt
Библиотеки
pandas
scikit-learn
joblib
pytest
Примечания
Скрипты предназначены для локального запуска в среде Python 3.13+ с перечисленными зависимостями.