Thèse soutenue

Apprentissage en profondeur appliqué à la sécurité du Web : identifier statiquement des vulnérabilités Web en utilisant des algorithmes d’apprentissage profond
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Héloïse Maurel
Direction : Tamara Rezk
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 14/11/2022
Etablissement(s) : Université Côte d'Azur
Ecole(s) doctorale(s) : École doctorale Sciences et technologies de l'information et de la communication
Partenaire(s) de recherche : Laboratoire : Institut national de recherche en informatique et en automatique (France). Unité de recherche (Sophia Antipolis, Alpes-Maritimes)
Jury : Président / Présidente : Gustavo Betarte
Examinateurs / Examinatrices : Tamara Rezk, Gustavo Betarte, Matteo Maffei, Santiago Vidal
Rapporteurs / Rapporteuses : Gustavo Betarte, Matteo Maffei

Résumé

FR  |  
EN

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.