← Últimos artículos
🤖 AI

ARQ: Agentic CodeQL Query Refinement for C/C++ Vulnerability Detection

ARQ es un marco de trabajo agéntico que refina automáticamente las consultas de CodeQL para C/C++ utilizando evidencia fundamentada en la ejecución de programas sintetizados y modelos de lenguaje de gran tamaño (LLMs) para reducir significativamente los falsos positivos y negativos sin requerir conjuntos de datos etiquetados, logrando hasta un 119.8% más de detecciones de verdaderos positivos y resolviendo problemas de larga data en repositorios oficiales.

Autores originales: Chunyi Wang, Yunfei Ke, Junfeng Yang, Yun-Yun Tsai, Penghui Li

Publicado 2026-08-24
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Chunyi Wang, Yunfei Ke, Junfeng Yang, Yun-Yun Tsai, Penghui Li

Artículo original dedicado al dominio público bajo CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

El software que hace funcionar nuestras computadoras, teléfonos y autos se construye a menudo con lenguajes como C y C++. Estas herramientas otorgan a los programadores un control preciso sobre cómo una máquina utiliza su memoria, pero ese mismo poder facilita cometer errores. Un pequeño fallo en la forma en que un programa gestiona la memoria puede dejar una puerta abierta para que los atacantes bloqueen sistemas o roben datos. Para detectar estos errores antes de que causen daño, los expertos en seguridad utilizan escáneres automatizados que leen el código y buscan patrones peligrosos. Estos escáneres dependen de un conjunto de reglas, escritas por humanos, que les indican exactamente cómo es una pieza de código vulnerable. Si las reglas son demasiado estrictas, el escáner omite peligros reales; si son demasiado laxas, alertan sobre problemas que no existen, desperdiciando tiempo y confianza.

Durante años, mejorar estas reglas ha sido una tarea lenta y manual. Los expertos tienen que leer código, suponer dónde podría fallar el escáner y reescribir las reglas a mano. Este proceso es difícil porque las reglas deben ser perfectas, y el código que escanean es vasto y complejo. Un nuevo enfoque llamado ARQ cambia la forma en que se realiza este trabajo. En lugar de depender únicamente de la intuición humana, ARQ utiliza la inteligencia artificial para probar y corregir estas reglas automáticamente. No se limita a adivinar; ejecuta el código que crea para ver si las reglas realmente funcionan. Al construir un bucle donde el sistema genera programas de prueba, los ejecuta y luego utiliza los resultados para mejorar las reglas, ARQ encuentra y corrige errores que los humanos han pasado por alto durante años.

Los investigadores detrás de ARQ comenzaron con una idea simple pero poderosa: una regla es tan buena como su capacidad para distinguir entre código seguro y código peligroso. Le dieron a una inteligencia artificial una regla específica de un escáner de seguridad popular y le pidieron que creara dos programas muy similares. Un programa fue diseñado para ser seguro, y el otro para ser peligroso. La IA luego observó cómo reaccionaba el escáner a ambos. Si el escáner marcaba el programa seguro como peligroso, la regla era demasiado laxa. Si omitía el programa peligroso, la regla era demasiado estricta. Este desajuste entre lo que el escáner decía y lo que realmente sucedía cuando el código se ejecutaba se convirtió en la evidencia que la IA necesitaba para corregir la regla.

Para asegurar que la IA no estuviera simplemente adivinando, el sistema utilizó una herramienta especial llamada "sanitizador" (sanitizer). Esta herramienta actúa como un sensor de alta precisión que observa un programa mientras se ejecuta. Si el programa intenta hacer algo inseguro, como usar memoria que ya ha sido liberada, el sanitizador detiene el programa e informa el error de inmediato. Esto les dio a los investigadores una verdad fundamental. Podían comparar el veredicto del escáner contra el informe del sanitizador. Si el escáner decía que un programa era seguro, pero el sanitizador encontraba un fallo, los investigadores sabían que el escáner había cometido un error. La IA utilizó entonces este error confirmado para reescribir la regla, haciéndola más inteligente.

Este proceso ocurría en un bucle continuo. La IA generaba un nuevo par de programas de prueba, los ejecutaba, revisaba los resultados y refinaba la regla nuevamente. Crucialmente, cada vez que la regla cambiaba, el sistema la probaba de nuevo contra todos los ejemplos anteriores para asegurar que la corrección no rompiera nada que ya estuviera funcionando. Esto evitaba que la IA sobrecorrigiera y creara nuevos problemas mientras resolvía los antiguos. El equipo probó este método en doce reglas de seguridad diferentes utilizadas en software del mundo real. Ejecutaron estas reglas contra dos grandes colecciones de código diseñadas para probar herramientas de seguridad. Los resultados mostraron que las reglas refinadas por la IA detectaban significativamente más vulnerabilidades reales que las reglas originales escritas por humanos. En algunos casos, el número de amenazas detectadas se duplicó con creces, mientras que la tasa de falsas alarmas se mantuvo extremadamente baja, permaneciendo por encima del noventa y ocho por ciento de precisión.

El impacto de este trabajo fue más allá de los datos de prueba. Los investigadores aplicaron sus reglas refinadas a bibliotecas de software reales y ampliamente utilizadas que impulsan gran parte de internet, como herramientas para comprimir datos y mostrar imágenes. Las reglas mejoradas descubrieron dos errores que habían estado ocultos en estas bibliotecas durante años, esperando ser encontrados. Además, el sistema resolvió con éxito tres problemas específicos que habían sido reportados en un repositorio de software público y que habían permanecido sin resolver durante veintisiete meses. Estos problemas habían desconcertado a expertos humanos durante más de dos años, pero el sistema automatizado los resolvió mediante la prueba y el ajuste sistemático de las reglas de detección.

Este enfoque sugiere una nueva forma de mantener la seguridad de nuestra infraestructura digital. En lugar de esperar a que un humano encuentre un fallo y escriba manualmente una solución, los sistemas ahora pueden probar continuamente sus propias reglas contra la ejecución real. El método no requiere bases de datos masivas de errores etiquetados ni años de datos históricos para funcionar. Simplemente necesita la capacidad de ejecutar código y verificar los resultados. Al fundamentar la inteligencia artificial en la realidad de cómo se comportan realmente los programas, en lugar de solo en cómo se ven en el papel, los investigadores han creado una herramienta que puede mantener los escáneres de seguridad agudos y efectivos a medida que el software evoluciona. El trabajo demuestra que cuando la inteligencia artificial se combina con evidencia concreta del código en ejecución, puede resolver problemas de ingeniería complejos que han resistido durante mucho tiempo el esfuerzo humano.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →