Consejos para securizar tu repositorio

Avatar

Bienvenidos a una nueva entrada del blog de A2Secure. En la entrada de hoy vamos a hablar de Git.

En los últimos años, git se ha convertido en uno de los sistemas de control de versiones más populares y por tanto más usados. La existencia de proyectos open-source y el soporte gratuito y/o empresarial de proveedores como GitHub y GitLab han fomentado el uso de este.

Debido a este uso mayoritario y del valor de este activo, se ha convertido en un objetivo de ataque. Este artículo quiere daros un conjunto de buenas prácticas para añadir/mejorar la  seguridad en vuestros repositorios. Vamos a dividir estas mejores prácticas en 4 bloques:

  • Identidad
  • Securización del acceso
  • «.gitignore» el gran desconocido
  • Revisión de código

 Identidad

Un buen uso de la identificación y de la autorización es un requerimiento fundamental cuando hablamos de seguridad. Así obtenemos como mejores prácticas:

  • Nunca usar cuentas compartidas o cuentas de sistema tipo root, nobody, www, etc. para realizar commits con cambios.
  • Evitar el uso de identificación por username/email e intentar el uso de los commits firmados con unas claves PGP/GPG adecuadas.

 Al final para configurar el git con nuestra clave será tan fácil como realizar los siguientes pasos:

1/ Crear clave → gpg –gen-key

2/ Configurar git para que las use → git config –global user.signingkey [key id]

3/ Firmar nuestros commits añadiendo -S a nuestros comandos:

git commit –S –m “Signed commit message”

→ git –s [tag name] “Signed tag name”

Securización del acceso

Todos los usuarios de nuestros sistemas deberían tener activado el 2FA por defecto para poder acceder. Así mismo, algo muy simple… ¿queremos que los repositorios sean públicos? Si estamos hablando de alguna librería que queramos compartir, alguna demo, etc. perfecto, pero tengamos público lo público, lo demas privado.

“.gitignore” el gran desconocido

Es uno de los archivos más importantes que debemos tener presente para securizar nuestro repositorio. Debemos ir con cautela en que queremos subir y que no.

Factores a considerar:

  • Ficheros de configuración, en el cual podemos tener información interna
  • Ejecutables tipo *.exe, *.dll o ficheros ELF de Linux

Así mismo una buena práctica es que cada vez que hagamos un cambio tecnológico revisemos los ficheros .gitignore para ver si los tenemos bien configurados.

Revisión de código

Tal y como se habló en nuestro artículo sobre seguridad desde el diseño, la tendencia actual es añadir seguridad lo antes posible para evitar fallos de seguridad. Uno de los checks que podemos hacer es la revisión estática del código añadiendo algún sistema para la comprobación de secretos. Existen múltiples herramientas, pero en esta entrada vamos a hablar de dos de ellas, git-secrets y truffle Hog.

La primera de ellas, git-secrets, fue creada por AWS Labs y como ya indica su nombre es un analizador de secretos. Esta herramienta previene de subir a nuestro repositorio las AWS Keys que se encuentran en nuestro código. Imaginemos que podría hacer alguien si encontrase en un repositorio público las AWS Keys para acceder a nuestra base de datos…

La segunda herramienta, truffle Hog, es una de las más populares para encontrar secretos, mediante expresiones regulares, en nuestros repositorios incluyendo en las ramas y en el historial de commits.

Y un bonus track en esta sección. ¿Donde puedo guardar estos secretos y usarlos en nuestro sistema? Desde A2Secure recomendamos el uso de herramientas tipo Vault de HashiCorp. Vault es un sistema para guardar de forma segura y controlar el acceso de tokens, contraseñas, certificados, claves de cifrado. Vault puede ser gestionado mediante una interfaz web, pero también mediante un cliente o su API.

Recuerda que la seguridad total no existe y por eso es básico aplicar todas las buenas prácticas y procedimientos a nuestro día a día.

 

Autor: Carlos Morell 

Leave a Comment

advanced persistent threatblack hat usa 2019