{"id":210,"date":"2014-06-05T11:43:11","date_gmt":"2014-06-05T11:53:47","guid":{"rendered":"https:\/\/0db50google-pulls-21-apps-in-android-malware-scare-6d5df6956d.jpg"},"modified":"2015-07-16T21:38:55","modified_gmt":"2015-07-17T03:38:55","slug":"analisis-de-un-repositorio-ruso-de-aplicaciones-android","status":"publish","type":"post","link":"https:\/\/emanuelpaxtian.com\/blog\/analisis-de-un-repositorio-ruso-de-aplicaciones-android\/","title":{"rendered":"An\u00e1lisis de un repositorio ruso de aplicaciones Android"},"content":{"rendered":"<p>Con el af\u00e1n de obtener aplicaciones que no est\u00e1n gratuitamente en la <strong>Google Play<\/strong> o por que se buscan aplicaciones que traigan &#8220;ciertas mejoras&#8221; sacrificamos la seguridad por los supuestos beneficios que traen las aplicaciones descargadas desde otros repositorios, en esta ocasi\u00f3n les dejo un an\u00e1lisis realizado por los chicos de <strong>hispasec<\/strong> al analizar un repositorio ruso de aplicaciones para Android en el cual encontraron cosas interesantes e intrigantes<\/p>\n<p>Dentro de nuestra participaci\u00f3n en el proyecto europeo NEMESYS, hemos desarrollado un &#8220;honeyclient&#8221; que nos permite de recopilar repositorios de Android, descargar las aplicaciones, y analizarlas. Hemos analizado el repositorio ruso de Android &#8220;androidar.ru&#8221;, para averiguar la confianza que podemos tener en los repositorios alternativos al oficial de Google. Vamos a mostrar algunos de nuestros descubrimientos.<\/p>\n<p>Un &#8220;honeyclient&#8221; es un sistema dise\u00f1ado para imitar, ya sea de forma manual o autom\u00e1ticamente, la serie de pasos que realizar\u00eda un usuario normal al visitar diferentes sitios web. Nuestro proyecto est\u00e1 destinado al an\u00e1lisis de repositorios Android alternativos, determinar su fiabilidad y comprobar que no se debe descargar aplicaciones de estos sitios.<\/p>\n<p>Para evaluar el repositorio, hemos descargado 2.300 aplicaciones. Para cada aplicaci\u00f3n, hemos realizado un an\u00e1lisis est\u00e1tico con Androguard y din\u00e1mico con Droidbox adaptado para la versi\u00f3n de Android 4.1.1. De esta forma queremos conocer el comportamiento de las aplicaciones: es decir los SMS enviados, datos privados robados, etc. Invitamos a leer nuestro informe sobre el an\u00e1lisis de aplicaciones Android.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3.bp.blogspot.com\/-1d8EEd-Tiko\/U4205LouLJI\/AAAAAAAABGc\/aiPoz7zxQKc\/s1600\/AndroidRu.png\" alt=\"\" width=\"668\" height=\"502\" border=\"0\" \/><\/p>\n<p>Hemos notado que 622 aplicaciones Android (un 27%) mandaban SMS premium y los identificadores IMEI e IMSI del m\u00f3vil por Internet a la direcci\u00f3n 188.42.243.203 (un servidor en Luxemburgo). Con el an\u00e1lisis est\u00e1tico, hemos averiguado que todas las aplicaciones ped\u00edan los 26 permisos siguientes y que ten\u00edan la capacidad de enviar SMS, leer SMS, leer los contactos, sacar fotos, etc.:<\/p>\n<p>android.permission.ACCESS_NETWORK_STATE<br \/>\nandroid.permission.MOUNT_FORMAT_FILESYSTEMS<br \/>\nandroid.permission.WRITE_SECURE_SETTINGS<br \/>\nandroid.permission.BIND_DEVICE_ADMIN<br \/>\nandroid.permission.ACCESS_NETWORK_STATE<br \/>\nandroid.permission.SEND_SMS<br \/>\nandroid.permission.BIND_REMOTEVIEWS<br \/>\nandroid.permission.INTERNET<br \/>\nandroid.permission.WRITE_SETTINGS<br \/>\nandroid.permission.SET_PROCESS_LIMIT<br \/>\nandroid.permission.SET_WALLPAPER_HINTS<br \/>\nandroid.permission.BRICK<br \/>\nandroid.permission.DEVICE_POWER<br \/>\nandroid.permission.READ_CONTACTS<br \/>\nandroid.permission.RECEIVE_SMS<br \/>\nandroid.permission.INSTALL_PACKAGES<br \/>\nandroid.permission.READ_PHONE_STATE<br \/>\nandroid.permission.WRITE_SYNC_SETTINGS<br \/>\nandroid.permission.ACCESS_FINE_LOCATION<br \/>\nandroid.permission.SET_ANIMATION_SCALE<br \/>\nandroid.permission.CAMERA<br \/>\nandroid.permission.CHANGE_NETWORK_STATE<br \/>\nandroid.permission.WRITE_EXTERNAL_STORAGE<br \/>\nandroid.permission.ACCESS_CHECKIN_PROPERTIES<br \/>\ncom.android.launcher.permission.INSTALL_SHORTCUT&#8221;<br \/>\nandroid.permission.SYSTEM_ALERT_WINDOW<\/p>\n<p>Abajo mostramos un ejemplo de una aplicaci\u00f3n del repositorio que env\u00eda tres SMS premium. El primer SMS se env\u00eda a partir de dos minutos, el segundo despu\u00e9s de 10 segundos, y el tercero despu\u00e9s de 15 segundos. Los tres SMS se env\u00edan a n\u00fameros premium diferentes, pero con el mismo mensaje &#8220;43978546971 361453287722&#8221;. Pensamos que el primer SMS se env\u00eda con retraso para evitar su detecci\u00f3n por las &#8220;sandbox&#8221; de Google o de casas antivirus. En efecto, con la gran cantidad de aplicaciones Android, imaginamos que analizar cada muestra m\u00e1s de un minuto pide muchos recursos, por lo que en la mayor\u00eda de los casos no se puede hacer.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/1.bp.blogspot.com\/-Fn7gfDXePdY\/U421E9Ov2PI\/AAAAAAAABGk\/ZY8pFrwp5Vw\/s1600\/premium_SMS.png\" alt=\"\" width=\"505\" height=\"303\" border=\"0\" \/><\/p>\n<p>Mirando el certificado de la aplicaci\u00f3n, vemos tambi\u00e9n que el desarrollador de la aplicaci\u00f3n no quer\u00eda poner su nombre.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/1.bp.blogspot.com\/-jCv5qRzj0-4\/U421e-E7n8I\/AAAAAAAABGs\/EWlox09dGsc\/s1600\/certificate.png\" alt=\"\" width=\"874\" height=\"361\" border=\"0\" \/><\/p>\n<p>Adem\u00e1s, el desarrollador ha usado t\u00e9cnicas de ofuscaci\u00f3n del nombre de las clases lo que hace m\u00e1s dif\u00edcil un an\u00e1lisis por ingenier\u00eda inversa. Por ejemplo, el nombre de la clase principal que se llama &#8220;imauyfxuhxd.qhlsrdb.rqdpwernbqj&#8221;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/4.bp.blogspot.com\/-i_SDSU_oowY\/U421oXYraZI\/AAAAAAAABG0\/OTkiRQpq-LY\/s1600\/ofuscacion.png\" alt=\"\" width=\"508\" height=\"183\" border=\"0\" \/><\/p>\n<p>Tambi\u00e9n, nos hemos dado la cuenta de que descargando varias veces la misma aplicaci\u00f3n desde la misma URL:<br \/>\n&#8220;http:\/\/androidarar.ru\/api.php?n=beyondpod-key&amp;f=beyondpod-key&amp;a=36145&amp;icurl=&amp;imurl=&amp;s=2&amp;ss=13&amp;mt=4&amp;d=2&amp;u=http%3a%2f%2fandroidar.ru%2fengine%2fdownload.php%3fid%3d1062&amp;autoic=1&#8221; muchas veces nos devolv\u00eda aplicaciones con hash diferentes. Sin embargo, extrayendo el c\u00f3digo binario de cada aplicaci\u00f3n, hemos comprobado que todas las aplicaciones tienen el mismo c\u00f3digo compilado. En otras palabras, el atacante cambia los iconos y las par\u00e1metros de configuraciones de la aplicaci\u00f3n sin modificar el c\u00f3digo compilado, de manera que se genera un hash diferente para la aplicaci\u00f3n. Pensamos que el atacante lo hace intencionalmente para enga\u00f1ar los antivirus que usan los hash para identificar los malware Android. Un generador de firma sobre el c\u00f3digo compilado como el generador de formas para YARA (que describimos en el blog del Laboratorio de Hispasec) seria m\u00e1s adecuado para identificar el malware.<\/p>\n<p>Aconsejamos a todos los usuarios descargar las aplicaciones de Android desde el repositorio oficial de Google (https:\/\/play.google.com\/store) y comprobar los permisos que la aplicaci\u00f3n pide durante su instalaci\u00f3n. Por ejemplo, un juego que pida permiso para enviar SMS premium deber\u00eda hacernos sospechar.<\/p>\n<p><strong>Fuente <\/strong>:\u00a0<a href=\"http:\/\/unaaldia.hispasec.com\/2014\/06\/analisis-de-un-repositorio-ruso-de.html\">http:\/\/unaaldia.hispasec.com\/2014\/06\/analisis-de-un-repositorio-ruso-de.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con el af\u00e1n de obtener aplicaciones que no est\u00e1n gratuitamente en la Google Play o por que se buscan aplicaciones que traigan &#8220;ciertas mejoras&#8221; sacrificamos la seguridad por los supuestos&hellip;<\/p>\n","protected":false},"author":1,"featured_media":333,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-210","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android"],"_links":{"self":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/comments?post=210"}],"version-history":[{"count":0,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/210\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media\/333"}],"wp:attachment":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media?parent=210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/categories?post=210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/tags?post=210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}