Hay infinitas maneras de formular código: Cómo mitigar los problemas resultantes para una mejor detección de vulnerabilidades en el software
Autores: Groppe, Jinghua; Groppe, Sven; Senf, Daniel; Möller, Ralf
Idioma: Inglés
Editor: MDPI
Año: 2024
Acceso abierto
Artículo científico
2024
Hay infinitas maneras de formular código: Cómo mitigar los problemas resultantes para una mejor detección de vulnerabilidades en el software
Categoría
Gestión y administración
Subcategoría
Gestión de la tecnología y la inovación
Palabras clave
Programas de software
Tecnología de aprendizaje profundo
Detector de vulnerabilidades
Procesamiento de lenguaje natural
Referencias de variables
Modelos de aprendizaje profundo
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 1
Citaciones: Sin citaciones
Dado un conjunto de programas de software, cada uno etiquetado como vulnerable o benigno, se puede utilizar la tecnología de aprendizaje profundo para construir automáticamente un detector de vulnerabilidades de software. Un desafío en este contexto es que hay innumerables formas equivalentes de implementar una funcionalidad particular en un programa. Por ejemplo, la denominación de variables a menudo es una cuestión del estilo personal de los programadores, y, por lo tanto, la detección de patrones de vulnerabilidad en los programas se complica. Los enfoques actuales de aprendizaje profundo para la detección de vulnerabilidades de software se basan en el texto en bruto de un programa y explotan las capacidades generales de procesamiento de lenguaje natural para abordar el problema de lidiar con diferentes esquemas de nomenclatura en instancias de patrones de vulnerabilidad. Sin embargo, confiar en el procesamiento de lenguaje natural y aprender a revelar las estructuras de referencia de variables a partir del texto en bruto a menudo es una carga demasiado alta. Por lo tanto, los enfoques basados en aprendizaje profundo aún presentan problemas para generar un detector con propiedades de generalización decentes debido al problema de la nomenclatura o, más generalmente formulado, el problema de la explosión de vocabulario. En este trabajo, proponemos técnicas para mitigar este problema al hacer que la estructura referencial de las referencias de variables sea explícita en las representaciones de entrada para enfoques de aprendizaje profundo. Los resultados de la evaluación muestran que los modelos de aprendizaje profundo basados en las técnicas presentadas en este artículo superan a los enfoques de texto en bruto para la detección de vulnerabilidades. Además, las nuevas técnicas también inducen una huella de memoria principal muy pequeña. La ganancia de eficiencia en el uso de memoria puede ser de hasta cuatro órdenes de magnitud en comparación con los métodos existentes, como indican nuestros experimentos.
Descripción
Dado un conjunto de programas de software, cada uno etiquetado como vulnerable o benigno, se puede utilizar la tecnología de aprendizaje profundo para construir automáticamente un detector de vulnerabilidades de software. Un desafío en este contexto es que hay innumerables formas equivalentes de implementar una funcionalidad particular en un programa. Por ejemplo, la denominación de variables a menudo es una cuestión del estilo personal de los programadores, y, por lo tanto, la detección de patrones de vulnerabilidad en los programas se complica. Los enfoques actuales de aprendizaje profundo para la detección de vulnerabilidades de software se basan en el texto en bruto de un programa y explotan las capacidades generales de procesamiento de lenguaje natural para abordar el problema de lidiar con diferentes esquemas de nomenclatura en instancias de patrones de vulnerabilidad. Sin embargo, confiar en el procesamiento de lenguaje natural y aprender a revelar las estructuras de referencia de variables a partir del texto en bruto a menudo es una carga demasiado alta. Por lo tanto, los enfoques basados en aprendizaje profundo aún presentan problemas para generar un detector con propiedades de generalización decentes debido al problema de la nomenclatura o, más generalmente formulado, el problema de la explosión de vocabulario. En este trabajo, proponemos técnicas para mitigar este problema al hacer que la estructura referencial de las referencias de variables sea explícita en las representaciones de entrada para enfoques de aprendizaje profundo. Los resultados de la evaluación muestran que los modelos de aprendizaje profundo basados en las técnicas presentadas en este artículo superan a los enfoques de texto en bruto para la detección de vulnerabilidades. Además, las nuevas técnicas también inducen una huella de memoria principal muy pequeña. La ganancia de eficiencia en el uso de memoria puede ser de hasta cuatro órdenes de magnitud en comparación con los métodos existentes, como indican nuestros experimentos.