Un nuevo marco de investigación llamado ARQ está abordando uno de los dolores de cabeza más persistentes en la seguridad del software: lograr que los escáneres de código automatizados realmente señalen los errores correctos. El trabajo, escrito por Chunyi Wang y publicado en arXiv en agosto de 2026, se centra en la detección de vulnerabilidades con CodeQL, un método ampliamente utilizado para detectar fallos en código C y C++, y muestra que las consultas de detección actuales son mucho menos fiables de lo que los desarrolladores podrían suponer.
Summary
Conclusiones clave
- ARQ refina automáticamente las consultas de CodeQL para C/C++ utilizando evidencia de ejecución de programas sintetizados, sin conjuntos de datos etiquetados ni plantillas específicas de vulnerabilidades.
- Las pruebas con tres LLM comerciales — GPT-5.4, Claude-Sonnet-4.6 y Gemini-3.5-flash — refinaron 12 consultas oficiales de CodeQL.
- Las consultas refinadas detectaron hasta un 119,8% más de verdaderos positivos manteniendo la precisión en 98,0% o superior.
- ARQ resolvió tres incidencias de GitHub en el repositorio oficial de CodeQL que habían permanecido sin resolver durante hasta 27 meses.
- Las consultas refinadas descubrieron dos errores previamente desconocidos en las bibliotecas del mundo real libpng y zlib.
Limitaciones de las consultas actuales de CodeQL en la detección de vulnerabilidades en C/C++
Los analizadores estáticos se han convertido en una parte estándar de los flujos de trabajo de seguridad del software, y CodeQL está entre los más ampliamente adoptados para el escaneo de bases de código C/C++. Estas herramientas funcionan codificando patrones de código vulnerable conocidos en consultas de detección y luego haciendo coincidir esos patrones con el código fuente de un programa. El enfoque suena limpio en teoría, pero en la práctica conlleva fricciones reales.
Prevalencia de falsos positivos y falsos negativos en las consultas existentes
Las consultas actuales de CodeQL siguen generando falsos positivos, marcando incorrectamente código seguro como vulnerable, y falsos negativos, pasando por alto fallos de seguridad reales por completo. Ambos resultados tienen costes. Los falsos positivos desperdician tiempo de los desarrolladores persiguiendo errores fantasma, mientras que los falsos negativos permiten que vulnerabilidades reales lleguen a producción. Esta es precisamente la brecha que ARQ fue diseñado para cerrar, y explica por qué la detección de vulnerabilidades con CodeQL ha seguido siendo un área activa de investigación en lugar de un problema resuelto.
Marco ARQ: Refinamiento automatizado de consultas basado en la ejecución
ARQ es un marco agentivo que mejora automáticamente las consultas de CodeQL para C/C++ basándolas en evidencia de ejecución extraída de programas sintetizados, en lugar de depender de ejemplos etiquetados manualmente o plantillas construidas a mano. Esa distinción es importante porque la mayoría de las técnicas de refinamiento anteriores dependían de conjuntos de datos curados o historiales de commits que son costosos de producir y lentos de mantener.
Mecanismo para identificar debilidades de las consultas mediante ejecuciones de programas sintetizados
La idea central detrás de ARQ es simple pero poderosa: un programa sintetizado expone la debilidad de una consulta siempre que su ejecución real no coincida con lo que la consulta predice. Si un programa es realmente vulnerable pero la consulta permanece en silencio, eso revela un falso negativo. Si el programa es en realidad seguro pero la consulta lo marca de todos modos, eso revela un falso positivo. Esto le da a ARQ una verdad de referencia integrada y autogenerada para juzgar la calidad de las consultas sin necesidad de etiquetado externo.
Bucle de refinamiento iterativo basado en LLM sin datos etiquetados ni plantillas específicas de vulnerabilidades
Una vez que se expone una debilidad, ARQ ejecuta un bucle iterativo basado en un LLM que repara la consulta utilizando esos desacuerdos de ejecución como evidencia. Esta es la parte del refinamiento de consultas ARQ que lo separa de enfoques anteriores. No hay dependencia de conjuntos de datos etiquetados, no hay necesidad de minería de historiales de commits y no hay plantillas específicas de vulnerabilidades integradas en el sistema. El proceso de refinamiento es autónomo, impulsado completamente por la discrepancia entre el comportamiento predicho y el observado en el código sintetizado.
Evaluación e impacto de los refinamientos de ARQ en las consultas de CodeQL
La prueba práctica de cualquier marco de refinamiento es si realmente mejora los resultados de detección, y los resultados de ARQ sugieren que sí, por un amplio margen. Los investigadores refinaron 12 consultas oficiales de CodeQL y evaluaron las mejoras utilizando dos conjuntos de datos establecidos de vulnerabilidades en C/C++, lo que da a los resultados un anclaje significativo en la investigación existente de análisis estático en C/C++.
Resultados del refinamiento usando GPT-5.4, Claude-Sonnet-4.6 y Gemini-3.5-flash
ARQ se probó con tres modelos de lenguaje grandes comerciales: GPT-5.4, Claude-Sonnet-4.6 y Gemini-3.5-flash. Cada modelo impulsó el bucle de refinamiento iterativo de forma independiente, lo que permitió a los investigadores comparar cómo se desempeñaban distintos LLM en la misma tarea subyacente. Este diseño multimodelo refuerza la confianza en que las mejoras provienen de la propia metodología de ARQ, y no de peculiaridades de un único modelo.
Mejoras de rendimiento en los conjuntos de datos de referencia Juliet v1.3 y FormAI v2
Las consultas originales de CodeQL y las refinadas por ARQ se compararon en los conjuntos de datos Juliet v1.3 y FormAI v2, dos referencias reconocidas para evaluar herramientas de detección de vulnerabilidades. Las consultas refinadas detectaron sustancialmente más verdaderos positivos, con un aumento de hasta 119,8%, manteniendo al mismo tiempo una precisión de al menos 98,0% en todo momento. Esa combinación es notable: es relativamente fácil capturar más verdaderos positivos relajando los criterios de detección, pero hacerlo suele arrastrar la precisión hacia abajo a medida que se cuelan falsos positivos. Los resultados de ARQ muestran el patrón opuesto, lo que significa que el marco no solo está lanzando una red más amplia, sino que está afinando la propia red.
Resolución de incidencias de GitHub de larga data y descubrimiento de nuevos errores en libpng y zlib
Más allá de las cifras de referencia, ARQ proporcionó correcciones concretas en el mundo real. El marco resolvió tres incidencias sin resolver en GitHub en el repositorio oficial de consultas de CodeQL, incidencias que habían permanecido abiertas durante hasta 27 meses sin solución. Además de eso, las consultas refinadas expusieron dos errores previamente desconocidos en libpng y zlib, dos bibliotecas de uso generalizado en el mundo real. Eso es una señal significativa: esto no es solo un ejercicio académico que produce mejores números en una tabla de clasificación, es una herramienta que sacó a la luz fallos de seguridad reales y previamente desconocidos en software del que dependen innumerables aplicaciones.
Por qué esto es importante para la seguridad del software
Las implicaciones van más allá de CodeQL en sí. Los falsos positivos y falsos negativos son un problema crónico en todo el campo del análisis estático, no solo en una herramienta, y cualquier método que reduzca ambos simultáneamente, sin requerir datos etiquetados ni plantillas hechas a mano, tiene el potencial de influir en cómo se construirán en el futuro las herramientas de mejora de consultas impulsada por LLM. Para las organizaciones que dependen del escaneo automatizado para asegurar bases de código C/C++, un marco que aumente la detección de verdaderos positivos manteniendo la precisión por encima del 98% podría significar menos horas de ingeniería desperdiciadas persiguiendo falsas alarmas y menos vulnerabilidades reales que se cuelan sin ser detectadas.
El descubrimiento de nuevos errores en libpng y zlib también subraya algo importante: incluso las bibliotecas de código abierto maduras y muy examinadas pueden seguir albergando fallos no detectados, y las consultas de detección mejor refinadas pueden encontrarlos donde las herramientas existentes no pudieron.
Preguntas frecuentes
¿Qué problema pretende resolver ARQ en la detección de vulnerabilidades en C/C++?
ARQ aborda los falsos positivos y falsos negativos en las consultas existentes de CodeQL refinándolas automáticamente mediante evidencia de ejecución de programas sintetizados.
¿Cómo identifica ARQ las debilidades en las consultas de CodeQL?
ARQ detecta debilidades en las consultas siempre que la ejecución de un programa sintetizado no coincida con el veredicto de la consulta: una discrepancia señala un falso positivo o un falso negativo.
¿Qué papel desempeñan los modelos de lenguaje grandes en ARQ?
ARQ utiliza un bucle de refinamiento iterativo basado en un LLM para reparar consultas en función de la retroalimentación de ejecución, sin necesidad de datos etiquetados ni plantillas específicas de vulnerabilidades.
¿Qué mejoras tangibles mostró ARQ al refinar las consultas de CodeQL?
Las consultas de CodeQL refinadas por ARQ aumentaron la detección de verdaderos positivos hasta en un 119,8% con al menos 98,0% de precisión, solucionaron tres incidencias de GitHub de larga data y descubrieron dos nuevos errores en bibliotecas del mundo real.
{«@context»:»https://schema.org»,»@type»:»FAQPage»,»mainEntity»:[{«@type»:»Question»,»name»:»¿Qué problema pretende resolver ARQ en la detección de vulnerabilidades en C/C++?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»ARQ aborda los falsos positivos y falsos negativos en las consultas existentes de CodeQL refinándolas automáticamente mediante evidencia de ejecución de programas sintetizados.»}},{«@type»:»Question»,»name»:»¿Cómo identifica ARQ las debilidades en las consultas de CodeQL?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»ARQ detecta debilidades en las consultas siempre que la ejecución de un programa sintetizado no coincida con el veredicto de la consulta: una discrepancia señala un falso positivo o un falso negativo.»}},{«@type»:»Question»,»name»:»¿Qué papel desempeñan los modelos de lenguaje grandes en ARQ?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»ARQ utiliza un bucle de refinamiento iterativo basado en un LLM para reparar consultas en función de la retroalimentación de ejecución, sin necesidad de datos etiquetados ni plantillas específicas de vulnerabilidades.»}},{«@type»:»Question»,»name»:»¿Qué mejoras tangibles mostró ARQ al refinar las consultas de CodeQL?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»Las consultas de CodeQL refinadas por ARQ aumentaron la detección de verdaderos positivos hasta en un 119,8% con al menos 98,0% de precisión, solucionaron tres incidencias de GitHub de larga data y descubrieron dos nuevos errores en bibliotecas del mundo real.»}}]}
Artículo producido con la asistencia de inteligencia artificial y revisado por el equipo editorial.

