Securing software development lifecycle using artificial intelligence and security chaos engineering (2024)
Aunque los procesos de desarrollo de software se han optimizado sustancialmente en los últimos años, las brechas de seguridad siguen representando un factor de riesgo importante para las organizaciones. Los procesos de transformación digital que no implementan la seguridad como pilar tienden a generar reprocesos y costos adicionales por remediación; en el peor de los casos, fugas de información, ataques de ransomware, denegación de servicio y otros ciberataques que generan fuerte impacto reputacional, legal o monetario. A lo largo de los años, las prácticas de desarrollo seguro han evolucionado, y hoy en día los frameworks de desarrollo ayudan a prevenir intrínsecamente las vulnerabilidades. También han surgido los Programas de Seguridad de Aplicaciones, que son un mecanismo que engloba las políticas, directrices, procesos, herramientas y personas que las organizaciones implementan para proteger sus aplicaciones. Aumentar el nivel de madurez de un programa de seguridad de aplicaciones requiere automatizar actividades y definir formas novedosas de desafiar la seguridad de las aplicaciones. Uno de los mecanismos en auge para automatizar las actividades de seguridad es la Inteligencia Artificial, con el surgimiento de los Large Language Models es posible resolver tareas en cada fase del ciclo de vida del software, reduciendo el tiempo empleado por las organizaciones para generar sistemas seguros. Por otro lado, a través de Security Chaos Engineering es posible descubrir nuevas formas de riesgo que no son fácilmente descubiertas a través de métodos tradicionales de pen-testing o herramientas automatizadas, lo que mejora la postura de seguridad de las aplicaciones. Esta tesis de máster genera una serie de aportaciones que permiten a las organizaciones mejorar sus Programas de Seguridad de Aplicaciones. Este trabajo introduce ideas sobre la identificación temprana de amenazas aplicando Procesamiento del Lenguaje Natural sobre historias de usuario, demuestra la automatización de modelos de amenazas basados en árboles de ataque-defensa utilizando Large Language Models, y propone casos de uso de Security Chaos Engineering aplicables a prácticas DevSecOps.