En este breve post os voy a hablar de un script para buscar ‘secretos’ en los repositorios, de momento le he dado la opción de GitHub, pip y npm. ¿De dónde surgió la idea de este script? Trabajando en un analizador de código ‘específico’ mi compañero Lucas Fernández me facilito unos enlaces interesantes que tenían un enfoque parecido y me gusto la idea de llevarlo a poder analizar distintos repositorios.
Se trata de un script rápido, de pocas líneas, no refactorizado, que me sirven para hacer una prueba de concepto, el código se puede mejorar, permitir descargar repositorios dados en un fichero, o lo que se te ocurra, etc. Para hacerlo correr es necesario instalar Python 3.6 o superior, además de tener instalado Git, y los gestores de paquetes pip y npm.
Script
El script lo puedes encontrar en mi GitHub. Aquí no veremos el código, solo una prueba de concepto.
PoC
Pasamos a probar el script con algunos repositorios. Vamos a ver que sacamos de la librería Scapy.
Como esperaba, no ha obtenido resultados, no es mi intención retratar aquí ningún repositorio, así que para el siguiente ejemplo, modifico las expresiones regulares y hago la prueba con unos de mis repositorios, para ver la salida:
La opción que se da por defecto, en caso de no indicarla, es el 1, que pertenece a GitHub, y la URL que se pasa, es la que se usa para clonar. Una vez finalizado el análisis, la información se puede ver en la carpeta ‘results’ (la regla era mi encontrar mi nombre…):
Te indica el fichero, la línea dónde está y el contenido, para que puedas indagar más de forma manual. Como todas las herramientas automáticas, puede arrojar falsos positivos y negativos, no está de más comprobar la información, cuantas veces me he encontrado que un equipo de SAST recoge los resultados de una herramienta y sin más filtro, como viene se lo entrega al cliente o equipo de desarrollo…
Bueno, pues hasta aquí el post de hoy, a ver si pronto saco hueco en mis tiempos libres para seguir generando pruebas de concepto. ¡Nos vemos!
Se trata de un script rápido, de pocas líneas, no refactorizado, que me sirven para hacer una prueba de concepto, el código se puede mejorar, permitir descargar repositorios dados en un fichero, o lo que se te ocurra, etc. Para hacerlo correr es necesario instalar Python 3.6 o superior, además de tener instalado Git, y los gestores de paquetes pip y npm.
Script
El script lo puedes encontrar en mi GitHub. Aquí no veremos el código, solo una prueba de concepto.
PoC
Pasamos a probar el script con algunos repositorios. Vamos a ver que sacamos de la librería Scapy.
![]() |
Figura 1: GiveMeSecrets no encuentra datos sensible en repositorio de pip |
Como esperaba, no ha obtenido resultados, no es mi intención retratar aquí ningún repositorio, así que para el siguiente ejemplo, modifico las expresiones regulares y hago la prueba con unos de mis repositorios, para ver la salida:
![]() |
Figura 2: GiveMeSecrets encuentra resultados en un repositorio de GitHub |
La opción que se da por defecto, en caso de no indicarla, es el 1, que pertenece a GitHub, y la URL que se pasa, es la que se usa para clonar. Una vez finalizado el análisis, la información se puede ver en la carpeta ‘results’ (la regla era mi encontrar mi nombre…):
![]() |
Figura 3: ejemplo de resultados encontrados |
Te indica el fichero, la línea dónde está y el contenido, para que puedas indagar más de forma manual. Como todas las herramientas automáticas, puede arrojar falsos positivos y negativos, no está de más comprobar la información, cuantas veces me he encontrado que un equipo de SAST recoge los resultados de una herramienta y sin más filtro, como viene se lo entrega al cliente o equipo de desarrollo…
Bueno, pues hasta aquí el post de hoy, a ver si pronto saco hueco en mis tiempos libres para seguir generando pruebas de concepto. ¡Nos vemos!
No hay comentarios:
Publicar un comentario