Sobre el autor
Introducción
¿A quién va dirigido este libro?
Organización del contenido
Convenciones
Código fuente
Capítulo 1. Todo lo que sabe resulta equivocado
El mito de la monocultura
El modelo de seguridad de iOS
Componentes del modelo de seguridad de iOS
Seguridad en el dispositivo
Seguridad de datos
Seguridad de red
Seguridad de aplicaciones
Guardar la llave con el candado
Las contraseñas son señal de una seguridad débil
Cifrado de datos forenses
Los datos externos también corren riesgos
Piratear el tráfico
La información puede robarse... muy rápido
No confíe en nadie, ni siquiera en su propia aplicación
El acceso físico es opcional
Resumen
Parte I. Pirateo
Capítulo 2. Aspectos básicos de las vulnerabilidades en iOS
Por qué es importante aprender a acceder a un dispositivo
¿Qué es el jailbreaking?
Herramientas para desarrolladores
Jailbreaking para usuarios finales
Jailbreaking en el iPhone
Modo DFU
Anclado o sin anclar
Comprometer dispositivos e inyectar código
Crear código personalizado
Analizar su binario
Desensamblado básico
Mostrar las dependencias dinámicas
Volcado de tabla de símbolos
Cadenas de búsqueda
Probar su binario
Demonizar el código
Implementar código malicioso mediante un archivo tar
Obtener binarios firmados
Preparar el archivo
Implementar el archivo
Implementar código malicioso con un disco RAM
Crear una versión personalizada de launchd
Análisis del ejemplo launchd
Crear un disco RAM
Cargar un disco RAM
Resolución de problemas
Ejercicios
Resumen
Capítulo 3. Robo del sistema de archivos
Cifrado completo del disco
Unidad de estado sólido NAND
Cifrado de disco
Cifrado del sistema de archivos
Clases de protección
Dónde falla el cifrado de disco de iOS
Copia del sistema de archivos en directo
Programa de pirateo DataTheft
Desactivar el temporizador perro guardián
Activar la conectividad USB
Código del programa de pirateo
Personalizar launchd
Preparar el disco RAM
Creación de imágenes para el sistema de archivos
Copia del sistema de archivos
Programa de pirateo RawTheft
Código del programa de pirateo
Personalizar launchd
Preparar el disco RAM
Creación de imágenes para el sistema de archivos
Ejercicios
El papel de la ingeniería social
Técnica del dispositivo deshabilitado
Técnica del dispositivo desactivado
Técnica de uso de malware
Aplicación para obtener contraseñas
Resumen
Capítulo 4. Información forense y fuga de datos
Extracción de información geográfica de imágenes
Caché de GPS consolidada
Bases de datos de SQLite
Conexión con la base de datos
Comandos de serie de SQLite
Ejecución de consultas SQL
Archivos de bases de datos importantes
Contactos de la agenda
Combinar todo
Imágenes de la agenda de contactos
Datos de Google Maps
Eventos de calendario
Historial de llamadas
Base de datos de correos electrónicos
Adjuntos de correo y archivos de mensajes
Notas
Metadatos de las fotografías
Mensajes SMS
Marcadores de Safari
Caché de Spotlight y SMS
Cachés Web de Safari
Caché de aplicación Web
Almacenamiento de WebKit
Correo de voz
Ingeniería inversa sobre los restos de los campos de las bases de datos
Borradores SMS
Listas de propiedades
Archivos de listas de propiedades importantes
Otros archivos importantes
Resumen
Capítulo 5. Romper el cifrado
Herramientas de protección de datos de Sogeti
Instalación de las herramientas de protección de datos
Creación de la herramienta de obtención de contraseñas por fuerza bruta
Crear bibliotecas de Python
Extracción de claves de cifrado
Programa de pirateo KeyTheft
Personalizar Launchd
Preparar el disco RAM
Preparar el kernel
Ejecutar el ataque de fuerza bruta
Descifrar el llavero
Descifrar el disco
Descifrado de las copias de seguridad de iTunes
Superar el cifrado mediante Spyware
Programa de pirateo SpyTheft
Demonizar spud
Personalizar Launchd
Preparar el disco RAM
Ejecución del programa de pirate
Ejercicios
Resumen
Capítulo 6. Recuperación de archivos
Recuperar el registro HFS
Escarbar en el espacio vacío
Información recuperada más frecuente
Capturas de pantalla de aplicaciones
Listas de propiedades eliminadas
Grabaciones de voz y correos de voz
Caché de teclado eliminada
Fotografías y otra información personal
Resumen
Capítulo 7. Manipulación del tiempo de ejecución
Análisis de binarios
El formato Mach-O
Introducción a class-dump-z
Tablas de símbolos
Binarios cifrados
Cálculo de compensaciones
Volcado de la memoria
Copia del código descifrado de vuelta al archivo
Restablecer el valor de cryptid
Sacar partido al tiempo de ejecución mediante Cycript
Instalación de Cycript
Uso de Cycript
Superar bloqueos sencillos
Sustitución de métodos
A la caza de los datos
Variables de instancia
Métodos
Clases
Registro de datos
Implicaciones más graves
Almacenes de datos personales
Aplicaciones para el procesamiento de pagos
Banca electrónica
Ejercicios
Animaciones de SpringBoard
Respuesta automática de llamadas
Capturas de pantalla
Resumen
Capítulo 8. Sacar partido al tiempo de ejecución
Análisis de Objective-C
Variables de instancia
Métodos
Caché de métodos
Desensamblado y depurado
Escuchar a escondidas
Marco de trabajo subyacente de Objective-C
Interacción con Objective-C
Inyección de código malintencionado
Programa de pirateo CodeTheft
Inyección mediante un depurador
Inyección mediante ataque con el enlazador dinámico
Infección del dispositivo completo
Resumen
Capítulo 9. Pirateo del tráfico
Pirateo APN
Transferencia del programa de pirateo
Eliminación
Configuración de proxy sencilla
Ataque sobre SSL
SSLStrip
Proxy Paros
Advertencias del navegador
Ataque de la validación SSL a nivel de aplicación
Programa de pirateo SSLTheft
Pirateo de las clases HTTP base
Programa de pirateo POSTTheft
Análisis de la información
Drifnet
Compilación
Ejecución
Ejercicios
Resumen
Parte II. Seguridad
Capítulo 10. Implementación del cifrado
Solidez de las contraseñas
Precaución con los generadores de contraseñas aleatorias
Introducción a Common Crypto
Operaciones sin estado
Cifrado con estado
Cifrado mediante clave maestra
Cifrado geográfico
Cifrado geográfico con contraseña
Claves separadas en el lado del servidor
Protección de la memoria
Borrado de la memoria
Criptografía con claves públicas
Ejercicios
Capítulo 11. Técnicas para evitar los exámenes forenses
Borrado de archivos seguro
Borrado DOD 5220.22-M
Objective-C
Borrado de los registros de SQLite
Caché de teclado
Aleatorización de los dígitos del código PIN
El robo de datos y el pirateo de software es algo que sucede a diario y las posibilidades de que las aplicaciones iOS de su empresa sean vulnerables a ataques son muy altas. Los hackers tienen a su disposición un arsenal de herramientas que les permiten llevar a cabo tareas de ingeniería inversa, seguimiento y manipulación de aplicaciones mediante métodos que son desconocidos para la mayoría de programadores.
Esta obra incluye numerosos tipos de ataques en iOS, así como las herramientas y las técnicas utilizadas por los atacantes. Podrá aprender las prácticas recomendadas para proteger sus aplicaciones y descubrirá la importancia de entender a los hackers y de utilizar sus tácticas.