Cómo instalar la APP en dispositivos móviles con sistemas iOS o Android en 3 pasos .
Seguridad dispositivos móviles(Android e iOS)
-
Upload
jose-manuel-ortega-candel -
Category
Technology
-
view
137 -
download
3
Transcript of Seguridad dispositivos móviles(Android e iOS)
2
https://speakerdeck.com/jmortega
4
Congreso de Internet en Alicante
24,25 Abril
http://internet30.es
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Riesgos en aplicaciones móviles
• Buenas prácticas de desarrollo
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
5
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Riesgos en aplicaciones móviles
• Buenas prácticas de desarrollo seguro
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
6
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Riesgos en aplicaciones móviles
• Buenas prácticas de desarrollo seguro
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
8
Android
9
/system/
Corresponde al sistema operativo
Contiene aplicaciones preinstaladas
/data/
Almacena los datos de usuario y aplicaciones
/data/app/
Almacena aplicaciones
/data/data/
Almacena datos de las aplicaciones
Incluye un subdirectorio por aplicación, con los permisos de esa aplicación
root
Permisos en Android
10
Solicitud de permisos en el AndroidManifest.xml
Información personal (calendario, contactos,…)
Información del dispositivo(Datos de red, SMS,..)
Hay que tratar de minimizar los permisos
que se solicitan
Aplicaciones en Android
14
Empaqueta todo el contenido de las aplicaciones Android
bajo un mismo fichero
Es un archivo comprimido.zip con extensión APK
Es posible descomprimirlo utilizando software archivador de
ficheros
Contiene:
• Assets
• META-INF
• res
• resources.asrc
• AndroidManifest.xml
• classes.dex
Aplicaciones en Android
16
Apk extractor
http://apps.evozi.com/apk-downloader
Firmar aplicaciones en Android
18
Firma de aplicaciones
Generar nuestro propio certificado
cuando queramos subir la aplicación
iOS
20
Las aplicaciones se cifran con el certificado que
proporciona Apple
El iPhone descifra las aplicaciones a la hora de ejecutarlas
Desarrolladas en el lenguaje de programación Objetive-C
/Swift
Las aplicaciones se distribuyen e instalan bajo el formato.ipa
iOS
21
Objective - C (in Xcode)
Compiled to ARM and encrypted
Packaged as IPA file with resources
Deployed to phone file
system as .app directory
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Riesgos en aplicaciones móviles
• Buenas prácticas de desarrollo seguro
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
27
28
Debemos tener en cuenta que no es necesario, que el
atacante, acceda al dispositivo móvil físicamente. Las
formas más habituales son las siguientes:
Spyware, capaces de obtener una trazabilidad, sobre nuestros
contactos, emails, llamadas, SMS y enviarlos al atacante.
Malware, que realizan compras, obtienen acceso a servicios de
pago a cargo de su tarjeta.
Phishing, que en apariencia se confunden con aplicaciones
legítimas, como entidades bancarias o redes sociales, para robar
las credenciales
Procesos en background, que vigilan lo que sucede en los
dispositivos, esperando su oportunidad.
Recomendaciones para evitar malware
29
Instalar de orígenes conocidos
Comprobar los permisos antes de
instalar/actualizar
Revisar comentarios de los usuarios
Deshabilitar conexión automática a redes
Wifi y evitar conectarnos a redes Free.
VPN
30
https://www.tunnelbear.com
500MB free/month
31
Evitar aplicaciones que no sean de markets oficiales
No aceptar mensajes o archivos vía Bluetooth por parte de
desconocidos.
No instalar aplicaciones sin haber verificado su procedencia,
especialmente si no están firmadas.
En caso de hacer jailbreak a tu iPhone, cambia la contraseña de
superusuario.
Si tienes un Android rooteado, instala Superuser para que
toda aplicación solicite permiso.
Instala programas antivirus /antimalware móvil para tu
plataforma.
Recomendaciones para evitar malware
Antivirus /Antimalware Android
32
AVG Antivirus
Kaspersky Internet Security
NQ Mobile Security & Antivirus
Comodo Mobile Security
Norton Antivirus y Seguridad
BitDefender Mobile Security
Mobile Security & Antivirus (avast!)
Lookout Antivirus & Seguridad
MobiShield free
F-Secure Mobile Security
CONAN mobile for Android
35
https://play.google.com/store/apps/details?id=es.inteco.conanmobile
Configuración segura del dispositivo
Aplicaciones instaladas
Permisos de aplicaciones
Servicios proactivos de seguridad Desarrollada por el INCIBE(Instituto Nacional de
Ciberseguridad)
https://www.osi.es/es/conan-mobile
Herramientas online
38
“Dexter” online service
https://dexter.bluebox.com
“virustotal.com” online service
https://www.virustotal.com/es
foresafe.com/scan
andrototal.org
Herramientas online
39
http://anubis.iseclab.org
http://mobilesandbox.org
http://www.visualthreat.com
http://dunkelheit.com.br/amat/analysis
http://apkscan.nviso.be
Malware
41
http://forensics.spreitzenbarth.de/android-malware
http://forensics.spreitzenbarth.de/current-ios-malware
Mensajería segura(alternativas a whatsApp)
42
Mejoran el cifrado y al seguridad de las comunicaciones
SafeSlinger (Open Source)
Disponible en Android e iOS
https://www.cylab.cmu.edu/safeslinger/index.html
Surespot encrypted messenger
https://surespot.me
Telegram(Open source)
API for developers
https://telegram.org
IPhone jailbreak
47
Cydia
JailbreakME(versiones antiguas hasta la 5)
Evasion(iOS version>=6)
http://evasi0n.com
Pangu(Windows,Mac)
http://en.pangu.io
Redsnow, SnowBreeze(reinstala iOS)
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Riesgos en aplicaciones móviles
• Buenas prácticas de desarrollo seguro
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
49
Phishing
50
Estafa que mediante ingeniería social pretende
obtener información de una victima de forma
fraudulenta.
El estafador envía un email a la victima haciéndose pasar
por una organización legitima.
En este email se insta a la victima a acceder a un enlace
adjunto e introducir sus datos con el fin de confirmar su
cuenta, recibir dinero, haber ganado un concurso.
El enlace dirige a una aplicación web controlada por el
estafador y similar a la de la organización suplantada.
La victima accede a la aplicación web del enlace e
introduce en ella los datos solicitados.
La aplicación web envía los datos introducidos al
estafador.
Phishing en app móviles
51
Aplicaciones falsas:
Similares a las aplicaciones legitimas
Robo de información
Para evitarlo:
Descargar aplicaciones únicamente de los markets oficiales
Verificar el desarrollador
Verificar los permisos solicitados
Uso de antivirus / antispyware
Aplicar el sentido común
Phishing en app móviles
53
Particularidades del navegador en el dispositivo:
Aprovechan las características del navegador de los dispositivos móviles
para realizar Phishing
UrlSpoofingAtack:
Aprovechan que solo se muestra el inicio de la url en el navegador
Phising con nombres de subdominio legítimos
UISpoofingSafari:
Ciertas versiones de Safari ocultan la pestaña de navegación tras cargar
una página.
Aprovechando lo anterior mediante la inserción de una imagen,se puede
hacer creer al usuario que se encuentra en un dominio legitimo.
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Riesgos en aplicaciones móviles
• Buenas prácticas de desarrollo seguro
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
55
Riesgos en aplicaciones móviles
58
1- Almacenamiento de datos inseguro
2- Controles débiles en el lado del servidor
3- Protección insuficiente en la capa de transporte
4- Inyección en el lado del cliente
5- Sistema pobre de autenticación y autorización
6- Gestión inadecuada de la sesión
7- Decisiones de seguridad a partir de entradas inseguras
8- Canal lateral de fuga de datos
9- Rotura de la criptografía
10- Divulgación de información confidencial
Almacenamiento de datos
59
Encriptación de datos
Nunca almacenar credenciales del usuario
Usar herramientas como SQLCipher,
para almacenar datos en BBDD internas
No otorgar permisos globales a las aplicaciones,
usar el principio de “privilegio más bajo”
Autenticación y autorización
60
Utilizar sistemas de autenticación
adecuados, como las claves de acceso, o
los patrones en los dispositivos móviles.
Apoyarse en sistemas de autenticación
como Oauth.
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Riesgos en aplicaciones móviles
• Buenas prácticas de desarrollo seguro
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
61
Buenas prácticas desarrollo
62
Pruebas de caja blanca Análisis estático del código
Pruebas de caja negra Análisis en tiempo de
ejecución
Buenas prácticas desarrollo
63
Logs
Almacenamiento en la SDCard
[los datos no se protegen]
JavaScript and Webview
SQLite
Conexiones HTTP
Debuggable
Shared preferences
Análisis estático de aplicaciones
Buenas prácticas desarrollo
67
SQLite
La mayoría de las aplicaciones emplean
sqlite para almacenar los datos de las
aplicaciones en el dispositivo
Sqlite no tiene soporte
para cifrar los datos
Buenas prácticas desarrollo
69
Cifrado de BD SQLite
Support iOS /
Android
https://www.zetetic.net/sqlcipher/open-source
256-bit AES Encrypt SQLite database
Buenas prácticas desarrollo
71
Shared Preferences
Librería para securizar este fichero
https://github.com/scottyab/secure-preferences
Buenas prácticas desarrollo
72
Almacenamiento interno en ficheros
WORLD_READABLE / WORLD_WRITABLE
Otras apps podrían leer el fichero si conocen la ruta
Los ficheros deberían crearse en MODE_PRIVATE
FileOutputStream fos = openFileOutput(“MyFile", Context.MODE_PRIVATE); fos.write(“contenido”.getBytes()); fos.close();
Buenas prácticas desarrollo
76
Script que permita detectar funciones peligrosas relacionadas
con:
SharedPreferences
TapJacking(Ejecutar código sin que el usuario se dé
cuenta cuando realiza una acción)
Almacenamiento
Algoritmos de cifrado
Tráfico inseguro
Flag de depuración
Buenas prácticas desarrollo
78
https://github.com/maaaaz/androwarn
python androwarn.py -i my_apk.apk -r html -v 3
Telephony identifiers exfiltration: IMEI, IMSI, MCC, MNC, LAC, CID, operator's name...
Device settings exfiltration: software version, usage statistics, system settings, logs...
Geolocation information leakage: GPS/WiFi geolocation... Connection interfaces
information exfiltration: WiFi credentials, Bluetooth MAC adress...
Telephony services abuse: premium SMS sending, phone call composition...
Audio/video flow interception: call recording, video capture... Remote connection
establishment: socket open call, Bluetooth pairing, APN settings edit...
PIM data leakage: contacts, calendar, SMS, mails...
External memory operations: file access on SD card...
PIM data modification: add/delete contacts, calendar events... Arbitrary code execution:
native code using JNI, UNIX command, privilege escalation...
Denial of Service: event notification deactivation, file deletion, process killing, virtual keyboard
disable, terminal shutdown/reboot...
Buenas prácticas desarrollo
79
Análisis dinámico en tiempo de ejecución
Cobertura de código
Hashes para los paquetes analizados
Datos de red mediante herramientas como wireShark
para analizar los paquetes de red
Información de debug
Operaciones de lectura/escritura en ficheros
Operaciones de criptografía utilizando la API de Android
Envío de SMS y llamadas de teléfono
Buenas prácticas desarrollo
80
Ofuscar la aplicación para dificultar al máximo la
posibilidad de realizar ingeniería inversa
Buenas prácticas desarrollo
81
http://proguard.sourceforge.net
Buenas prácticas desarrollo
85
Almacenamiento inseguro Todos los archivos del SD card pueden ser leídos
por cualquier aplicación.
Programadores erróneamente guardan
información sensible.
SharedPrefs es un simple archivo XML que puede
ser extraído /data/data/nombre.de.paquete/:
• cache
• databases
• lib
• shared_prefs
root
Agenda • Situación actual
• Seguridad en aplicaciones Android e iOS
• Prevención y detección de malware
• Phishing en aplicaciones móviles
• Buenas prácticas de desarrollo seguro
• Seguridad en la empresa mediante los
enfoques BYOD y MDM
• Conclusiones
86
BYOD(Bring Your Own Device)
87
Consiste en una política empresarial en la que los empleados llevan sus
propios dispositivos al lugar de trabajo, para acceder a recursos de la
empresa.
Espías y hackers podrían captar esta información si no se implantan los
sistemas de seguridad adecuados para impedirlo.
Controlar las aplicaciones que se instala el usuario. Tanto aplicaciones
pasa uso personal como aplicaciones que se usan para incrementar la
productividad en el trabajo.
Modelos BYOT (Bring Your Own Technology), BYOA (Bring Your
Own Application), CYOD (Connect Your Own Device),
BYOD(Bring Your Own Device)
88
Riesgos
Movilidad del usuario
Uso de dispositivos rooteados o con
jailbreak
Redes inseguras o con una mala
configuración
Interconexión con otros sistemas
Uso de servicios de localización
89
1 • Protección del acceso
password, reconocimiento dactilar o facial
2 • Control de la conectividad
WiFi , GPS o Bluetooth
3 • Controlar el acceso y permisos de la aplicaciones
debemos considerarlo durante la instalación
4 • Mantener el firmware y S.O. actualizado
considerar las actualizaciones del fabricante
5 • Mantener copia de los datos
sobre los datos críticos, personales y de la empresa
6 • Borrar datos si el dispositivo se pierde
algunos servicios permiten el borrado de datos de forma remota
7 • No almacene información privada
datos como tarjetas de crédito y passwords
8 • Cuidado con las aplicaciones gratuitas
pueden haber sido alteradas o contener spyware
9 • Use antivirus y herramientas de escaneo
tenerlos actualizados
10 • Use software MDM
configuran y monitorizan el acceso
MDM(Mobile Device Management)
90
Software que permite asegurar, monitorear y administrar
dispositivos móviles sin importar el operador o proveedor de
servicios
Instalación masiva de aplicaciones
Políticas de control sobre las aplicaciones
Localización y rastreo de dispositivos
Sincronización de archivos, reportes de datos y acceso a dispositivos
Bloqueo de funciones (activar o desactivar cámara, micrófono, USB, etc.)
Control de gastos (duración de llamadas, consumo de datos, etc.)
Borrado remoto en caso de pérdida o robo
Aplicar contraseña desde el servidor (configurando la longitud, el tipo, si
es alfanumérica o numérica, el número de intentos, etc.)
MDM(Mobile Device Management)
91
Componentes
Servidor centralizado
Software-cliente instalado en cada dispositivo móvil
Base de datos centralizada con el estado de cada
dispositivo conectado a la red
Modelo de comunicación entre el servidor
centralizado y cada uno de los dispositivos móviles. Por
ejemplo una OTA capaz de configurar de forma
remota cada dispositivo a nivel de actualizaciones de
aplicaciones y S.O, escaneo de forma remota de los
dispositivos en busca de malware
Políticas de Seguridad Móvil
empresarial
93
Autenticar el acceso a los datos para usuarios y
dispositivos
Proporcionar seguridad en la conexiones
Concienciar y formar a los usuarios
Instalación de herramientas para la detección de
malware
Centralizar la seguridad de los dispositivos móviles
Acceso al dispositivo iOS
94
Protección mediante código de desbloqueo(Passcode).
Aumento del tiempo de reintento tras código incorrecto.
Configuración de la complejidad del código mediante MDM
MDM (Mobile Device Management) permite aplicar una
serie de contramedidas de seguridad, como borrar
remotamente la información en caso de pérdida, o
desconectar los dispositivos de la red corporativa si se
detectase una intrusión
Encriptación en Android
96
Soportado desde Android 3.0
Lleva 1h encriptar los datos
Implica una reducción del
rendimiento
No se puede deshabilitar
Consejos
98
No rootear el dispositivo al menos que sea
estrictamente necesario(por ejemplo instalar una
custom room o desinstalar algunas aplicaciones
que traen por defecto)
No instalar aplicaciones desde fuentes
desconocidas
Leer los permisos antes de instalar
Leer opiniones de la gente en los market