Fugas de información clasificada encontradas en 100,000 repositorios en GitHub


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.

SecretoTotalÚnico%, un propietario
Clave API de Google212 89285 31195,10%
Clave secreta RSA158 01137,78190,42%
ID de Google OAuth106 90947,81496,67%
Clave privada regular30,28612,57688,99%
ID de clave de acceso de Amazon AWS26 395464891,57%
Token de acceso de Twitter20,760795394,83%
Clave privada CE7838158474,67%
Token de acceso de Facebook6367171597,35%
Clave privada PGP209168482,58%
MailGun API Key186874294.25%
Clave API de MailChimp87148492,51%
Clave API estándar de Stripe54221391,87%
Twilio API Key3205090.00%
Token de acceso cuadrado1216196,67%
Secret Square OAuth281994,74%
Token de autenticación Amazon MWS2813100.00%
Token de acceso Braintree24887.50%
Clave Picatic API5 54 4100.00%
Total575,456201 64293,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.

Source: https://habr.com/ru/post/445038/


All Articles