Partage de technologie

Étude papier_Une étude empirique des modèles d'apprentissage profond pour la détection des vulnérabilités

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Introduction

Fond de recherche : Ces dernières années, les outils de détection des vulnérabilités du deep learning ont obtenu des résultats prometteurs. Le modèle de pointe rapporte un score F1 de 0,9 et surpasse l'analyseur statique. Les résultats sont passionnants car l’apprentissage profond pourrait révolutionner l’assurance logicielle. Par conséquent, des entreprises industrielles telles qu’IBM, Google et Amazon sont très intéressées et investissent massivement dans le développement de tels outils et ensembles de données.

Problèmes existants : Bien que la détection des vulnérabilités du deep learning soit prometteuse, elle n'a pas encore atteint le niveau de la vision par ordinateur et du traitement du langage naturel. Une grande partie de la recherche actuelle consiste à essayer des modèles d'apprentissage profond émergents et à les appliquer à des ensembles de données tels que les ensembles de données Devign ou MSR. Cependant, nous savons très peu de choses sur le modèle lui-même, par exemple quels types de programmes le modèle peut-il gérer efficacement, si nous devons créer un modèle pour chaque type de vulnérabilité ou si nous devons créer un modèle unifié pour tous les types de vulnérabilité avec de bonnes données de formation. à quoi ressemble l'ensemble et quelles informations le modèle utilise pour prendre des décisions. Connaître les réponses à ces questions peut nous aider à mieux développer, déboguer et appliquer des modèles. Il est toutefois difficile de répondre à ces questions étant donné la nature de la boîte noire du deep learning. Le but de cet article n’est pas de fournir des solutions complètes à ces problèmes, mais d’explorer ces objectifs.

Question scientifique : Dans cet article, l'article étudie et reproduit une série de modèles de détection de vulnérabilités d'apprentissage profond de pointe et établit des questions de recherche pour comprendre ces modèles, dans le but d'en tirer des leçons et des conseils pour mieux concevoir et déboguer les futurs modèles.L'article cadre la question de recherche et la divise en trois domaines, à savoirCapacités du modèledonnées d'entraînementetExplication du modèle . Plus précisément, l'objectif principal de l'article est de comprendre les capacités de l'apprentissage profond dans les problèmes de détection de vulnérabilités, avec un accent particulier sur les questions de recherche suivantes :

  • question 1 : Différents modèles peuvent-ils parvenir à un consensus sur la détection des vulnérabilités ? Quelles sont les différences entre les différents modèles ?
  • question 2 : Certains types de vulnérabilités sont-ils plus faciles à détecter ? Devez-vous créer un modèle pour chaque type de vulnérabilité, ou devez-vous créer un modèle qui détecte toutes les vulnérabilités ?
  • question 3 : Existe-t-il des modèles de code difficiles à prédire pour le modèle ? Si un tel modèle de code existe, de quel type de modèle de code s’agit-il ?

Le deuxième axe de recherche de l’article concerne les données de formation. L'objectif de cet article est de comprendre si et comment la taille et la composition des données d'entraînement affectent les performances du modèle. Plus précisément, l’article construit les questions de recherche suivantes :

  • Question 4: L'augmentation de la taille de l'ensemble de données contribue-t-elle à améliorer les performances du modèle pour la détection des vulnérabilités ?
  • Question 5: Comment la composition des éléments de l'ensemble de données d'entraînement affecte-t-elle les performances du modèle ?

Enfin, le troisième axe de recherche de la thèse est l’interprétation des modèles. L'article utilise l'outil d'interprétation du modèle SOTA pour étudier :

  • Question 6 : Quelles informations sur le code source le modèle utilise-t-il pour la prédiction ? Le modèle est-il cohérent sur les fonctionnalités importantes ?

contenu de la recherche : Pour répondre aux questions ci-dessus, l'article examine les modèles d'apprentissage profond de pointe et reproduit avec succès 11 modèles sur leurs ensembles de données d'origine. Ces modèles utilisent différentes architectures d'apprentissage en profondeur telles que GNN, RNN, LSTM, CNN et Transformers. Pour comparer ces modèles, l'article a réussi à exécuter 9 modèles avec deux ensembles de données populaires, Devign et MSR. Les raisons pour lesquelles l'article choisit ces deux ensembles de données sont : (1) les deux ensembles de données contiennent des projets et des vulnérabilités du monde réel ; (2) les modèles de la plupart des articles sont évalués et ajustés à l'aide de l'ensemble de données Devign ; (3) l'ensemble de données MSR contient 310 projets ; , et les données sont annotées avec des types de vulnérabilité, ce qui est crucial pour notre question de recherche. Grâce à des expériences soigneusement conçues et à la prise en compte des menaces, l'article a trouvé des résultats pour six questions de recherche. Dans l’ensemble, les contributions à la recherche de cet article comprennent :

  • cotisation : 1: Cet article mène une enquête complète sur les modèles de détection de vulnérabilités d’apprentissage profond.
  • Contribuer 2: L'article fournit un référentiel de code contenant 11 modèles de formation et ensembles de données pour le cadre d'apprentissage en profondeur SOTA avec divers paramètres de recherche.
  • Contribuer 3: L'article conçoit 6 questions scientifiques pour comprendre les capacités du modèle, les données d'entraînement et l'interprétation du modèle.
  • Contribuer 4: L'article structure la recherche et obtient les résultats par des expérimentations à la question scientifique posée.
  • Contribuer 5: L'article prépare des exemples et des données intéressants pour approfondir l'interprétabilité du modèle.

2. Reproduction du modèle

Afin de collecter les modèles d'apprentissage profond les plus avancés, l'article a étudié des articles de 2018 à 2022 et s'est référé aux classements CodeXGLUE de Microsoft et au classement D2A de détection des défauts d'IBM. Le document a utilisé tous les modèles open source disponibles et a reproduit avec succès 11 modèles. Une liste complète des modèles, ainsi que les raisons pour lesquelles nous n'avons pas pu reproduire certains modèles, est incluse dans le package de réplication des données du document.

Comme le montre le tableau ci-dessus, les modèles reproduits couvrent diverses architectures d'apprentissage profond. Devign et ReVeal utilisent GNN sur les graphiques de propriétés, intégrant le flux de contrôle, les dépendances de données et AST. ReGVD utilise GNN sur les jetons. Code2Vec utilise un perceptron multicouche (MLP) sur l'AST. VulDeeLocator et SySeVR sont des modèles de séquence basés sur RNN et Bi-LSTM. La détection récente du deep learning utilise des Transformers pré-entraînés, notamment CodeBERT, VulBERTa-CNN, VulBERTa-MLP, PLBART et LineVul.

En réponse aux questions de recherche de l'article, l'article a sélectionné les ensembles de données Devign et MSR. L'article étudie ces 11 modèles sur les ensembles de données utilisés dans leurs articles originaux, qui sont présentés dans le tableau ci-dessus. L'article révèle que l'ensemble de données Devign a été utilisé pour évaluer et régler 8 modèles. L'ensemble de données est un ensemble de données équilibré contenant un nombre à peu près égal d'exemples vulnérables et non vulnérables, pour un total de 27 318 points de données (chaque exemple est également appelé point de données). LineVul utilise l'ensemble de données MSR, qui est un ensemble de données récemment disponible. L'ensemble de données est déséquilibré et contient 10 900 exemples vulnérables et 177 736 exemples non vulnérables. Les exemples ont leurs projets sources ainsi que les entrées Common Weakness Enumeration (CWE) indiquant le type de vulnérabilité. L'article utilise ces caractéristiques de l'ensemble de données pour formuler certaines questions de recherche.

Le document reproduit les résultats du modèle sur la base de l'ensemble de données et des paramètres d'origine, comme indiqué dans le tableau ci-dessus. Parmi elles, les colonnes A, P, R et F représentent des indicateurs couramment utilisés dans la détection des vulnérabilités du deep learning, notamment l'exactitude, la précision, le rappel et le score F1. Par rapport au papier original, les résultats de reproduction du papier présentent généralement une erreur de calcul inférieure à 2 %. Des cas particuliers sont ReVeal, où les auteurs ont confirmé que nos résultats ont corrigé l'erreur de fuite de données dans l'article original, et Devign, où l'article a utilisé un code répliqué tiers (publié par Chakaborthy et al.) puisque le code Devign original n'était pas Open source.