Chiosa
AI Security & Safety

LLM4SAST detecta fallos en seis analizadores de código para Java y Rust

2 min
Publicado en Chiosa Actualizado

En palabras sencillas

El artículo presenta un marco que pone a prueba herramientas de software que buscan problemas de seguridad en el código. Un modelo de lenguaje modifica programas de ejemplo de tres maneras: conserva su comportamiento, corrige una vulnerabilidad o añade una.

El marco comprueba los cambios y compara las alertas del analizador con lo que debería ocurrir. En seis herramientas para Java y Rust, los investigadores reportaron 66 fallos distintos.

La tabla detallada de estados indica que 12 se corrigieron y 24 se confirmaron, pero el resumen y el texto sobre las contribuciones dicen que se confirmaron o corrigieron 32. Las cifras no coinciden; 30 reportes seguían pendientes.

La investigación

Si las pruebas generan cambios de código limitados o inválidos, una alerta omitida o adicional del analizador puede confundirse con un defecto de la propia prueba.

¿Cómo pueden las pruebas abarcar distintos tipos de cambios de código y, al mismo tiempo, comprobar que cada programa modificado realmente se ajusta al cambio previsto?

LLM4SAST pide a un modelo de lenguaje que genere tres tipos de cambios de código, comprueba si se ajustan al cambio previsto y luego pone a prueba los analizadores a partir de las alertas resultantes.

LLM4SAST registra las alertas de un analizador y luego usa un modelo de lenguaje para conservar el comportamiento, reparar una vulnerabilidad o añadir una.

Las comprobaciones de compilación, ejecución y análisis dinámico filtran las variantes antes de comparar las nuevas alertas con los patrones esperados.

En seis herramientas para Java y Rust, los investigadores reportaron 66 fallos distintos. La tabla detallada de estados indica que 12 se corrigieron y 24 se confirmaron, pero el resumen y el texto sobre las contribuciones reportan 32 confirmados o corregidos, así que el artículo presenta cifras contradictorias.

Otros 30 reportes seguían pendientes. Los resultados muestran que el enfoque detectó posibles fallos en las herramientas evaluadas.

La evaluación abarcó seis herramientas seleccionadas para Java y Rust y sus reglas relacionadas con la seguridad. Algunas variantes inválidas podrían haber quedado, y la agrupación dejó algunas variantes sin analizar; por ello, aún son posibles las alertas falsas y los fallos no detectados.

Análisis

Detalles

Siguiente paperProfiling reveals capabilities that threat labels miss in agent skills