Mitigación de Brechas de Seguridad en Repositorios GitHub
Clase 33 de 42 • Curso de Git y GitHub
Resumen
Al configurar un proyecto en GitHub, es crucial proteger la información sensible, como llaves de API o datos de conexión, evitando que sean subidas por error al repositorio. Aunque el uso de archivos como .gitignore
es clave para excluir información sensible, existen herramientas adicionales en GitHub para detectar y mitigar estos riesgos. Aquí te explico cómo activar y aprovechar al máximo CodeQL y Secret Scanning para mejorar la seguridad de tu código en repositorios públicos.
¿Cómo activar CodeQL y Secret Scanning en GitHub?
Para comenzar, es necesario hacer el repositorio público, ya que algunas de estas funciones no están disponibles en repositorios privados. Sigue estos pasos para activar la seguridad de tu código:
- Ve a Settings en el repositorio y desplázate a Code Security and Analysis.
- Activa CodeQL Analysis en la sección de Code Scanning. GitHub detectará el lenguaje de tu proyecto y comenzará a analizar el código en segundo plano.
- Luego, asegúrate de que Secret Scanning esté habilitado. Esta función, que viene activada por defecto, detecta automáticamente secretos o llaves sensibles en el código.
¿Cómo probar si Secret Scanning detecta información sensible?
Para verificar el funcionamiento de Secret Scanning, puedes añadir intencionadamente una clave sensible en el código. Por ejemplo:
- Agrega una cadena como
string stripeApiKey = "clave_sensible";
en tu archivo de código y sube el cambio. - GitHub realizará el análisis en segundo plano y, si detecta una llave API, emitirá una alerta en la sección de Security.
En cambio, una cadena menos evidente, como string connectionString = "cadena_sensible";
, podría pasar desapercibida. Este ejemplo muestra que, aunque Secret Scanning es útil, no es infalible y puede omitir cadenas sensibles si no siguen patrones comunes.
¿Qué hacer si GitHub detecta una alerta de seguridad?
Si GitHub te notifica sobre una alerta de secreto en el código, sigue estos pasos para mitigar el riesgo:
- Renueva las credenciales en la cuenta del servicio de terceros para evitar accesos no autorizados.
- Elimina la clave del historial de commits, ya que eliminarla solo del código actual no la quita de versiones anteriores.
- Modifica tu código para utilizar archivos de configuración, como
.env
oappsettings.json
, y exclúyelos con.gitignore
para evitar futuras filtraciones.
¿Por qué CodeQL y Secret Scanning no son suficientes?
Aunque GitHub ofrece herramientas poderosas de análisis, no garantizan la detección de todas las cadenas sensibles. Por eso, la mejor práctica sigue siendo prevenir las filtraciones configurando correctamente .gitignore
y almacenando secretos en archivos de entorno.
Estas prácticas te ayudarán a evitar el riesgo de exponer información crítica, reduciendo los problemas de seguridad y permitiéndote mantener un código limpio y seguro.