Android ClickJacking

Así funciona el ClickJacking de Accesibilidad en Android

Durante la Conferencia RSA 2016 que terminó la pasada semana, los laboratorios Skycure estuvieron cubriendo un asunto que debe preocupar a muchos usuarios de Android: el malware en esta plataforma se convierte en una amenaza cada vez más patente, sobre todo para extraer datos de terminales personales y de empresa.

El tipo de ataque del que os hablo hoy es interesante por varios motivos, pero sobre todo por su ausencia de trazabilidad: no requiere rooteo del terminal y no deja huellas de sus actividades, lo que lo convierte en un enemigo temible para los antivirus tradicionales.

Estuvieron cubriendo el tema del malware para Android mediante una prueba de concepto, que podría sobrevivir de forma persistente (pasando bajo el radar) en un terminal móvil y registrar todos los datos privados del usuario, desde emails a contraseñas, para enviarlos a un servidor remoto. No sólo eso, también sería capaz de  cifrar el dispositivo de forma remota, borrarlo o…cualquier cosa, ya que tendría privilegios elevados.

Los peligros de la Accesibilidad en Android

Un servicio de accesibilidad de Android es una app que proporciona mejoras en la interfaz de usuario, destinadas a facilitar la lectura o interacción de aquellos usuarios con deficiencias visuales, auditivas o de otros tipos.

Las APIs de Accesibilidad fueron introducidas en Android 1.6 y mejoraron de forma notoria en la versión Android 4.0, permitiendo a los servicios de accesibilidad el acceso a los contenidos de las interfaces con las que el usuario interactúa abiertamemente (composición de un email, navegación, edición de un documento, etc). Y no solo eso, pueden realizar acciones en nombre del usuario, algo que resulta ideal para usuarios con deficiencias, porque brindan poderosos servicios de texto a voz y viceversa, entre otros.

Pero estas capacidades son también atractivas para los malos, algo que sabían los creadores de Android desde tiempo atrás. Por eso, cuando un app solicita acceso a permisos de Accesibilidad, el usuario debe dar su consentimiento explícito a través de un proceso bastante largo, con un aviso de seguridad en la zona superior.

Demostración del proceso de validación para permitir Accesibilidad

En qué consiste el Accesibility Clickjacking

ClickJacking es un término inglés que designa un revestimiento/redibujo de una interfaz de usuario con fines maliciosos. Su objetivo es conseguir que el usuario haga click sobre un elemento que el ve en la pantalla, pero en realidad no lo está haciendo sobre dicho elemento, sino sobre uno en segundo plano (debajo de este, podríamos decir) que no se le presenta y es el elemento activo.

Empresas como Facebook o Adobe con su aplicación Flash ya saben lo que es sufrir ataques de ClickJacking, no estamos descubriendo la pólvora.

Android, a su ritmo

Lo que ocurre es que, mientras en escritorio los navegadores ya han tomado las medidas apropiadas para defenderse del clickjaking, en Android las cosas van más despacio, como se puede comprobar en el caso que nos ocupa. No se trata de una simple Prueba de Concepto de unos trasnochados con ganas de portadas, resulta que el mes pasado ya presenciaron en Symantec, como un nuevo ransomware para Android era capaz de utilizar el ClickJacking para infectar el terminal (Android.LockDroid.E).

Demostración del Accesibility ClickJacking en vídeo

Volviendo a la prueba de concepto, los investigadores de Skycure han conseguido los siguiente:

  1. La víctima está ejecutando el juego Rick and Morty, que aparenta ser benigno (el juego que han creado ya nos advierten es un poco cutre, pero no es la cuestión aquí). Pero lo que ocurre en segundo plano sorprendería a la víctima, ya que sus clicks están siendo propagados a una capa inferior e invisible colocada ahí por el sistema operativo (el cuadro de diálogo de aprobación de Accesibilidad). Completar el jugo significa que la víctima ha aprobado sin saberlo los permisos necesarios para que todo comience.
  2. La víctima continúa haciendo sus cosas, escribiendo emails y demás, todo ello siendo registrado por el juego Rick & Morty, nuestro vector de ataque.

Detalles técnicos del ClickJacking en Android

Una serie de permisos contemplados en Android son los culpables de que esto tenga lugar:

  • El permiso SYSTEM_ALERT_WINDOW: o “dibujar sobre otras apps”. Este permiso concede a una app de ANdroid la opción de crear cualquier vista previa sobre otras apps. Mientras se crea una vista previa, se pueden enviar una serie de “propiedades” para especificar la posición y ajustes de la ventana. En el ejemplo presentado, utilizan la instrucción TYPE_SYSTEM_OVERLAY, para colocar la ventana sobre todas las demas apps, junto a FLAG_NOT_FOCUSABLE, para enviar todos los eventos del usuario a la app inferior.
  • La implementación del servicio de accesibilidad es defectuosa. Una pp puede implementar un servicio de accesibilidad para asistir a un usuario con “limitaciones visuales, físicas o de edad”. Estas apps reciben permisos para atender los eventos de renderizado, toque, tecto y responderlos.

Versiones de Android afectadas

Como podéis observar, las versiones de Android mayoritarias están afectadas, excepto Android 5.0 en adelante.

Versiones de Android afectadas

Consejos de protección frente al ClickJacking

Para evitar en cierto modo ponérselo fácil a las apps maliciosas que quieran “robarte la pulsaciones de pantalla”, deberías tener en cuenta lo siguiente:

  1. Mantén actualizado tu sistema operativo Android.
  2. No hagas nunca click sobre las notificaciones emergentes en pantalla (sobre todo las que aparezcan durante la navegación) si no estás seguro de qué las ha originado.
  3. NO instales apps de terceros y menos aún dejes la casilla “instalar aplicaciones de orígenes desconocidos” marcada.
  4. Accede a los ajustes de accesibilidad de tu teléfono Android y asegúrate de que no se le concede este tipo de permiso a ningún servicio.
  5. Instala un buen antivirus.

 

Un comentario en “Así funciona el ClickJacking de Accesibilidad en Android

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s