La siguiente fase OBLIGATORIA después de DevOps: DevSecOps

Kevin Blanco 🥑
Kubernetes Costa Rica
6 min readJun 3, 2020

La seguridad debe ser parte del proceso DevOps y no se puede seccionar.

Saludos estimad@s! Les tengo malas noticias, así que, ¿ya implementaste la cultura DevOps dentro de tu organización? Aún falta! — Tu proceso DevOps necesita ser cambiado!

Esta bien, puedes estar desorientado porque te pido que cambies un proceso que llevó su rato de implementación. Pasaste mucho tiempo creando un proceso DevOps, y todo funciona bien. Entonces, ¿por qué cambiarlo?

Probablemente te preguntaste lo mismo cuando tenias una implementación manual, y estábamos hablando de DevOps por primera vez. La tendencia en TI cambia rápidamente y debemos adaptarnos al cambio. En este caso, no estamos hablando de algo devastador, sino de una mejora significativa en la eficiencia.
El tema ahora es sobre seguridad. Es tan difícil tener un proyecto que funcione que a menudo vemos problemas de seguridad como un paso tedioso que queda al final. Algo así como un chequeo final, alguna prueba de caja blanca o caja negra, y “vamonos”. Bueno, hoy en día, no hay espacio para una fuga de seguridad. Nuestra aplicación y la información que administran son tan valiosas que necesitamos tratar los asuntos de seguridad como parte de los requisitos. Veamos las características del desarrollo de tecnología actual:

  • Los desarrolladores están creando más aplicaciones y microservicios.
  • Los microservicios generan más “superficie” para las vulnerabilidades.
  • La detección de pruebas y vulnerabilidades sigue siendo primordial, pero así como DevOps impacta nuestros procesos desde tempranas fases, así debe ser la seguridad.

No podemos dejar solo al equipo de seguridad o pensar en seguridad como una auditoria al final, es nuestra responsabilidad como creadores de tecnología pensar desde el día 1 en seguridad. Es por eso que necesitamos incorporarlos al proceso de desarrollo, reducir la fricción y prevenir problemas.
En este artículo, aprenderemos sobre SecOps y cómo la integración a las prácticas reales de DevOps puede ayudarte a que el proceso sea ágil y eficiente.

¿Qué es DevSecOps?

Suena medio raro yo sé, pero no es más que un acrónimo que debemos digerir. DevOps que es la fusión de Desarrollo y Operaciones,
¡y ahora tenemos DevSecOps que es la mezcla de Desarrollo, Seguridad y Operación/Delivery! tal y como se muestra en la siguiente imagen.

En pocas palabras, DevSecOps es una evolución de DevOps, donde nos enfocamos explícitamente en el rol de seguridad. El tema de seguridad ahora es una responsabilidad compartida entre todos los miembros del equipo.

¿Por qué necesitamos dar más evidencia a la seguridad?

La pregunta no es sobre la importancia de la seguridad. Cada aplicación debería funcionar, pero también debe ser segura. Este es un requisito esencial, y el papel de la seguridad no es el tema. Estamos hablando del proceso que usamos para implementar una aplicación. Intenta olvidarte de DevOps y de todas las cosas buenas que tenemos hoy en día, solo piensa en el proceso de implementación clásico. El flujo es que los desarrolladores compilan la aplicación, dan el artefacto a los administradores del sistema, lo implementan en algún entorno de prueba y, finalmente, el departamento de seguridad realiza algunas verificaciones antes de ponerlo en funcionamiento. Esto suena muy viejo, pero, en palabras simples, fue el proceso que tuvimos. Debido a todos los problemas que tuvimos en la interacción entre las operaciones y los equipos de desarrollo, entendimos que necesitábamos un nuevo proceso, más ágil, donde trabajen juntos compartiendo conocimiento y responsabilidad.
La idea principal detrás de la filosofía DevSecOps es que necesitamos hacer lo mismo con la seguridad. Esto da como resultado un equipo ampliado que comienza a pensar en la seguridad, ya que el proyecto avanza los primeros pasos, como sucede con la implementación en el caso de DevOps.

¿Cuáles son las ventajas de DevSecOps?

DevSecOps crea una práctica cíclica para probar el tema SecOps durante el desarrollo. Al hacerlo, reducirá la fricción entre los equipos y evitará la difícil situación en la que se completa la iteración, o peor aún, la aplicación completa, y debe luchar con el equipo de SecOps para solucionar los problemas que se apresuran el día antes del lanzamiento, y si señoras y señores, esto pasa! estoy seguro que has estado en esa situación antes. Si las comprobaciones de seguridad se automatizan y se realizan el primer día de desarrollo, no se ejecutará este problema porque se lo notará a tiempo y podrá resolverlos y evitar su proliferación.

¿Cómo funciona DevSecOps en la práctica?

DevSecOps no es magia negra. Al igual que DevOps simple, se basa en herramientas y toma el poder de la automatización, PALABRAS CLAVES!.

El primer paso es tener herramientas automatizadas para los controles de seguridad, y esto se puede encontrar en los equipos de SecOps. El siguiente paso es automatizarlos para que no haya una necesidad real de que un ser humano presione el botón. Este paso puede ser un poco más difícil, pero la mayoría de las pruebas se realizan con herramientas de automatización, y puede comenzar con un subconjunto de pruebas.

¿Y porque este articulo esta en una página de Kubernetes?

Voy a explicarles sobre el primer paso qué di en mis equipos de trabajo para implementar SecOps dentro de la ya existente DevOps que teníamos. Encontré una herramienta que me ayuda a automatizarlo, y hacerlo parte de mi proceso automático de revisiones de Pull Requests.

LES PRESENTO SCAN

ShiftLeft Scan es una herramienta de seguridad gratuita de código abierto para los equipos modernos de DevOps. Con un diseño integrado basado en múltiples escáneres, ShiftLeft Scan puede detectar varios tipos de fallas de seguridad en su aplicación y código de infraestructura en un solo escaneo rápido. ¿COMO COMO, OSEA, TAMBIÉN REVISA VULNERABILIDADES EN INFRAESTRUCTURA?????

Giphy

Así es, una de las ventajas de Kubernetes y Cloud Native, es poder definir infraestructura como código, lo cual entonces combinado con Scan podemos identificar vulnerabilidades en etapas tempranas de nuestra infraestructura, esto es FUCKING AWESOME!

Los tipos de defectos detectados por scan son:

  • Escaneo de credenciales para detectar fugas secretas accidentales
  • Pruebas de seguridad de análisis estático (SAST) para una variedad de lenguajes y frameworks.
  • Auditoría de dependencias de código abierto
  • Verificaciones de violación de licencia

La lista completa de idiomas admitidos es la siguiente:

  • Salesforce Apex
  • Bash
  • Go
  • Java
  • JSP
  • Node.js
  • Oracle PL/SQL
  • Python
  • Rust
  • Terraform
  • Salesforce Visual Force
  • Apache Velocity

Además, también está disponible el soporte para plataformas de Infraestructura como Código (IaC) como Ansible, AWS CloudFormation, Terraform, Kubernetes, puedes ver toda la lista de integraciones CI/CD en este enlace.

¿En que parte de mi proceso implementé Scan?

Scan en Github Pipelines

ShiftLeft Scan está disponible como una acción gratuita de GitHub Actions aquí. A continuación te muestro una configuración mínima:

- uses: ShiftLeftSecurity/scan-action@master   
with:
type: "credscan,java,depscan"

A continuación les muestro una configuración avanzada que incluye la capacidad de personalizar la URL de WORKSPACE y la búsqueda de paquetes de GitHub:

- name: ShiftLeft Scan   
uses: ShiftLeftSecurity/scan-action@master
env:
WORKSPACE: https://github.com/${{ github.repository }}/blob/${{ github.sha }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
output: reports
- name: Upload scan reports
uses: actions/upload-artifact@v1.0.0
with:
name: shiftleft-scan-reports
path: reports

De esta forma, con cada PR (pull request) que se desee introducir en la rama de develop tendrá su revisión de vulnerabilidades con lo cual podemos capturar muchisimos issues antes de que lleguen ni siquiera al ambiente de desarrollo.

¿Y ya, eso es todo?

Pues no, en realidad no, este es solo el primer paso para implementar seguridad en todos los niveles, pero es un GRAN inicio, estoy seguro que la primera vez que realizar un Scan en tu proyecto te saldrán BASTANTES vulnerabilidades, solo con eso ya tendrás con que entretenerte.

En los próximos artículos hablaremos mas de la cultura DevSecOps.

--

--

Kevin Blanco 🥑
Kubernetes Costa Rica

Senior DevRel Advocate 🥑 at Appsmith, Certified Google Expert Advocate, Private Pilot