Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ iOS Native Security Framework

Este framework proporciona una defensa en profundidad contra amenazas comunes en entornos iOS, tales como ingeniería inversa, manipulación de memoria e instrumentación dinámica. Implementa múltiples capas de seguridad para proteger la integridad de la aplicación.

📋 Tabla de Contenidos

  1. Módulos de Detección
  2. Arquitectura de Seguridad
  3. Implementación
  4. Configuración

🚀 Módulos de Detección

El sistema se compone de 8 detectores independientes que resuelven vulnerabilidades específicas en código nativo:

Módulo Vulnerabilidad Detectada Técnica Utilizada
DebuggerDetector Depuradores activos (LLDB) sysctl P_TRACED y ptrace PT_DENY_ATTACH.
JailbreakDetector Dispositivo comprometido Verificación de archivos (Cydia), permisos de escritura y URL Schemes.
EmulatorDetector Simuladores/Emuladores Verificación de variables de entorno y hardware del simulador.
IntegrityDetector Inyección de librerías Inspección de imágenes dyld en busca de firmas sospechosas.
TimingAnomalyDetector Breakpoints / Code Stepping Medición de latencia en operaciones matemáticas triviales.
EnvironmentDetector Manipulación de entorno Detección de variables DYLD_INSERT_LIBRARIES.
AntiTamperingProtector Re-firmado y Clonación Validación de Bundle ID y perfiles de aprovisionamiento.
FridaDetector Instrumentación Dinámica Escaneo de puertos (27042) y agentes Frida en memoria.
SwizzlingDetector Method Swizzling Verificación de implementaciones originales en tiempo de ejecución.

🏗️ Arquitectura de Seguridad

El SecurityManager actúa como un orquestador central que invoca cada uno de los detectores de forma asíncrona o secuencial durante el ciclo de vida de la aplicación.


🛠️ Implementación

1. Inicialización en AppDelegate

Se recomienda ejecutar la auditoría de seguridad lo antes posible para proteger el arranque de la app:

func application(_ application: UIApplication, didFinishLaunchingWithOptions ...) -> Bool {
    
    // Iniciar auditoría de los 8 módulos
    let isCompromised = SecurityManager.shared.runFullSecurityAudit()
    
    if isCompromised {
        // Respuesta ante amenaza: p. ej., limpiar datos y salir
        SecurityManager.shared.terminateWithSecurityPolicy()
    }
    
    return true
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages