17 ene 2022

Herramientas Open Source para adoptar DevSecOps

En este artículo técnico Sumit (Sid) Siddarth, director de NotSoSecure, nos muestra que DevSecOps no cuesta una fortuna. Como explica, las empresas pueden hacer uso de las herramientas open-source libremente disponibles para mejorar su postura hacia la seguridad del software.

Actualmente, DevOps permite a las empresas desplegar cambios a entornos de producción a velocidades ultrarápidas. Hay muchas maneras de hacerlo, pero un proceso DevOps típico sería algo así:

  1. Un desarrollador escribe el código usando cualquier entorno de desarrollo de su elección y lo sube a un repositorio de código centralizado.
  2. El código se combina en el repositorio con el objetivo de versionarlo.
  3. Entonces, el servidor de CI/CD descarga el código del repositorio de código centralizado y paquetiza los artefactos/binarios construidos.
  4. Estos artefactos/binarios son entonces subidos a un repositorio de binarios.
  5. Estos artefactos/binarios son entonces descargados del repositorio para ser desplegados en los servidores de preproducción y producción, que son levantados utilizando docker.
  6. Se monitoriza la disponibilidad del servicio regularmente.

Si utilizamos las herramientas y entornos para ilustrar un proceso típico de DevOps, sería algo parecido a la imagen siguiente. Las herramientas variarán para cada empresa, pero el proceso representado aquí y en el resto del artículo sería más o menos el mismo. Una vez la aplicación está operando en un entorno de producción o preproducción, es habitual planificar un test de penetración. Imagina un escenario en el que una aplicación en producción está siendo testeada y se detecta una vulnerabilidad de alto riesgo, como una SQL injection. En ese caso, el equipo deberá volver a ejecutar todo el Pipeline DevOps entero para solucionar este problema. Algo que requiere mucho tiempo y, claramente, no es la mejor manera de resolver el problema.

Entonces, ¿qué pasa si acercamos un poco más la seguridad al ciclo de desarrollo incorporando un test de seguridad dentro del pipeline DevOps? Por ejemplo, con la ayuda de un escáner de código Open Source se habría detectado fácilmente la SQL Injection en una etapa temprana del desarrollo y se habría arreglado incluso antes de empaquetar el código:

Contenidos:

Herramientas

Echemos ahora un vistazo a cómo hacen habitualmente los equipos para mantener su pipeline DevOps rodando. Para cada área, sugerimos un rango de herramientas open source para ayudar a moverlo todo más rápidamente y de modo seguro sin romper la hucha.

Hooks previos a la subida de código

A menudo se filtra por error información sensible (como claves AWS, tokens de acceso o calves SSH) a través de repositorios de código fuente públicos debido a commits accidentales. Se puede evitar usando herramientas como "Talisman", que busca información sensible en los archivos antes de hacer commit o push.

Herramientas open source para los hooks previos a la subida de código:

Gestión de secretos

Con la automatización, almacenar credenciales en archivos de configuración y variables de entorno para acceder a varios servicios es una práctica habitual seguida por desarrolladores y administradores. No obstante, almacenar credenciales en archivos o configuraciones puede llevar a exponer credenciales a una audiencia inadecuada. Servicios de gestión de secreto como "Hashicorp vault" permiten segregar credenciales en niveles separados. Cada entorno puede descargar un pull de credenciales desde un entorno específico y utilizarlo programáticamente.

Herramientas open source para gestionar secretos:

Herramientas open source para análisis de composición del software:

Static Analysis Security Testing (SAST)

Usar herramientas automatizadas para realizar controles de código de seguridad elimina mucha tarea básica como la SQL injection, cross-site scripting, vulnerabilidades de deserialización y muchas más cosas.

Para las aplicaciones basadas en Java, podemos utilizar la herramienta llamada "FindSecBugs", que realiza un análisis en profundidad del código (sin dar muchos falsos positivos) y ofrece un informe completo para todas las vulnerabilidades que se han identificado en el código. A partir de ahí, se toma la decisión de continuar con el pipeline o detenerlo, dependiendo del número y la gravedad de las vulnerabilidades, con el objetivo de solucionarlas antes de continuar. A continuación, encontrarás una lista de herramientas open source que pueden utilizarse para SAST.

claranet-sast-devsecops-tools.png

Fuente: Source Code Analysis Tool

Testeo de seguridad de análisis dinámico

Los escáneres de aplicaciones web son una parte importante de la evaluación de vulnerabilidades de una web app. La mayoría de ellos tiene acceso vía API o CLI, que se pueden aprovechar para iniciar análisis en las aplicaciones objetivo. OWASP ZAP es una de estas herramientas, con la que se puede iniciar un escaneo de seguridad en el entorno de QA/Staging y pulir un gran número de malas configuraciones (como la revelación de información sensible en un archivo de backup, headers HTTP inseguros, etc.).

Herramientas open source para el testeo de seguridad de análisis dinámico:

Seguridad en Infrastructure as Code

Las soluciones de contenedores como Docker son muy populares pese a que construyen la infraestructura simplemente usando unas pocas líneas de código. Por ejemplo, "Docker Hub" es un famoso repositorio de imágenes de docker público de donde se pueden descargar las imágenes para generar los contenedores. No obstante, en varias instancias estas imágenes docker están mezcladas con malware o están plagadas de vulnerabilidades, como se muestra en la imagen de abajo. Por lo tanto, es extremadamente importante escanearlas.

Una solución que ofrece una buena visión de la importancia de la seguridad en relación con los contenedores/imágenes Docker es "Clair", que escanea las imágenes base de docker y ofrece un informe exhaustivo, señalando las vulnerabilidades que existen en la imagen. Por lo tanto, es importante ejecutar una herramienta como Clair en los contenedores de producción antes de desplegarlas en la infraestructura.

Herramientas open source para seguridad en Infrastruture as Code:

Vulnerability Assessment (VA)

Una práctica habitual es la de realizar evaluaciones de vulnerabilidad en los sistemas de producción para identificar varios servicios en ejecución en el entorno y las vulnerabilidades asociadas.

A pesar de apuntar la herramienta de VA a los servidores que han sido creados con Docker, solo ejecutará el escaneo en el servicio que está siendo expuesto en ese host. No obstante, si adjuntamos la herramienta a la red docker y luego ejecutamos el escaneo, nos mostrará una buena foto de los servicios que realmente se están ejecutando.

Esto se puede hacer con varias soluciones, como OpenVas, que se integra fácilmente en el pipeline.

Herramientas open source para Vulnerability Assessment:

Compliance as Code

Las organizaciones deben aplicar controles a su infraestructura TI para cumplir con las mejores prácticas del sector y regulaciones como PCI DSS, HIPAA o SOX. Con "Infrastructure as Code" en DevOps, el entorno de producción no es estático, siempre se puede recrear de nuevo, de ahí que sea imperativo realizar un test sobre el entorno nuevo o actualizado una vez redesplegado. "Inspec" es una de las herramientas que ayuda a realizar estos tests. Solo hace falta proveer de un archivo ruby que contenga los tests a realizar de un modo simple y coherente.

Herramientas open source para Compliance as Code:

Gestión de vulnerabilidades

Las herramientas que crean el pipeline DevSecOps generarán muchas vulnerabilidades y cada una de ellas tiene su propio formato. Por eso, resulta difícil gestionar todos los datos, por no hablar de monitorizar y solucionar las vulnerabilidades. De ahí que las soluciones de gestión de vulnerabilidades sean esenciales en el proceso DevSecOps, administrando todos los datos para ser gestionados, examinados y monitorizados, y las vulnerabilidades solucionadas.

"ArcherySec" es una de estas herramientas. No solo tiene una buena integración con la mayoría de las herramientas mencionadas anteriormente, sino que también puede iniciar escaneos como ZAP u OpenVAS.

Y aquí una lista de todas las herramientas que ArcherySec soporta y de las que puede extraer datos:

claranet-tools-archerysec-supports.png

Herramientas open source disponibles para la gestión de vulnerabilidades:

Alertas y monitorización

Las aplicaciones de producción siempre afrontan nuevas amenazas de agentes desconocidos e imprevistos. Tener activa una solución de monitorización y prevención de intrusiones puede mitigarlas. Una solución open source de este tipo es "ModSecurity WAF(Web Application Firewall)", que detecta cuando se ataca alguna de las 10 principales vulnerabilidades OWASP – como SQL injection o Cross-site Scripting.

Herramienta open source para alertas y monitorización:

Fuente: NotSoSecure

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!