Cómo saber cuándo una ‘app’ accede a la ubicación, la cámara o el micrófono del móvil

Blog

14
- Ago
2019
Publicado por: Javier Tallón
Cómo saber cuándo una ‘app’ accede a la ubicación, la cámara o el micrófono del móvil

A continuación reproducimos el texto íntegro de la entrevista realizada a nuestro Director Técnico Javier Tallón, y publicada el 26 de Julio de 2019 en el diario nacional El País.

Contexto

“Oye @Aeromexico ¿por qué están tratando de usar la cámara de mi celular?”. Duncan Tucker, periodista de The Guardian en México, preguntaba hace unos días en este tuit por qué la aerolínea estaba utilizando la cámara del teléfono cuando además él tenía el permiso desactivado. En este caso, él lo había detectado al activar el “monitor de uso de permisos”, que está disponible para los teléfonos Samsung. Partiendo de este ejemplo, me gustaría investigar cómo se puede detectar cuándo una aplicación accede a un permiso en concreto (si es que es posible tanto para móviles Android como para iOS).

Me gustaría que me contara lo que sepa al respecto y me contestara a las siguientes preguntas:

En vista de la noticia sobre esta aplicación y la reacción del resto de usuarios que se ha visto en Twitter, queda constancia de algo que ya llevamos observando desde hace tiempo, y es que los usuarios están cada vez más inquietos sobre la información que recopilan sobre ellos las aplicaciones que usan a diario.

Con los años, tanto los desarrolladores de los sistemas operativos de Android como los de iOS han tratado de mejorar su sistema de permisos para tratar de solucionar esta preocupación. Por ejemplo, en el caso de las primeras versiones de Android, se daba una lista de permisos que el usuario aceptaba durante la instalación y olvidaba para siempre, mientras que, en las versiones más modernas, las aplicaciones deben solicitar consentimiento en el mismo momento en que la aplicación hace uso de estos permisos, algo que ya hacía el sistema operativo de Apple desde las primeras versiones.

De esta manera, una aplicación que solicita usar la cámara mostrará un mensaje al usuario la primera vez que necesite usar dicha funcionalidad, momento a partir del cual, la aplicación conserva el permiso hasta que se desinstale o le sea retirado explícitamente por el usuario entrando en los ajustes del teléfono.

En el caso particular de Aeroméxico, el periodista descubre que la aplicación está usando la cámara (lo cual podría ser lícito en el caso de que se estuviese usando para la lectura de códigos de los billetes, por ejemplo) en un momento en el que, a juzgar por el tweet, no correspondía.

El periodista fue capaz de descubrir esto gracias al “monitor de permisos de Samsung”, una aplicación exclusiva de estos teléfonos que permite detectar cuándo una aplicación está intentando hacer uso de un permiso específico.

Esta funcionalidad es especialmente interesante porque deja una evidencia más clara de qué está intentando hacer la aplicación conforme la utilizamos.

Queda claro que este tipo de situaciones, en las que el usuario no sabe muy bien por qué una aplicación le está pidiendo acceso a determinada parte de su información privada, son las que terminan provocando inquietud y abriendo el debate de qué información necesita realmente una aplicación para funcionar y hacer más cómodo su uso frente a qué información se proporciona innecesariamente para uso de la compañía que desarrolla esa aplicación.

Por otro lado, la legislación ha ido actualizándose de forma que cada vez se tiene más conciencia sobre la importancia de la privacidad de los datos de los usuarios. Como consecuencia de esta concienciación, hemos vivido recientemente la entrada en vigor del Reglamento General de Protección de Datos (RGPD) que aplica restricciones considerables sobre el tratamiento que se debe dar a la información de los usuarios. Como resultado de su aplicación ya se ha visto algún caso en el que se ha multado a desarrolladores por hacer uso ilegítimo de los datos de los usuarios, como el caso de la aplicación de la liga de fútbol cuando usó el acceso al micrófono de los dispositivos para detectar bares que no tenían licencia para emitir los partidos, si bien está claro que queda mucho camino por andar y que la población en general aún no es consciente del valor que tiene su información personal.

¿Es posible detectar cuándo una aplicación accede a un permiso en concreto? ¿Cómo?

En principio podría decirse que sí. Como decíamos, una aplicación va solicitando al usuario los permisos que necesita para funcionar conforme se ejecuta. De esta forma, si una aplicación quiere acceder a nuestras fotos, por ejemplo, tiene que pedir permiso primero de forma explícita. Además, tanto en Android como en iOS, los permisos a los que tiene acceso una aplicación siempre quedan reflejados en una sección en los ajustes del dispositivo, desde donde se pueden retirar y conceder.

Sin embargo, este modelo de gestión de permisos tiene al menos tres puntos débiles. Por un lado, hay una serie de permisos “básicos” que las aplicaciones pueden utilizar sin necesidad de pedir confirmación al usuario. Estos son, por ejemplo, el uso de la conectividad por Bluetooth o el acceso a internet. A priori, estos permisos no suponen una amenaza para la seguridad de la información de los usuarios, pero siempre son una puerta abierta a vulnerabilidades que se combinan con otros factores dando como resultado el filtrado de información.

Por otro lado, la comunicación entre distintas aplicaciones instaladas es parte imprescindible de la funcionalidad de nuestros dispositivos, pero también puede suponer una amenaza. Una aplicación puede estar diseñada para recibir peticiones de otras y proveerlas con determinada información a la que hayan tenido acceso. Por ejemplo, un navegador en el que al pulsar un número de teléfono de una página web, haga una petición a la aplicación encargada de las llamadas. Este comportamiento, que es muy habitual en aplicaciones que usamos a diario, puede ser aprovechado por una aplicación que no tenga determinados permisos para obtener la información de otra que sí los tenga, evitando así la interacción del usuario y accediendo a información privada sin que éste le haya otorgado permisos en ningún momento. Además, en el caso de Android, existe funcionalidad que permite a aplicaciones de un mismo desarrollador compartir libremente la información que manejan. De esta forma, diferentes aplicaciones con diferentes permisos pueden acabar compartiendo información a la que, en principio, no tendrían acceso.

Finalmente está el hecho de que es muy posible que, como podría ser en el caso de Aeroméxico, una aplicación solicite permiso para un fin lícito, pero los utilice para fines adicionales.

Cabe mencionar también que existen aplicaciones que ofrecen una capa de control adicional sobre los dispositivos, como puedan ser herramientas antivirus o de gestión de permisos como el Monitor de permisos de Samsung usado por el periodista. Estas aplicaciones hacen análisis adicionales a los del sistema operativo y tratan de detectar comportamientos sospechosos. De esta forma, una herramienta de este tipo también puede servir a los usuarios para detectar cuándo aplicaciones concretas ejercitan algún permiso.

Por último, aunque una aplicación no tenga acceso por ningún medio a un recurso determinado por no tener otorgado el permiso, siempre quedan formas alternativas de obtener información relacionada. Estos canales laterales pueden servir a actores maliciosos para obtener información sensible de los usuarios a pesar de no tener acceso directo. Un ejemplo de esto podría ser usar el acelerómetro del dispositivo para conseguir información sobre las pulsaciones que hace un usuario cuando introduce su código PIN.

¿Conoce algún experimento o investigación que se haya realizado al respecto?

Existe una gran cantidad de documentos académicos sobre la forma en que se gestionan los permisos en aplicaciones para smartphones desde diferentes puntos de vista. Esto va desde estudios estadísticos sobre el comportamiento de las aplicaciones que se encuentran disponibles en el mercado hasta análisis sobre aplicaciones maliciosas que explotan los descuidos de otras aplicaciones para robar nuestra información, por poner algunos ejemplos.

De entre los datos más destacables que aportan estos estudios, cabe mencionar el número de permisos que las aplicaciones solicitan al usuario. Este número suele oscilar entre 3 y 4 permisos por cada aplicación, sin considerar los permisos básicos que la aplicación puede usar sin solicitar autorización.

Además, se conoce que las aplicaciones que tienden a solicitar la mayor cantidad de permisos son las relacionadas con redes sociales y compras online y que los permisos más solicitados son el acceso a archivos del usuario, a la cámara del dispositivo y a los servicios de localización.

¿Hay algún accesorio o alguna forma de evitar que el móvil envíe datos o que una app acceda a los mismos?

En este sentido, es difícil para un usuario corriente saber a qué información tiene acceso una aplicación o el propio dispositivo más allá del control de permisos que venimos tratando. Además, ya no sólo se trata de la información privada que a la que puedan tratar de acceder, sino también la que se recopila conforme se hace uso de un dispositivo o de una aplicación en particular.

Desde un punto de vista físico, existen accesorios llamados “condones USB” que anulan el grave peligro existente al conectar nuestro teléfono a un cargador del que desconocemos su procedencia, como por ejemplo los que podemos encontrar cada vez con más frecuencia en centros comerciales.

Desde un punto de vista lógico, en el caso concreto de Android, existe una diferencia considerable en la calidad de los smartphones de diferentes fabricantes. Por ejemplo, además de la gestión de permisos que hace el propio sistema operativo, algunos fabricantes implementan sus propias aplicaciones de control de los mismos para ofrecer al usuario una capa de protección adicional, además, como hemos mencionado antes, instalar un antivirus es cada día más importante también en nuestros teléfonos. En lo que respecta a iOS, se pueden observar algunas mejoras adicionales, como información sobre la razón por la que una aplicación solicita un permiso o la posibilidad de concederlos temporalmente.

Más a menudo de lo que nos gustaría salen a la luz casos en los que desarrolladores de aplicaciones conocidos, e incluso fabricantes de terminales, recopilan información de los usuarios sin su consentimiento. Aunque, la tendencia es a pensar que los fabricantes más conocidos son los más confiables, resulta evidente que el tráfico de información de usuarios a gran escala es un negocio muy lucrativo y en el que participan, muy probablemente, la mayoría de las grandes empresas del mundo de los smartphones.

Como respuesta a esto, lo ideal es tratar de usar dispositivos cuya seguridad haya sido verificada y certificada por profesionales del sector independientes de los fabricantes. Por ejemplo, en España tenemos la certificación LINCE, que ha sido publicado recientemente por el Centro Criptológico Nacional y que está orientada a garantizar un nivel básico de seguridad y a comprobar este tipo de comportamientos en diferentes productos. Así, una aplicación o un dispositivo haya sido certificado, da una garantía al usuario final de que ha pasado un control de seguridad. Esta es, probablemente, la mejor forma de verificar que no se están enviando más información privada de la que el usuario quiera compartir.

Por último, el caso de este periodista de México me llama especialmente la atención porque cuando la aerolínea accede a su cámara, él afirma tener el permiso desactivado, ¿es esto posible?

En un primer tweet, el periodista muestra un mensaje del monitor de permisos de Samsung en que se ve que la aplicación de Aeroméxico ha intentado usar la cámara mientras no estaba en primer plano. En un segundo tweet, muestra una captura de pantalla en la que se muestra cómo la aplicación no tiene permiso para acceder a la cámara.

Podemos pensar, que, al tratar la aplicación de usar la cámara, el monitor de permisos detecta que hay un comportamiento sospechoso y lanza la alerta, sin embargo, la aplicación nunca pudo llegar a acceder a la cámara del dispositivo al estar el permiso desactivado. Es decir, el monitor de permisos de Samsung está alertando de la intención y no tanto de la ejecución.

En definitiva, un usuario final de smartphone tiene la posibilidad de conceder o revocar permisos para cada una de las aplicaciones que va instalando y éstas no pueden, hasta donde es conocido públicamente, acceder a estos recursos si no se les concede explícitamente el acceso. Harina de otro costal son el sistema operativo y ciertas aplicaciones preinstaladas, que podrían acceder a todos nuestros datos sin que podamos hacer nada para evitarlo.

Artículo redactado con la ayuda inestimable de Alberto del Río.

Javier Tallón/Director Técnico

Consultor experto del estándar de seguridad Common Criteria y de otros muchos estándares de seguridad dentro de las tecnologías de la información (FIPS 140-2, ITSEC, ISO 27K1, SOC 2, ENS,...). Javier ha trabajado como evaluador de seguridad en los mayores laboratorios nacionales y como consultor ha acompañado a diversas compañías en sus procesos de certificación de la ciberseguridad. Ha sido ponente en diversas conferencias en materia de seguridad informática y certificación (SuperSec, Cybercamp, Navaja Negra, International Common Criteria Conference, International Cryptographic Module Conference, EUCyberact Conference), es profesor del máster de Ciberseguridad de la UGR y está certificado CISSP (Certified Information Systems Security Professional) y OSCP/OSCE (Offensive Security Certified Professional & Certified Expert).

En 2015 comienza a sentar las bases de lo que será jtsec. Actualmente ejerce las labores Director Técnico del laboratorio de evaluación y Jefe de Operaciones (COO) de la oficina de Granada desde donde la empresa desarrolla la mayor parte del trabajo. Reconocido experto en diversas disciplinas de ciberseguridad (reversing, exploiting, web, …), asume la dirección técnica de la mayoría de los proyectos, dirigiendo y organizando el trabajo del equipo. Además lidera el área de Investigación y Desarrollo, fomentando la participación del equipo de jtsec en múltiples Congresos.


Contacto

¡Envíanos tus dudas o sugerencias!

Al enviar tus datos nos permites que los usemos para resolver tus dudas enviándote información comercial de tu interés. Los suprimiremos cuando dejen de ser necesarios para esto. Infórmate de tus derechos en nuestra Política de Privacidad.