Seguridad y Privacidad. iOS vs Android.

Aviso: Artículo año 2012.

Los dispositivos móviles como Smartphone y Tablets ya no son un lujo, en determinados entornos, como los ecosistemas empresariales son herramientas de trabajo básicas y muy superiores al tradicional teléfono móvil. Como ya hemos explicado en numerosas ocasiones, el mercado de los Smartphone crecen a un ritmo desconcertante. Cuando una tecnología se desarrolla rápidamente se generan preocupaciones sobre la repercusión en nuestra vida diaria, especialmente en aspectos relacionados con la seguridad y la privacidad . Un temor comprensible y lógico que está en boca de todos, pero con muy poca información disponible. El usuario es consciente de la existencia de determinadas amenazas, como virus y malware. Ya ha tenido problemas en su ordenador personal, pero no sabe con los problemas que puede encontrarse en su «compañero móvil». En definitiva: ¿Son seguros los Smartphone? Como siempre hacemos, daremos una visión basada en los dos grandes sistemas operativos: iOS y Android.  Este análisis no entrará en muchos detalles técnicos, sólo  quiere mostrar una visión general del problema.

Nos centraremos en los siguientes aspectos de seguridad:

  • El acceso a las cuentas personales de Redes Sociales y Correo electrónico.
  • Acceso a los contactos y a los mensajes personales.
  • Acceso a archivos personales y confidenciales, documentos que son almacenados en el dispositivo.
  • Envío de mensajes o llamadas a número no autorizados.
  • El acceso a las contraseñas y contraseñas maestras almacenadas.

 

Permisos de aplicación

 

Descripción: Una vez que una aplicación se ha instalado en su dispositivo, si no hay un control restrictivo de los permisos, el desarrollador puede provocar daños a su antojo. Es necesario que el usuario conozca previamente la cantidad de servicios que se van a ejecutar en su terminal, para así determinar lo que más le convenga.

iOS: En iOS, no puedes ver los servicios que utilizará tu iPhone o tu iPad. Por lo tanto, no hay manera de restringir las acciones dañinas que se pueden provocar. Las aplicaciones tienen una serie de permisos de usuario estandarizados de acceso. Una vez instalada, el usuario está a la merced de la buena intención del desarrollador.

Android: Antes de cada instalación, cada aplicación Android debe decirle al sistema operativo qué necesidades requiere. Estas capacidades no son más que permisos que puede utilizar la aplicación. La lista de permisos también la muestra durante el proceso de instalación, de forma que el usuario pueda decidir si continúa o no con el proceso. Una vez que se ha instalado, no hay forma de garantizar que la aplicación no vaya a realizar ninguna actividad maliciosa. También es verdad que no podrá hace nada fuera de esos permisos autorizados. Veamos el ejemplo de la famosa App «Angry Birds»:

 

¿Por qué necesita un juego aceso al estado de tu teléfono? A mí personalmente no me convence la explicación de Rovio.

 

Aprobación de aplicaciones.

 

Descripción: Los usuarios pueden descargarse las aplicaciones a través de los grandes repositorios de aplicaciones desarrollados por Apple y Google. Dependiendo a la plataforma a la que nos acerquemos, los controles son restrictivos o casi inexistentes.

 

iOS: La tienda de Apple es App Store. Alberga todas las aplicaciones de forma centralizada para toda la comunidad iOS. A diferencia de Android, Apple sigue una política estricta para la selección de Aplicaciones. El proceso de revisión no se limita a las pruebas de  vulnerabilidades, bugs, inestabilidad de la plataforma y el uso de protocolos no autorizados, también se busca proteger la privacidad, proteger a los niños a la exposición a contenido inadecuado, y evitar las aplicaciones entorpezcan la buena experiencia de usuario de  iOS.

Android: El mercado oficial de aplicaciones para móviles de Google es Android Market. Las Aplicaciones son distribuidas sin ningún control inicial, tampoco las actualizaciones siguientes. Se da al usuario la responsabilidad de decidir si es conveniente instalar la app o no, en función de los permisos indicados.

 

Transparencia.

 

Descripción: El modelo de la disponibilidad del código fuente afecta a la seguridad de una aplicación. Por el contrario, una gran empresa, por muy grande que sea, puede atender un número limitado de bugs. Cuando la plataforma está en código abierto hay miles de ojos expertos observando los detalles todos los días, tratando descubrir vulnerabilidades, y ayudando en las soluciones

iOS: Es una plataforma cerrada, la velocidad de resolución de problemas es y será más lenta, al código sólo tienen acceso un número limitado de personas.

Android: Es una plataforma de código abierto y la base de código para la plataforma está disponible para cualquiera que necesite leer, entender, usar o experimentar. Las vulnerabilidades son detectadas a un ritmo rápido en comparación con cualquier otra plataforma cerrada. Los usuarios desempeñan un papel fundamental en el buen desarrollo de la plataforma. La incorporación de nuevas tecnologías son mucho más rápidas de integrar.

 

Lenguaje de programación.

 

Descripción: El lenguaje de programación utilizado para el desarrollo de aplicaciones no sólo afecta al rendimiento de la aplicación…

Android: Las aplicaciones de Android, en su gran mayoría, están escritas en Java. Las aplicaciones que son escritas en lenguajes interpretados como Java son inmunes al desbordamiento de Buffer, por lo que solucionamos todo problema relacionado con ataques de overflow. Este tipo de ataque se usar para robar información confidencial. Además, cada proceso se ejecuta en su propia máquina virtual, por tanto el riesgo es casi inexistente.

iOS: Las aplicaciones de iOS están escritas en el lenguaje de programación Objective-C. Las solicitudes están vinculadas a las bibliotecas de C y esto puede causar graves problemas, incluso en programas considerados «seguros». En C, es común usar funciones de manejo de cadenas de caracteres como «strcat» que son propicias para un ataque de desbordamiento de buffer. Lo que puede conllevar un riesgo para almacenar la información. Podemos ver que casi todas las vulnerabilidades del iPhone y de iOS por extensión, están relacionadas con el Overflow (desbordamiento de buffer). Con toda probabilidad, las fotos de Scarlett Johansson  se robaron por este método.

 

Protección de Datos

 

Descripción: A pesar de las atractivas campañas de subvención que ofrecen las compañías telefónicas y la consecuente rebaja del coste del smartphone, sigue siendo un objeto de deseo para los cacos, por tanto nuestro teléfono debe estar preparado para salvaguardar nuestros datos privados.

iOS: tiene lo que se llama un código de bloqueo programado. Esto da al usuario la libertad de usar el dispositivo sin tener que introducir la clave de acceso para un pequeño intervalo de tiempo, el valor se puede configurar. Es mejor desde el punto de vista de la seguridad, ya que la comodidad hace que no prescindamos de este servicio.

Android: En los dispositivos Android, podemos configurar un código de acceso (con gesto o número), que se escribe cada vez que se desea utilizar el dispositivo. Sin el código de acceso, tus datos están totalmente desnudos. El proceso de auto-bloqueo para Android es bastante deficiente y requiere que el usuario introduzca el código PIN, incluso después de una llamada de 30 segundos.Es muy irritante y, finalmente, muchos usuarios tienden a desactivar el gesto y la función de bloqueo. Como consecuencia, cualquiera que tenga acceso físico al teléfono puede robar datos sin problema.

Conclusión

 

Después de revisar las características generales de seguridad de iOs y Android, se ve claramente que no existe una clara ventaja de uno sobre el otro. Android tiene un modelo de permisos agradable que permite a los usuarios saber exactamente qué recursos serán utilizados por la app, mientras que iOS tiene un buen proceso de aprobación. Las aplicaciones de Android son más seguras contra ataques de desbordamiento de buffer, pero su función de bloqueo automático no se puede programar (aunque seguro que pronto será solucionado). La naturaleza de código abierto de Android ha contribuido considerablemente a minimizar las vulnerabilidades.