fbpx
Buscar
Cerrar este cuadro de búsqueda.
Categorías
Blog

¡Trellix Advanced Research Center ha descubierto algo increíble!

De acuerdo a una reciente publicación de Trellix Advanced Research Center, Trellix Encontró una nueva clase de errores que permiten saltarse la firma de código para ejecutar código arbitrario en varios programas de la plataforma, lo que lleva a la escalada de privilegios y al escape de la sandbox en macOS e iOS. Esto significa que los hackers pueden acceder a información confidencial como mensajes, ubicación, historial de llamadas y fotos de un usuario.

Descubriendo una nueva clase de errores
En septiembre de 2021, Citizen Lab reveló FORCEDENTRY, un exploit de ejecución remota de código iOS sin clics que apuntaba a un activista saudí para infectar su iPhone con el malware Pegasus. Luego, colaboraron con Google Project Zero para analizar los exploits, lo que llevó a un par de publicaciones que detallaban los métodos utilizados en el ataque. La Parte 1 describió la explotación inicial del código de análisis de PDF y la Parte 2 expuso la evasión del sandbox.
Si bien se prestó mucha atención al primer exploit, nos interesó mucho más el segundo, ya que describía una manera de ejecutar dinámicamente código arbitrario en otro proceso que evitaba por completo la firma de código. Se utilizó NSPredicate, una clase que parece inocente y que permite a los desarrolladores filtrar listas de objetos arbitrarios. En realidad, la sintaxis de NSPredicate es un lenguaje de secuencias completo. La capacidad de generar y ejecutar código dinámicamente en iOS había sido una función oficial todo este tiempo.
Sin embargo, esto era solo el comienzo, ya que esta función reveló una clase completamente nueva de errores que rompe por completo la seguridad entre procesos en macOS e iOS.

El Sandbox Escape de FORCEDENTRY no fue la primera exploración de este comportamiento. CodeColorist, un prolífico investigador de seguridad del espacio de usuarios de iOS, diseñó un desafío para Real World CTF 2019 que involucraba la explotación de la mecánica de NSPredicate. Luego dio una charla y publicó el post de blog “See No Eval” en enero de 2021, que detallaba cómo usarlos para ejecutar código arbitrario. La esencia de esta investigación fue que los objetos NSExpression, los bloques de construcción de un NSPredicate, se podían usar para llamar a métodos arbitrarios en clases y objetos arbitrarios. Usando clases existentes en los marcos privados de Apple, era posible evitar la autenticación de punteros (PAC) y cualquier otra mitigación para llamar a cualquier función.

Sin embargo, el post también describe formas en que Apple ha mitigado la peligrosidad de estos objetos, a través de un protocolo llamado NSPredicateVisitor. Las clases que implementan este protocolo se pueden usar para verificar cada expresión y asegurarse de que sean seguras para evaluar. CodeColorist señala al final de su post que “Sin una validación adecuada, podría ser una superficie de ataque entre procesos para evitar TCC”.

Aunque se han implementado mitigaciones para evitar que se produzcan estas vulnerabilidades, se descubrió que estas medidas de seguridad pueden ser eludidas. La solución de seguridad más reciente de Apple, por ejemplo, utiliza una gran lista de denegación para prevenir el uso de clases y métodos específicos que podrían comprometer la seguridad.

Sin embargo, Trellix ha descubierto que estos nuevos mecanismos de seguridad pueden ser eludidos mediante el uso de métodos que aún no han sido restringidos. De este modo, se pueden eliminar todas las restricciones existentes, lo que permite el uso de los mismos métodos que antes. Este tipo de elusión fue asignado el número CVE-2023-23530 por Apple.

Además, se descubrió que casi todas las implementaciones de NSPredicateVisitor podían ser eludidas, lo que llegó a descubrir numerosas vulnerabilidades potenciales que aún se están explorando. Es importante tener en cuenta que estos problemas son graves, pero ya se están tomando medidas para solucionarlos.

Se encontraron varias vulnerabilidades en una nueva clase de errores de seguridad.
La primera de ellas se encuentra en coreduetd, un proceso que recopila datos sobre el comportamiento del dispositivo. Un atacante con ejecución de código en un proceso con los permisos adecuados, como Mensajes o Safari, puede enviar un NSPredicate malicioso y ejecutar código con los privilegios de ese proceso. Este proceso se ejecuta como root en macOS y da al atacante acceso al calendario, la libreta de direcciones y las fotos del usuario.

También se encontró un problema muy similar con impacto similar en contextstored, un proceso relacionado con CoreDuet. Este resultado es similar al de FORCEDENTRY, donde el atacante puede usar un servicio XPC vulnerable para ejecutar código desde un proceso con mayor acceso al dispositivo.

Los daemons appstored (y appstoreagent en macOS) también tienen servicios XPC vulnerables. Un atacante con control sobre un proceso que pueda comunicarse con estos daemons podría explotar estas vulnerabilidades para obtener la capacidad de instalar aplicaciones arbitrarias, potencialmente incluso aplicaciones del sistema.

También se detectaron vulnerabilidades de esta clase en servicios que pueden ser accedidos por cualquier aplicación, sin necesidad de permisos especiales. La primera está en OSLogService, un servicio XPC que puede usarse para leer información potencialmente sensible del syslog. Además, un atacante puede explotar una vulnerabilidad de NSPredicate en UIKitCore en el iPad. Al establecer reglas maliciosas de activación de escenas, una aplicación puede lograr la ejecución de código dentro de SpringBoard, una aplicación altamente privilegiada que puede acceder a datos de ubicación, la cámara y el micrófono, el historial de llamadas, fotos y otros datos sensibles, así como borrar el dispositivo.

Conclusión
Las vulnerabilidades mencionadas anteriormente representan una importante violación del modelo de seguridad de macOS y iOS, el cual se basa en que las aplicaciones individuales tengan acceso detallado a un subconjunto de recursos y que consulten servicios de mayor privilegio para obtener cualquier otra cosa.

Los servicios que aceptan argumentos NSPredicate y los verifican con insuficientes NSPredicateVisitors permiten que aplicaciones maliciosas y códigos de explotación derroten el aislamiento de procesos y accedan directamente a muchos más recursos de los que deberían permitirse. Estos problemas se abordaron en macOS 13.2 e iOS 16.3. Por lo tanto, sugerimos que todos los usuarios de iOS y macOS actualicen su software a las últimas versiones.

Trellix agradece a Apple por trabajar rápidamente con ellos para solucionar estos problemas.

Fuente: Trellix Advanced Research Center

Si desea asegurarse de que su empresa está protegida al máximo, le recomendamos agendar una llamada con uno de nuestros especialistas para conocer sobre nuestro servicio de consultoría de seguridad IT.

Nuestro equipo de expertos en seguridad informática estará encantado de ayudarlo a implementar las medidas necesarias para garantizar la seguridad de su negocio.

¡No dude en ponerse en contacto con nosotros hoy mismo para obtener más información sobre cómo podemos ayudarlo a proteger su empresa!

Agenda tu Reunión

Elige el día y hora que deseas para agendar tu reunión con uno de nuestros especialistas de negocio.
Completa la información solicitada para ser contactado.

Información de Contacto
Proyecto o Requerimiento
Día y Hora Preferida de Llamada