Variables are a Curse in Software Vulnerability Prediction

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Groppe, Jinghua, Groppe, Sven, Möller, Ralf
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866914857191735296
author Groppe, Jinghua
Groppe, Sven
Möller, Ralf
author_facet Groppe, Jinghua
Groppe, Sven
Möller, Ralf
contents Deep learning-based approaches for software vulnerability prediction currently mainly rely on the original text of software code as the feature of nodes in the graph of code and thus could learn a representation that is only specific to the code text, rather than the representation that depicts the 'intrinsic' functionality of a program hidden in the text representation. One curse that causes this problem is an infinite number of possibilities to name a variable. In order to lift the curse, in this work we introduce a new type of edge called name dependence, a type of abstract syntax graph based on the name dependence, and an efficient node representation method named 3-property encoding scheme. These techniques will allow us to remove the concrete variable names from code, and facilitate deep learning models to learn the functionality of software hidden in diverse code expressions. The experimental results show that the deep learning models built on these techniques outperform the ones based on existing approaches not only in the prediction of vulnerabilities but also in the memory need. The factor of memory usage reductions of our techniques can be up to the order of 30,000 in comparison to existing approaches.
format Preprint
id arxiv_https___arxiv_org_abs_2407_02509
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Variables are a Curse in Software Vulnerability Prediction
Groppe, Jinghua
Groppe, Sven
Möller, Ralf
Software Engineering
Artificial Intelligence
Cryptography and Security
Machine Learning
I.2.0; D.2.m
Deep learning-based approaches for software vulnerability prediction currently mainly rely on the original text of software code as the feature of nodes in the graph of code and thus could learn a representation that is only specific to the code text, rather than the representation that depicts the 'intrinsic' functionality of a program hidden in the text representation. One curse that causes this problem is an infinite number of possibilities to name a variable. In order to lift the curse, in this work we introduce a new type of edge called name dependence, a type of abstract syntax graph based on the name dependence, and an efficient node representation method named 3-property encoding scheme. These techniques will allow us to remove the concrete variable names from code, and facilitate deep learning models to learn the functionality of software hidden in diverse code expressions. The experimental results show that the deep learning models built on these techniques outperform the ones based on existing approaches not only in the prediction of vulnerabilities but also in the memory need. The factor of memory usage reductions of our techniques can be up to the order of 30,000 in comparison to existing approaches.
title Variables are a Curse in Software Vulnerability Prediction
topic Software Engineering
Artificial Intelligence
Cryptography and Security
Machine Learning
I.2.0; D.2.m
url https://arxiv.org/abs/2407.02509