Simple Science

La science de pointe expliquée simplement

# Informatique# Apprentissage automatique# Cryptographie et sécurité

Avancées dans la détection des attaques par injection SQL

Des recherches montrent que l'apprentissage automatique améliore considérablement les taux de détection des injections SQL.

― 7 min lire


Détection des injectionsDétection des injectionsSQL amélioréeinjection SQL.défense contre les attaques parL'apprentissage machine renforce la
Table des matières

Dans cette section, on parle de trois expériences qu'on a menées pour évaluer l'efficacité de notre approche pour détecter les attaques par Injection SQL. D'abord, on a regardé comment un modèle basique se débrouillait pour détecter ces attaques. Le modèle basique utilisait une méthode simple qui combinait des règles basées sur des poids fixes sans tenir compte du trafic normal. Du coup, il avait un faible taux de Détection pour les attaques par injection SQL. Le taux de détection était limité même dans les meilleures conditions.

Ensuite, on a montré par des tests que l'utilisation de techniques d'apprentissage machine pour ajuster les poids de ces règles améliorait significativement le taux de détection, atteignant une augmentation de jusqu'à 21 %. Notre troisième expérience impliquait une nouvelle méthode qui entraînait le modèle spécifiquement pour mieux gérer les attaques, ce qui améliorait sa robustesse de 42 %. Cette méthode s'est révélée plus solide que le modèle basique de 25 %.

L'ensemble de nos expériences s'est déroulé sur un serveur Ubuntu avec un processeur Intel puissant et beaucoup de mémoire. On a utilisé un ensemble de données comprenant de nombreux exemples de Requêtes SQL malveillantes et bénignes. Cet ensemble de données a été choisi car c'est l'une des ressources les plus complètes disponibles pour former des modèles à détecter les attaques par injection SQL.

Pour créer notre ensemble de données d'entraînement, on a sélectionné au hasard 20 000 échantillons de l'ensemble de données original. Cet ensemble d'entraînement contenait un nombre égal de requêtes SQL bénignes et malveillantes. Pour les tests, on a créé un ensemble de données séparé incluant 4 000 échantillons choisis au hasard. Cet ensemble de test était conçu pour évaluer la performance de nos modèles de détection sans empiéter sur les données d'entraînement.

On a également développé un ensemble d'entraînement spécial spécifiquement pour l'entraînement adversarial. Ça a impliqué de créer 5 000 requêtes SQL malveillantes à partir de notre ensemble d'entraînement principal et de les modifier en utilisant des outils avancés. Ces requêtes modifiées ont ensuite été ajoutées à l'ensemble d'entraînement principal. Pour les tests, on a créé un ensemble de test adversarial séparé en optimisant des requêtes malveillantes sélectionnées tout en gardant les requêtes bénignes inchangées. Cette configuration nous a permis d'évaluer à quel point nos méthodes pouvaient résister à des attaques sophistiquées.

Dans nos expériences, on a mis en place un extracteur de caractéristiques utilisant une bibliothèque spécifique pour travailler avec les règles de détection ciblant les injections SQL. Les règles qu'on a utilisées pour entraîner le modèle étaient spécifiquement conçues pour détecter les tentatives d'injection SQL. On a ajusté le système de détection pour minimiser les faux positifs tout en permettant un maximum de requêtes fournissant les données nécessaires pour l'entraînement.

On a aussi employé des modèles d'apprentissage machine basés sur des machines à vecteurs de support (SVM) et des forêts aléatoires (RF). Ces types de modèles sont connus pour leur efficacité dans les tâches de classification. On a soigneusement réglé ces modèles pour la performance en ajustant leurs paramètres et en les validant par une approche systématique. Cette méthode a assuré qu'on obtienne les meilleures versions possibles de ces modèles pour notre tâche.

Notre premier objectif était d'évaluer la performance du modèle basique. On a exploré sa capacité à différencier entre requêtes SQL bénignes et malveillantes dans divers réglages. On s'est concentrés sur sa capacité à détecter des attaques avec des taux de faux positifs spécifiques. Les résultats ont montré que le modèle basique avait pas mal de mal, souvent en classant à tort des requêtes bénignes comme malveillantes.

En avançant vers les modèles d'apprentissage machine, les résultats se sont nettement améliorés. Les modèles SVM et RF ont montré une capacité accrue à détecter les tentatives d'injection SQL dans différents contextes par rapport au modèle basique. Particulièrement, les deux modèles ont montré des augmentations substantielles dans les taux de détection, surpassant souvent l'approche basique.

Quand on a testé les modèles d'apprentissage machine contre des attaques adversariales, ils ont quand même réussi à surpasser le modèle basique. Bien qu'ils aient rencontré des défis sous des conditions d'attaque, ils se sont révélés plus efficaces, montrant de meilleurs résultats dans l'identification des requêtes malveillantes. En termes de robustesse globale, les modèles SVM et RF ont maintenu des taux de détection plus élevés comparés à la version basique.

Reconnaissant que les modèles entraînés dans des conditions difficiles pouvaient encore être bénéfiques, on a décidé de réentraîner les modèles d'apprentissage machine en se concentrant sur la robustesse adversariale. Ce réentraînement nous a permis d'évaluer la performance de ces modèles sous des conditions normales et d'attaque. Les résultats ont révélé que ces modèles entraînés de manière adversariale non seulement ont tenu bon contre les attaques mais ont aussi maintenu des niveaux de performance similaires à leurs prédécesseurs sans ce genre d'entraînement.

En scrutant de près les caractéristiques que les modèles utilisaient pour la détection, on a constaté que l'entraînement adversarial aidait à répartir l'importance de diverses règles, rendant plus difficile pour les attaquants de contourner la détection. En observant quelles règles étaient activées pendant les attaques, on a tiré des enseignements sur la manière dont les modèles basiques et améliorés géraient différents types d'attaques.

Dans l'ensemble, nos découvertes ont mis en avant l'importance d'utiliser des techniques d'apprentissage machine pour améliorer les capacités de détection contre les attaques par injection SQL. Le modèle basique, bien que simple, s'est avéré inadéquat dans des scénarios réels. En revanche, les modèles qui incorporaient l'apprentissage machine ont montré des améliorations significatives, surtout face à des tactiques adversariales sophistiquées.

En résumé, grâce à des expériences réfléchies et à une attention particulière portée aux échantillons bénins et malveillants, on a illustré comment des techniques avancées peuvent grandement renforcer la capacité à détecter les attaques par injection SQL. Les résultats de nos expériences indiquent que former des modèles spécifiquement pour des conditions adversariales peut aboutir à des défenses plus solides et à une meilleure gestion de divers types d'attaques.

Les développements de cette recherche soulignent la nécessité d'améliorations continues dans les systèmes de détection et montrent le potentiel des approches d'apprentissage machine pour atteindre des mesures de sécurité plus fiables contre les menaces d'injection SQL. À mesure que les méthodes d'attaque continuent d'évoluer, nos stratégies défensives doivent également progresser, rendant la recherche dans ce domaine cruciale pour les futures solutions de sécurité.

Ces résultats servent de base solide pour d'autres études axées sur l'amélioration de la détection des injections SQL et peuvent être utilisés pour guider la conception et la mise en œuvre de mesures de sécurité plus efficaces dans des applications réelles. L'importance de s'adapter aux schémas d'attaque changeants par le biais d'un raffinement continu des systèmes de détection ne peut pas être sous-estimée, étant donné le paysage croissant des menaces cybernétiques auquel les organisations font face aujourd'hui.

Source originale

Titre: ModSec-AdvLearn: Countering Adversarial SQL Injections with Robust Machine Learning

Résumé: Many Web Application Firewalls (WAFs) leverage the OWASP Core Rule Set (CRS) to block incoming malicious requests. The CRS consists of different sets of rules designed by domain experts to detect well-known web attack patterns. Both the set of rules to be used and the weights used to combine them are manually defined, yielding four different default configurations of the CRS. In this work, we focus on the detection of SQL injection (SQLi) attacks, and show that the manual configurations of the CRS typically yield a suboptimal trade-off between detection and false alarm rates. Furthermore, we show that these configurations are not robust to adversarial SQLi attacks, i.e., carefully-crafted attacks that iteratively refine the malicious SQLi payload by querying the target WAF to bypass detection. To overcome these limitations, we propose (i) using machine learning to automate the selection of the set of rules to be combined along with their weights, i.e., customizing the CRS configuration based on the monitored web services; and (ii) leveraging adversarial training to significantly improve its robustness to adversarial SQLi manipulations. Our experiments, conducted using the well-known open-source ModSecurity WAF equipped with the CRS rules, show that our approach, named ModSec-AdvLearn, can (i) increase the detection rate up to 30%, while retaining negligible false alarm rates and discarding up to 50% of the CRS rules; and (ii) improve robustness against adversarial SQLi attacks up to 85%, marking a significant stride toward designing more effective and robust WAFs. We release our open-source code at https://github.com/pralab/modsec-advlearn.

Auteurs: Biagio Montaruli, Giuseppe Floris, Christian Scano, Luca Demetrio, Andrea Valenza, Luca Compagna, Davide Ariu, Luca Piras, Davide Balzarotti, Battista Biggio

Dernière mise à jour: 2024-11-29 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2308.04964

Source PDF: https://arxiv.org/pdf/2308.04964

Licence: https://creativecommons.org/licenses/by-sa/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires