El canal encubierto en el M1 de Apple es en su mayoría inofensivo, pero seguro que es interesante

Logotipo de la línea M1 de Apple.

La nueva CPU M1 de Apple tiene una falla que crea un canal encubierto que dos o más aplicaciones maliciosas, ya instaladas, pueden usar para transmitirse información entre sí, según descubrió un desarrollador.

La comunicación subrepticia puede ocurrir sin usar memoria de computadora, sockets, archivos o cualquier otra característica del sistema operativo, desarrollador Hector martin dicho. El canal puede puentear procesos que se ejecutan como usuarios diferentes y bajo diferentes niveles de privilegios. Estas características permiten que las aplicaciones intercambien datos de una manera que no se puede detectar, o al menos sin equipo especializado.

Técnicamente, es una vulnerabilidad pero …

Martin dijo que la falla es principalmente inofensiva porque no se puede usar para infectar una Mac y no puede ser utilizada por exploits o malware para robar o manipular los datos almacenados en una máquina. Más bien, la falla solo puede ser abusada por dos o más aplicaciones maliciosas que ya se han instalado en una Mac a través de medios no relacionados con la falla M1.

Aún así, el error, que Martin llama M1racles, cumple con la definición técnica de vulnerabilidad. Como tal, viene con su propia designación de vulnerabilidad: CVE-2021-30747.

“Viola el modelo de seguridad del sistema operativo”, explicó Martin en un publicación publicada el miércoles. “No se supone que pueda enviar datos de un proceso a otro en secreto. E incluso si es inofensivo en este caso, tampoco se supone que pueda escribir en registros aleatorios del sistema de la CPU desde el espacio de usuario”.

Otros investigadores con experiencia en CPU y otra seguridad basada en silicio estuvieron de acuerdo con esa evaluación.

“El error descubierto no se puede utilizar para inferir información sobre ninguna aplicación en el sistema”, dijo Michael Schwartz, uno de los investigadores que ayudó a descubrir las vulnerabilidades más serias de Meltdown y Spectre en las CPU de Intel, AMD y ARM. “Sólo se puede utilizar como canal de comunicación entre dos aplicaciones (maliciosas) coludidas”.

Continuó elaborando:

La vulnerabilidad es similar a un “apartado postal” anónimo, que permite que las dos aplicaciones se envíen mensajes entre sí. Esto es más o menos invisible para otras aplicaciones y no existe una forma eficaz de prevenirlo. Sin embargo, como ninguna otra aplicación utiliza este “apartado postal”, no se filtran datos ni metadatos de otras aplicaciones. Entonces, existe la limitación de que solo se puede usar como un canal de comunicación entre dos aplicaciones que se ejecutan en macOS. Sin embargo, ya hay tantas formas de comunicación de las aplicaciones (archivos, tuberías, sockets, …), que un canal más no impacta realmente negativamente en la seguridad. Aún así, es un error del que se puede abusar como un canal de comunicación no intencionado, por lo que creo que es justo llamarlo vulnerabilidad.

Un canal encubierto podría tener más consecuencias en los iPhones, dijo Martin, porque podría usarse para evitar el sandboxing que está integrado en las aplicaciones de iOS. En condiciones normales, una aplicación de teclado maliciosa no tiene medios para filtrar las pulsaciones de teclas porque dichas aplicaciones no tienen acceso a Internet. El canal encubierto podría eludir esta protección pasando las pulsaciones de teclas a otra aplicación maliciosa, que a su vez la enviaría a través de Internet.

Incluso entonces, las posibilidades de que dos aplicaciones pasen el proceso de revisión de Apple y luego se instalen en el dispositivo de un objetivo son inverosímiles.

¿Por qué diablos es un registro accesible por EL0?

La falla se debe a un registro del sistema por clúster en las CPU ARM al que se puede acceder mediante EL0, un modo que está reservado para aplicaciones de usuario y, por lo tanto, tiene privilegios de sistema limitados. El registro contiene dos bits que se pueden leer o escribir. Esto crea el canal encubierto, ya que todos los núcleos del clúster pueden acceder al registro simultáneamente.

Martin escribió:

Un par malicioso de procesos cooperantes puede construir un canal robusto a partir de este estado de dos bits, utilizando un protocolo de reloj y datos (por ejemplo, un lado escribe 1x para enviar datos, el otro lado escribe 00 para solicitar el siguiente bit) . Esto permite que los procesos intercambien una cantidad arbitraria de datos, limitados solo por la sobrecarga de la CPU. Las API de afinidad del núcleo de la CPU se pueden utilizar para garantizar que ambos procesos estén programados en el mismo clúster del núcleo de la CPU. Se encuentra disponible una PoC que demuestra este enfoque para lograr una transferencia de datos sólida y de alta velocidad aquí. Este enfoque, sin mucha optimización, puede lograr tasas de transferencia de más de 1 MB / s (menos con redundancia de datos).

Martin ha proporcionado un video de demostración aquí.

M1RACLES: ¡¡Mala manzana !! en una mala Apple (vulnerabilidad M1).

No está claro por qué se creó el registro, pero Martin sospecha que su acceso a EL0 fue un error y no intencional. No hay forma de parchear o corregir el error en los chips existentes. Los usuarios que están preocupados por la falla no tienen otro recurso que ejecutar todo el sistema operativo como una máquina virtual configurada correctamente. Debido a que la VM deshabilitará el acceso de invitados a este registro, el canal encubierto se elimina. Desafortunadamente, esta opción tiene una grave penalización de rendimiento.

Martin tropezó con la falla cuando estaba usando una herramienta llamada m1n1 en su calidad de director principal de Asahi Linux, un proyecto que tiene como objetivo portar Linux a Macs basados ​​en M1. Inicialmente pensó que el comportamiento era una característica patentada y, como tal, lo discutió abiertamente en foros de desarrolladores. Más tarde se enteró de que se trataba de un error que ni siquiera los desarrolladores de Apple conocían.

Una vez más, la gran mayoría de los usuarios de Mac (probablemente más del 99 por ciento) no tienen motivos para preocuparse. Las personas con dos o más aplicaciones maliciosas ya instaladas en su máquina tienen preocupaciones mucho mayores. La vulnerabilidad es más notable por mostrar que las fallas de los chips, técnicamente conocidas como erratas, residen en prácticamente todas las CPU, incluso en las nuevas que tienen el beneficio de aprender de errores anteriores cometidos en otras arquitecturas.

Apple no respondió a una solicitud de comentarios, por lo que aún no está claro si la compañía tiene planes de corregir o mitigar la falla en las generaciones futuras de la CPU. Para aquellos interesados ​​en más detalles técnicos, Martin’s sitio proporciona una inmersión profunda.

Leave a Reply

Your email address will not be published. Required fields are marked *