Cómo evitar la filtración de claves en GitHub

1 Abr 2019

Cómo evitar la filtración de claves en GitHub

Recientemente, investigadores de la Universidad Estatal de Carolina del Norte descubrieron más de 100.000 proyectos en GitHub con tokens, claves cifradas y otros datos confidenciales almacenados en abierto. En total, más de medio millón de esos objetos se descubrieron en dominio público, de los cuales más de 200.000 son únicos. Además, estamos hablando de grandes compañías como Google, Amazon, MWS, Twitter, Facebook, MailChimp, MailGun, Stripe, Twilio, Square, Braintree y Picatic.

GitHub es un popular recurso para el desarrollo de software cooperativo. Se utiliza para almacenar código en repositorios con acceso abierto o restringido, vincularse con compañeros, involucrarlos en las pruebas de programas y utilizar desarrollos de código abierto ya preparados. Simplifica y agiliza significativamente la creación de aplicaciones y servicios, por lo que es un recurso muy utilizado por los programadores y por empresas que crean su propio software basándose en módulos de fuente abierta. Además, también es un buen recurso para empresas que busquen la transparencia.

No obstante, hay que tener sumo cuidado cuando se realice la carga de código a GitHub; no obstante, no todos los desarrolladores tienen esto en cuenta.

¿Qué datos acaban en el dominio público?

GitHub se fundó para alojar bloques de código abierto con los tokens y claves suficientes para conceder autorizaciones y ejecutar ciertas acciones en nombre de usuarios o aplicaciones. Entre toda esta información desclasificada inconscientemente se encuentran:

  • Las credenciales de inicio de sesión de las cuentas de administrador en los sitios web más importantes.
  • Claves API o tokens que permiten el uso de las funciones API de las aplicaciones: un conjunto de herramientas para la interacción entre varios componentes del sistema, por ejemplo, un programa y una página web.
  • Claves cifradas, muchas utilizadas para la autenticación en lugar de las contraseñas, por lo que basta con conocer una sola clave para obtener acceso a muchos recursos, incluidas las redes privadas.

¿Cuál es el riesgo de la filtración de claves cifradas y tokens?

El acceso no autorizado a tus cuentas, aunque limitado, supone una seria amenaza para tu negocio. Los siguientes son algunos ejemplos.

Uno de los usos incorrectos de los tokens publicados en GitHub es para la distribución del bombardeo de correos electrónicos y publicaciones supuestamente de parte la compañía que los ha publicado. Por ejemplo, un intruso podría conseguir el acceso a una página web corporativa o a una cuenta de Facebook o Twitter y ubicar una publicación maliciosa o un enlace phishing. Dado que las páginas web y cuentas oficiales se suelen considerar como fuentes de información de confianza, es muy probable que los lectores den por hecho que la publicación o el enlace son seguros.

Además, los cibercriminales pueden estafar a cualquier suscriptor de tu lista (por ejemplo, si utilizas MailChimp). Al igual que en el ejemplo anterior, la expectativa es que los usuarios se fíen de un correo que procede de una empresa de confianza. Este tipo de ataques pueden perjudicar seriamente la reputación de una compañía y causar daños importantes como la pérdida de clientes o el tiempo invertido en restaurar el funcionamiento normal.

Por último, los cibercriminales pueden utilizar las funciones de pago de un servicio a costa tuya, como Amazon AWS. Por ejemplo, el bloguero Luke Chadwick recibió un mensaje de Amazon en el que le comunicaban que su clave estaba disponible al público en GitHub. Por lo visto, se le había olvidado cerrar algún antiguo proyecto. Cuando Chadwick inició sesión en su cuenta de Amazon, descubrió un total de 3.493 dólares en cargos pendientes. Resultó que un usuario no autorizado se había apoderado de la clave pública y había minado criptomonedas con su cuenta. Finalmente, Amazon reembolsó a Chadwick sus pérdidas. Pero recuerda que no todas las historias tienen un final feliz.

¿Cómo acaban los datos privados en GitHub?

El análisis de los resultados de la investigación muestra que no son solo los jóvenes e inexpertos programadores los que dejan información confidencial en el dominio público. Por ejemplo, un desarrollador con 10 años de experiencia publicó en GitHub datos para acceder a una institución gubernamental importante.

Los motivos para publicar tokens y claves en los repositorios de GitHub son muy variados. Por ejemplo, las herramientas de autorización pueden ser necesarias para integrar una aplicación con un servicio particular. Además, cuando se publica un código para probarlo, algunos programadores utilizan claves válidas en lugar de las de depuración y se olvidan de eliminar la información del acceso público.

Por ejemplo, el analista y CEO de Securosis Rich Mogull publicó en GitHub una aplicación que estaba desarrollando para una conferencia. El programa realizaba llamadas a Amazon AWS y almacenaba todos los datos para su autorización local. No obstante, para depurar los bloques de código individuales, creó un archivo de prueba que contenía varias claves de acceso. Después de la depuración, Mogull se olvidó de eliminarlas de este archivo. Posteriormente, los intrusos las encontraron y gastaron un total de 500 dólares en servicios de Amazon.

Además, algunos desarrolladores pueden simplemente no estar conscientes de los riesgos de dejar tokens válidos en los repositorios de GitHub y la necesidad de identificarlos y eliminarlos (o reemplazarlos) antes de ubicar el código allí.

Cómo proteger tus recursos

  • Avisa a tus desarrolladores de que cargar tokens y claves válidas para abrir repositorios es perjudicial y peligroso; los programadores deben entender que antes de ubicar un código, tienen que comprobar que no contenga datos secretos.
  • Asegúrate de que el director de producto examine detalladamente los proyectos de tu compañía en GitHub para comprobar si contienen información confidencial y, de ser así, elimínalos; ten en cuenta que debe eliminarse completamente para que no quede nada en el historial de cambios.
  • Si cualquier dato de los que almacenas en GitHub contiene contraseñas, cámbialas, pues no hay forma de comprobar si alguien ya ha visto y guardado el código.
  • Fomenta la conciencia de los empleados sobre la seguridad de la información periódicamente, de modo que el uso responsable de GitHub y otras herramientas y recursos se convierta en algo natural. Nuestra plataforma te ayudará a hacerlo de forma efectiva y práctica, sin interrumpir la actividad empresarial.