Irc-clvul: detección de vulnerabilidades entre lenguajes de programación con representaciones intermedias y características combinadas
Autores: Lei, Tianwei; Xue, Jingfeng; Wang, Yong; Liu, Zhenyan
Idioma: Inglés
Editor: MDPI
Año: 2023
Acceso abierto
Artículo científico
2023
Irc-clvul: detección de vulnerabilidades entre lenguajes de programación con representaciones intermedias y características combinadas
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Problema grave
Extracción de características
Detección de vulnerabilidades
Representación intermedia
Vectores semánticos
Random Forest
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 62
Citaciones: Sin citaciones
El problema más grave en la programación cruzada de lenguajes es la extracción de características debido a diferentes tokens en diferentes lenguajes de programación. Para resolver este problema, proponemos un método de detección de vulnerabilidades de lenguaje de programación cruzada en este documento, IRC-CLVul, basado en representación intermedia y características combinadas. Específicamente, primero convertimos programas en diferentes lenguajes de programación en una representación intermedia unificada de LLVM (LLVM-IR) para proporcionar una base de clasificación para diferentes lenguajes de programación. Posteriormente, extraímos las secuencias de código y los grafos de flujo de control de las muestras, utilizamos el modelo semántico para extraer la información semántica del programa y la información de la estructura del grafo, y las concatenamos en vectores semánticos. Finalmente, utilizamos Random Forest para aprender los vectores semánticos concatenados y obtener los resultados de clasificación. Realizamos experimentos en 85,811 muestras de la suite de pruebas Juliet en C, C++ y Java. Los resultados muestran que nuestro método mejoró la precisión en un 7% en comparación con los dos algoritmos de referencia, y el puntaje F1 mostró un aumento del 12%.
Descripción
El problema más grave en la programación cruzada de lenguajes es la extracción de características debido a diferentes tokens en diferentes lenguajes de programación. Para resolver este problema, proponemos un método de detección de vulnerabilidades de lenguaje de programación cruzada en este documento, IRC-CLVul, basado en representación intermedia y características combinadas. Específicamente, primero convertimos programas en diferentes lenguajes de programación en una representación intermedia unificada de LLVM (LLVM-IR) para proporcionar una base de clasificación para diferentes lenguajes de programación. Posteriormente, extraímos las secuencias de código y los grafos de flujo de control de las muestras, utilizamos el modelo semántico para extraer la información semántica del programa y la información de la estructura del grafo, y las concatenamos en vectores semánticos. Finalmente, utilizamos Random Forest para aprender los vectores semánticos concatenados y obtener los resultados de clasificación. Realizamos experimentos en 85,811 muestras de la suite de pruebas Juliet en C, C++ y Java. Los resultados muestran que nuestro método mejoró la precisión en un 7% en comparación con los dos algoritmos de referencia, y el puntaje F1 mostró un aumento del 12%.