DevSecOps: Seguridad avanzada en GitHub

La seguridad es uno de los temas a los cuales debemos prestar mayor atención en nuestros Pipelines de CICD.

DevSecOps se enfoca en integrar a la Seguridad como una parte fundamental de nuestro proceso de DevOps. Este enfoque nos permitirá llevar la seguridad a la izquierda (Shift Left) de nuestro proceso de DevOps.

DevSecOps

Es una extensión de las practicas de DevOps. Deviene de las palabras Development, Security y Operations.

DevSecOps apunta a ayudar a los equipos a encargarse de la seguridad de manera eficiente. Es planteado como una alernativa para antiguas practicas de seguridad de software que podían ajustarse a los tiempos de delivery de sfotware moderno.

En las antiguas practicas, los testings de Seguridad eran manejados por fuera del Ciclo de Desarrollo de Software (SDLC).

Para esto DevSecOps plantea “llevar la seguridad a la izquierda”.

¿Qué quiere decir “llevar la seguridad a la izquierda”?

En lugar de ocuparnos de la seguridad de nuestro codigo al final del proceso y por separado, DevSecOps propone realizarlo desde el inicio del ciclo de desarrollo de software (SDLC). Debemos incluír nuestro enfoque de seguridad desde la creación de la idea hasta las primeras lineas de codigos implementadas. Este enfoque nos ayuda a entregar Software seguro, permitiendo al equipo a detectar y solucionar problemas de seguridad o vulnerabilidades mas temprano sin realentizar el delivery.

Algunos beneficios de adoptar los principios de DevSecOps:

  • Entrega de software más rápida y eficiente.
  • Base de código más segura y seguridad proactiva
  • Feedback-loop continua y parcheo de vulnerabilidades de seguridad más rápido.
  • Prácticas de seguridad automatizadas, estandarizadas y predecibles.

Seguridad Avanzada de GitHub

GitHub una de las plataformas de versionado de codigo y CICD mas utilizadas de la actualidad, nos brinda sus funcionalidades avanzadas para ayudarnos a implementar nuestro proceso de DevSecOps. Esto nos permitirá poder realizar verificaciónes, chequeos y acciones automaticas de Seguridad para tener una Codebase más segura.

Secret Scanning

  • Inspecciona repositorios o commits buscando tokens, claves o secretos en el código, notificando a los equipos sobre filtraciones y permitiendo a los proveedores de servicios revocar o renovar los secretos.

Escaneo de código:

  • Analiza el código en busca de vulnerabilidades y errores, utilizando CodeQL para descubrir, por ejemplo, cadenas de conexión a bases de datos expuestas. Los escaneos se realizan automáticamente tras eventos específicos como commits.

GitHub Dependabot:

  • Verifica y puede actualizar paquetes y aplicaciones obsoletos o vulnerables, reemplazándolos por versiones más seguras y nuevas. Ademas crea PRs para actualizar Libraries que no encriptan datos sensibles.

Gestión de vulnerabilidades:

  • Identifica y actualiza vulnerabilidades en el código y en paquetes de software. Se activa con cambios en las dependencias de un repositorio, notificaciones de servicios de terceros como Mend, o la inclusión de nuevas vulnerabilidades en la Base de Datos de Asesoramiento de GitHub, que recopila información de diversas fuentes, incluida la Base de Datos Nacional de Vulnerabilidades y el seguimiento propio de GitHub.

Licencia/Billing

En GitHub podremos disponer de estos features de manera gratuita en nuestros Repositorios Publicos. Para los privados debemos contratar una licencia adicional.

Habilitar Secret Scanning

Para habilitar Secret Scanning en nuestro Repo debemos:

  • Ir a nuestro repo.
  • Hacer click en la pestaña Settings:
  • Luego debemos ir a la sección de seguridad.
  • Y seleccionar “Code security and analysis”
  • Luego debemos deslizar nuestro mouse hasta el final de las opciones de seguridad y habilitar Secret Scanning.
  • Tambien podremos habilitar Push Protection. Esto nos permitirá bloquear Commits donde sean detectados los Secrets.

Habilitar CodeQL Analysis en Code Scanning

Para habilitar Secret Scanning en nuestro Repo debemos:

  • Ir a nuestro repo.
  • Hacer click en la pestaña Settings:
  • Luego debemos ir a la sección de seguridad.
  • Y seleccionar “Code security and analysis”.
  • Luego debemos ir a la sección “Code scanning”.
  • Aquí seleccionar la Tool CodeQL analysis. En este caso, aplicaremos la configuración por default en la demo.
  • Ahora debemos configurar: el Lenguaje (detectado automaticamente), las Suites de Querys y los Scan Events:
  • Comenzará Setup.

En este caso, no profundizaremos sobre la configuración de CodeQL, sino que aplicaremos la configuración por defecto.

Verificar Vulnerabilidades de Seguridad

Luego de activar y configurar nuestras features, podremos revisarlas en la solapa de seguridad de nuestro Repo.

  • Status de Code Scanning:
  • Tool Status:
  • Configurations:
  • Secret Scanning:


Posted

in

, ,

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.