ANVIL: Anomaly-based Vulnerability Identification without Labelled Training Data
El artículo presenta ANVIL, un marco de detección de vulnerabilidades no supervisado que aprovecha los Modelos de Lenguaje Extensos para identificar anomalías de código mediante la reconstrucción enmascarada y un mecanismo de puntuación híbrido, demostrando un rendimiento superior sobre los detectores supervisados y descubriendo con éxito vulnerabilidades previamente desconocidas al integrarse con fuzzers.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.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
Imagina que estás intentando encontrar un solo ladrillo ligeramente roto en un muro masivo hecho de millones de ladrillos perfectos.
El Problema: El dilema del "lanzamiento de moneda"
Normalmente, para encontrar estos ladrillos rotos, necesitas un equipo de expertos que hayan estudiado miles de ejemplos rotos y hayan aprendido exactamente cómo se ven. Así es como funcionan la mayoría de los programas informáticos actuales: son "aprendices supervisados". Pero hay un gran problema: no tenemos suficientes ejemplos de código roto para enseñarlos adecuadamente.
Recientemente, hemos tenido estos modelos de IA superinteligentes (llamados Modelos de Lenguaje Extensos o LLM) que han leído casi cada fragmento de código jamás escrito. Podrías pensar: "¡Genial! Lo han visto todo, así que deben ser capaces de detectar los ladrillos rotos". Pero sorprendentemente, cuando simplemente les preguntas: "¿Está rota esta línea de código?", su rendimiento no es mejor que lanzar una moneda al aire. Son excelentes escribiendo código, pero terribles criticándolo, porque fueron entrenados para imitar patrones, no para detectar errores.
La Solución: ANVIL (El juego de "Encuentra la diferencia")
Los investigadores detrás de este artículo, ANVIL, decidieron cambiar el enfoque. En lugar de intentar enseñar a la IA cómo es un código "roto", preguntaron: "¿Qué cree la IA que debería ser una línea de código normal?".
Así es como funciona ANVIL, usando una analogía simple:
- El juego del enmascaramiento: Imagina que tomas una frase de una historia y cubres una línea con un marcador negro. Luego le pides a la IA que adivine cuál era esa línea oculta, basándose solo en las frases anteriores y posteriores.
- La expectativa: Si la línea oculta es una línea de código normal y estándar, la IA probablemente adivinará correctamente (o muy cerca de ello) porque ha visto ese patrón un millón de veces.
- La anomalía: Si la línea oculta es una línea de código "vulnerable" (rota), es probable que sea extraña o inusual en comparación con el resto de los datos de entrenamiento. La IA tendrá dificultades para adivinarla. Podría adivinar algo totalmente diferente, o estará muy insegura.
- La puntuación: ANVIL mide cuánto difiere el intento de la IA de la línea original. Si el intento está muy desviado, o si la IA parece confundida, ANVIL marca esa línea como "anómala" (sospechosa).
El detective "Híbrido"
Los investigadores se dieron cuenta de que medir solo la diferencia no es suficiente. A veces, una pequeña diferencia (como cambiar > por >=) es un error enorme, pero la IA podría no pensar que es algo importante. Por eso, crearon una "Puntuación Híbrida" que actúa como un detective con cuatro herramientas diferentes:
- Coincidencia exacta: ¿Logró la IA acertar al 100%? Si no fue así, es una señal de alerta.
- Medidor de confusión: ¿Qué tan insegura estaba la IA? Si la IA está vacilando, el código podría ser extraño.
- Verificación de complejidad: ¿Es la línea de código excesivamente complicada? El código complejo es donde suelen esconderse los errores.
- La puntuación de "Pérdida" (Loss): Una medida matemática de qué tan "sorprendida" estaba la IA por la línea de código original.
Los Resultados: Encontrando la aguja en el pajar
El equipo probó ANVIL en un conjunto masivo de datos de código del mundo real.
- Superando a los expertos: Compararon ANVIL contra las mejores herramientas existentes que sí requieren datos de entrenamiento. A pesar de que ANVIL no utilizó ningún dato de entrenamiento, encontró vulnerabilidades dos veces más precisamente que las otras.
- El truco del contexto: Descubrieron que darle a la IA el archivo completo para que lo leyera era en realidad confuso (como intentar encontrar una aguja en un pajar mirando todo el granero). En su lugar, ANVIL utiliza un enfoque de "contexto inteligente": solo observa el bloque específico de código (la función) que rodea a la línea sospechosa. Esto lo hizo más rápido y preciso.
- Éxito en el mundo real: Para demostrar que funciona en el mundo real, conectaron ANVIL a un "fuzzer" (una herramienta que intenta romper el software lanzándole datos aleatorios). ANVIL ayudó al fuzzer a encontrar dos vulnerabilidades nuevas y previamente desconocidas, una de las cuales era tan grave que recibió un ID de seguridad oficial (CVE).
La Conclusión
ANVIL demuestra que no necesitas enseñar a una IA qué es lo "malo" para encontrarlo. Solo necesitas preguntarle a la IA qué es lo "normal". Cuando el código no encaja con el patrón "normal", es probable que esté roto. Es una forma más inteligente, rápida y general de encontrar brechas de seguridad sin necesidad de tener una biblioteca masiva de errores pasados para aprender de ellos.
¿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.