DevSecOps

El tema DevSecOps es amplio, consiste en que el equipo de desarrollo, seguridad y operaciones trabajen conjuntamente en ciclos de despliegue continuo, donde se automatizan funciones que necesitan cada uno de estos equipos, como la compilación/build, el provisionamiento y configuración de la infraestructura, pruebas de calidad, pruebas de seguridad, monitoreo, etc.

La recomendación en particular en relacionada a este punto es que adopten en su organización el modo de trabajo con procesos (pipelines) de despliegue continuo, implementando microservicios con baja cohesión, y asegurándose que como parte de ese despliegue se tenga en cuenta la seguridad en distintos aspectos que veremos a continuación:

Hardening de sistema operativo en pipeline

Si despliegan el código sobre instancias, tomen las siguientes precauciones:

  • Las instancias base a utilizar deberían ser creadas periódicamente con los componentes actualizados para evitar vulnerabilidades relacionadas a errores conocidos. Para esto pueden utilizar EC2 Image Builder
  • Como parte del despliegue en EC2 Image Builder puede agregar el agente de Amazon Inspector para realizar periódicamente chequeos para asegurar que no existan vulnerabilidades del sistema operativo o aplicativos en la instancia.
  • Aplique las configuraciones de seguridad para fortalecer la postura de seguridad del sistema operativo. Un buen punto de partida son las guías del Center for Internet Security (CIS) . Amazon Inspector puede verificar el alineamiento con los estándares de sistema operativo de CIS para corroborar que hayan sido aplicados.

Realice las pruebas de seguridad en aplicaciones como parte del pipeline

Pueden realizar pruebas de seguridad sobre el Código (Static Application Security Testing), con herramientas como Veracode o Fortify análisis dinámico (DAST) con herramientas como Aqua o Acunetix , el punto clave es que sea realizado como parte de su proceso de despliegue, y que cualquier vulnerabilidad alta o crítica interrumpa el paso a producción.

Mientras antes sean encontradas las vulnerabilidades, más conveniente será para la remediación en el esfuerzo, económicamente, y en tiempos.

También aporta valor que las herramientas verifiquen las librerías open source utilizadas y reporten sus vulnerabilidades.

AWS cuenta con un servicio llamado AWS CodePipeline que permite la orquestación de estos procesos de despliegue continuos automáticamente. Ejemplo:
DevSecOps Pipeline

##### DevSecOps Workshop https://devops.awssecworkshops.com/

Despliegue de componentes de seguridad

Si conocen alguna vulnerabilidad en una aplicación a desplegar que aún no puede ser corregida (por ejemplo cuando hay una dependencia de un tercero), se puede desplegar como parte del pipeline reglas custom de WAF a incorporar para proteger la aplicación hasta tanto el error de código sea remediado.

Ejemplo: AWS Blog

Como ejemplo del despliegue de infraestructura de protección como parte del proceso de despliegue continuo (CI/CD) les comparto el siguiente blog (en Inglés) que despliega Web ACLs: How to use CI/CD to deploy and configure AWS security services with Terraform