Más allá de DevSecOps

cyber-security-cybercrime-cyberspace-hacking-hacker-7waysecurity

Últimamente muchos de los requerimientos de nuestros clientes han estado muy enfocados en buscar soluciones para sus necesidades de pentesting en sus líneas de integración y desarrollo continuo, por lo que hemos generado propuestas desde nuestros servicios de Pentest as a Service, Pentest Serial y Pruebas de Intrusión Avanzadas continuas por demanda, dependiendo de las necesidades propias de cada uno de ellos. Hasta el momento el modelo se encuentra enfocado en la ejecución de pruebas de seguridad a aplicaciones de manera dinámica (DAST) y pruebas de seguridad a aplicaciones de manera estática (SAST), siempre en busqueda de realizar una intervención lo antes posible en el proceso de desarrollo, con el fin de poder identificar y remediar las vulnerabilidades de manera temprana, otra variable que hemos tenido que tener en cuenta es el nivel de madurez existente en el proceso de DevOps con el fin de proponer el servicio que más se acomode a las necesidades de integración de seguridad en todo el proceso.

Sin embargo es interesante ver que el proceso de DevSecOps como se ha presentado hasta el momento en nuestro mercado está muy enfocado en la ejecución de pruebas para realizar una revisión de los componentes de desarrollo o infraestructura lo antes posible dentro del proceso de programación, pero cabe la pena resaltar la importancia de la implementación de un modelo de DevSecOps que integre diferentes capas de protección como lo son:

  • Análisis de Código Estático – revisión de vulnerabilidades directamente en el código fuente, posibles errores relacionados a malas prácticas de programación
  • Administración de Cambios – Información detallada de la toma de decisiones frente a cualquier cambio en el proyecto
  • Monitoreo de Cumplimiento – Revisión de elementos regulatorios dentro del proceso de DevOps, con revisiones periódicas en puntos identificados dentro del pipeline
  • Investigación de Amenazas – Validación continua de las amenazas a las que se enfrentan los proyectos y su valoración con respecto al impacto al negocio
  • Identificación de Vulnerabilidades – Revisión de vulnerabilidades de manera dinámica en el código y revisión de configuraciones inseguras en la infraestructura
  • Entrenamiento en Seguridad – Generación de capacidades para todo el personal involucrado en el equipo de DevOps relacionada a seguridad

Dentro del proceso de análisis de código y como parte de nuestro servicio, realizamos una revisión de la calidad de código que es publicado de manera constante y en pequeños lotes, haciendo uso de herramientas automatizadas, con una revisión manual de los hallazgos, realizado por nuestro equipo técnico, lo cual minimiza los falsos positivos y permite una interacción con el equipo de desarrollo, para explicar las vulnerabilidades identificadas.

Desde nuestra plataforma de vigilancia digital Cattleya hemos encontrado en numerosas ocasiones llaves privadas o información de APIs expuesta directamente en Internet, lo cual muchas veces sucede por no realizar una revisión automatizada en las versiones de control de las aplicaciones dentro de las pruebas enfocadas en el análisis de código.

Dentro de la revisión que se debe llevar a cabo en la administración de cambios se deben tener en cuenta componentes como:

  • Generar responsabilidades dentro de los equipos de desarrollo para que que mejoren sus prácticas de seguridad y generen cambios dentro de los procesos continuos de desarrollo
  • Definir los procesos de revisión rápida y aprobación para los cambios realizados en el código
  • La generación y definición de elementos de control de cambios que permitan una trazabilidad dentro de todos los procesos
  • Por último, pero no menos importante, el cumplimiento de regulaciones establecidas para cada una de las industrias, dependiendo de la información manejada dentro de los desarrollos

En la etapa de monitoreo relacionado a cumplimiento es fundamental definir puntos de control que permitan comprobar que los elementos definidos como mejores prácticas y requerimientos de seguridad del proceso se estén cumpliendo, esta etapa debe incluir la definición de políticas estrictas de contraseñas, el monitoreo del sistema ante acciones maliciosas, la auditoría de las actualizaciones de código en repositorios, el cumplimiento de requerimientos de desarrollo seguro, y la higiene que se debe tener en cuenta en el código tanto a nivel de programación como a nivel de seguridad.

Un componente poco explorado en el concepto de DevSecOps es el relacionado a investigaciones de amenazas, comprensión de las mismas para el modelamiento correcto dentro de los proyectos de desarrollo, dentro de esta etapa se deben incluir tareas como las expuestas a continuación:

  • Monitoreo de la aplicación e infraestructura para la identificación de amenazas 
  • Controles y alertas en tiempo real construidas dentro del código para la identificación de posibles intrusiones
  • Construcción de playbooks en lenguajes como ansible con escenarios de respuesta para situaciones que se puedan presentar en infraestructura y seguridad
  • Elementos de telemetría que permitan la identificación de compromisos

En la etapa de identificación de vulnerabilidades aplicamos dentro de nuestros servicios tareas como; ejecución de escaneos de vulnerabilidades en infraestructura y código, revisiones continuas de los productos a medida que se adicionan nuevas funcionalidades o se generan nuevas versiones, pruebas de penetración, pero el componente más importante para esta etapa es la definición de tiempos para la mitigación de hallazgos y la comunicación continua con los equipos de desarrollo para lograr la comprensión de las vulnerabilidades y su mitigación efectiva.

Todo este modelo no es posible sin un componente transversal para los equipos de DevOps enfocado en el entrenamiento y adquisición de habilidades para mejorar el proceso donde se deben realizar tareas como:

  • Transformación del equipo de desarrollo tradicional en un equipo de desarrollo seguro
  • Participación de los equipos de desarrollo en conferencias de seguridad
  • Inversión en entrenamientos y certificaciones de seguridad
  • Educación y sensibilización de los equipos involucrados en DevOps en la comprensión de riesgos
  • Preparación de todos los equipos ante la respuesta a incidentes

El desarrollo de un plan de DevSecOps no se debe enfocar solo en la realización de pruebas de seguridad dinamica o estatica, debe contener diferentes elementos que le permitan fortalecerse a través del tiempo y entender los diferentes desafíos de seguridad a los que se deben enfrentar los desarrollos realizados por los equipos de DevOps.

TOP