Un incrustación neural consciente del contexto para la detección de vulnerabilidades a nivel de función
Autores: Wei, Hongwei; Lin, Guanjun; Li, Lin; Jia, Heming
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Un incrustación neural consciente del contexto para la detección de vulnerabilidades a nivel de función
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Vulnerabilidades explotables
Sistemas de software
Aprendizaje automático
Detección
Consciente del contexto
Incrustaciones
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 34
Citaciones: Sin citaciones
Las vulnerabilidades explotables en los sistemas de software son importantes preocupaciones de seguridad. Hasta la fecha, se han propuesto soluciones basadas en aprendizaje automático (ML) para automatizar y acelerar la detección de vulnerabilidades. La mayoría de las técnicas de ML tienen como objetivo aislar una unidad de código fuente, ya sea una línea o una función, como vulnerable. Sostenemos que un segmento de código es vulnerable si existe en ciertos contextos semánticos, como el flujo de control y el flujo de datos; por lo tanto, es importante que la detección sea consciente del contexto. En este documento, evaluamos el rendimiento de las técnicas de incrustación de palabras más utilizadas en el escenario de detección de vulnerabilidades de software. Basándonos en la evaluación, proponemos un marco supervisado que aprovecha las incrustaciones pre-entrenadas conscientes del contexto de modelos de lenguaje (ELMo) para capturar representaciones contextuales profundas, que se resumen aún más por una capa bidireccional de memoria a corto y largo plazo (Bi-LSTM) para aprender dependencias de código a largo plazo. El marco toma directamente una función de código fuente como entrada y produce incrustaciones de función correspondientes, que pueden tratarse como conjuntos de características para clasificadores de ML convencionales. Los resultados experimentales mostraron que el marco propuesto produjo el mejor rendimiento en sus tareas de detección posteriores. Utilizando las representaciones de características generadas por nuestro marco, el bosque aleatorio y la máquina de vectores de soporte superaron a cuatro sistemas de referencia en nuestros conjuntos de datos, demostrando que el marco incorporado con ELMo puede capturar efectivamente los patrones vulnerables de flujo de datos y facilitar la tarea de detección de vulnerabilidades.
Descripción
Las vulnerabilidades explotables en los sistemas de software son importantes preocupaciones de seguridad. Hasta la fecha, se han propuesto soluciones basadas en aprendizaje automático (ML) para automatizar y acelerar la detección de vulnerabilidades. La mayoría de las técnicas de ML tienen como objetivo aislar una unidad de código fuente, ya sea una línea o una función, como vulnerable. Sostenemos que un segmento de código es vulnerable si existe en ciertos contextos semánticos, como el flujo de control y el flujo de datos; por lo tanto, es importante que la detección sea consciente del contexto. En este documento, evaluamos el rendimiento de las técnicas de incrustación de palabras más utilizadas en el escenario de detección de vulnerabilidades de software. Basándonos en la evaluación, proponemos un marco supervisado que aprovecha las incrustaciones pre-entrenadas conscientes del contexto de modelos de lenguaje (ELMo) para capturar representaciones contextuales profundas, que se resumen aún más por una capa bidireccional de memoria a corto y largo plazo (Bi-LSTM) para aprender dependencias de código a largo plazo. El marco toma directamente una función de código fuente como entrada y produce incrustaciones de función correspondientes, que pueden tratarse como conjuntos de características para clasificadores de ML convencionales. Los resultados experimentales mostraron que el marco propuesto produjo el mejor rendimiento en sus tareas de detección posteriores. Utilizando las representaciones de características generadas por nuestro marco, el bosque aleatorio y la máquina de vectores de soporte superaron a cuatro sistemas de referencia en nuestros conjuntos de datos, demostrando que el marco incorporado con ELMo puede capturar efectivamente los patrones vulnerables de flujo de datos y facilitar la tarea de detección de vulnerabilidades.