Seguridad Android a o Spin A

30
Diseño de aplicaciones móviles seguras en Android [email protected] [email protected]

description

manual android

Transcript of Seguridad Android a o Spin A

Diseño de aplicaciones móviles seguras en Android

[email protected]@gmail.com

Agenda

● Que es Android? Historia?● Arquitectura● Herramientas● Medidas de seguridad

¿Que es Android?

● Pila de software pensada inicialmente para teléfonos móviles (smartphones) que incluye un sistema operativo, middleware y una capa aplicaciones.

● Basado en el kernel de Linux, por esa razón tiene inmersas las características de ser libre, gratuito y multiplataforma.

● Android utiliza una variación del lenguaje de programación Java (VM Dalvik)

Orígenes y algo de historia

● 2005: Google compra a una empresa llamada Android Inc.

● 2007: Primeras versiones en dispositivos móviles.

● 2010 Primer malware para Android● 2012: Sept 23: 4 años desde Android 1.0

Y como está ahora!!

Arquitectura de Android

Arquitectura de Android

● Cada aplicación se ejecuta en su propia máquina virtual aislada del resto.

● Esto asegura (por omisión) que una aplicación no puede acceder a los recursos de otra, a menos que el terminal este “rooteado”

● Al contrario que en JVM, la seguridad no se basa en las máquinas virtuales, sino en el propio sistema operativo: (evita ataque por overflowing)– Control de acceso

– Aislamiento– Seguridad basada en permisos.

Control de acceso

● La versión 2.x proporciona opciones rudimentarias de la configuración de la contraseña:– Fortaleza de la contraseña– Tiempo tras bloquear el dispositivo

● La versión 3.x introduce el concepto de caducidad de contraseña y la posibilidad de cifrar los datos en la tarjeta y borrarlos tras un número determinado de intentos fallidos de acceso.

● La versión 4.x añade:– Permite cifrado completo del dispositivo

– Reconocimiento facial para desbloquear la terminal

– Más control sobre la transmisión de datos en aplicaciones en segundo plano.

Aislamiento

● Este método aísla las aplicaciones entre sí y también evita que puedan modificar el kernel.

● La política por defecto prohíbe el acceso a prácticamente cualquier subsistema del dispositivo, aunque las aplicaciones puedan:– Leer la lista de aplicaciones

– Leer datos en memoria flash

– Ejecutar otras aplicaciones

● Las aplicaciones pueden solicitar permisos adicionales

Seguridad basada en permisos

● Por defecto, la mayoría de las aplicaciones Android tienen muy pocos permisos

● Cada aplicación incluye una lista de los permisos que necesita y que se presentan al usuario en “lenguaje no técnico” en el momento de la instalación. Si el usuario no acepta, no se instala la aplicación, no hay opción de elegir los permisos.

● En último termino es el usuario el que decide.

Procedencia de las aplicaciones

● En Android todas las aplicaciones tienen que estar firmadas digitalmente.

● Los desarrolladores pueden generar sus propios certificados.

● Para distribuirlas en Google Play el desarrollador debe pagar US$25 con su tarjeta de crédito.

● El atacante puede descargar una aplicación legítima, empaquetarla de nuevo con un troyano y volverla a firmar para distribuirla.

Google Bouncer

En febrero de 2012, Google incluyó en Google Play su herramienta de eliminación de malware automatizada:

– Google Bouncer

Como es una aplicación (apk)● Es un archivo .zip ● Usado para empaquetar aplicaciones● Todo apk incluye:

– Classes.dex (código compilado)

– Resourses.asc

– ./res

– ./META_INF

– .AndroidManifest.xml

Formato del Classes.dex

● Es el archivo que se ejecuta en la máquina virtual de Dalvik

● Optimizado para el mínimo consumo de memoria y el diseño esta condicionado por la reutilización de datos.

Formato AndroidManifest.xml

● Toda aplicación lo tiene, en el raíz del proyecto.● Contiene información esencial necesaria sobre el

sistema Android antes de poder ejecutar cualquier línea de código. (sin él la aplicación no funciona)

● Define los permisos de ejecución (acceso a internet, a la cámara, etc)

● Declara los componentes de nuestra aplicación (Activity, service,etc)

AndroidManifest.xml

Herramientas

● AXMLPrinter2 – Extraemos la información del AndroidManifest.xml

● Dex2jar – Convertimos el fichero .dex en un fichero de clases .jar

● Jdgui – Leemos el código almacenado en el fichero .jar

● Wireshark – Análisis dinámico del código.

MANOS A LA OBRA !!

iMine

● Malware para Android● Se hace pasar por un juego de busca minas● Envía mensajes SMS a números premium

Permisosandroid.permission.INTERNET

android.permission.ACCESS_COARSE_LOCATION

android.permission.RESTART_PACKAGES

android.permission.RECEIVE_SMS

android.permission.SEND_SMS

Permisos

Medidas de Seguridad

● Instalar aplicaciones desde lugares reconocidos.● Revisar los permisos que solicita la aplicación

durante su instalación. También durante su actualización.

● Mantener actualizado el sistema operativo y las aplicaciones.

● Revisar los comentarios de los usuarios que han instalado la aplicación.

● Como siempre, el usuario es el eslabón más débil de la cadena.

Android puede ser muy atractivo en entornos empresariales

● Gran cantidad de aplicaciones.● Facilidad de personalización.● Integración con otros servicios de google.

Pero las implicaciones en seguridad son mayores

● La información almacenada ya no es personal, sin corporativa.

● Puede usarse para accesos remotos a recursos de la empresa.

● Un dispositivo comprometido puede poner en peligro toda la red de la empresa.

● Funciones esenciales para el negocio podrían depender de estos dispositivos.

Políticas de Seguridad Móvil empresarial

● Autenticar el accesos a los datos para usuarios y dispositivos.

● Proporcionar seguridad en la conexiones.● Concientizar y formar a los usuarios.● Instalación de herramientas para la detección

de malware.● Centralizar la seguridad de los dispositivos

móviles.

Las pymes todavía no administran sus dispositivos móviles

● Según un estudio de de CDW desarrollado en Estados Unidos entre julio y septiembre, el 67% de los encargados de TI en pequeñas y medianas empresas no tienen conocimiento sobre programas para administrar los dispositivos móviles.

● Entre los que sí tienen conocimiento, solo el 22% han implementado o tienen planes para implementar un sistema de administración.

● El 75% de los encuestados afirmaron que los dispositivos móviles son críticos para el éxito de la empresa y el 67% aseguró que la empresa perdería competitividad sin esta clase de máquinas.

Seguridad empresarial (cont)

● A medida que las tabletas y los teléfonos móviles aumenten su protagonismo dentro de las oficinas, los administradores de TI necesitan desarrollar o comprar soluciones para administrar esta clase de equipos.

● El 50% de los usuarios de los dispositivos móviles pertenecen a lo que se puede llamar alta gerencia, lo que tiene serias implicaciones de administración.

● Los pequeños y medianos empresarios deberían incentivar a su departamento de TI a implementar una solución que integre la administración de dispositivos móviles.

Manejo de dispositivos móviles

● Se instala un agente en cada terminal y permite la gestión centralizada.– Complejidad de las contraseñas.

– Tiempos de bloqueo de pantalla

– VPNs.

– Desinstalar funciones específicas, como instalar aplicaciones.

– Localizar dispositivos con GPS.

– Borrar información de forma remota.

Prácticahttps://www.dropbox.com/s/qxddt39eo5tfbnx/PracticaAndroidWalc2012.pdf