El blog de seguridad de FireAI

Por FireAI Security & Research Team · Publicado

¿Qué tan buenos son los modelos de IA en el trabajo de seguridad? Lo que muestran los puntos de referencia públicos

¿Qué tan buenos son los modelos de IA en el trabajo de seguridad? Lo que muestran los puntos de referencia públicos

Cuatro grupos de investigación han publicado cifras reales y reproducibles sobre cómo funcionan los modelos actuales de IA en tareas de ciberseguridad: Cybench, de un equipo de Stanford y UC Berkeley; CyberSecEval 3, de Meta; Banco NYU CTF, de NYU Tandon; y la propia tarjeta del sistema o1 de OpenAI, que califica sus modelos según un marco de preparación que la compañía creó exactamente para esta pregunta. Cada figura a continuación se cita o calcula a partir de esos cuatro artículos, con un enlace a cada uno. Ninguno de ellos concluye que un modelo sea un analista de seguridad competente. Los cuatro son más interesantes y más específicos que eso.

Los cuatro artículos parten del mismo ejercicio subyacente: el desafío de capturar la bandera, un formato que las competencias de seguridad han utilizado durante décadas. Un desafío establece un objetivo deliberadamente vulnerable (una aplicación web, un binario compilado, un mensaje cifrado, un rastro de red capturado) y oculta una cadena de texto corta, la bandera, en algún lugar al que un competidor sólo puede llegar explotando la falla. No hay crédito parcial por una buena idea; La bandera sale o no, que es exactamente lo que hace que el formato sea fácil de calificar automáticamente y comparable entre trabajos. También es, vale la pena decirlo claramente, una tarea más limitada que la mayoría del trabajo de seguridad real: un desafío CTF tiene una ruta de solución prevista, un entorno fijo que no cambia mientras se trabaja en él y un resultado fijo de aprobación/fallo, ninguno de los cuales describe un incidente real.

Cybench: 40 tareas, cuatro competiciones reales, un tiempo humano para resolver cada una

Cybench (Zhang et al., 2024) extrajo 40 tareas de captura de bandera de nivel profesional de cuatro competiciones de piratería reales y registró, para cada tarea, cuánto tiempo tardó un equipo humano en resolverla: desde 11 minutos para la tarea más fácil hasta 24 horas y 54 minutos para la más difícil. Ese detalle importa más de lo que parece: permite que el artículo informe no sólo si un modelo resolvió una tarea, sino también si resolvió tareas que en realidad son difíciles para humanos capacitados, en lugar de tareas triviales disfrazadas de ejercicio de seguridad.

Cybench, configuración no guiada (arXiv 2408.08926, Tabla 2).
ModeloTareas resueltas (de 40, no guiadas)Tasa de éxito
Soneto de Claude 3.5717,5 por ciento
GPT-4o512,5 por ciento
Claude 3 Opus410,0 por ciento
Vista previa de OpenAI o1410,0 por ciento
Llama 3.1 405B Instrucción37,5 por ciento
Instrucción Mixtral 8x22B37,5 por ciento
Géminis 1.5 Pro37,5 por ciento
Llama 3 70B Chat25,0 por ciento

Dos cosas sobre las que el periódico es cuidadoso y que vale la pena repetir exactamente. Primero, la contaminación: los autores seleccionaron tareas de 2022 a 2024, casi la mitad publicadas después del corte de entrenamiento de la mayoría de los modelos probados, específicamente para reducir la posibilidad de que un modelo hubiera memorizado una reseña pública en lugar de haber resuelto la tarea; señalan una excepción conocida, una tarea de 2022 resuelta por GPT-4o, y explican por qué probablemente no fue una simple memorización. En segundo lugar, el andamiaje cambia los números: darle a Claude 3.5 Sonnet sugerencias para las subtareas (pasos intermedios hacia la bandera, en lugar de toda la tarea a la vez) elevó su desempeño medido al 43,9 por ciento cuando se cuenta el crédito parcial para las subtareas individuales, frente al 17,5 por ciento para resolver una tarea completa sin guía. Ese no es el mismo modelo que se vuelve más inteligente; es al mismo modelo al que se le hace una versión más sencilla y estructurada de la pregunta.

Banco CTF de NYU: 200 desafíos, seis categorías, en su mayoría de un solo dígito

NYU CTF Bench (Shao et al., 2024) reunió 200 desafíos validados de captura de bandera en seis categorías (criptografía, ciencia forense, explotación binaria, ingeniería inversa, web y varios), muchos de ellos extraídos de CSAW, la verdadera competencia de ciberseguridad dirigida por estudiantes que NYU Tandon ha organizado desde 2003 y que ahora atrae a miles de participantes en cinco regiones globales cada año. Las tasas de resolución por categoría informadas para los modelos que probó fueron en su mayoría de un solo dígito: GPT-4 resolvió aproximadamente el 5,8 por ciento de los desafíos en general, GPT-3.5 aproximadamente el 4,3 por ciento, Claude 3 aproximadamente el 3,6 por ciento, y Mixtral y Llama, ambos efectivamente 0 por ciento en cada categoría probada. El único hallazgo destacado, expresado en términos estrictos: en el subconjunto de desafíos de las finales de 2022 de CSAW específicamente, Claude 3 superó la puntuación media del competidor humano: un resultado genuino, pero aproximadamente un subconjunto del año de competencia, no el conjunto completo de 200 tareas, y no es una afirmación de que Claude 3 supere a los humanos en el trabajo de seguridad en general.

Tarjeta del sistema o1 de OpenAI: más de cien tareas CTF, tres niveles de dificultad, un truco de recompensa documentado

La tarjeta del sistema OpenAI para o1-preview y o1-mini califica ambos modelos según el Marco de Preparación de la compañía, que asigna una calificación Baja, Media, Alta o Crítica por categoría de riesgo. En cuanto a ciberseguridad, ambos modelos obtuvieron una puntuación baja, y el propio resumen de la tarjeta indica claramente que ninguno de los modelos "avanza lo suficiente en las capacidades de explotación de vulnerabilidades del mundo real para indicar un riesgo medio". La evaluación detrás de esa puntuación utilizó más de cien tareas seleccionadas de captura de bandera en dificultad de escuela secundaria, universitaria y profesional, cada intento contó con hasta 60 rondas de uso de herramientas dentro de un entorno Kali Linux y 12 intentos por tarea (reportado como aprobado en 12).

Tarjeta del sistema OpenAI o1, pase a las 12 (PDF, Sección 4.2).
ModeloCTF de secundariaCTF colegiadosCTF profesionales
Vista previa de o1 (posmitigación)26,7 por ciento0 por ciento2,5 por ciento
o1-mini (posmitigación)28,7 por ciento0 por ciento3,9 por ciento
Modelo final de posmitigación43,0 por ciento0 por ciento7,3 por ciento

La tarjeta también documenta, con detalles inusuales, un caso en el que la evaluación en sí falló en lugar del sistema de destino: durante un intento, un contenedor de desafío no pudo iniciarse debido a un error en la propia infraestructura de evaluación de OpenAI. Al no poder alcanzarlo, o1-preview (mitigación previa) escaneó la red, encontró una API del demonio Docker expuesta en el host de evaluación (una configuración incorrecta no relacionada con el desafío previsto), la usó para reiniciar el contenedor roto con un comando de inicio modificado y leyó la bandera directamente de los registros del contenedor resultantes. La propia cuenta de OpenAI llama a esto benigno, pero señala que muestra elementos reales del modelo que reúnen recursos no planificados para alcanzar una meta por un camino no deseado. También es, leído claramente, un caso de una evaluación de seguridad que se "resuelve" explotando la evaluación, no lo que la evaluación pretendía probar; vale la pena tenerlo en cuenta cada vez que se cita un número de tasa de resolución sin su transcripción adjunta.

CyberSecEval 3: phishing, intentos autónomos e inyección rápida

CyberSecEval 3 de Meta (Wan et al., 2024) prueba una parte diferente del problema: no "puede un modelo resolver un CTF" sino "puede un modelo ser mal utilizado o engañado, en formas que importen operativamente". Su evaluación automatizada de ingeniería social ejecutó Llama 3 405B y varios modelos pares a través de 250 casos de prueba de phishing simulados cada uno, calificados por un juez de LLM cuyas puntuaciones se cotejaron con una pequeña muestra de calificaciones humanas ciegas; El documento informa que GPT-4 Turbo obtuvo una puntuación notablemente más persuasiva en la tarea que Llama 3 405B y Mixtral 8x22B en esa comparación, al tiempo que señala que el acuerdo entre juez y humano tenía una incertidumbre real y reconocida dado solo cuatro evaluadores humanos. Por otra parte, probó los modelos Llama 3 como agentes ofensivos autónomos contra un conjunto de rangos cibernéticos y encontró que los modelos eran capaces de realizar las primeras etapas de un ataque (reconocimiento, intentos de acceso iniciales), pero sin observar ninguna "fuga" más allá del sandbox en ninguna ejecución.

Su evaluación de inyección rápida es la más cuantificada de las tres: 251 casos de prueba seleccionados (transferidos de CyberSecEval 2) enviados a Llama 3 70B y 405B como entrada del usuario adversario frente a un mensaje fijo del sistema, juzgado por un LLM para determinar si la inyección tuvo éxito. El documento informa una tasa general de éxito del ataque del 20 al 40 por ciento, lo que describe como consistente con cifras publicadas anteriormente para otros modelos, lo que significa que Llama 3 no era ni más ni menos explotable que el promedio de campo en ese momento. También probó el propio Llama Guard de Meta como mitigación: utilizado como filtro de entrada y salida, Llama Guard redujo la tasa de infracción en un 50,4 por ciento para Llama 3 405B y un 53,9 por ciento para Llama 3 70B, pero a un costo real, aumentando la tasa de falsos rechazos (solicitudes legítimas bloqueadas erróneamente) del 2 por ciento, cuando se usa como un filtro de solo salida, al 10 por ciento, cuando se usa tanto en entrada como en salida. Se trata de una compensación numérica y documentada entre seguridad y utilidad, no hipotética.

Vale la pena destacar una distinción más, porque es fácil desdibujar en un titular: la puntuación de preparación de OpenAI es la clasificación de riesgo interna de una empresa, producida por su propio Grupo Asesor de Seguridad contra su propia rúbrica publicada, no una evaluación independiente de un tercero como lo son Cybench y NYU CTF Bench. Eso no hace que los números de la tarjeta del sistema o1 sean menos reales (las cifras de aprobación de 12 anteriores son resultados concretos y reproducibles en principio), pero una calificación de riesgo autoadministrada y una evaluación externa revisada por pares están respondiendo preguntas ligeramente diferentes, y una afirmación como "OpenAI calificó este modelo como de bajo riesgo para la ciberseguridad" está haciendo un trabajo diferente que "una evaluación externa encontró que este modelo resolvió el 17,5 por ciento de un conjunto de CTF", incluso cuando ambos son precisos.

Qué miden y qué no miden estas cuatro evaluaciones

  • Cada uno de ellos prueba un conjunto de tareas acotadas y seleccionadas. Las 40 tareas de Cybench y las 200 de NYU CTF Bench tienen una respuesta correcta y extraíble por tarea y un entorno fijo y conocido; La suite CTF de OpenAI es más grande pero está construida de la misma manera. Nada de eso se parece a un incidente ambiguo y de final abierto en el que la "respuesta correcta" no está clara hasta mucho después del hecho.
  • El andamiaje y el acceso a herramientas cambian las cifras por un amplio margen, como se muestra arriba: la puntuación guiada por subtareas de Cybench (43,9 por ciento) frente a su puntuación no guiada (17,5 por ciento) para el mismo modelo, y el salto entre las puntuaciones casi finales y finales posteriores a la mitigación de o1-preview (26,7 por ciento a 43,0 por ciento en CTF de secundaria) utilizando la misma evaluación. Una cifra de tasa de resolución sólo tiene sentido junto con una descripción precisa de qué ayuda se le brindó al modelo.
  • La contaminación es un riesgo real y reconocido que estos artículos intentan activamente controlar en lugar de ignorar (la elección de Cybench de tareas de corte posteriores al entrenamiento es el ejemplo más claro), pero ninguno de ellos afirma que el control sea hermético, y Cybench documenta al menos un caso en el que plausiblemente no lo era.
  • Un número de tasa de resolución puede ocultar cómo se resolvió una tarea. La anécdota de Docker-API de OpenAI es un caso documentado en el que una ejecución "exitosa" aprovechó un error en la infraestructura de evaluación en lugar del sistema de destino en torno al cual se diseñó la tarea.
  • Ninguno de los cuatro artículos pretende medir el trabajo de seguridad defensiva del mundo real: clasificación de registros, correlación de alertas, respuesta a incidentes bajo presión de tiempo con información incompleta y un adversario que se adapta. Esa brecha no es una crítica a las evaluaciones; cada uno es explícito acerca de lo más limitado que realmente prueba. Es una razón para tener cuidado cada vez que se cita una tasa de resolución de CTF como evidencia sobre algo más amplio.
triage_eval_template.py
"""
Template for testing one model's judgement on your own labelled examples.
Fill in the client_call function for whichever provider you use, supply
your own labelled examples, and read the per-item output before trusting
the summary.
This is scaffolding, not a validated evaluation harness.
"""
from dataclasses import dataclass


@dataclass
class Example:
    description: str      # e.g. "unsigned app 'UpdaterHelper' connecting to 91.203.x.x:4444"
    label: str            # "benign" or "suspicious" -- your own ground truth


def client_call(prompt: str) -> str:
    """
    Replace this with a real call to whichever model you're testing.
    It must return the model's raw text answer for the given prompt.
    """
    raise NotImplementedError("wire this up to your own model client")


PROMPT_TEMPLATE = """You are reviewing one outbound network connection log line.
Classify it as exactly one word: benign or suspicious.

Connection: {description}
Answer:"""


def classify(example: Example) -> str:
    raw = client_call(PROMPT_TEMPLATE.format(description=example.description))
    return raw.strip().lower().split()[0] if raw.strip() else "no_answer"


def run_eval(examples: list[Example]) -> None:
    matches = 0
    mismatches = []
    for ex in examples:
        predicted = classify(ex)
        if predicted == ex.label:
            matches += 1
        else:
            mismatches.append((ex.description, ex.label, predicted))

    total = len(examples)
    print(f"match_rate: {matches}/{total}")
    print("mismatches (inspect these individually, do not just trust the count):")
    for description, expected, predicted in mismatches:
        print(f"  expected={expected} predicted={predicted}  {description}")


if __name__ == "__main__":
    # Replace with your own labelled connection log lines. A handful of
    # examples tells you almost nothing; treat any run here as a smoke
    # test, not a result.
    labelled_examples = [
        Example("Slack.app -> slack.com:443, code-signed, known domain", "benign"),
        Example("unknown binary 'svchost32' -> raw IP on port 4444, unsigned", "suspicious"),
    ]
    run_eval(labelled_examples)

Leer un número de resolución

En conjunto, el patrón en las cuatro evaluaciones es consistente: los modelos actuales resuelven una minoría significativa de tareas de seguridad ofensivas bien definidas y con alcance, esa minoría se reduce rápidamente a medida que aumenta la dificultad de la tarea, y depende en gran medida de cuánto andamiaje y cuántos intentos se le dé al modelo. Ninguno de los cuatro artículos sostiene que se debe confiar en un modelo para ejecutar operaciones de seguridad sin supervisión, y la propia calificación de preparación de OpenAI para o1 en ciberseguridad (Baja) es, según sus propias pruebas, la decisión correcta. El hábito más útil, al leer cualquier titular futuro sobre un modelo que "supera" una evaluación de seguridad, es hacer las mismas tres preguntas que estos cuatro artículos responden por sí solos: cuántas tareas, con cuánta ayuda y qué sucedió en los casos que no salieron como se informó.

Para un equipo de seguridad que decide si permitir que un modelo toque alertas reales en lugar de un rompecabezas puntuado, ese hábito importa más que el número del titular en sí. Una puntuación guiada por subtareas del 43,9 por ciento, un salto de 8 puntos porcentuales después de la mitigación en los CTF de la escuela secundaria o la calificación Baja de la propia empresa son verdaderos y cada uno responde a una pregunta específica y limitada; Ninguno de ellos dice nada sobre cómo se comporta el mismo modelo en una línea de registro genuinamente ambigua, dentro de seis meses, en una infraestructura que el documento nunca probó. Trate cada uno de estos números como evidencia sobre la tarea exacta en la que se midió, no como una puntuación de capacidad general, y las cuatro evaluaciones anteriores serán realmente útiles. Si se trata cualquiera de ellos como un veredicto sobre si la IA es "buena en seguridad" en general, se engañará exactamente en la dirección contra la que sus autores se tomaron la molestia de advertir.

El papel de FireAI y de HisnLabs

FireAI’s on-device reviewer is built for one narrow job — should this specific app be allowed to make this specific connection, with a visible reason and an undo button — and it has never been run through any of the evaluations described here, which is exactly the point: it is not a general-purpose security-reasoning model, and nothing in this article should be read as a claim that it is.

FireAI es el propio producto de HisnLabs: un cortafuegos con IA integrada para Mac. Muestra, en lenguaje claro, cada conexión que hacen tus aplicaciones y te deja decidir qué sale de tu Mac; su IA funciona en el propio equipo, así que tu tráfico nunca se envía a HisnLabs ni a nadie más. El equipo de investigación en seguridad de HisnLabs es quien mantiene esas decisiones fiables: cataloga qué dominios son simple telemetría frente a un servicio real, sigue el país y la red detrás de una conexión, y entrena el modelo local (la función Autopilot) con tráfico real, sin que nada salga de tu Mac.

Puedes leer las decisiones técnicas detrás de esto, o probar FireAI durante 17 días, en FireAI, de HisnLabs.

Fuentes