Aumentar la eficacia y velocidad de las pruebas, en materia de seguridad de desarrollos de software y aplicaciones, es ya posible utilizando las herramientas adecuadas. Describimos algunas de las herramientas IAST que permiten combinar el análisis estático con las pruebas dinámicas.
Cuando nos enfrentamos a analizar la seguridad de nuestras aplicaciones nos apoyamos generalmente en herramientas AST (Application Security Testing), y dentro de las mismas las más utilizadas en este sentido son las SAST (Static Application Security Testing), para analizar el código de nuestras aplicaciones, y las DAST (Dynamic Application Security Testing), para analizar la aplicación de forma dinámica.
Para tener ambas visiones y poder descubrir que las vulnerabilidades descubiertas en el código son explotadas en la aplicación de forma dinámica, o que las vulnerabilidades descubiertas de forma dinámica tienen el código incorrectamente desarrollado, siempre se recomienda realizar ambos análisis utilizando las diferentes herramientas que existen en el mercado.
Pero, ¿y si tuviéramos una herramienta única que combinara las técnicas de análisis estático y dinámico? Pues esas herramientas más sofisticadas son las denominadas IAST (Interactive Application Security Testing) que utilizan el conocimiento del flujo de la aplicación y de datos para, a medida que se van haciendo pruebas dinámicas, ir comprobando en el código como responde la aplicación a las mismas y por ende evitar muchos falsos positivos.
Herramientas más eficientes
Este tipo de herramientas, dependiendo de cómo vaya respondiendo la aplicación, van generando diferentes nuevas pruebas contra la mismas para ir aprendiendo comportamientos en tiempo real, por lo que pueden ser muchos más eficientes y aumentar el número de vulnerabilidades encontradas con respecto a las herramientas tradicionales DAST y SAST.
Aparte de la disminución de los falsos positivos, que quizá es la ventaja más importante de este tipo de soluciones, destacaríamos las siguientes:
- Alto rendimiento y compatibilidad con entornos Agile y DevOps.
- Velocidad en los resultados, ya que se ejecuta en tiempo real.
- Aprendizaje de diferentes casos de pruebas que va encontrando en sus pruebas.
- Compatible con cualquier tipo de método de prueba (automatización, calidad, desarrollo, unitarias, etc.), ya que se realiza de forma independiente y no suelen interferir.
- Apto para todas las plataformas de forma eficiente, como infraestructuras tradicionales, cloud, microservicios, etc.
Por todo lo comentado, este tipo de herramientas se ha creado para actuar dinámicamente simulando un ataque y a la vez saber en tiempo real el impacto de éste en el código, por lo que de este manera, a partir de ese momento se puede paliar el riesgo y tomar medidas de corrección al respecto.
Además, desde fases tempranas del desarrollo hasta la fase de pruebas, puedes ir sabiendo poco a poco las vulnerabilidades que tienes que ir resolviendo, y por ende, disminuyen considerablemente los tiempos dedicados a la corrección de problemas de seguridad.
Por último, hay que comentar que el uso de este tipo de herramientas es independiente al de las más tradicionales, ya que, por ejemplo, puedes integrar una tecnología IAST como un proceso continuo dentro del desarrollo, e independientemente realizar tus pruebas dinámicas o estáticas. Aunque, como las tecnologías IAST tienen como base las pruebas dinámicas, quizá siempre será recomendable combinarlo con pruebas estáticas SAST para complementar las pruebas y tener un enfoque mayor.
En Ciberso tenemos acuerdos y experiencia con los principales fabricantes de soluciones de seguridad informática para analizar desde todos los puntos de vista las aplicaciones utilizando éstas y otras tecnologías, por lo que podemos ayudar a implantar u operar las mismas para la ayuda en el desarrollo de software seguro.