¿Qué tan preocupados deberían estar los usuarios de Android por las claves secretas que se encuentran en Google Play?

Como usuario de Android, estaré preocupado hasta cierto punto por los hallazgos hasta que se implemente algún parche o corrección para no exponer las claves secretas.
La magnitud no será la misma que la vulnerabilidad reciente de Heartbleed SSL que tuvo un impacto mucho mayor.

Primero comprendamos cuáles son las claves secretas y determinemos cómo se ven afectados los consumidores y las mejores prácticas generales.

¿Qué son las claves secretas?
Piensa en la clave secreta como una contraseña. La comunicación de servicio a servicio generalmente se autentica con tokens secretos que solo conocen las partes involucradas (proveedor y consumidor). Como práctica recomendada, los tokens secretos nunca deben compartirse y deben almacenarse en servidores de confianza en una zona segura donde puedan protegerse adecuadamente con defensas y mecanismos de monitoreo adecuados.

¿Qué se puede hacer con las claves secretas?
Según el informe, las aplicaciones de Android contenían miles de claves de autenticación secretas filtradas, que a su vez pueden ser utilizadas por usuarios malintencionados para obtener acceso no autorizado a los recursos del servidor a través de Amazon Web Services y comprometer las cuentas de los usuarios en Facebook.

¿Cómo utilizaron el motor de búsqueda para sondear y descubrir los tokens de AWS?
El estudio hizo uso de este rastreador para indexar y analizar más de 1 millón de aplicaciones y exploró el problema de los mecanismos de autenticación del servicio que da como resultado que los usuarios malintencionados puedan obtener acceso no autorizado a los datos y recursos del usuario.

Para los usuarios que descargan AWS a través de Google Play, definitivamente se verán afectados. Se accede a la API de AWS con un “ID de clave de acceso” que comienza con la subcadena “AKIA” que revela los tokens de AWS. Para extraer los tokens de autenticación, creamos un marco flexible que busca tokens secretos en los archivos fuente Java descompilados de aplicaciones usando exp exp.
Para probar la validez de los tokens a través de la iteración, el estudio envió solicitudes de autenticación a sus respectivos proveedores. Los resultados del estudio mostraron que incluso después de 5 meses, el 94% de los 308 tokens únicos seguían siendo válidos.

  1. La exposición de los tokens de AWS puede proporcionar acceso a los recursos de AWS existentes.
  2. Un atacante podría configurar potencialmente una botnet de instancias de AWS EC2.
  3. Se descubrió que los tokens incrustados en las aplicaciones eran credenciales de nivel raíz que proporcionaban acceso a todos los demás servicios de AWS, incluida la creación y cierre de instancias de EC2 o el acceso libre a los datos de S3, lo que es más aterrador.

Además de los pasos dados, Amazon reconoce los riesgos de incrustar claves secretas en las aplicaciones de Android y también desaconseja activamente a los desarrolladores contra esta práctica en su documentación de Android SDK.

¿Cómo utilizaron la búsqueda para capturar las credenciales de Facebook y OAuth?
Un tercero puede registrar su aplicación con un proveedor de OAuth para recibir credenciales de cliente de OAuth que consisten en un par de claves (client_id, client_secret).

Después de otorgar permisos a la aplicación de terceros, el cliente de terceros recibe un token de acceso que se puede usar para leer la lista de amigos de Facebook del usuario o publicar en su feed público.

Cuando se implementa correctamente, el protocolo de autenticación OAuth nunca revela los tokens asociados con las credenciales OAuth de un cliente. Los tokens se almacenan en el servidor de terceros donde se pueden proteger adecuadamente.

Los desarrolladores a menudo adaptan este protocolo a las aplicaciones móviles integrando
Los tokens OAuth directamente en sus aplicaciones móviles sin darse cuenta de que sus credenciales se ven fácilmente comprometidos por la descompilación.

Mejores prácticas para desarrolladores:

  • Nunca almacene tokens secretos OAuth en aplicaciones cliente
  • Nunca comparta el secreto de la aplicación con nadie
  • La llamada a la API solo se debe hacer con el código del lado del servidor
  • Acceso mínimo a las claves privadas asociadas con certificados de firma de código genuinos y al proceso de firma de código.
  • El uso de productos de hardware criptográfico reforzados para proteger las claves privadas.
  • Gire las llaves y tokens periódicamente.

Si usted es un cliente de Amazon AWS, continúe accediendo a través de una zona segura desde un entorno corporativo en lugar de usarlo desde Google Play.

Próximos pasos:

  1. Amazon comenzó a identificar a sus clientes afectados en función de la lista de tokens que proporcionó este estudio, y también comenzaron a comunicarse y trabajar con sus clientes para resolver los problemas de seguridad. ¡Esté atento si es un cliente afectado!
  2. Google planea agregar cheques y avisos automáticos a los desarrolladores para estos problemas específicos como parte del proceso de publicación de la aplicación Google Play