Android Security

Post on 14-Apr-2017

457 views 0 download

Transcript of Android Security

Marco Avendaño

Android SecurityFundamentals

Contexto móvil

Smartphones everywhere..

El mundo le pertenece a los móviles

¿Cuándo desarrollar Apps?

Tipos de aplicaciones móviles

Características de una App

Diseño Funcionalidad Rendimiento Seguridad

Seguridad en los móviles

“Hackear” una App

Herramientas para hacking

Categoría HERRAMIENTAS DE EJEMPLOApp Decryption / Unpacking / Conversion

ClutchAPKToolDex2jar

Static Binary Analysis, Disassembly, Decompilation

IDA Pro & Hex Rays (Disassembler/Decompiler)Hopper (Disassembler/Decompiler)JD-GUI (Decompiler)Baksmali (Disassembler)Info dumping: class-dump-z (classes), nm (symbols), strings

Runtime Binary Analysis

GDB (Debugger)ADB (Debugger)Introspy (Tracer/Analyzer)Snoop-It (Debugging/Tracing, Manipulation) Sogeti Tools (Dump key chain or lesystem, Custom ramdisk boot, PIN Brute force)

Runtime Manipulation, Code Injection, Method Swizzling, Patching

Cydia Substrate (Code Modication Platform) (MobileHooker, MobileLoader)�Cycript / CynjectDYLDTheos suiteHex editors

Jailbreak Detection EvasionxConBreakThroughtsProtector

Integrated Pen-Test Toolsets AppUse (Custom "hostile" Android ROM loaded with hooks, ReFrameworker runtime manipulator, Reversing tools)

Anatomía de un ataque móvil

https://www.nowsecure.com/resources/secure-mobile-development/primer/mobile-security/

Factores que afectan la seguridad

Aparición de nuevas formas de ataques por la tecnologías y nuevas funcionalidades del dispositivo.

Restricciones económicas y de tiempo: muchas veces solo les interesan el resultado y no su proceso de desarrollo.

Desarrollo personalizado: los emprendedores y empresas de desarrollo suelen utilizar librerías o código ya existente que no necesariamente estén probados.

Pro actividad del desarrollador, realizar pruebas y encriptación de datos.

¿Quiénes se ocupan de la seguridad?

Oficiales de seguridad Pentesters Auditores de seguridad Equipos de control de

calidad Administradores de

infraestructura Desarrolladores de

aplicaciones Usuarios

OWASP

Open Web Application Security Project.

Organización mundial, sin fines de lucro.

Busca promover la seguridad y generar conciencia.

Proyectos OWASP

Proyectos de documentación Guía OWASP OWASP Top 10 Métricas ..

Proyectos de desarrollo WebGoat GoadtDroid ..

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

Top Ten Mobile Risk

OWASP Mobile Top 10 Risks

M2 – Insecure Data Storage

M3 – Insufficient Transport Layer

Protection

M1 – Weak Server Side Controls

M4 – Unitended Data Leakage

M6 – Broken Cryptography

M7 – Client Side Injection

M5 – Poor Authorization and

Authentication

M8 – Security Decisions Via

Untrusted Inputs

M9 – Improper Session Handling

M10 – Lack of Binary Protections

1. Weak Server Side Controls

Debilidad en los controles del lado del servidor de la aplicación: La aplicación servidor a la cual se conecta el dispositivo

móvil de manera remota, no posee controles suficientes de seguridad.

La App podría enviar datos que el servidor no sepa procesar y por ende crear una condición de vulnerabilidad permitiendo inyectar y ejecutar código del lado del servidor.

2. Insecure Data Storage

Almacenamiento de datos inseguro: La App no almacena los datos de manera segura. Si alguien pierde el dispositivo, los datos podrían verse

comprometidos (fuga de información). En caso que se guarden datos sensibles de la aplicación,

que el usuario no debiera conocer o alterar, es viable que el usuario los pueda llegar a acceder o modificar sin autorización.

3. Insufficient Transport Layer Protection

Protección insuficiente en la capa de transporte: Al momento en que una App se conecta al servidor para

transmitir información, esta conexión no se realiza de manera segura.

Los datos en tránsito se encuentran en riesgo de ser interceptados, lo que deja los datos expuestos a fuga de información o modificación no autorizada de la misma.

4. Unintended Data Leakage

Fuga de datos involuntaria: La App puede perderse/modificarse debido a las

actualizaciones del sistema operativo, de los frameworks de software, o incluso del hardware (cuando es posible).

Estas actualizaciones ponen en riesgo o cambian el comportamiento de la aplicación.

5. Poor Authorization and Authentication

Autenticación y autorización pobres: La App no provee los niveles adecuados y necesarios de

autorización y autenticación. Los usuarios podría saltarse la autenticación de la

aplicación logrando acceso no autorizado y suplantación de identidad, o modificar los niveles de autorización logrando acceso no autorizado a información de la aplicación.

6. Broken Cryptography

Criptografía rota: La App no realiza un cifrado adecuado a la información

almacenada o transmitida (desde o hacia el dispositivo). Se puede lograr acceso no autorizado a información de la

aplicación.

7. Client Side Injection

Inyección del lado del cliente: La App no posee controles suficientes de seguridad para

la entrada o envío de datos al servidor,. Se podrían enviar datos que el servidor no procese

adecuadamente y permita realizar acciones sobre los datos contenidos en el servidor.

8. Security Decisions Via Untrusted Inputs

Decisiones de seguridad a través de entradas no confiables: La App podría recibir datos de entrada de varias fuentes. Si las entradas no son validadas previamente para ser

procesados por la aplicación, podrían poner en riesgo la seguridad de la información.

9. Improper Session Handling

Manejo de sesiones inapropiado: La App no provee los niveles adecuados y necesarios, por

lo cual una sesión de usuario válida podría ser interceptada y los datos transmitidos estarían en riesgo.

Un usuario no autorizado podría clonar una sesión válida de usuario, saltando con esto los controles de autenticación y autorización.

10. Lack of Binary Protections

Falta de protección en binarios: Cuando una persona no autorizada realiza cambios a los

binarios de la aplicación y modifica el comportamiento de esta.

Puede variar los datos enviados al servidor, para transmitirlos a un servidor alterno no autorizado, realizar cualquier tipo de modificación a la información, modificar la presentación de la aplicación e incluso llegar a permitir la fuga de la información.

Categorización de los riesgos

Risk Client Network Server

M1 – Weak Server Side Control X

M2 - Insecure Data Storage X

M3 – Insufficient Transport Layer Protection X

M4 - Unintended Data Leakage X

M5 - Poor Authorization and Authentication X X

M6 - Broken Cryptography X X X

M7 - Client Side Injection X

M8 - Security Decisions via Untrusted Inputs X X

M9 - Improper Session Handling X X

M10 - Lack of Binary Protections X

Top Ten Mobile Controls

OWASP/ENISA Mobile Top 10 Controls

C2 – Protect Authentication

Credentials

C3 – Protect Data in Transit

C1 – ID & Protect Sensitive Data

C4 – Strong AuthN, Sess, Mgt,

AuthZ

C6 – Secure 3rd Party Integration

C7 – Collect Consent for Use of

User Data

C5 – Secure Services and

Server

C8 – Protect For Pay Services

C9 – Secure App Distro / Update

C10 – Avoid / Safety Use

Interpreters

European Network and Information Security Agencyhttps://www.owasp.org/index.php/Projects/OWASP_Mobile_Security_Project_-_Top_Ten_Mobile_Controls

Seguridad en Android

Android: el mas popular

http://www.scientiamobile.com/page/movr-mobile-overview-report

Arquitectura de Android

Características del SO

Android es un plataforma basada en Linux y multiusuario. Cada aplicación tiene su propio user ID (UID). Dado que el UID es único, cada App se ejecuta en un

proceso separado y con diferentes permisos. Este mecanismo es denominado ‘application sandboxing’.

El sandbox permite, en condiciones normales, que no se pueda acceder a datos de otras aplicaciones.

Mecanismos esenciales (I)

OWASP risk Recomendations

M2 - Insecure Data Storage

• Implementar permisos de archivos cuidadosamente

M4 - Unintended Data Leakage

• Evitar el cacheo de:• Imagines de la camera• GUI Objects

M5 - Poor Authorization and Authentication

• Autenticación en el lado del servidor• Protocolo OAuth

M6 - Broken Cryptography • Sign Android APKs

M7 - Client Side Injection • Implement Content Providers Carefully

Mecanismos esenciales (II)

Riesgo OWASP Recomendaciones

M8 - Security Decisions via Untrusted Inputs

• Implementar cuidadosamente:• Intents• PendingIntents• Broadcasts

• Verificar Activities• Proteger Application Services• Evitar Intent Sniffing

M9 - Improper Session Handling • Autenticación periódica en el usa de web

services.

M10 - Lack of Binary Protections • Seguir la mejores practicas de los WebView

Mitigando vulnerabilidades

Validación de las entradas SQL injection

Permisos Normal Dangerous Signature Signature of System

Manejo de datos y credenciales del usuario Comunicación entre aplicaciones

Intents Content providers

Herramientas para la seguridad movil

MobiSec: https://www.owasp.org/index.php/Projects/OWASP_Mobile_Security_Project_–_MobiSec

Es un entorno para testear móviles, incluyendo dispositivos, aplicaciones y la infraestructura de soporte. El objetivo es proporcionar a los atacantes y los defensores, la posibilidad de probar sus entornos móviles para identificar las debilidades de diseño y vulnerabilidades.

Androick: https://www.owasp.org/index.php/OWASP_Androick_Project

Se centra en la automatización de las tareas de análisis forenses en lugar de pruebas de penetración. Se basa en automatizar la recuperación de artefactos forenses clave como archivos APK, datos de aplicaciones, bases de datos, y logs desde el dispositivo.

Goatdroid (I)

Goatdroid: https://www.owasp.org/index.php/Projects/OWASP_GoatDroid_Project

Son un buen punto de partida para los principiantes en la seguridad de aplicaciones Android.

Es un entorno de entrenamiento autónomo. El entorno ofrece dos implementaciones de ejemplo para

realizar practicas:FourGoats, una red social basada en la localización.Herd Financials, aplicación de banca móvil ficticia.

Estos proyectos ofrecen una amplia cobertura para la mayoría de los OWASP Top 10 mobile risk.

Goatdroid (II)

FourGoats

Recursos bibliograficos

Datos de contacto

marcoviaweb@gmail.com

@marcoviaweb

https://www.facebook.com/marcoviaweb

bo.linkedin.com/in/marcoviaweb

Muchas gracias !

Android SecurityFundamentals