Seguridad dispositivos móviles(Android e iOS)

100
Seguridad en dispositivos móviles 10 Abril 2015 José Manuel Ortega @jmortegac

Transcript of Seguridad dispositivos móviles(Android e iOS)

Seguridad en dispositivos móviles

10 Abril 2015

José Manuel Ortega @jmortegac

3

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

Situación actual

7

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

Permisos en Android

11

Android Permisos

12

Android Permisos

13

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

15

Firmar aplicaciones en Android

17

Firma de aplicaciones

Almacén de claves por defecto

Firmar aplicaciones en Android

18

Firma de aplicaciones

Generar nuestro propio certificado

cuando queramos subir la aplicación

Firmar aplicaciones en Android

19

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

iOS Permisos

22

Info.plist

Permite asegurar la compatibilidad del dispositivo

iOS Permisos

23

Privacy Analysis Tools for iOs Applications

patia.unileon.es

Permisos Android

24

http://privacygrade.org

Privacidad

25

Permission Manager

Privacidad Android

26

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

Antivirus /Antimalware Android

33

Antivirus /Antimalware Android

34

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

CONAN mobile for Android

36

CONAN mobile for Android

37

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

40

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

Telegram(Source Code+ API)

43

Herramientas online

44

Android rooted

45

Check Android rooted

46

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)

Check iOS JailBreak

48

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

52

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.

Phishing en app móviles

54

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 dispositivos móviles

56

Riesgos en disp móviles

Riesgos en aplicaciones móviles

57

https://www.owasp.org/index.php/OWASP_Mobile_Security_Project

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

64

Logs

Buenas prácticas desarrollo

65

Webview

Buenas prácticas desarrollo

66

Tener cuidado con librerías de terceros

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

68

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

70

Shared Preferences

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

73

Android Lint

Inspect Profile

Buenas prácticas desarrollo

74

Buenas prácticas desarrollo

75

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

77

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

82

Buenas prácticas desarrollo

83

xCode

Static Analyzer

Detect memory leaks

Buenas prácticas desarrollo

84

ARC(Automatic Reference Counting)

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

MDM(Mobile Device Management)

92

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

Acceso al dispositivo Android

95

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

Encriptación en Android

97

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

Consejos

99

100

Gracias

?