tu banca móvil, en forma simple y ¿segura? estado de la seguridad en apps móviles bancarias

30
Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias Cristián Rojas, CSSLP CLCERT Universidad de Chile Jan Vašek - CC0

Upload: cristian-rojas

Post on 06-Apr-2017

383 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Tu banca móvil, en forma simple y ¿segura?Estado de la seguridad en apps móviles bancarias

Cristián Rojas, CSSLPCLCERT Universidad de Chile

Jan Vašek - CC0

Page 2: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

About: Cristián Rojas

● Ingeniero Civil en Computación, DCC-UCHILE

● Tesista, MSc-CS, DCC-UCHILE

● Múltiples funciones en INFOSEC:– Mercenario-Consigliere– Profesor-Instructor– Investigador (CLCERT-UCHILE)

● INFOSEC-Privacy-Kittehs-Beer Geek

Page 3: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

¿ ?

Page 4: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias
Page 5: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

¡Pruebe nuestra app!

¿Ya conoce las nuevas funciones de nuestra app?

Por casualidad ¿no le contamos que

tenemos una app?

¡Use nuestra app y gánese

un iPad!

¡Con nuestra app Usted podrá hacer sus operaciones en forma

fácil y segura!

Page 6: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Julián Zárate, “HTTP Break-header on GSM Networks”, 8.8 Security Conference 2014. Foto: Gabriel Franco.

¿Alguien es desarrollador de aplicaciones aquí?

Page 7: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Use nuestra app (…)en forma fácil y ¿segura?

¿Cuán segura?

Page 8: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

¿Qué vulnerabilidades podría haber?

NowSecure, “The Anatomy of a Mobile Attack”

El aparato La red El centro de datos

Page 9: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

La investigación

● Análisis de seguridad para apps de 9X 10 bancos disponibles en la Google Play Store (Android):– Ingeniería reversa de paquetes APK– Análisis estático manual y automatizado de tales

paquetes– Análisis pasivo de funcionamiento de apps

● Uso de proxy MITM (con capacidad HTTPS)● Revisión de área de almacenamiento de la app● Análisis de información enviada a logs● Simulación de recorrido geográfico para el GPS

¿Y por qué no iOS?

Page 10: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

La investigación

● Ningún banco ha sido maltratado:– No hay pruebas sobre los servidores– Entrega (futura) de informe de vulnerabilidades

en forma privada a cada banco

Page 11: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Descubrimientos

Page 12: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Tipos de apps bancarias disponibles

Nativas Híbridas Embedded Web

Page 13: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

I want your SK now, Mr. Anderson.

SHA1

RC4

Mal uso de cifrado en tránsito

Page 14: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

$

No uso de cifrado en tránsito

GET http://www.mibanco.cl/srv/getUrls

{“url”: “https://www.mibanco.cl/newmobile”}

GET https://www.mibanco.cl/newmobile

MitM

https://www.mibanco.cl/mobile

http://www.webmalula.cl/websrvhttps://www.otrositio.cl/servicioTrucho

Page 15: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

SecurePrefs(localCxt, "my-prefs", Util.getAndroidID).put("rut", str);

arrayOfByte1 = Tools.getIMEI().getBytes();arrayOfByte2 = "5425b62537c61".getBytes();arrayOfByte4 = Tools.getMD5(

arrayOfByte1 + arrayOfByte2);

Mal uso de cifrado en reposo

Page 16: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Abuso de permisos

● ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION

● WRITE_EXTERNAL_STORAGE● READ_LOGS● READ_CONTACTS● READ_PHONE_STATE

¡TODO O NADA!Modelo de permisos mejorado en

Android Marshmallow, pero...

Page 17: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Compartición de información con terceros

● Compartición con proveedores:– APM– Analytics

● ...de información:– Del teléfono– Personal (ej. RUT)

● Muchas apps no tienen política de privacidad asociada

Page 18: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Abuso de logging

Page 19: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Abuso de logging

● Otros datos enviados al log del aparato:– Información personal del usuario– Datos de destinatarios de transferencias– Cookies y ID's de sesión

– ¡PAN completo de tarjetas de crédito!– ¡¡¡PASSWORDS!!!

● Toda esta información es accesible por otras apps que pidan permiso android.permission.READ_LOGS

Y si el equipo está rooteado, mejor ni hablar...

Page 20: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Equipos rooteados

● Sandboxing: Cada app tiene un usuario UNIX dentro del sistema– Al rootear, eso se pierde – Y cualquier app con root

puede mirar archivos de la app, logs, etc.

● Algunas apps intentan alertar a los usuarios de aquello

● Principio de diseño abierto

Page 21: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

A propósito: ¿Medidas Anti-RevEng?

Page 22: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Medidas Anti-RevEng

● Caso: Appcelerator Titanium● Encriptación de todos los archivos JS para

luego concatenarlos en un CharBuffer ● Luego se extrae y desencripta cada

archivo a discreción● ¿Y la llave de cifrado?● ¿Tomar medidas Anti-Ingeniería Reversa

hace más segura la app?

Grassi, Guerrero, “The nightmare behind the cross platform mobile apps dream”, BLACKHAT Asia 2015

Page 23: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Mal uso de cifrado en reposo II

tp = <password_usuario>key = Ti.Utils.md5HexDigest(Ti.Platform.id + Ti.App.id)

Alloy.Globals.encriptarClaveECB = function(tp, key) { var a = require("aes"), e = require("mode-ecb"), b64 = Ti.Utils.base64encode(key), key = a.CryptoJS.enc.Base64.parse(b64.toString()), tc = a.CryptoJS.AES.encrypt(tp, key, {mode: e.ECB}); return tc.toString();}

Android_ID ID de la app

Page 24: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Timeout no/mal implementado

● O no hay timeout por inactividad

● O está mal implementado– Muestra mensaje pero

con el contenido de fondo

● 62% de los usuarios no bloquea sus equipos*

* Elgeman, Jain, Portnoff, Liao, Consolvo, Wagner, “Are you ready to lock?”

Page 25: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Problemas heredados de la banca web

● Largo de passwords inadecuadamente restringido– Y quién sabe cómo las almacenan

● Centro de datos para app móvil ubicado en el mismo servidor de banca web

● Uso de tarjeta de coordenadas como segundo factor de autentificación (“clave 2”)

Page 26: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

¿Por qué pasa todo esto?

Page 27: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Software

Seguridad

Page 28: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

“Mad Max: Fury Road”, Warner Bros, 2015.

Page 29: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Blbliografía interesante

● Lineberry, Richardson, Wyatt, “These aren't the permissions you're looking for”, DEFCON 18

● Zerial, “Bancos en Chile: La precaria seguridad de la banca en linea”

● NowSecure, “42+ Best Practices for Secure iOS and Android Development”

Page 30: Tu banca móvil, en forma simple y ¿segura? Estado de la seguridad en apps móviles bancarias

Gracias… totales. ¿Preguntas?Contacto: [email protected] - @InjenieroBarsa

Jan Vašek - CC0