Deep learning applied on Web security : statically identifying Web vulnerabilities using deep learning - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2022

Deep learning applied on Web security : statically identifying Web vulnerabilities using deep learning

Apprentissage en profondeur appliqué à la sécurité du Web : identifier statiquement des vulnérabilités Web en utilisant des algorithmes d’apprentissage profond

Héloïse Maurel
  • Fonction : Auteur
  • PersonId : 1236427
  • IdRef : 267925859

Résumé

Cross-site Scripting (XSS) is ranked number two in the top 25 of the Common Weaknesses Enumeration (2021) and places this vulnerability as one of the most dangerous among programming errors.XSS occurs when a web application improperly neutralizes user-controllable input before it is placed in the output, used on a web page that is served to other users. With this type of vulnerability, an attacker can perform malicious activities such as transferring private information from the victim's browser, send malicious requests to a website on behalf of the victim, emulate trusted websites and inciting victims to enter private information, compromise the victim's website account, etc.On the first part of this manuscript, we investigate detection of XSS vulnerabilities using deep learning algorithms.In particular, we compare two code representations based on natural language processing (NLP) and programming language processing (PLP) in two server-side languages, PHP and Node.js.We rebuild the PHP NIST generator, fix inconsistencies related to OWAPS rules to prevent XSS vulnerabilities, and extend the database. We build a new server-side code generator for Node.js.We also compare the PHP results obtained on two types of database distributions. The NLP representation has a better recall when HTML, JavaScript and CSS are included as code.We compare the results obtained by our deep learning models capable of detecting XSS vulnerabilities with three well-known static XSS vulnerability scanners for PHP code, ProgPilot, Pixy and RIPS and a well-known scanner for Nodejs, AppScan. The results of our analysers overcome the results of existing tools in all cases.We also compare XSS vulnerability detection in Node.js and a multi-tier JavaScript-based language called Hop.js using the PLP deep learning technique.In this sense, we build a new generator for Hop.js, and we create a database for this language. With deep learning models trained to detect XSS on Hop.js, we obtain better recalls than Node.js models depiste the lower precision. However, our experiments have not shown a major impact on XSS PLP detectors based on multi-tier compared to single-tier paradigm.
Cross-site Scripting (XSS) est classé numéro deux dans le top 25 du Common Weaknesses Enumeration 2021 (CWE) et place cette vulnérabilité comme l'une des plus dangereuses parmi les erreurs de programmation.XSS se produit lorsqu'une application Web neutralise de manière inappropriée une entrée contrôlable par l'utilisateur avant qu'elle ne soit placée dans la sortie. Avec ce type de vulnérabilité, un attaquant peut effectuer des activités malveillantes telles que transférer des informations privées depuis le navigateur de la victime, envoyer des requêtes malveillantes à un site Web au nom de la victime, émuler des sites Web de confiance et inciter les victimes à saisir des informations privées, compromettre le compte du site Web de la victime...etc.Dans la première partie de ce manuscrit, nous étudions la détection des vulnérabilités XSS à l'aide d'algorithmes d'apprentissage en profondeur.En particulier, nous comparons deux représentations de code basées sur le traitement du langage naturel (NLP) et le traitement de langage de programmation (PLP) dans deux langages côté serveur, PHP et Node.js.Nous reconstruisons le générateur PHP NIST, corrigeons les incohérences liées aux règles OWAPS pour prévenir les vulnérabilités XSS et étendons la base de données. Nous construisons un nouveau générateur de code côté serveur pour Node.js.Nous comparons également les résultats PHP obtenus sur deux types de distributions de bases de données. La représentation NLP a un meilleur rappel lorsque HTML, JavaScript et CSS sont inclus en tant que code.Nous comparons les résultats obtenus par nos modèles d'apprentissage en profondeur capables de détecter les vulnérabilités XSS avec trois scanners de vulnérabilité XSS statiques bien connus pour le code PHP, ProgPilot, Pixy et RIPS et un scanner bien connu pour Nodejs, AppScan. Les résultats de nos analyseurs surpassent dans tous les cas les résultats des outils existants.Nous comparons également la détection de vulnérabilité XSS dans Node.js et un langage basé sur JavaScript à plusieurs niveaux appelé Hop.js en utilisant une technique d'apprentissage en profondeur PLP. En ce sens, nous construisons un nouveau générateur pour Hop.js, et nous créons une base de données pour ce langage. Avec des modèles d'apprentissage en profondeur formés pour détecter XSS sur Hop.js, nous obtenons de meilleurs rappels que les modèles Node.js malgré la précision inférieure. Cependant, nos expériences n'ont pas montré d'impact majeur sur les détecteurs XSS PLP basés sur le paradigme multi-tiers par rapport au paradigme mono-tier.
Fichier principal
Vignette du fichier
2022COAZ4059.pdf (1.66 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-04025922 , version 1 (11-11-2022)
tel-04025922 , version 2 (14-02-2023)
tel-04025922 , version 3 (13-03-2023)

Identifiants

  • HAL Id : tel-04025922 , version 3

Citer

Héloïse Maurel. Deep learning applied on Web security : statically identifying Web vulnerabilities using deep learning. Artificial Intelligence [cs.AI]. Université Côte d'Azur, 2022. English. ⟨NNT : 2022COAZ4059⟩. ⟨tel-04025922v3⟩
342 Consultations
611 Téléchargements

Partager

Gmail Facebook X LinkedIn More