La metodología para recopilar secretos incluye varias fases, lo que le permite identificar en última instancia la información clasificada con un alto grado de confianza. Ilustración de un trabajo científico.GitHub y plataformas similares para la publicación de código abierto hoy se han convertido en herramientas estándar para desarrolladores. Sin embargo, surge un problema si este código fuente abierto funciona con tokens de autenticación, claves API privadas y claves criptográficas privadas. Para garantizar la seguridad, estos datos deben mantenerse en secreto. Desafortunadamente, muchos desarrolladores agregan información confidencial al código, lo que a menudo conduce a filtraciones accidentales de información.
Un equipo de investigadores de la Universidad de Carolina del Norte realizó un
estudio a gran escala de filtraciones de datos clasificados en GitHub.
Escanearon miles de millones de archivos, que fueron recopilados por dos métodos complementarios:
- Casi seis meses de escaneos de confirmación pública de GitHub en tiempo real
- la instantánea de los repositorios públicos que cubre el 13% de todos los repositorios en GitHub, totaliza alrededor de 4 millones de repositorios.
Las conclusiones son decepcionantes. Los científicos no solo han descubierto que las fugas están muy extendidas y afectan a más de 100,000 repositorios. Peor aún, miles de nuevos "secretos" únicos llegan a GitHub todos los días.
La tabla enumera las API de servicios populares y los riesgos asociados con la filtración de esta información.

Las estadísticas generales sobre los objetos secretos encontrados muestran que la mayoría de las claves API de Google ingresan al dominio público. Las claves privadas de RSA y los identificadores de Google OAuth también son comunes. Por lo general, la gran mayoría de las fugas se producen a través de repositorios de un solo propietario.
Secreto | Total | Único | %, un propietario |
---|
Clave API de Google | 212 892 | 85 311 | 95,10% |
Clave secreta RSA | 158 011 | 37,781 | 90,42% |
ID de Google OAuth | 106 909 | 47,814 | 96,67% |
Clave privada regular | 30,286 | 12,576 | 88,99% |
ID de clave de acceso de Amazon AWS | 26 395 | 4648 | 91,57% |
Token de acceso de Twitter | 20,760 | 7953 | 94,83% |
Clave privada CE | 7838 | 1584 | 74,67% |
Token de acceso de Facebook | 6367 | 1715 | 97,35% |
Clave privada PGP | 2091 | 684 | 82,58% |
MailGun API Key | 1868 | 742 | 94.25% |
Clave API de MailChimp | 871 | 484 | 92,51% |
Clave API estándar de Stripe | 542 | 213 | 91,87% |
Twilio API Key | 320 | 50 | 90.00% |
Token de acceso cuadrado | 121 | 61 | 96,67% |
Secret Square OAuth | 28 | 19 | 94,74% |
Token de autenticación Amazon MWS | 28 | 13 | 100.00% |
Token de acceso Braintree | 24 | 8 | 87.50% |
Clave Picatic API | 5 5 | 4 4 | 100.00% |
Total | 575,456 | 201 642 | 93,58% |
El monitoreo en tiempo real de los commits permitió determinar cuánta información confidencial se elimina de los repositorios poco después de llegar allí. Resultó que el primer día se elimina un poco más del 10% de los secretos, y un pequeño porcentaje en los días siguientes, sin embargo, más del 80% de la información privada permanece en los repositorios dos semanas después de la adición, y esta proporción prácticamente no disminuye en los siguientes.
Entre las filtraciones más notables se encuentran una cuenta de AWS de una agencia gubernamental en uno de los países de Europa del Este, así como 7.280 claves RSA privadas para acceder a miles de VPN privadas.
El estudio demuestra que un atacante, incluso con recursos mínimos, puede comprometer a muchos usuarios de GitHub y encontrar un montón de claves privadas. Los autores señalan que muchos métodos de protección existentes son ineficaces contra la recopilación de información clasificada. Por ejemplo, herramientas como TruffleHog muestran solo un 25% de eficiencia. El límite de GitHub incorporado en el número de solicitudes de API también se omite.
Sin embargo, muchos secretos descubiertos tienen patrones claros que lo hacen fácil.
su búsqueda Es lógico suponer que estos mismos patrones pueden usarse para monitorear la filtración de información clasificada y advertir a los desarrolladores. Probablemente, tales mecanismos deberían implementarse en el lado del servidor, es decir, en GitHub. Un servicio puede emitir un aviso justo durante una confirmación.
GitHub implementó recientemente una versión beta del escaneo de tokens (función de
escaneo de tokens), que escanea repositorios, busca tokens y notifica a los proveedores de servicios de fuga de información. A su vez, el vendedor puede cancelar esta clave. Los autores creen que gracias a su investigación, GitHub puede mejorar esta función y ampliar el número de proveedores.