¿Qué son las herramientas IAST?

Normalmente, cuando realizamos un análisis de seguridad automatizado en aplicaciones nos apoyamos en herramientas especializadas capaces de detectar vulnerabilidades. Estas herramientas son conocidas como AST (Application Security Testing) tools. Dentro de este tipo de herramientas las más conocidas y utilizadas son dos: DAST y SAST.

DAST (Dynamic Application Security Testing)
También conocida como herramienta de pruebas de caja negra. El activo que analiza es una instancia de la aplicación en ejecución, por lo que es necesario que el sistema se encuentre desplegado en un ambiente funcional (pruebas, QA o producción) para que pueda ejecutar el análisis. Este análisis es independiente del lenguaje utilizado para crear la aplicación, ya que la identificación de vulnerabilidades se realiza por medio de la inspección y modificación de las peticiones y/o respuestas que son enviadas entre el cliente (normalmente navegador Web) y la aplicación backend o el servidor remoto. Esta herramienta tiene la ventaja de permitir, descubrir y confirmar fallas relacionadas con malas prácticas de codificación, fallas de lógica en la aplicación e incluso de configuración del ambiente donde se despliega el aplicativo. Al confirmar la existencia de vulnerabilidades e interactuando con la aplicación, DAST es una herramienta que presenta un bajo número de falsos positivos reportados. Sin embargo, tiene la desventaja que, como parte de los resultados de vulnerabilidades identificadas, no se puede determinar el origen exacto de la falla, esto es: archivo, clase, método, función, parámetro y/o línea de código donde debe ser mitigada la vulnerabilidad.

SAST (Static Application Security Testing)
También conocida como herramienta de pruebas de caja blanca. El activo que analiza es el código fuente de la aplicación (no compilado). Mediante la lectura del código y el análisis de patrones definidos por cada herramienta, se identifican posibles fallas de seguridad en las aplicaciones. Una de las principales ventajas de este tipo de análisis es que no se requiere desplegar un ambiente funcional en el que la aplicación esté operando, sólo el código fuente de la aplicación. Aquí sí existe una limitante en cuanto al lenguaje en el que se desarrolló la aplicación a analizar, ya que cada herramienta SAS generalmente tiene un número limitado de lenguajes soportados. Debido a que mediante la inspección de código no es posible confirmar la explotación de una vulnerabilidad, además de que la identificación de fallas se realiza generalmente con el análisis de patrones en el código, este tipo de herramientas genera muchos falsos positivos que requieren intervención humana para confirmar su detección. Otra de las ventajas es que mediante el análisis de código sí se puede determinar el origen exacto de la falla, esto es: archivo, clase, método, función, parámetro y/o línea exacta de código donde debe ser aplicada la corrección.

Pero entonces ¿qué es una herramienta IAST? IAST son las siglas de Interactive Application Security Testing. Es un tipo de herramienta que analiza código fuente de una aplicación en búsqueda de vulnerabilidades (como lo haría una herramienta SAST), mientras de manera dinámica se ejecuta el aplicativo y se analiza su instancia en ejecución (como lo haría una herramienta DAST). Básicamente es la integración de distintos analizadores de aplicaciones DAST y SAST, y de otros tipos, aprovechando las ventajas de cada uno de ellos y complementando los análisis para proveer un mejor resultado, en el que destaca la disminución significativa de falsos positivos. Las herramientas IAST son una opción para los entornos de desarrollos que se basan en la filosofía DevOps, ya que permiten reportar vulnerabilidades en tiempo real, lo que significa que no se añade tiempo extra a las etapas de desarrollo de aplicaciones.

Referencias:
• https://snyk.io/learn/application-security/iast-interactive-application-security-testing/
• https://www.acunetix.com/blog/web-security-zone/what-is-iast-interactive-application-security-testing/
• https://owasp.org/www-community/Free_for_Open_Source_Application_Security_Tools