El 12 de abril, GitHub Security inició una investigación que descubrió evidencia de que un atacante abusó de tokens de usuario de OAuth robados emitidos a dos integradores de OAuth de terceros, Heroku y Travis-CI, para descargar datos de docenas de organizaciones, incluida npm. Siga leyendo para obtener más información sobre el impacto en GitHub, npm y nuestros usuarios.
Actualización del 22 de abril de 2022: GitHub ha enviado notificaciones para las víctimas conocidas de la actividad de listado del repositorio utilizando tokens de aplicaciones OAuth robados.
A partir de las 7:33 p. m. UTC del 22 de abril de 2022, notificamos a las víctimas de esta campaña que, según identificamos, tenían detalles del repositorio enumerados con tokens de la aplicación OAuth robados, pero NO tenían contenido del repositorio descargado.
El atacante realizó la actividad de listado del repositorio a través del abuso de tokens de usuario de OAuth de terceros mantenidos por Heroku y Travis CI. No creemos que el atacante haya obtenido estos tokens a través de un compromiso de GitHub o sus sistemas, porque GitHub no almacena los tokens en cuestión en sus formatos originales utilizables que podrían ser objeto de abuso por parte de un atacante.
La actividad se llevó a cabo utilizando los puntos finales de la API /user/repos
de /orgs/{org}/repos
GitHub. Nuestra documentación brinda ejemplos de los datos devueltos por las solicitudes a estos puntos finales:
/user/repos
: https://docs.github.com/en/rest/reference/repos#list-repositories-for-the-authenticated-user/orgs/{org}/repos
: https://docs.github.com/en/rest/reference/repos#list-organization-repositories
En caso de que identifiquemos a otros clientes que se hayan visto afectados, se los notificaremos de inmediato. Si no recibe un correo electrónico de notificación de nuestra parte, eso significa que GitHub no ha identificado su cuenta como afectada por el incidente actual.
Los clientes también deben continuar monitoreando a Heroku y Travis CI para obtener actualizaciones sobre sus propias investigaciones sobre las aplicaciones de OAuth afectadas.Actualización del 18 de abril de 2022: GitHub ha enviado notificaciones a las víctimas conocidas del robo de tokens OAuth de terceros.
El 12 de abril, GitHub Security inició una investigación que descubrió evidencia de que un atacante abusó de tokens de usuario de OAuth robados emitidos a dos integradores de OAuth de terceros, Heroku y Travis-CI, para descargar datos de docenas de organizaciones, incluida npm . Las aplicaciones mantenidas por estos integradores fueron utilizadas por los usuarios de GitHub, incluido el propio GitHub. No creemos que el atacante haya obtenido estos tokens a través de un compromiso de GitHub o sus sistemas, porque GitHub no almacena los tokens en cuestión en sus formatos originales utilizables. Luego de una investigación inmediata, divulgamos nuestros hallazgos a Heroku y Travis-CI el 13 y 14 de abril; más detalles están disponibles a continuación y actualizaremos este blog a medida que aprendamos más.
Mirando a través de toda la plataforma GitHub, tenemos mucha confianza en que los tokens de usuario OAuth comprometidos de las aplicaciones OAuth mantenidas por Heroku y Travis-CI fueron robados y abusados para descargar repositorios privados pertenecientes a docenas de organizaciones víctimas que usaban estas aplicaciones. Nuestro análisis de otro comportamiento por parte del actor de amenazas sugiere que los actores pueden estar extrayendo los contenidos del repositorio privado descargado, al que tenía acceso el token de OAuth robado, en busca de secretos que podrían usarse para pasar a otra infraestructura.
Aplicaciones de OAuth conocidas como afectadas a partir del 15 de abril de 2022:
- Tablero de Heroku (ID: 145909)
- Tablero de Heroku (ID: 628778)
- Tablero de Heroku – Vista previa (ID: 313468)
- Tablero Heroku – Clásico (ID: 363831)
- Travis CI (Número de identificación: 9216)
Estamos compartiendo esto hoy porque creemos que los ataques pueden estar en curso y se requieren medidas para que los clientes se protejan.
Impacto en GitHub.com y npm
La detección inicial relacionada con esta campaña ocurrió el 12 de abril cuando GitHub Security identificó un acceso no autorizado a nuestra infraestructura de producción de npm mediante una clave API de AWS comprometida. Según el análisis posterior, creemos que el atacante obtuvo esta clave de API cuando descargó un conjunto de repositorios npm privados utilizando un token de OAuth robado de una de las dos aplicaciones de OAuth de terceros afectadas descritas anteriormente. Al descubrir el robo más amplio de tokens OAuth de terceros no almacenados por GitHub o npm en la noche del 13 de abril, inmediatamente tomamos medidas para proteger a GitHub y npm al revocar los tokens asociados con GitHub y el uso interno de npm de estas aplicaciones comprometidas.
Creemos que los dos impactos para npm son el acceso no autorizado y la descarga de repositorios privados en la organización npm en GitHub.com y el acceso potencial a los paquetes npm tal como existen en el almacenamiento de AWS S3. En este punto, evaluamos que el atacante no modificó ningún paquete ni obtuvo acceso a ningún dato o credencial de la cuenta de usuario. Todavía estamos trabajando para comprender si el atacante vio o descargó paquetes privados. npm usa una infraestructura completamente separada de GitHub.com; GitHub no se vio afectado en este ataque original. Aunque la investigación continúa, no hemos encontrado evidencia de que el atacante haya clonado otros repositorios privados propiedad de GitHub usando tokens OAuth de terceros robados.
Cómo respondió GitHub para proteger a los usuarios de GitHub.com
Una vez que GitHub identificó tokens OAuth de terceros robados que afectaban a los usuarios de GitHub, GitHub tomó medidas inmediatas para responder y proteger a los usuarios. GitHub se puso en contacto con Heroku y Travis-CI para solicitarles que iniciaran sus propias investigaciones de seguridad, revocaran todos los tokens de usuario de OAuth asociados con las aplicaciones afectadas y comenzaran a notificar a sus propios usuarios.
GitHub permanece estrechamente comprometido con ambas organizaciones en un esfuerzo por ayudar en sus esfuerzos de investigación y recuperación, y proteger mejor a los clientes compartidos.
Lo que los clientes y las organizaciones de GitHub deben saber
Actualmente, GitHub está trabajando para identificar y notificar a todos los usuarios y organizaciones víctimas conocidas que descubrimos a través de nuestro análisis en GitHub.com. Estos clientes recibirán un correo electrónico de notificación de GitHub con detalles adicionales y los próximos pasos para ayudarlos en su propia respuesta dentro de las próximas 72 horas.
Si no recibe una notificación, usted y/o su organización no han sido identificados como afectados. GitHub continuará notificando a cualquier usuario u organización afectada adicional a medida que se identifique. Sin embargo, debe revisar periódicamente qué aplicaciones de OAuth ha autorizado o tiene autorización para acceder a su organización y eliminar todo lo que ya no sea necesario. También puede revisar los registros de auditoría de su organización y los registros de seguridad de la cuenta de usuario en busca de actividad inesperada o anómala.
Si tiene preguntas o inquietudes
Si tiene preguntas o necesita ayuda con respecto a las aplicaciones OAuth afectadas mantenidas por Heroku, comuníquese con el departamento de seguridad y soporte de Salesforce/Heroku en help.heroku.com y controle el sitio de Salesforce Trust para obtener actualizaciones adicionales.
Si tiene preguntas o necesita ayuda con respecto a las aplicaciones OAuth afectadas mantenidas por Travis CI, comuníquese con [email protected] .
Los clientes que son contactados directamente por GitHub con respecto a este problema pueden comunicarse con nosotros de acuerdo con las instrucciones en la notificación que recibió.
Si tiene otras preguntas sobre GitHub y npm, puede comunicarse con Soporte de GitHub .
Conclusión
La seguridad y la confiabilidad de GitHub, npm y el ecosistema de desarrolladores más amplio es nuestra máxima prioridad. Nuestra investigación está en curso y actualizaremos este blog y nuestras comunicaciones con los clientes afectados, a medida que obtengamos más información.
Traducido de: github.blog