miércoles, 22 de julio de 2009

Problema de seguridad en Android



Se ha descubierto un error de validación a la hora de manejar los permisos encargados de verificar el acceso a la cámara y al audio (Manifest.permission.CAMERA y Manifest.permission.AUDIO_RECORD respectivamente) en Andorid. Esto podría ser aprovechado por un atacante para obtener grabaciones de audio y video sin el consentimiento del usuario.

Cualquier aplicación Android necesitará la confirmación explícita del usuario para acceder a un solo de los recursos de audio y vídeo. Pero si se crea (y el usuario instala) una aplicación que no pida el uso de esos permisos, por error, los tendrá implícitamente (podrá usar el micrófono y la cámara) sin necesidad de que el usuario lo sepa.

Android es un sistema operativo para móviles basado en el kernel de Linux. Inicialmente lo desarrolló Google pero luego ha pasado a pertenecer a la Open Handset Alliance (formada por alrededor de 50 empresas del sector). Android trabaja con dos licencias, GPLv2 para componentes como los parches del kernel y Apache 2 para las aplicaciones ya que permite su comercialización de manera más simple.

Android está pensado para trabajar de manera similar a un Framework que además permite la intercomunicación entre distintas aplicaciones usando un interfaz propio para cada aplicación. El modelo usado por Android permite que los distintos programas informen al resto de que capacidades tienen y así el resto de programas pueden usarlas sin necesidad de implementarlas, claro está siguiendo ciertas reglas de seguridad.

Esta vulnerabilidad evade este control y permite que no se pida autorización al usuario para acceder a la cámara y el audio.

Las APIs oficiales son para Java; no obstante se podrían usar otros lenguajes, pero estos programas deberían compilarse para ARM (el procesador usado en la mayor parte de los dispositivo móviles actuales).

En la actualidad este sistema operativo es usado en algunos modelos de HTC y otras compañías, aunque el numero de dispositivos con este sistema operativo no es muy elevado.

Está solucionado en las versiones Android 1.5 CDBxx, CRCxx y COCxx donde xx son dígitos.


Fuente: Hispasec