2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
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èle、donné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 :
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 :
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 :
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 :
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.