• No se han encontrado resultados

S31_CompTIA Mobile App Security+ for Android

N/A
N/A
Protected

Academic year: 2021

Share "S31_CompTIA Mobile App Security+ for Android"

Copied!
8
0
0

Texto completo

(1)

Presentación

Este curso enseña el conocimiento y las habilidades necesarias para crear de forma segura una aplicación móvil Android nativo, al tiempo que garantiza las comunicaciones de red seguras y servicios web back-end.

¿Qué se lleva el alumno?

Al finalizar el curso los alumnos podrán:

 Describir los principios fundamentales de la seguridad de las aplicaciones

 Describir el modelo de seguridad de los dispositivos Android

 Describir las amenazas comunes a la seguridad de aplicaciones móviles

 Desarrollar aplicaciones moderadamente complejas utilizando el SDK de Android

 Describir el modelo de seguridad de servicios Web y vulnerabilidades

 Implementar correctamente SSL / TLS para comunicaciones

 Utilizar las funciones de seguridad del sistema operativo Android y APIs

 Aplicar correctamente técnicas de codificación segura

 Evitar la retención de inseguridad de los datos en la memoria

 Describir las implementaciones comunes de criptografía como PKI

 Las reglas del juego de cifrado para el almacenamiento y / o comunicaciones

 Entender los permisos de control de acceso y de archivo

 Endurecer una demanda contra el ataque a los niveles apropiados para el modelo de riesgo de la aplicación

¿A quién va dirigido?

Este curso está dirigido a aquellos individuos con al menos 24 meses de experiencia en el desarrollo de aplicaciones, así como la familiaridad sólido con Java, el SDK de Android, y los principios de desarrollo de aplicaciones seguras.

S31_CompTIA Mobile App Security+ for

Android

(2)

Temario

Módulo 1.0: Mobile Application Security, SDLC, y modelos Threat

Módulo 1.1: Identificar las razones de la importancia del desarrollo móvil seguro

EE.UU. Requisitos reglamentarios: PCI, HIPAA, FFIEC, FISMA

Los requisitos internacionales: E.U. privacidad

Los requerimientos del negocio

Las expectativas del consumidor (incluyendo la privacidad)

Los riesgos de seguridad que son únicos o superiores para móviles

Dispositivo Perdido / robado (acceso físico)

Untrusted redes Wi-Fi (ataque DNS, MITM)

Los usuarios que ejecutan OS modificado (jailbreak)

Ataques relacionados con la telefonía (SMiShing, MitMo, fraude telefónico)

Módulo 1.2: Comparación de la gravedad relativa de los problemas de seguridad.

Interfaces Web sin protección

La vulnerabilidad a la inyección de SQL

El almacenamiento de contraseñas, datos sensibles sin cifrado

Transmisión sin cifrado (TLS / SSL)

Módulo 1.3: Explicar un proceso de desarrollo seguro durante todo el desarrollo de aplicaciones.

Las pruebas de seguridad / revisión sobre la liberación (y durante el desarrollo)

Los requerimientos del negocio

Especificaciones

Análisis de riesgos de arquitectura / modelo Threat

La revisión de código

Automatizado

Manual

Llevar a cabo las pruebas de seguridad

Fuzzing

Funcionalidad de la seguridad

Validación dinámica

Prueba basada en el riesgo

Las pruebas de penetración

Tipos de documentación

Políticas de seguridad reguladoras o corporativas o requisitos de privacidad

Schedule on-going security tests post-OS upgrades

(3)

Módulo 1.4: Resumir las mejores prácticas de seguridad generales.

Sanitizing input, input validation

Contextually appropriate output escaping

Buenas consideraciones de diseño:

Lógica en aplicaciones

Almacenamiento de variables

Diseño de base de datos

Depuración

El manejo de errores

Almacenamiento seguro

Comunicaciones seguras

Autenticación y autorización

Gestión de sesiones

Garantizar la aplicación e integridad de datos

Security by design vs. Obscurity

Sandbox

Módulo 1.5: Identificar los principales riesgos arquitectónicos en las debilidades de una aplicación.

Construir un diagrama de la arquitectura de una aplicación (incluidos los servicios de back-end), junto con descripciones de cada componente

Establecer una comprensión profunda y completa de la aplicación y sus componentes

Romper la arquitectura en zonas de seguridad específicas para la consideración individual

Para cada zona, articular y enumerar cada uno de los siguientes:

¿Quién tiene acceso a la zona?

¿Qué podría motivar a alguien para atacar el sistema?

¿Qué haría un objetivo atacante, específicamente, en cada zona?

¿Cómo podía ser atacado cada objetivo? (Proceso STRIDE Referencia de Microsoft)

¿Cuál sería el impacto en el negocio de un ataque con éxito?

¿Qué remedio podría aplicarse para reducir la probabilidad de un ataque exitoso?

Recomendar y justificar remedios basados en sus correspondientes probabilidades y magnitud del impacto contra sus costos para el negocio

Módulo 2.0: Android SDK, APIs y características de seguridad Módulo 2.1: Resumir la arquitectura de seguridad de Android.

El sistema y el nivel de seguridad del kernel

Sandbox

Firma de aplicaciones

Propósito

Gestión de claves

Permisos

(4)

Módulo 2.2: Explicar el modelo de permisos de Android.

API Protegidas

Solicitud de permisos

Definición de permisos

El uso de firmas

Niveles de protección

Resumir la administración de dispositivos de API

Finalidad y uso apropiado

Dejar el control de acceso al usuario para los datos sensibles

Comenzar la actividad de los contactos para permitir al usuario seleccionar un contacto para el uso de la aplicación, en lugar de requerir permisos para acceder a cada contacto

Iniciar la aplicación de la cámara para que el usuario tome una fotografía para su uso en la aplicación sin necesidad de permisos de cámaras

Módulo 2.3: Describir una comunicación segura inter-proceso.

Componentes públicos y privados

Proteger el acceso a:

Servicios

Receptores de radiodifusión

Actividades

Los proveedores de contenido

Bases de datos

Acceder con seguridad a los componentes de terceros con IPC

Tipos de ataques

Confused deputy

Intento de sniffing

Intento de hijacking

Divulgación de datos

Módulo 2.4: Implementar características comunes seguras.

Web view

KeyChain

Módulo 3.0: Servicio Web y seguridad de la red

Módulo 3.1: Resumir los riesgos en la realización de las comunicaciones Web y de red.

Borrar la transmisión de texto de los datos

Man-in-the-middle

Ataque de proxy Celular (archivo de suministro)

Validación insuficiente de los certificados / cadena de certificados

Compromiso SSL

Secuestro de DNS

(5)

Módulo 3.2: Implementar una sesión SSL con validación.

Cifrado / confidencialidad de datos

Aspectos básicos de la criptografía de clave pública, empleado en SSL

La comprensión de las amenazas contra las que el cifrado SSL protege

Autenticación del servidor (básico)

¿Cómo se verifican los certificados de servidor? (por defecto CA comprobación de la cadena)

La comprensión de las amenazas contra las que la autenticación del servidor SSL protege

Autenticación del servidor (avanzado)

Verificadores de nombre de host personalizados

Personaliza la confianza (configuración de aplicaciones de sólo confiar en ciertas certs)

Utilizar certificados con firma para la autenticación del servidor

Autenticación del cliente

Explicar conceptos básicos de la mutua autenticación SSL

La comprensión de las amenazas contra las que la autenticación de cliente SSL protege

Implementar certificado de cliente en almacén de claves de la aplicación

Implementar certificado de cliente en almacén de claves del sistema

Configurar la aplicación para presentar certificados de cliente para su autenticación

Módulo 3.3: Distinguir las protecciones de seguridad de sonido para la autenticación.

Explicar pros / contras y poner en práctica técnicas de autenticación / aplicación de dispositivos

SSL Mutual-autenticación para la autenticación de dispositivos cliente

Claves de la API de servicios Web para la autenticación de la aplicación cliente

Explicar ventajas / desventajas y aplicar técnicas de autenticación de usuario

Almacenamiento / acceder a las credenciales de usuario mediante AccountManager

La autenticación implícita

Autenticación basada en token utilizando OAuth

Módulo 3.4: Explicar las amenazas y las protecciones comunes para los servicios Web.

Explicar la validación de entrada

Necesidad de validación de entrada

Ley de Postel

Positivo (lista blanca) vs negativo (lista negra) de validación

Pros / contras de validación de lista blanca

Pros / contras de validación de lista negra

Explicar cross site scripting (XSS)

XSS almacenado

XSS reflejado

Las estrategias de prevención de XSS

Explicar cross site request forgery (ataques CSRF)

Ataque CSRF principios generales

Login CSRF

(6)

Módulo 3.5: Describir la correcta aplicación de la seguridad de sesión.

Token altamente aleatorio

Expirar el tiempo de espera o de salida

Almacenar en memoria no en datos

Evitar el token de usuario estático

UDID deprecation

Módulo 4.0: La seguridad de datos y el cifrado de la Implementación Módulo 4.1: Explicar cómo encriptar y hashing works.

Criptografía simmetryc-keys y public-key

Funciones de un solo sentido (por ejemplo, los hashes)

¿Por qué es el salting de contraseñas necesario?

La generación de claves, ¿por qué 10.000 rounds es mejor que 2.000?

Seguridad por diseño vs oscuridad

Módulo 4.2: Resumir los métodos para proteger los datos almacenados.

Certificados

Permisos y derechos de acceso

Seguridad de base de datos

Contraseñas de bases de datos SQL fuertes

Sanitizing inputs (detener SQL injection)

Encryption

Módulo 4.3: Distinguir la correcta aplicación de cifrado en una aplicación Android.

El cifrado de la aplicación (cuando se habilita de nuevo)

¿Por qué el uso de GPG / OpenPGP podría ser mejor que su propia versión?

El uso de algún valor conocido como el MEID a los datos oscuros, ¿mejor que nada?

La ofuscación del código para detener a alguien, invertir el algoritmo que está usando

Cómo almacenar contraseñas y claves para que no puedan ser extraídos de la aplicación

Cómo cifrar o hash de datos almacenados en bases de datos SQL

Verificando si la encriptación dispositivo está habilitada

Módulo 4.4: Implementar la seguridad de datos utilizando el modelo de permisos de Android.

Crear un permiso personalizado para su aplicación

Proteger un servicio con los permisos correctos

Conceder permiso temporal para abrir un archivo descargado

(7)

Módulo 5.0: Endurecimiento de aplicaciones e ingeniería inversa Módulo 5.1: Explicar la ingeniería inversa.

Explicar qué es la ingeniería inversa

Explicar las "buenas" razones para aplicaciones de ingeniería inversa

Explique las "malas" razones para aplicaciones de ingeniería inversa

Naturaleza de las plataformas Android y Java y por qué la ingeniería inversa es fácil

Explicar las técnicas básicas de la ingeniería inversa y enfoques

Proceso / etapas

Componentes de APK (clases, dex, certificados, manifiestos, diseños, tarros, bibliotecas nativas, recursos / activos, etc)

El análisis estático

Análisis Strings / recursos

Desmontaje

Descompilación

Pros y contras

Análisis dinámico

Areneros

Observando las comunicaciones de red

Emulador de Android

Depuración en vivo

Pros y contras

Entender la ingeniería forward (código => javac => dx => classes.dx) para entender la ingeniería inversa

Herramientas de ingeniería inversa apktool, dex2jar, jd-gui

Módulo 5.2: Explicar las contramedidas de la ingeniería inversa.

ProGuard

Explicar qué es ProGuard

Explicar por qué ProGuard puede hacer la ingeniería inversa más difícil

Implementar una instalación predeterminada de ProGuard en un proyecto Android

Explicar por qué los métodos nativos pueden hacer más difícil la aplicación ProGuard

Explicar por qué reflexión puede hacer la aplicación ProGuard más difícil

Las diferentes opciones que se pueden configurar en una configuración ProGuard

Proporcionar un ejemplo donde se debe modificar la configuración por defecto ProGuard

Explicar cómo las bibliotecas nativas impactan sobre la ingeniería inversa

Filtración de información

Eliminar / reducir Logcat login info

Eliminar / reducir depurar código

Eliminar / reducir las fugas stacktrace

Excepciones de captura

Las cosas que se utilizan para depurar aplicaciones ayudarán a revertir las aplicaciones

(8)

Explicar por qué la ingeniería inversa puede hacer la recuperación de contraseñas estáticas fácil

Explicar cuál es la información, contenida en una aplicación, que se puede recuperar a través de la ingeniería inversa

Explicar las ventajas y desventajas entre el almacenamiento, derivación, y la facilidad de suministro de información secreta

Módulo 6.0: Codificación Secure Java

Módulo 6.1: Explicar la estructura del lenguaje Java y desarrollo orientado a objetos.

Clases, objetos, métodos, campos

El manejo de excepciones, try / catch

Paquetes

Módulo 6.2: Demostrar el manejo adecuado de la información sensible.

Purgar información sensible de excepciones y de la memoria después de su uso

Evitar ingresar información altamente sensible

Módulo 6.3: Explicar las mejores prácticas de codificación segura de Java.

Denominación correcta

Limitar la extensibilidad de las clases y métodos

Definir envolturas alrededor de los métodos nativos

Obtener referencia adecuada para el almacenamiento externo como una tarjeta SD

Aislar código relacionado

Referencias

Documento similar

La segunda parte es “Back Office”, este tipo de CRM no se centra mucho en este punto, ya que conlleva las funciones de contabilidad y finanzas, lo que nos lleva a definir como

La mayoría de esas quemaduras ocurren cuando se deja el agua caliente del grifo y otros líquidos calientes al alcance de los niños.. Incluso el café y el té pueden estar lo

Toda exploración debe contar con un Estudio de Impacto Ambiental (EIA), con el objeto de conocer el potencial impacto ambiental de su puesta en operación. En el EIA se

La clase ProblemCursorWrapper extiende de la clase CursorWrapper; se ha diseñado para obtener los ejercicios que se pueden resolver de la base de datos por parte del Alumno.

ACTUAR: Tomar medidas para mejorar de forma continua el SGEn y la eficiencia energética en base a los resultados.. VERIFICAR: Monitorización de procesos, medición

Si siguen quedando personajes y hombres lobo, sigue el juego en la siguiente ronda, donde se vuelve a hacer de noche y vuelven a actuar los mismos personajes omitiendo los que

La torre de refrigeración para el agua de condensación de esta enfriadora, del tipo abierto, está situada en sala técnica abierta de planta tercera, junto con una segunda torre de

[r]