Un
fallo de diseño de Android podría permitir la instalación de cualquier aplicación
sin necesidad de que el usuario de permisos especiales durante su instalación.
El problema,
descubierto
por la firma BlueBox Security, recibe el nombre de "Fake ID"
debido a que permite al malware pasar credenciales falsas a
Android, que falla al
verificar cadenas de certificados de claves públicas de la firma criptográfica
de la aplicación. En su lugar,
Android otorga a la aplicación maliciosa todos
los permisos de acceso de cualquier aplicación legítima.
Las aplicaciones
Android deben
estar firmadas para poder ser instaladas en el sistema, pero el certificado
digital empleado para firmar no necesita estar emitido por una autoridad
certificadora.
Según
la propia documentación de Android "
es perfectamente admisible, y típico, que las aplicaciones Android usen
certificados autofirmados".
Sin embargo, Android incluye incrustados
en su código los certificados de diversos desarrolladores, para que las
aplicaciones de estos desarrolladores tengan accesos y permisos especiales
dentro del sistema operativo. Uno de estos certificados pertenece a Adobe, y
permite a las aplicaciones firmadas o los certificados emitidos por ella inyectar
código en otras aplicaciones Android. Este comportamiento puede deberse a que
de esta forma se puede permitir a otras aplicaciones hacer uso del plug-in de Flash
Player.
Sin embargo, un fallo en el
proceso de validación de la cadena de certificados podría permitir a un
atacante firmar una aplicación maliciosa con un certificado que parezca estar
firmado por el certificado de Adobe incrustado, aunque no sea así. Siempre que
el certificado de Adobe esté presente en la cadena de certificados de la
aplicación, el sistema podrá tomar código de la aplicación e inyectarlo en
otras aplicaciones instaladas. El código inyectado pasará a ser parte de las
aplicaciones receptoras, heredando sus permisos, y con el mismo acceso a todos
los datos de dichas aplicaciones.
El ataque afecta a las versiones
de Android anteriores a la 4.4 (KitKat) y solo puede ser empleado sobre
aplicaciones que usen el componente WebView, que se emplea para mostrar
contenido web con el motor del navegador de Android.
BlueBox ha confirmado que notificó
el problema a Google hace tres meses, y que se presentarán todos los detalles
en una conferencia en la BlackHat
USA 2014.
Google, por otra parte, ha
confirmado que ya ha tomado medidas. Hace ya tiempo que dentro de Play Services
se añadieron características y APIs que no requieren una actualización del
firmware, por lo que para Google es un buen punto para evitar vulnerabilidades
de este tipo. También se añadió la característica "Verificar aplicaciones"
a Google Play Services como forma de escanear la aplicación antes de ser
instalada. Google ha actualizado esta característica para comprobar que las aplicaciones
no hacen uso de "Fake ID".
Más información:
Signing Your Applications
Android Fake ID Vulnerability Lets Malware
Impersonate Trusted Applications, Puts All Android Users Since January 2010 At
Risk
'Fake ID' and Android security [Updated]
Antonio Ropero