Habrá leído el titular y se habrá preguntado qué demonios querría decir Pablo con este.
El caso es que hay un tema que me hace desconfiar de Android sobremanera, y aprovecho que la semana pasada ocurrieron dos sucesos recogidos a nivel global por los medios para hablar de la importancia de la confianza en ecosistemas tecnológicos.
Entendiendo que nos referimos a seguridad (seguridad a secas, que esto puede ser aplicado a seguridad informática, o a cualquier otro tipo de auditoría), podríamos definir la confianza como el nivel de seguridad y responsabilidad vertido por un sistema para que sus elementos (tanto de dentro del propio sistema, como externos (usuarios, por ejemplo)) gocen de ciertas garantías en su utilización.
La confianza es complementaria al riesgo, y esto es importante tenerlo presente ya que no hay confianza sin riesgo, y a más de la una, menor de la otra.
Adentrándonos ya en materia, Google avisaba recientemente que dejaría de dar soporte a actualizaciones en versiones inferiores a terminales Android 4.3 a una de las partes más críticas de su sistema, WebView. Y teniendo en cuenta que hoy en día el 60% de terminales Android están por debajo de la 4.3, esto significa que Google dejará de actualizar este componente (al menos directamente, que si un tercero lo hace están obligados a agregarlo al repositorio) a tan solo 939 millones de dispositivos (EN). “Tan solo” (recalco las comillas) 939 millones de dispositivos que estarán indefensos ante cualquier 0-day que surja en WebView.
WebView es una característica que permite a los desarrolladores empaquetar un navegador capado dentro de sus aplicaciones, de tal manera que el usuario no tenga que salir de la aplicación para visualizar contenido web.
Esta característica la tenemos presente en la gran mayoría de aplicaciones sociales (el más claro ejemplo que se me ocurre es el cómo se abre un enlace en la app de Facebook), y el motivo es muy sencillo: retiene al usuario dentro de la aplicación, de tal manera que aumenta el tiempo de uso en la misma, y esto puede ser aprovechado para mostrar más publicidad o enriquecer las estadísticas de cara a posibles inversores y/o accionistas.
Y digo que esta parte es crítica puesto que casualmente es el vector de ataque más extendido para la ejecución de código remoto en este sistema operativo, debido a que al abrir una web desde WebView, buena parte de los controles de seguridad dejan de funcionar.
- El usuario no ve la barra de dirección, por lo que no puede estar seguro de que está visitando la página correcta (es relativamente sencillo ofuscar un dominio en la API de compartición de la mayoría de redes sociales, de forma que el enlace interno parezca que apunta a un domino X, y el real vaya hacia otro lado), ni tampoco consultar la identidad del mismo.
- Las conexiones mediante protocolo seguro no están aseguradas, por la misma razón antes mencionada (no podemos saber que de verdad estamos accediendo mediante HTTPs).
- El WebView corre una versión capada del navegador nativo de Android. Este navegador ya de por sí es vulnerable a algunos ataques de ejecución remota, pero es que además al correr de forma capada, cualquier aviso y/o petición al usuario se acepta por defecto (para mejorar la usabilidad, y por restricciones de popups dentro de aplicaciones…).
El resultado es el esperado. Con la hegemonía del móvil frente al escritorio, volvemos a vivir una época dorada del phishing, apoyado esta vez tanto en correos como en redes sociales y mensajería directa (que previsiblemente serán abiertos desde clientes móviles). Y como muchos de estos utilizan WebView para aumentar el tiempo del usuario dentro de sus aplicaciones, las páginas de phishing pueden campar a sus anchas, utilizando ingeniería social para engañar a los usuarios e instarles a instalar aplicaciones fraudulentas o robarles credenciales de acceso a cuentas.
El segundo punto que quería tratar es el de la regulación del ecosistema de aplicaciones del SO, y esto afecta a Android por tener una política de actualización más laxa, pero en definitiva podría afectar a iOS, a WP y al resto de markets, tanto móviles como escritorio (Windows 8, Ubuntu One, OS X App Store, Chrome Web Store,…), aunque sea de agradecer que algunos de estos cuenten con una moderación humana.
Imagínase que de la noche a la mañana, esa aplicación de gestión de batería que tiene instalada en su smartphone o tablet pasa a ser un antivirus.
Parece absurdo, ¿verdad? Pues eso le pasaba recientemente a Pixel Battery Saver, que sin comerlo ni beberlo se actualizaba esta pasada semana a Complete Antivirus Protection (EN), con el aumento (esperable) en la petición de permisos.
La mayoría de usuarios ni habrán caído en el cambio, y con él, pasamos de una aplicación que entendemos era legítima a una que claramente es maliciosa.
¿Qué a ocurrido entonces? Lo mismo que comentábamos hace unos meses respecto a la confianza en desarrollos de terceros, esa vez enfocado al market de Chrome.
El desarrollador vendió la aplicación por 699 dólares (EN) a vaya usted a saber quién… Y este nuevo dueño, se ha encargado de aprovechar la cantidad de usuarios que ya la tenía (250ks), y el ASO (posicionamiento en markets de aplicaciones) conseguido por la app legítima, para servir a nuevos intereses (¿una botnet móvil? ¿la suscripción a servicios SMS de pago? ¿malware de publicidad?… Próximamente en los mejores cines).
Al final, tanto en el primer caso, como en el segundo, nos encontramos con el mismo problema. Android (y los ecosistemas de apps de prácticamente cualquier market) no ofrece las garantías, la confianza suficiente como para sentir que estamos protegidos.
Si un componente crítico del sistema operativo pierde el soporte al año de haber comprado el terminal. Si un desarrollador puede revender su app y el market no avisa adecuadamente a los usuarios de la misma, ¿no estamos ante un problema de seguridad alarmante?
Hablamos de un 60% de los clientes de Android. Un 60%, que se dice pronto. Windows XP perdió el soporte después de ¡12 años!
Hablamos de que el usuario de apps es vulnerable a cualquier cambio de dueño o intereses por parte del desarrollador. Una app legítima puede transformarse en maliciosa en la próxima actualización, y si usted no está con los ojos puestos en todos y cada uno de los detalles, será la próxima víctima. No porque usted tenga la culpa, ni porque el desarrollador esté en todo su derecho de revender, abandonar o cambiar de idea en su desarrollo (pese a que era de esperar un mínimo de ética en favor a su comunidad), sino porque la plataforma no ofrece la confianza suficiente.
No implanta las medidas de seguridad oportunas, durante el tiempo adecuado al ciclo de vida del servicio.
Vaya por delante que el post me parece magistral, y que como siempre envidio tu capacidad de crear contenido a punta pala. Ahora bien, dicho esto, y estando de acuerdo en casi todo lo que planteas, la duda que me viene es… ¿Es posible establecer acciones correctoras sobre los desfases que has comentado, sin que el sistema sea cada vez más cerrado? Dicho de otra forma: suponiendo que Google defendiera la parte libre del invento (lo cual es mucho suponer, tanto que ni yo me lo creo), la libertad va siempre unida a la responsabilidad, ya hablemos de leyes, de sexo, de gastronomía o de software.
Si quieres usar un software que presenta todas estas opciones para los malos, ponte las pilas y no hagas “el moñas”, ya que a cambio tienes los dispositivos con el hardware y las prestaciones más punteras a un precio asequible. Ah, ¿que no todos los usuarios son así? Ya, mucha gente que ve GH VIP también ve La Sexta Noche, pero eso no me convierte a mí en un poligonero por ver La Sexta Noche. En esencia, no es culpa de Google la torpeza, desconocimiento o grado de incultura tecnológica de sus usuarios; de igual modo que no se puede responsabilizar a Microsoft de malware/adware procedente de lugares “sospechosos” (y hasta ahí puedo leer), o a Apple por los jailbreaks que algunos ‘tontolculo’ hacen para instalar for free aplicaciones y juegos de pago.
Simplemente ese matiz, que más que comentario crítico es, como ves, incorporación del punto de vista que habitualmente se nos pasa en una sociedad políticamente correcta que exime de responsabilidad a la víctima, porque pobrecito no sabía lo que hacía 🙂
Y sin duda un gran matiz, Alfonso, como siempre.
Sobre la pregunta, y entrando al debate de lo que me comentaban por Twitter hace unas horas. Sobre todo en cuanto a confianza del market hay dos elementos que sin perder el cadiz pseudo-libre del sistema harían de Android un SO más seguro (y por tanto, confiable).
El primero es la moderación humana. iOS y WP la tienen. No es infalible, por supuesto, pero al menos es mejor que nada ¿Qué en Android también hay? Hay, pero pasiva, es decir, lo que suelta alerta se mira. El resto se pasa “automágicamente”.
El segundo sería el aviso a la hora de actualizar cuando la aplicación cambia de nombre y/o de desarrollador. Tampoco es infalible, pero hará saltar las alarmas a alguno, y aunque sea a nivel de presión, quitará las ganas a otros tantos (recordemos que actualmente es obligatorio dar nombres propios en tu cuenta de desarrollo). Que entiendo que revisar una a una todas las actualizaciones de todas las aplicaciones del mundo es un coñazo (para eso si están esos filtros automáticos), pero qué menos que avisar al usuario. Porque lo que pasa actualmente es el despiporre (compro una app bien posicionada y con un buen número de usuarios, le meto malware y listo).
Y aquí el problema no es Android, es de Google, que es quien ofrece su market por defecto. Que esto ocurriera hace unos años cuando Android era la niña bonita de SO móviles, pues todavía. Pero después de casi una década…
Y… sí, pero claro, es que Google sueña con ovejas eléctricas, así que la moderación humana me temo que no llegará. Y los cambios de permisos, si se producen, son automáticamente avisados al actualizar la app. Recuerdo el caso con Cymera, que pedía un nuevo permiso de algo que a todas luces NO debería necesitar, y me pasé varios meses sin actualizarla… hasta que pensé aquello de “Jeróoooonimooooo, ¡¡que sea lo que dios quiera!!” y actualicé. Si mañana la gente de Cymera decide reconvertirse en una app que gracias a ese permiso pueda hacer cosas chungas en mi nombre, pues sí, la habré liado parda. Ni te cuento entonces de la brillantísima Camera360, made in China, y que más de uno y de dos comentarios en la Google Play reportan como spyware. Pues ahí está en mi Nexus, como primera cámara nada menos. Ay, mami. 🙂
Ahí entramos en otro de los grandes males de los markets. Puedes aceptar e instalar la aplicación con todos los permisos, o no instalarla.
Y mira que hay maneras de bloquear acceso a permisos… Pero claro, requiere que el desarrollador haya contemplado las Exceptions para evitar el crasheo de las aplicaciones, y eso ya es pedir mucho a cualquiera, más a un programador java jajaja.
#IroníaOff
Me parece interesante la preocupación. Dada la penetración de Android y su uso hoy en día, Google debería respaldar al menos las versiones desde la 2.3. Froyo y Eclair ya casi no se usan, pero Gingerbread se resiste a morir.
Me parece que es lógico que Google apoye un sistema tan exitoso y usado.
Cuando hoy en día, Android se usa mas que Windows.
Para el segundo punto, Google acaba de anunciar que se van a revisar las apps que se suben a la tienda. De todos modos el sentido comun, los comentarios de los usuarios y las calificaciones, hacían fácil distinguir cual era buena y cual un fraude.
Solo quisiera puntualizar que el titulo es tendencioso. Android es bastante maduro. El que una politica de seguridad falle o Google cometa el error de no soportar las versiones antiguas, no significa que Android no sea uno de los ecosistemas mas maduros y completos que existen
Hombre, tiene apenas 6 años de desarrollo. Hay sistemas más maduros en el mercado :). En todo caso están en camino.
La experiencia de usuario en dispositivos móviles sí está entrando en un ciclo de maduración aceptable. Pero la confianza de su marketplace sigue siendo un problema.
Y ojo, que esos comentarios y esas votaciones son fácilmente manipulables. Son un acercamiento, pero al final se hace necesario ese paso que comentas de dedicar un departamento a revisar actualizaciones, cambios de propietario y nuevas aplicaciones.
Un trabajo titánico, pero necesario si quieren ofrecer seguridad en su plataforma. Saludos, y buen análisis Roberto.
Sin duda todos queremos que se mejore la seguridad. El problema es que WIndows (con mas de 30 años en el mercado) tampoco es seguro, con Windows 10 he tenido problemas de virus.
IOS tampoco lo es , la app store ha sido atacada al igual que icloud.\r\nTodos son ecosistemas maduros, pero ninguno es seguro al 100 %
Como nota, un maestro de mi facultad de sistemas dijo una vez que el único sistemas seguro, es aquel que esta en un bunker, en una caja fuerte, desconectado y apagado.
Pues tu profesor tenía más razón que un santo. Ya te digo que no va a haber sistema 100% jamás. Es más, un sistema incomunicado no es seguro, simplemente está incomunicado.
Ahora bien, hay sistemas y sistemas. Y precisamente uno de nueva generación como podemos considerar Android, que ha apostado por ser cerrado en cuanto a diseño (las aplicaciones por defecto tienen que estar en su market) tiene aún muchos frentes que pulir.
Que nunca va a acabar, pero todavía no podemos considerar un sistema como Android maduro en cuanto a seguridad.