Cabecera-v2-web.jpg

¿Son las aplicaciones Android tan seguras como piensas?


Hace algunos dí­as, la firma de seguridad Zimperium reveló el descubrimiento de un fallo en el sistema de Android, llamado Stagefright, que permití­a a un atacante remoto ejecutar código mediante un MMS malicioso. La vulnerabilidad se encuentra en un proceso con permisos "system" que podrí­a permitir a un atacante tomar el control del dispositivo (permitirí­a escuchar comunicaciones, robar datos, etc.). Esto nos hace pensar qué ocurre con las aplicaciones que descargamos.

Para averiguarlo hemos analizado una de las aplicaciones más famosas, que cuenta con más de 1.000 millones de descargas: Facebook. Es una gran sorpresa descubrir la gran cantidad de librerí­as nativas usadas por esta aplicación, 67 en total. Para optimizar el tiempo de ejecución, todo el código que se encarga de comprimir imágenes, cifrar las comunicaciones, etc. está desarrollado a bajo nivel. Sin embargo, codificar a bajo nivel aumenta la superficie de ataque. Entre otras dificultades el código nativo requiere una serie de habilidades que no se encuentran en el común de los desarrolladores. Siendo la gestión de la memoria la principal caracterí­stica y fuente irremediable de problemas de seguridad y estabilidad de los programas.


Librerí­as nativas de Facebook
Para encontrar posibles librerí­as vulnerables, nos hemos centrado en librerí­as que usan código libre como libpng, libevent, libjpegturbo, SQLite, etc. Con la ayuda de las bases de datos del MITRE y CVEDetails, hemos podido encontrar las vulnerabilidades que afectan a estas librerí­as desde el año 2012. ¿Por qué el 2012? Porque el compilador con que se compilaron esas librerí­as data de ese mismo año. Solo tomamos en cuenta las vulnerabilidades que podrí­an permitir ejecutar código arbitrario.
  • libevent (versión obsoleta 1.4.14b-stable): afectada por el CVE-2014-6272 que podrí­a permitir un desbordamiento de búfer basado en heap. Sin embargo, Facebook nunca llama a las funciones perjudicadas por esa vulnerabilidad, así­ que esta vulnerabilidad no se puede explotar.
  • JPEGturbo (versión por lo menos de 2013): se encontró un importante fallo (CVE-2012-2806) en la versión de 2012, pero fue corregido el mismo año, así­ que esta librerí­a tampoco está afectada.
  • SQLite no tiene ninguna vulnerabilidad que permita a un atacante comprometer el sistema (según CVEDetails).
  • libPNG (versión obsoleta 1.6.10, del 6 de marzo de 2014): tiene el CVE-2015-0973 que podrí­a permitir a un atacante provocar un desbordamiento de búfer, que según MITRE conllevarí­a una denegación de servicio o a la ejecución de código arbitrario.
  • Facebook también usa otras librerí­as como libwebp, libsjni, libglog, etc. pero no se encontró ninguna vulnerabilidad en las versiones empleadas de todas ellas.

Finalmente, hemos constatado que Facebook usa librerí­as obsoletas, como libPNG (versión 1.6.10) que podrí­a permitir a un atacante remoto ejecutar código arbitrario. Y con ello leer SMS, contactos, etc. (todos los permisos de Facebook).

Aunque en algunos casos la corrupción de memoria pueda llevar al compromiso del sistema, Android tiene protecciones para hacer la explotación más difí­cil. Podemos destacar medidas como la randomización de las posiciones de las librerí­as en la memoria (ASLR), el sandboxing (con una mejora gracias a la integración de SELinux), protección contra la ejecución de la pila, etc.

Esto con una aplicación sobradamente conocida y depurada, y con un fuerte respaldo detrás como la de Facebook. ¿Qué puede ocurrir con otras aplicaciones?



Fuente: hispasec.com


pie.png

CERT-PY | Centro de Respuestas a Incidentes Cibernéticos
Ministerio de Tencnologí­as de la Información y Comunicación (MITIC)

Avda. Gral. Santos c/ Concordia | Telefono: (595 21) 217-9000
República del Paraguay

80x15.png

Versión del Template 1.11