S31_CompTIA Mobile App Security+ for Android

Documentos relacionados
Propuesta ANDROID ATC

Servicios de Seguridad de la Información

In-seguridad y malware en dispositivos móviles

Requisitos de control de proveedores externos

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

Curso Online. Desarrollo Seguro en Java

PROGRAMACIÓN PÁGINAS WEB CON PHP

AUDITORÍAS TÉCNICAS PARA LA CERTIFICACIÓN DE LOS SISTEMAS DE RECOGIDA DE INICIATIVAS CIUDADANAS EUROPEAS

Resumen del trabajo sobre DNSSEC

Programación páginas web. Servidor (PHP)

Seguridad del Protocolo HTTP

CONDICIONES TÉCNICAS PARA SERVICIO ILUMINACIÓN ZONAS WIFI PARA CLIENTES CORPORATIVOS. Vicepresidencia de Infraestructura

MS_20488 Developing Microsoft SharePoint Server 2013 Core Solutions

Diseño de aplicaciones móviles seguras en Android.

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

Protocolos y técnicas alternativas al WEP. En este capítulo se presentan algunos protocolos y técnicas que ofrecen mayores

Haga clic para modificar el estilo de título del patrón Haga clic para modificar el estilo de texto del patrón

Autenticación ultrarresistente para proteger el acceso a la red y la información corporativa

Guía de doble autenticación

Información sobre seguridad


PRIMEROS PASOS EN LA APLICACIÓN REA

PRIMEROS PASOS EN DELTA

Móvil Seguro. Guía de Usuario Terminales Android

Servicio de Notificaciones Electrónicas y Dirección Electrónica Habilitada

Propuesta de Implementación del Sistema de Banca Móvil para: Banca Universal.

Kaspersky Fraud Prevention for Endpoints

Microsoft SQL Server 2005

Ayuda Aplicación SIGI

Core Solutions of Microsoft SharePoint Server 2013 CURSO PRESENCIAL DE 25 HORAS

Gestió n de Certificadó Digital

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

AGESIC Área de tecnología

SEMANA 12 SEGURIDAD EN UNA RED

Información de Uso Interno elaborada por Credibanco. Divulgación limitada. PCI / DSS. (Payment Card Industry - Data Security Standard)

Resumen de los cambios de la versión 2.0 a la 3.0 de las PA-DSS (normas de seguridad de datos para las aplicaciones de pago)

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Desarrollo seguro en Drupal. Ezequiel Vázquez De la calle

BITDEFENDER GRAVITYZONE

Información sobre seguridad

Capitulo 1: Plataforma Android

Manual Terabox. Manual del usuario. Versión Telefónica. Todos los derechos reservados.

Gran número de usuarios accediendo a un único servicio y con un único protocolo. Servidores y clientes con distintos protocolos.

CL_50255 Managing Windows Environments with Group Policy

SISTEMAS IDEALES SISTIDE, S.A. SISTEMA GESTION DE USUARIOS

Encriptación en Redes

6.4 ESTRATEGIAS DE PRUEBA

MS_10748 Deploying System Center 2012, Configuration Manager

SERVICIOS DE RED E INTERNET TEMA 4: INSTALACIÓN Y ADMINISTRACIÓN DE SERVICIOS WEB

DECLARACIÓN DE PRIVACIDAD DE FONOWEB

CONFIGURACIÓN DEL NAVEGADOR PARA EL USO DE LA SEDE ELECTRÓNICA DE DEFENSA

Ayuda Aplicación Oposición de Inspectores

Tableau Online Seguridad en la nube

1

Creación y administración de grupos locales

Curso Online de Microsoft

Implementando iphone e ipad Descripción de seguridad

Session Hijacking: Secuestro de sesiones en aplicaciones web empresariales

OBJETIVOS DE APRENDIZAJE

Entidad Certificadora y Políticas Pertinentes

INFORME Nº GTI INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información

mope PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS Página 0 PASEO GENERAL MARTINEZ CAMPOS MADRID info@mope.

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

Hacking Ético Web. I Jornadas Tecnológicas CEEPS Carlos García García i52gagac@uco.es

CURSO SEGURIDAD DE REDES INFORMÁTICAS Y PROTECCIÓN DE COMERCIO ELECTRÓNICO. www qalamo com info qalamo com C José Abascal º Dcha

Norma NTC-ISO/IEC Sistema de Gestión de Seguridad de Información

QUÉ ES BAJO LLAVE? POR QUÉ SER CLIENTE DE BAJO LLAVE?

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

CURSO DE SQL SERVER 2005

Circular de Tecnología Pautas de seguridad para el desarrollo de aplicaciones Web

Ing. Cynthia Zúñiga Ramos

Edición 1 ES. Nokia y Nokia Connecting People son marcas comerciales registradas de Nokia Corporation

Mantiene la VPN protegida

Seguridad en los Dispositivos Móviles. <Nombre> <Institución> < >

Norma de seguridad de datos de la Industria de tarjetas de pago (PCI)

PARTE I. TECNICAS DE DESARROLLO

Fundamentos de programación Estudia las estructuras de control y cómo definir funciones en JavaScript.

1. CONFIGURACIÓN Y DESARROLLO FACTURACIÓN ELECTRÓNICA. a. CONFIGURACION DE SERVIDORES b. CERTIFICADO DIGITAL c. MODULO GENERADOR DOCUMENTOS XML d.

Tema 13. Programación segura para aplicaciones móviles

GESTION OPERATIVA. Niveles de gestión

Administración Local Soluciones

PRIMEROS PASOS EN DELTA

ESCUELA POLITECNICA DEL EJERCITO

Industria de Tarjetas de Pago (PCI) Normas de Seguridad de Datos para las Aplicaciones de Pago

Para qué XP_CRYPT y SQL Shield?

Seguridad en Servicios de Hosting

BIENVENIDOS! SITEPRO S.A.

Gestión de archivos (módulo transversal, MF0978_2)

Programación páginas web con ASP.NET 3.5 (C#)

Integración KNX - LYNX


Aplicaciones Móviles. Sesión 12: Acceso a datos

MS_10972 Administering the Web Server (IIS) Role of Windows Server

DCISERVICIOS, SA DE CV

ST28_Developing Microsoft SharePoint Server 2013 Advanced Solutions

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Seguridad en Sitios Web de Alto Tráfico. Ing. Enrique Hurtarte Juárez

iphone en la empresa Administración de dispositivos móviles

Proyecto de cifrado de tráfico SMTP entre MTAs RedIRIS

Transcripción:

S31_CompTIA Mobile App Security+ for Android 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. Requisitos previos Antes de asistir a este curso, los estudiantes deben tener conocimientos sobre programación JAVA, Android SDK, codificación SQL, lo esencial de seguridad móvil y de aplicación, y la aplicación de cifrado.

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

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 Sistema de archivos Application-defined Permisos de URI

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

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 Estrategias de prevención CSRF Explicar los ataques de inyección de comandos / SQL Fundamentos de la orden de inyección / SQL Validación de entrada como una estrategia de defensa Consultas con parámetros / sentencias preparadas

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

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 si se deja en el código Hacer man-in-the-middle (MITM) más difícil para el protocolo de red de ingeniería inversa Utilizar SSL para las comunicaciones a servidor Utilizar el bloqueo de certificado: codificar el certificado para el servidor Detectar las modificaciones del paquete Comprobar la integridad de APK MD5 / SHA checksum of application public key. Comprobar si los campos individuales coinciden. Password Storage

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