El título de este artículo probablemente suene como el título de un meme. En cambio, este es un problema real que los ingenieros de GitGuardian tuvieron que resolver al implementar los mecanismos para su nuevo Servicio HasMySecretLeaked. Querían ayudar a los desarrolladores a descubrir si sus secretos (contraseñas, claves API, claves privadas, certificados criptográficos, etc.) habían llegado a los repositorios públicos de GitHub. ¿Cómo podrían revisar una vasta biblioteca de secretos que se encuentran en repositorios de GitHub disponibles públicamente y sus historiales y compararlos con sus secretos sin que usted tenga que exponer información confidencial? Este artículo le dirá cómo.
En primer lugar, si tuviéramos que igualar la masa de un bit a la de un electrón, una tonelada de datos equivaldría a alrededor de 121,9 billones de petabytes de datos en la gravedad terrestre estándar o 39,2 billones de billones de dólares estadounidenses en actualizaciones de almacenamiento del MacBook Pro (más que todas las el dinero del mundo). Entonces, cuando este artículo afirma que GitGuardian escaneó una “tonelada” de datos de confirmación pública de GitHub, eso es figurativo, no literal.
Pero sí, escanearon una “tonelada” de confirmaciones públicas y esencias de GitHub, recorrieron historiales de confirmaciones y encontraron millones de secretos: contraseñas, claves API, claves privadas, certificados criptográficos y más. Y no, “millones” no es figurativo. Literalmente encontraron más de 10 millones en 2022.
¿Cómo podría GitGuardian hacer posible que los desarrolladores y sus empleadores vean si sus secretos actuales y válidos se encuentran entre esos más de 10 millones sin simplemente publicar millones de secretos, facilitando que los actores de amenazas los encuentren y recopilen, y permitiendo que muchos genios de muchas botellas? Una palabra: toma de huellas dactilares.
Después de algunas evaluaciones y pruebas cuidadosas, desarrollaron un protocolo secreto de huellas dactilares que cifra y codifica el secreto, y luego solo se comparte un hash parcial con GitGuardian. Con esto, podrían limitar el número de posibles coincidencias a un número manejable sin conocer lo suficiente el hash para revertirlo y descifrarlo. Para garantizar aún más la seguridad, colocaron el conjunto de herramientas para cifrar y cifrar el secreto en el lado del cliente.
Si estás usando el HasMySecretWeb filtrada interfaz, puede copiar un script de Python para crear el hash localmente y simplemente colocar el resultado en el navegador. Nunca es necesario colocar el secreto en ningún lugar donde el navegador pueda transmitirlo y puede revisar fácilmente las 21 líneas de código para demostrarse a sí mismo que no envía nada fuera de la sesión de terminal que abrió para ejecutar el script. Si eso no es suficiente, abra las herramientas de desarrollo F12 en Chrome u otro navegador y vaya al panel “Red” para monitorear qué información envía la interfaz web.
Si estás usando el CLI ggshield de código abierto puede inspeccionar el código de la CLI para ver qué sucede cuando usa el comando hmsl. ¿Quieres aún más seguridad? Utilice un inspector de tráfico como Fiddler o Wireshark para ver lo que se transmite.
Los ingenieros de GitGuardian sabían que incluso los clientes que confiaban en ellos tendrían miedo de pegar una clave API o algún otro secreto en un cuadro de una página web. Tanto para la seguridad como para la tranquilidad de todos los que utilizan el servicio, optaron por ser lo más transparentes posible y poner la mayor parte posible del proceso bajo control del cliente. Esto va más allá de sus materiales de marketing y entra en el Documentación de ggshield para el comando hsml.
GitGuardian hizo un esfuerzo adicional para asegurarse de que las personas que usan su Comprobador HasMySecretLeaked No es necesario compartir los secretos reales para ver si se filtraron. Y ha valido la pena. Se comprobaron más de 9.000 secretos en las primeras semanas de funcionamiento.
Si sus secretos ya han sido divulgados públicamente, es mejor saberlo que no hacerlo. Puede que aún no hayan sido explotados, pero probablemente sea sólo cuestión de tiempo. Puede consultar hasta cinco por día de forma gratuita a través del Comprobador HasMySecretLeaked a través de la web, y más aún utilizando el CLI del escudo de GitGuardian. E incluso si no está buscando ver si sus secretos se filtraron, debe observar su código y sus métodos para inspirar sus esfuerzos y facilitar que sus clientes compartan información confidencial sin compartir la información en sí.