1 puntos por GN⁺ 2023-12-28 | 1 comentarios | Compartir por WhatsApp

Cadena de ataque de 'Operation Triangulation'

  • Envía un archivo adjunto malicioso de iMessage para que una aplicación lo procese sin que el usuario lo note.
  • Este adjunto aprovecha la vulnerabilidad de ejecución remota de código CVE-2023-41990 en la instrucción de fuente TrueType ADJUST, no documentada y exclusiva de Apple.
  • Usa múltiples etapas escritas con programación orientada a retornos/saltos y el lenguaje de consultas NSExpression/NSPredicate para parchear el entorno de la biblioteca JavaScriptCore y ejecutar un exploit de escalamiento de privilegios escrito en JavaScript.
  • El exploit en JavaScript está ofuscado para ser completamente ilegible y minimizar su tamaño. Aproximadamente 11,000 líneas de código están dedicadas principalmente al análisis y la manipulación de JavaScriptCore y de la memoria del kernel.
  • Aprovecha la función de depuración DollarVM($vm) de JavaScriptCore para obtener desde el script la capacidad de manipular la memoria de JavaScriptCore y ejecutar funciones nativas de la API.
  • Está diseñado para soportar tanto iPhone antiguos como nuevos, e incluye una evasión de Pointer Authentication Code (PAC) para explotar vulnerabilidades en los modelos más recientes.
  • Aprovecha la vulnerabilidad de desbordamiento entero CVE-2023-32434 en las llamadas al sistema de mapeo de memoria de XNU (mach_make_memory_entry y vm_map) para obtener acceso de lectura/escritura, a nivel de usuario, a toda la memoria física del dispositivo.
  • Usa registros de memory-mapped I/O (MMIO) para evadir la Page Protection Layer (PPL). Esto fue mitigado como CVE-2023-38606.
  • Después de explotar todas las vulnerabilidades, el exploit en JavaScript puede realizar cualquier acción deseada en el dispositivo y, en lugar de ejecutar spyware, inyecta un payload que inicia el proceso IMAgent y borra los rastros del exploit en el dispositivo, o ejecuta el proceso Safari en modo invisible para redirigirlo a una página web con una siguiente etapa.
  • La página web contiene un script que verifica a la víctima y, si pasa la validación, recibe la siguiente etapa: el exploit de Safari.
  • El exploit de Safari usa CVE-2023-32435 para ejecutar shellcode.
  • El shellcode ejecuta otro exploit de kernel en formato de archivo de objeto Mach. Usa las mismas vulnerabilidades que CVE-2023-32434 y CVE-2023-38606. Es enorme en tamaño y funcionalidad, pero completamente distinto del exploit de kernel escrito en JavaScript. Aunque comparten las partes relacionadas, la mayor parte del código está dedicada al análisis y la manipulación de la memoria del kernel. Incluye varias utilidades de post-explotación, pero la mayoría no se usan.
  • El exploit obtiene privilegios de root y ejecuta otra etapa que carga el spyware.

El misterio y la vulnerabilidad CVE-2023-38606

  • Los modelos recientes de iPhone tienen protecciones de seguridad adicionales basadas en hardware para áreas sensibles de la memoria del kernel.
  • Esta protección evita que un atacante tome control total del dispositivo incluso si logra leer y escribir en la memoria del kernel.
  • El atacante evade esta protección de seguridad basada en hardware usando otra función de hardware del SoC diseñada por Apple.
  • El atacante evade la protección de memoria basada en hardware escribiendo datos, la dirección de destino y un hash de los datos en registros de hardware desconocidos de un chip que el firmware no utiliza.
  • Se cree que esta función de hardware desconocida probablemente fue pensada para depuración o pruebas por ingenieros de Apple o en fábrica, o que fue incluida por error.

Detalles técnicos

  • Varios periféricos del SoC ofrecen registros de hardware especiales que la CPU puede usar para operar estos dispositivos.
  • Estos registros de hardware están mapeados en memoria accesible por la CPU y se conocen como "memory-mapped I/O (MMIO)".
  • En los productos de Apple (iPhone, Mac, etc.), los rangos de direcciones MMIO de los periféricos se almacenan en un formato de archivo especial llamado DeviceTree.
  • La mayor parte del MMIO usado en el ataque no pertenece a ningún rango MMIO definido en DeviceTree.
  • No está claro cómo los atacantes descubrieron MMIO que el firmware no usa ni a qué periférico pertenecen esas direcciones MMIO.
  • Se confirmó que estos registros MMIO pertenecen a un coprocesador GPU.
  • Los atacantes usaron estos registros MMIO para evadir la Page Protection Layer (PPL) y para parchear entradas de la tabla de páginas.
  • La forma de calcular el hash hace que la función de hardware usada en el ataque realice una operación de acceso directo a memoria (DMA) hacia la ubicación solicitada.

Opinión de GN⁺

  • Esta investigación revela una cadena de ataque extremadamente sofisticada dirigida a iPhone. Es un hallazgo muy importante para los investigadores de seguridad y puede contribuir a reforzar la seguridad de los productos de Apple.
  • Sigue siendo un misterio cómo los atacantes descubrieron funciones de hardware que el firmware no utiliza. Esto subraya la importancia de la investigación en seguridad de hardware.
  • Este artículo ofrece contenido muy interesante para quienes se interesan por la seguridad de software y hardware. Los métodos de ataque altamente complejos y el proceso para analizarlos muestran la profundidad y la necesidad de la investigación en seguridad.

1 comentarios

 
GN⁺ 2023-12-28
Opinión de Hacker News
  • Lo sorprendente del abuso de MMIO

    • Los atacantes tenían capacidades de investigación extraordinarias o, más probablemente, hackearon a Apple para obtener documentación interna del hardware.
    • Apple sabía que esta función era peligrosa, la ocultó y la protegió adicionalmente con una función de firma digital.
    • Sin decapsular el silicio y hacer ingeniería inversa, sería imposible encontrar esta función, por lo que existe la posibilidad de que hayan hackeado a desarrolladores para robar documentación interna.
    • La forma de volver a comprometer el sistema a través de Safari usando otra cadena de vulnerabilidades sugiere una organización grande y muy segmentada internamente.
    • Considerando que los investigadores son rusos, es probable que esto sea trabajo de la NSA o del GCHQ.
    • El malware puede activar el rastreo publicitario y detectar servicios de iPhone en la nube usados frecuentemente por investigadores de seguridad.
    • La plataforma de malware para iOS/macOS se ha desarrollado durante más de 10 años y usa ML en el dispositivo para reconocimiento de objetos y OCR en fotos, sin subir los bytes de las imágenes.
    • No estoy de acuerdo con la afirmación de que la ocultación mediante seguridad no funciona. Esta plataforma se usó sin ser detectada durante 10 años.
  • Resumen en Twitter de Steve Weis

    • La vulnerabilidad de iMessage es sorprendente: incluye una vulnerabilidad de TrueType que existe desde los 90, 2 vulnerabilidades del kernel, una vulnerabilidad del navegador y una función de hardware no documentada que no se usaba en el software publicado.
  • Explicación sobre Coresight

    • Coresight no es una puerta trasera, sino una función de depuración de todas las CPU ARM.
    • Parece ser una extensión de Coresight necesaria para funcionar junto con las funciones de protección de memoria de Apple.
    • Aunque no haya documentación pública, miles de ingenieros de Apple probablemente tendrían acceso a una versión modificada de gdb u otras herramientas para aprovecharlo.
  • Especulación sobre la posibilidad de descubrir registros MMIO

    • Pregunta sobre si habría sido posible descubrir registros MMIO explorando al azar todas las direcciones de registros.
    • Solo con diferencias de timing habrían podido saber que una dirección era válida, y como era un hash de 20 bits, también habrían podido resolverlo por fuerza bruta.
  • Duda sobre el uso de hash de datos en funciones de depuración del chip

    • Se cuestiona cuál sería el propósito de usar hash en una función de depuración que debería desactivarse en producción.
    • No soy ingeniero electrónico, pero lo mejor en una función de depuración es que opere de forma simple y rápida para minimizar la interferencia.
    • Es muy poco probable que un atacante de la cadena de suministro haya podido implantar esto en todos los chips de Apple.
  • Observación sobre las características del algoritmo hash

    • Cuando todos los datos son 0, el valor hash también es 0, y para un solo bit toma un único valor de la tabla sbox.
    • Es posible que este algoritmo hash haya podido ser objeto de ingeniería inversa incluso sin documentación interna.
  • Admiración por el esfuerzo de los atacantes

    • Curiosidad sobre si estos atacantes sentirán frustración por no recibir reconocimiento por su trabajo.
  • Explicación de la función aprovechada por los atacantes

    • Los atacantes pueden eludir la protección de memoria basada en hardware y escribir datos en direcciones físicas específicas.
    • Lo hacen escribiendo datos, la dirección de destino y un hash de los datos en un registro de hardware desconocido del chip que no se usa en el firmware.
  • Importancia de la nueva vulnerabilidad descubierta

    • Más importante que obtener una vulnerabilidad recién descubierta es saber si tus propias vulnerabilidades pueden verse comprometidas.
    • Eso puede ayudar a prevenir operaciones de contrainteligencia.