Codeformer: un modelo de transformador anidado GNN para la detección de similitud de código binario
Autores: Liu, Guangming; Zhou, Xin; Pang, Jianmin; Yue, Feng; Liu, Wenfu; Wang, Junchao
Idioma: Inglés
Editor: MDPI
Año: 2023
Acceso abierto
Artículo científico
2023
Codeformer: un modelo de transformador anidado GNN para la detección de similitud de código binario
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Código binario
Detección de similitud
Redes neuronales de grafo
Codeformer
Vector de incrustación
Bloques básicos
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 50
Citaciones: Sin citaciones
La detección de similitud de código binario se utiliza para calcular la similitud de código de un par de funciones o archivos binarios, a través de un método de cálculo y método de juicio específico. Es una tarea fundamental en el campo de la seguridad binaria informática. Los métodos tradicionales de detección de similitud suelen utilizar algoritmos de coincidencia de gráficos, pero estos métodos tienen un rendimiento deficiente y efectos insatisfactorios. Recientemente, las redes neuronales de gráficos se han convertido en un método efectivo para analizar incrustaciones de gráficos en el procesamiento de lenguaje natural. Aunque estos métodos son efectivos, los métodos existentes aún no aprenden suficientemente la información del código binario. Para resolver este problema, proponemos Codeformer, un modelo iterativo de una red neuronal de gráficos (GNN) anidada en un Transformer. El modelo utiliza un Transformer para obtener un vector de incrustación del bloque básico y utiliza el GNN para actualizar el vector de incrustación de cada bloque básico del gráfico de flujo de control (CFG). Codeformer ejecuta de forma iterativa la incrustación de bloques básicos para aprender información global abundante y finalmente utiliza el GNN para agregar todos los bloques básicos de una función. Realizamos experimentos en los conjuntos de datos de OpenSSL, Clamav y Curl. Los resultados de la evaluación muestran que nuestro método supera a los modelos de última generación.
Descripción
La detección de similitud de código binario se utiliza para calcular la similitud de código de un par de funciones o archivos binarios, a través de un método de cálculo y método de juicio específico. Es una tarea fundamental en el campo de la seguridad binaria informática. Los métodos tradicionales de detección de similitud suelen utilizar algoritmos de coincidencia de gráficos, pero estos métodos tienen un rendimiento deficiente y efectos insatisfactorios. Recientemente, las redes neuronales de gráficos se han convertido en un método efectivo para analizar incrustaciones de gráficos en el procesamiento de lenguaje natural. Aunque estos métodos son efectivos, los métodos existentes aún no aprenden suficientemente la información del código binario. Para resolver este problema, proponemos Codeformer, un modelo iterativo de una red neuronal de gráficos (GNN) anidada en un Transformer. El modelo utiliza un Transformer para obtener un vector de incrustación del bloque básico y utiliza el GNN para actualizar el vector de incrustación de cada bloque básico del gráfico de flujo de control (CFG). Codeformer ejecuta de forma iterativa la incrustación de bloques básicos para aprender información global abundante y finalmente utiliza el GNN para agregar todos los bloques básicos de una función. Realizamos experimentos en los conjuntos de datos de OpenSSL, Clamav y Curl. Los resultados de la evaluación muestran que nuestro método supera a los modelos de última generación.