Luego de unas semanas de receso obligatorio por que me infecte del COVID mas feo de este mundo, casi no la cuento, pero ya estoy bien!! no se preocupen 😀 , haciendo lo que mas gusta 😀

Es asi que retomamamos el tema de #DevSecOps, El integración continua de código (CI) hace que muchas veces se tengan almacenadas de forma equivocada información confidencial, como claves de acceso, tokens de acceso, claves SSH, entre otros elementos que aveces son necesarios almacenar localmente para luego subir al repositorio.

Talisman es una herramienta que instala un enlace al local y cuando trabajemos con GIT/GITLAB etc,etc. para garantizar que estos elementos llamados «secretos» o la información confidencial no salgan de la estación de trabajo del desarrollador al realizar los comits.

1.- Configuracion de Repositorio GIT

Vamos a configurar un reporsitorio llamado «prueba1»

  • Crear llave

# ssh-keygen
# cat ~/.ssh/id_rsa.pub

  • Creo un reporsitorio «prueba1»
    prueba1 / como privado.

 

  • Descargar un proyecto de prueba, vamos a elegir DVWA

# git clone https://github.com/digininja/DVWA.git

 

  • Ahora configurar finalmente el repositorio local con el repositorio remoto en GITBUB

git init
git add .
git config –global user.email «tuemail@gmail.com»
git config –global user.name «tuuser»
git commit -m «first commit»
git branch -M master
git remote add origin git@github.com:jrolivaeh/prueba1.git
git push -u origin master

Hasta aqui tenemos nuestro repositorio local enlazado con nuestro repositorio remoto en GIT.

2.- Instalación de Talisman en Centos 7

# yum install perl-Digest-SHA git
# curl https://raw.githubusercontent.com/thoughtworks/talisman/master/global_install_scripts/install.bash > ~/install-talisman.sh
# chmod +x ~/install-talisman.sh
# ~/install-talisman.sh

Definir donde se configuraran las variables de entorno , la definimos en el ~/.bashrc

Definimos el modo interactivo haciendo uso del archivo .talismanrc para manejo de excepciones.

Finalmente se define la ubicacion de los repositorios, en este caso de «demo» estamos trabajando en /root/DVWA/ de la VM

3.- Probando Talisman dentro del CI.

Ahora agregamos unos «secretos» que no deberian subirse el repositorio.

# vim secretos

aws_access_key_id = 2367921901012
aws_secret_access_key = vKbptOYlkDFMI/L9NEIMP/bIsEkoQWEJEMKEY
aws_session_token = BWlEJEMPLOK9fgGH0pMPAPuRqw5MoERRpQWE98YUfg5PasR+FvwqnKwRcOIfrRh3c

Finalmente agregaremos el archivo a la rama y finalmente haremos un commit

# git add secretos
# git commit -m «Agregando secretos»

Como vemos Talisman detecto los «secretos» y nos manda una advertencia y alertas.

4.- Agregando excepciones en Talisman.

Si necesitamos crear una excepción por ejemplo de lo que se ha detectado, tenemos que agregar un archivo .talismanrc en el directorio root del proyecto como se muestra a continuación.

cd /root/DVWA
vim .talismanrc

fileignoreconfig:

  • filename: secretos
    checksum: 2502eb040033bd44080fb385ae8b794b808f25542e1e9075d5ed65d4a976c014

Ahora nuevamente mandamos el «comit» y veremos que Talisman aceptara la escepcion.

Espero les sirva, esperemos seguir escribiendo sobre #DevSecOps
Este post va para todos mis amigos que me brindaron apoyo incondicional en superar el virus, Muchas gracias!!

Saludos
@Juan Oliva

Deja un comentario

Juan Oliva

Consultor en Ciberseguridad y VoIP con mas de 16 años de experiencia en el campo, muy involucrado en proyectos de Ethical Hacking, análisis y explotación de vulnerabilidades en infraestructura, aplicaciones web, APIs y Móviles, pruebas de ingeniería social y revisión de código.