En abril del año pasado, Apple y Google unían fuerzas para crear una API universal e interoperable de rastreo de contactos, que más tarde sería aprovechable por aplicaciones como Radar COVID. Investigadores de AppCensus han encontrado ahora un problema de privacidad en la implementación de Android.
Seguridad y privacidad eran dos principales pilares de este sistema rastreo de contactos, pero según esta investigación, la implementación en Android fallaba al respecto de una forma tan obvia que resultaba sorprendente que nadie se hubiera dado cuenta hasta entonces: registraba datos sensibles en los registros del sistema, accesibles para las apps presinstaladas.
Registros del sistema con información sensible
La API de rastreo de contactos de Google y Apple usa Bluetooth para intercambiar identificadores entre móviles cercanos y poder así más tarde evaluar el nivel de riesgo de contagio de COVID. Durante el proceso no se comparte la ubicación ni información sensible entre los terminales ni con Google ni Apple: el sistema sabe que se estuvo cerca del terminal de alguien que ha dado positivo en COVID, pero no quién es.
Todo esto sucede entre bambalinas, sin que el usuario pueda ver mucha más información más allá de su nivel de riesgo y una ristra de identificadores indescifrables. Otras aplicaciones del móvil no pueden acceder a esta información, que la API provee únicamente a la aplicación de rastreo de contactos oficial de cada país. El caso cambia, o cambiaba, con las aplicaciones del sistema.
El problema que encontró AppCensus en el análisis de la implementación de la API de rastreo de contactos era tan simple como fácil de prevenir: actualizaba los registros del sistema con datos sensibles sobre las idas y venidas de identificadores. Los registros del sistema no son accesibles para las aplicaciones de terceros, pero sí para las aplicaciones preinstaladas del sistema.
En este registro del sistema, el rastreo de contactos de Android imprime los identificadores de Bluetooth con los que interactúa y el propio del dispositivo, exponiéndolos potencialmente a cualquier aplicación preinstalada que tenga acceso a ellos.
En este mismo registro del sistema se puede recopilar otros datos como el identificador Bluetooth real del móvil (a diferencia del que genera la API de rastreo de contactos, que cambia). Según AppCensus, juntando toda esta información y agregándola, sería potencialmente posible asociar una dirección MAC a una ubicación.
Como problema de seguridad, su alcance es limitado pues sólo las aplicaciones del sistema pueden pedir este permiso, aunque lo que más sorprendió a los investigadores de seguridad es que la solución era increíblemente obvia: no volcar en el registro ninguna información sobre el rastreo de contactos. No hay indicios de que ninguna aplicación haya explotado este problema de seguridad y Google ya ha parcheado la implementación, con unas correcciones que comenzaron a enviarse hace unas semanas y terminarán su despliegue en los próximos días.
La respuesta de Google
Google nos ha remitido un comunicado donde se reitera que estos identificadores Bluetooth eran accesibles temporalmente para algunas apps preinstaladas con fines de depuración, sin que se revelara la ubicación ni otra información de identificación adicional, además de reiterar que la corrección debería completar su despliegue en los próximos días:
Las notificaciones de exposición utilizan tecnología que preserva la privacidad para ayudar a las autoridades de salud pública a manejar la propagación de la COVID-19 y salvar vidas. Con este sistema, ni Google, ni Apple ni otros usuarios pueden ver la identidad del usuario y todas las coincidencias de las notificaciones de exposición ocurren en el dispositivo. Se nos notificó de un problema por el que los identificadores de Bluetooth eran accesibles temporalmente para algunas aplicaciones preinstaladas con fines de depuración. De forma inmediata tras conocer esta investigación, comenzamos el proceso necesario para revisar el problema, considerar las mitigaciones y actualizar el código. Estos identificadores de Bluetooth no revelan la ubicación de un usuario ni proporcionan ninguna otra información de identificación y nada indica que se hayan utilizado de alguna manera, ni que ninguna aplicación fuera consciente de ello.
Tenemos un proceso estándar para este tipo de investigación. Inmediatamente después de conocerla, comenzamos el proceso necesario para revisar el problema, considerar las mitigaciones y actualizar el código. La implementación de esta actualización para los dispositivos Android comenzó hace varias semanas y estará completa en los próximos días.
Más información | AppCensus
Ver 4 comentarios