Se sabe poco sobre la capacidad de los agentes basados en modelos de lenguaje en el ámbito de la ciberseguridad. La mayoría de los estudios recientes se han enfocado en el paradigma de «mejora humana», donde los LLM se emplean como chatbots para asistir a humanos, o en discusiones teóricas sobre estrategias ofensivas y defensivas.
Aunque algunos trabajos destacan que los agentes LLM pueden ser capaces de infiltrarse en sitios web de prueba o realizar ejercicios de tipo «capture de flag» de manera autónoma, estas actividades no reflejan implementaciones del mundo real.
Sin embargo, el trabajo publicado en el archivo en línea para las prepublicaciones de artículos científicos ArXiv (https://arxiv.org/html/2404.08144v2), demuestra que los agentes LLM pueden explotar de manera autónoma vulnerabilidades de un día en sistemas del mundo real.
Las «vulnerabilidades de un día» o «one-day vulnerabilities» son vulnerabilidades que se han divulgado pero no se han corregido en un sistema. En muchas implementaciones del mundo real, los parches de seguridad no se aplican de inmediato, exponiéndo el entorno a estas vulnerabilidades de un día. Los escáneres de vulnerabilidades de código abierto no logran encontrar algunas de estas vulnerabilidades de un día, pero los agentes LLM son capaces de explotarlas. Además, muchas de las divulgaciones de vulnerabilidades no proporcionan instrucciones paso a paso sobre cómo explotar la vulnerabilidad, lo que significa que un atacante debe reproducir los pasos por sí mismo.
Para mostrar esto, se recopilaron un conjunto de datos de 15 vulnerabilidades de un día, incluidas aquellas categorizadas como de gravedad crítica en la descripción del CVE (Common Vulnerabilities and Exposures).
Estos CVEs incluyen sitios web del mundo real (CVE-2024-24041), software de gestión de contenedores (CVE-2024-21626) y paquetes Python vulnerables (CVE-2024-28859).
Muchos CVEs son para software de código cerrado o software propietario, que no es posible reproducir ya que los CVEs generalmente se divulgan públicamente después de que el proveedor parchea el software. Para crear un punto de referencia, el estudio se ha centrado en el software de código abierto.
Más allá del software de código cerrado, muchas de las vulnerabilidades del código abierto son difíciles de reproducir ya que incluyen dependencias no especificadas, contenedores docker rotos o descripciones poco detalladas en los CVEs.
Cuando se proporciona la descripción del CVE, GPT-4 es capaz de explotar el 87% de estas vulnerabilidades en comparación con el 0% para todos los demás modelos probados (GPT-3.5, LLMs de código abierto) y escáneres de vulnerabilidades de código abierto (ZAP y Metasploit).
El agente GPT-4 demostró un rendimiento muy superior al de todos los demás modelos y escáneres de vulnerabilidades de código abierto, logrando una tasa de éxito de 5 de 5 en todas las vulnerabilidades y un coste en dólares significativamente menor en comparación con otros modelos de lenguaje y escáneres de vulnerabilidades de código abierto (con una tasa de éxito general promedio del 40%, requeriría $8,80 por exploit).
Para hacerlo, simplemente se le dió al agente acceso a las herramientas, la descripción CVE y se utilizó el marco del agente ReAct. El agente tenía un total de 91 líneas de código, lo que demuestra la simplicidad de realizar este tipo de exploits.
Sin la descripción CVE, la tasa de éxito de GPT-4 cae al 7%, evidenciando que el agente se encuentra mucho más capacitado para explotar vulnerabilidades que para encontrarlas.
Reflexiones
En este trabajo, se ha demostrado que los agentes LLM pueden explotar de manera autónoma vulnerabilidades de un día en sistemas del mundo real. El agente GPT-4 logró un rendimiento significativamente mejor que otros modelos de lenguaje y escáneres de vulnerabilidades de código abierto. Estos hallazgos tienen implicaciones importantes para la ciberseguridad y plantean preguntas sobre la implementación generalizada de agentes LLM altamente capaces en entornos del mundo real.
Los resultados muestran que los agentes LLM pueden utilizarse para piratear sistemas del mundo real. Al igual que muchas tecnologías, estos resultados pueden emplearse de manera maliciosa e ilegal. Sin embargo, como ocurre con gran parte de la investigación en seguridad informática y seguridad de aprendizaje automático, creemos que es importante investigar estos problemas en un entorno académico. En este trabajo, se han tomado precauciones para garantizar que solo se usaron entornos aislados para evitar daños.