Aikido

Por qué el determinismo sigue siendo una necesidad en materia de seguridad

Escrito por
Dania Durnas

Las herramientas de seguridad determinísticas, en este momento, se han convertido en una parte tan habitual de la seguridad que, durante mucho tiempo, no nos hemos planteado alternativas. Ahora que la IA se está convirtiendo en un componente fundamental de la seguridad con modelos probabilísticos, es hora de revisar el determinismo y tener claro para qué es necesario. De lo contrario, ¿por qué no empezar a sustituirlo todo por IA?

En resumen, necesitamos el determinismo por su previsibilidad y eficiencia. Las herramientas deterministas como SAST te SAST el mismo resultado cada vez que las ejecutas en lo mismo, de manera eficiente. Por lo tanto, son útiles en un proceso de CI/CD, defendibles en una auditoría de cumplimiento y constituyen la base para todo lo demás. La IA es excelente en el razonamiento lógico, pero, debido a su imprevisibilidad, es mejor reservarla para los casos en los que no se necesitan resultados repetibles.

A medida que aparecen en el mercado más herramientas probabilísticas, queremos analizar cómo el determinismo crea prácticas de seguridad sostenibles, cómo la IA ofrece nuevas posibilidades y cómo se pueden combinar ambos para lograr el máximo impacto.

Cuando las herramientas de seguridad deben ser predecibles

Algunas tareas de seguridad exigen, por encima de todo, coherencia y auditabilidad. Esta necesidad de previsibilidad se manifiesta en todo el flujo de trabajo de seguridad.

Cuando un escáner señala un hallazgo, un desarrollador debe confiar en él lo suficiente como para actuar al respecto a las 11 de la noche. Cuando un canal de CI/CD bloquea una implementación, ese bloqueo debe resistir un examen minucioso. En un canal, el escáner se ejecuta en cada confirmación o solicitud de extracción. Si señala 12 problemas el lunes y 9 el martes en un código idéntico, eso no es bueno. Los resultados de tu canalización ya no son fiables. Los desarrolladores empiezan a ignorar las alertas porque la señal es inconsistente y no se puede utilizar el resultado del escaneo como una puerta significativa en las fusiones. 

Del mismo modo, las pruebas de regresión dependen de la reproducibilidad. Cuando se corrige una vulnerabilidad y se vuelve a escanear, un resultado limpio debe significar que realmente se ha corregido, y no que el modelo no la haya detectado en esta ejecución. La detección de la línea de base y de las desviaciones también depende de ello, ya que es necesario saber si un nuevo hallazgo refleja un cambio real en el código base o solo una variación en el escáner.

La previsibilidad también es necesaria para el cumplimiento normativo. Los auditores quieren resultados coherentes y explicables a lo largo del tiempo, con un registro claro de lo que se ha detectado, cuándo y por qué. Un escáner que produce resultados diferentes en cada ejecución no puede ofrecer eso. 

El coste práctico de la falta de fiabilidad en materia de seguridad degrada lentamente la confianza en las propias herramientas, hasta el punto de que nadie se toma en serio los resultados. La reproducibilidad, la auditabilidad y las bajas tasas de falsos positivos deben ser la base en la que pueda confiar un equipo de seguridad.

Herramientas de seguridad determinísticas

SAST una herramienta de seguridad determinista por excelencia que analiza patrones y vulnerabilidades conocidos. Piense en secretos codificados, CVE conocidos, vulnerabilidades de dependencia y patrones de inyección. Funciona analizando el código en un árbol de sintaxis abstracto y rastreando cómo los datos controlados por el usuario se mueven a través de la aplicación desde los puntos de entrada hasta donde se utilizan. Un hallazgo se remonta a una regla específica que un humano escribió y revisó, y la regla coincide o no. Ejecute el mismo escáner en el mismo código mil veces y obtendrá los mismos resultados. 

La repetibilidad es lo que hace que las herramientas deterministas sean adecuadas para la parte inicial de un proceso (son consistentes). Son auditables porque las reglas las ha escrito un ser humano, y se pueden ejecutar en cada confirmación sin preocuparse por que resulte demasiado costoso.

DAST también DAST en el extremo determinista del espectro. Ejecuta un conjunto definido de simulaciones de ataque contra una aplicación en vivo y devuelve resultados consistentes y repetibles. Es una comprobación de referencia útil, ya que es más rápida y económica que pentesting de IA por ahora). Sin embargo, como cualquier herramienta determinista, solo encuentra aquello para lo que tiene una prueba.

No estamos diciendo que la seguridad determinista, o incluso solo los resultados predecibles, sean siempre mejores. La otra cara de la moneda de lo que hace que las herramientas deterministas sean fiables es también su limitación. Solo encuentran aquello para lo que tienen una regla, por lo que los patrones de ataque novedosos, los fallos lógicos sutiles y las vulnerabilidades que requieren comprender el contexto empresarial quedan fuera del alcance de un escáner determinista. 

Las herramientas determinísticas por sí solas tampoco podrán indicarle qué problemas son más importantes en contexto. Algunas herramientas determinísticas incluyen análisis de alcanzabilidad básicos análisis de alcanzabilidad esencialmente, rastreo estático de gráficos de llamadas) que pueden confirmar si una función vulnerable se invoca realmente. Pero, ¿y si queremos saber si este hallazgo es explotable en nuestra aplicación específica, dados nuestros flujos de datos y nuestra lógica empresarial? Pues bien, ese tipo de análisis de alcanzabilidad priorización requiere una capa de razonamiento adicional, más allá de la coincidencia de patrones.

Herramientas de seguridad probabilísticas

Gracias al auge de los LLM, ahora disponemos de nuevas herramientas de seguridad basadas en IA, como escáneres de IA, clasificación automatizada y pruebas de penetración agenticas, que son probabilísticas por naturaleza. Las herramientas probabilísticas (o herramientas basadas en modelos) no funcionan con reglas fijas. En su lugar, tratan el código como texto y razonan sobre él. 

Al no estar sujetas a patrones fijos, las IA siguen la lógica en todas las funciones, deducen intenciones y pueden detectar vulnerabilidades. Las fallas en la lógica empresarial requieren comprender lo que el código intenta hacer, no solo lo que dice literalmente. Las herramientas probabilísticas destacan en esto, y la IA sigue mejorando. La IA puede encontrar nuevas clases de vulnerabilidades y errores dependientes del contexto que antes habrían requerido una revisión humana experta para detectarlos.

Sin embargo, por su naturaleza, estos modelos probabilísticos son impredecibles e inconsistentes. Los resultados pueden variar (y probablemente lo harán) entre ejecuciones. Los LLM generan resultados prediciendo el siguiente token más probable basándose en distribuciones de probabilidad sobre sus datos de entrenamiento, lo que significa que la misma entrada puede producir resultados diferentes dependiendo de la temperatura, el comportamiento de muestreo y qué más hay en la ventana de contexto. Esta variación está bien, incluso es útil, para realizar pruebas de penetración y encontrar nuevas vulnerabilidades. Pero para sus canalizaciones de CI/CD, no lo es.

También existe un problema de coste cuando se intenta utilizar un modelo de razonamiento probabilístico como escáner de código general en cada compromiso. James Berthoty, de Latio, realizó algunas pruebas informales que demostraron que un modelo de IA probabilístico tardaba 17 minutos y consumía 155 000 tokens para detectar un problema que Opengrep, un SAST determinista, encontraba en 30 segundos. En todas las solicitudes de extracción de un código base activo, ese intercambio no tiene sentido.

Por qué necesitamos ambos

Sin embargo, cuando se combinan modelos deterministas y probabilísticos, y se aprovechan las ventajas de cada método, se obtiene un proceso de seguridad cuyo conjunto es mayor que la suma de sus partes. En la práctica, lo ideal es que el análisis determinista se ejecute en cada compromiso, detectando clases de vulnerabilidades conocidas de forma rápida y coherente, y que luego el razonamiento de la IA se sitúe por encima, encargándose de la clasificación y el contexto. 

Juntos, cubren todo el espectro, desde «lo que sabemos que es peligroso» hasta «lo que aún no se nos ha ocurrido buscar». Esperamos que esta última categoría crezca. A medida que la IA se integra en más bases de código y los atacantes obtienen acceso a las mismas capacidades de razonamiento, muchas vulnerabilidades aún no tendrán una regla escrita para ellas, por lo que necesitaremos herramientas que puedan mantenerse al día.

Otra razón por la que necesitas ambas herramientas es que cubren los mismos problemas en diferentes niveles. DAST pentesting de IA, por ejemplo, funcionan en diferentes capas del mismo problema. DAST en comprobaciones rápidas y deterministas que deben ejecutarse de forma continua. Necesitas saber lo antes posible si tienes puertos abiertos evidentes o páginas que no deberían ser públicas. pentesting de IA más lento y cuesta más por ejecución, pero opera a una profundidad fundamentalmente diferente. Un IDOR que requiere tres pasos autenticados para alcanzarlo no aparecerá en un DAST , pero sí aparecerá en una buena prueba de penetración de IA. Puede deshacerse rápidamente de las cosas fáciles con DAST, y luego pentesting de IA de las cosas más complejas.

Cómo el aikido utiliza ambos

Hemos creado Aikido partiendo de la premisa de que el escaneo determinista y el escaneo basado en IA resuelven diferentes problemas en diferentes capas de la pila. Desde el primer día, decidimos utilizar la herramienta que producía los mejores resultados en cada paso.

La base determinista es Opengrep, el motor de análisis de código abierto que Aikido ayuda a dirigir y mantener. Además, hemos desarrollado análisis de contaminación y conjuntos de reglas seleccionados con la precisión suficiente como para integrarse directamente en los procesos de CI/CD sin generar ruido.

Lo que nos encanta de la seguridad probabilística es que da sentido a estos datos. El razonamiento de la IA se basa en los fundamentos deterministas y se encarga de los problemas que las reglas no pueden resolver. En Aikido, esto se lleva a cabo mediante AutoTriage, que se encuentra aguas abajo de SAST y toma decisiones sobre la explotabilidad y la gravedad que un motor de reglas no puede tomar por sí solo.

AutoTriage funciona en dos etapas. En primer lugar, el motor de accesibilidad de Aikido filtra los falsos positivos antes de que un LLM examine el código. Comprueba si las rutas de código vulnerables son realmente accesibles, si existe una desinfección entre el origen y el destino, y si la dependencia afectada se utiliza en la producción o solo en herramientas o canalizaciones. Solo este primer paso suprime una parte significativa de las alertas en comparación con el SAST medio.

Para los casos complejos que superan ese filtro, se utilizan modelos de razonamiento que evalúan los flujos de control y datos en su contexto. Internamente, hemos descubierto que este enfoque identifica correctamente aproximadamente el doble de falsos positivos en casos complejos en comparación con los enfoques que no utilizan razonamiento. Un hallazgo de inyección SQL podría rebajarse de categoría con seguridad porque la entrada proviene de una fuente ascendente de confianza. Una inyección NoSQL en un punto final de inicio de sesión se eleva a crítica porque la ruta de ataque es trivial y el impacto es directo.

La razón por la que esto funciona es el control del contexto. Ejecutar un LLM sobre todo el código base y pedirle que encuentre vulnerabilidades es lo que produce resultados inconsistentes. El modelo pierde el hilo, amplía sus conjeturas y la tasa de falsos positivos aumenta. El enfoque de Aikido reduce lo que ve la IA antes de que esta razone. El análisis de contaminación rastrea cómo se mueven los datos controlados por el usuario a través de la aplicación, y el reconocimiento de puntos finales proporciona al modelo el rastreo completo de la pila y la intención del código. ¿Se trata de una API web? ¿Una herramienta de línea de comandos? ¿Qué se supone que debe hacer? Con ese contexto fijado, la IA no está haciendo conjeturas. Está evaluando una pregunta específica y delimitada. Así es como se obtiene la capacidad de razonamiento de la IA sin renunciar a la reproducibilidad.

Por último, dado que los modelos de IA son muy adecuados para encontrar patrones de ataque complejos y basados en la lógica, hemos descubierto que son muy eficaces para las pruebas de penetración. Aikido Attack es pentesting de IA aplica el razonamiento probabilístico a la aplicación en tiempo real. Los agentes completan las pruebas en cuestión de horas, en lugar de semanas, y suelen encontrar fallos lógicos más profundos, como IDOR, elusión de autenticación y falsificación de firmas electrónicas, algunos de los cuales incluso los probadores humanos pasan por alto. Y ahora, con Aikido Infinite, los agentes pueden realizar pruebas de penetración en cada lanzamiento.

Para los verdaderos positivos confirmados, procedentes de SAST pruebas de penetración, Aikido también utiliza IA para razonar sobre la solución. AutoFix genera un parche específico y abre una solicitud de extracción, otra capacidad de IA que requiere razonamiento y contexto para llevarse a cabo.

En Aikido, el determinismo se encarga de la cobertura predecible a gran escala. La IA se encarga de las decisiones que las reglas no pueden tomar. 

¿Qué sigue?

La seguridad necesita tanto fiabilidad determinista como creatividad de IA. El determinismo ofrece resultados coherentes, auditables y fiables a gran escala, mientras que la IA aporta profundidad, creatividad, persistencia y razonamiento para eliminar falsos positivos, reducir el ruido y encontrar vulnerabilidades inusuales. Tanto las herramientas probabilísticas como las deterministas tienen limitaciones, pero el verdadero problema surge cuando se utilizan en el lugar equivocado. Las cosas se van a estropear cuando se utiliza un motor de razonamiento en un trabajo que necesita un comparador de patrones (o viceversa). 

La dirección general es más clara que cualquier categoría de producto individual. Las herramientas determinísticas están mejorando porque ahora cuentan con la inteligencia artificial, que se encarga de establecer prioridades, clasificar y corregir lo que las reglas por sí solas no podían hacer. Las herramientas probabilísticas están mejorando en la detección de fallos lógicos complejos y nuevas vías de ataque, y con el tiempo también serán más rentables. Pero para las comprobaciones continuas de la línea de base, la economía del escaneo determinista no va a desaparecer. Se necesita algo rápido, consistente y barato que se ejecute en cada compromiso, y eso sigue siendo un comparador de patrones.

Los equipos que construyen la postura de seguridad más duradera son aquellos que utilizan herramientas deterministas y probabilísticas en el orden y los lugares adecuados, sin apostar por una sola.

Compartir:

https://www.aikido.dev/blog/why-determinism-is-necessary

Suscríbase para recibir noticias sobre amenazas.

Empieza hoy mismo, gratis.

Empieza gratis
Sin tarjeta

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.