Recientemente descubrí un caso en el que un colega había comprometido accidentalmente sus credenciales de inicio de sesión (host, nombre de usuario y contraseña) en un repositorio de código fuente local, y luego envió estos cambios a un repositorio público en GitHub. Por supuesto, esto no fue un incidente aislado: hace unos años, GitHub eliminó su función de búsqueda de código completo después de que la gente descubriera > cientos de claves privadas y otras credenciales en repositorios públicos .
Me gustaría asegurarme de que este tipo de cosas no hayan sucedido en el pasado con ninguno de nuestros otros repositorios públicos (y, en caso de que así sea, para limpiar los datos privados, cambiar las contraseñas expuestas, revocar las llaves expuestas, etc.). No es un problema para mí armar un script de shell para pasar las confirmaciones pasadas a un repositorio Git o Subversion determinado para que pueda escanearlos en busca de datos privados. Pero, ¿qué tipo de nombre de archivo y patrones de texto debo usar? Por ejemplo, quiero capturar archivos cuyo nombre sugiere que contienen claves privadas o credenciales ( password.txt
, id_dsa
, id_rsa
, secring.gpg
, .netrc
y probablemente varios más estándar que estoy olvidando) o ni siquiera estoy al tanto de). ¿Hay alguna lista que cubra los casos más comunes? Del mismo modo, me gustaría escanear el contenido de los archivos de texto y de origen en busca de patrones que indiquen credenciales de inicio de sesión codificadas. Tal vez alguien ya haya producido una lista de expresiones regulares para comenzar?