Tecnología

El canal oculto en el M1 de Apple es en su mayoría inofensivo, pero definitivamente es interesante

Logotipo de la línea M1 de Apple.

La nueva CPU M1 de Apple tiene un error que crea un canal oculto a través del cual dos o más aplicaciones maliciosas, ya instaladas, pueden transferirse información entre sí, según descubrió un desarrollador.

Las comunicaciones secretas se pueden realizar sin el uso de memoria de computadora, sockets, archivos o cualquier otra funcionalidad del sistema operativo, desarrolladores Hector martin dicho. El canal puede puentear procesos que se ejecutan como usuarios diferentes y con diferentes niveles de autorización. Estas propiedades permiten que las aplicaciones intercambien datos de formas que no se pueden detectar, o al menos sin un equipo especial.

Técnicamente es un defecto, pero …

Martin dijo que el error es en su mayoría inofensivo porque no se puede usar para infectar una Mac y no puede ser usado por exploits o malware para robar o alterar los datos almacenados en una computadora. Más bien, el error solo puede ser abusado por dos o más aplicaciones maliciosas que ya se han instalado en una Mac por medios no relacionados con el error M1.

Sin embargo, el error que Martin llama M1racles corresponde a la definición técnica de vulnerabilidad. Como tal, tiene su propia etiqueta de vulnerabilidad: CVE-2021-30747.

«Viola el modelo de seguridad del sistema operativo», dijo Martin en un post publicado el miércoles. «No debería poder enviar datos en secreto de un proceso a otro. E incluso si es inofensivo en este caso, no debería poder escribir en ningún registro del sistema de CPU desde el espacio de usuario».

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

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

Él continuó:

La vulnerabilidad es similar a un «buzón de correo» anónimo en el sentido de 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, debido a que ninguna otra aplicación utiliza este «buzón», no se pierden datos ni metadatos de otras aplicaciones. Por lo tanto, existe la restricción de que solo se puede usar como un canal de comunicación entre dos aplicaciones que se ejecutan en macOS. Sin embargo, ya existen tantas formas de comunicación de las aplicaciones (archivos, tuberías, sockets, …) que otro canal realmente no tiene un impacto negativo en la seguridad. Aún así, es un error que se puede utilizar incorrectamente como un canal de comunicación involuntario, por lo que creo que es justo llamarlo vulnerabilidad.

Un canal encubierto podría ser más preocupante en los iPhones, dijo Martin, ya que podría usarse para evitar el sandboxing integrado en las aplicaciones de iOS. En condiciones normales, una aplicación de teclado maliciosa no tiene forma de perder pulsaciones de teclas porque dichas aplicaciones no tienen acceso a Internet. El canal encubierto podría eludir esta protección reenviando las pulsaciones de teclas a otra aplicación maliciosa, que a su vez las envía a través de Internet.

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

¿Por qué diablos se puede acceder a un registro desde EL0?

El error se debe a un registro del sistema por clúster en las CPU ARM al que se puede acceder a través de 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 oculto, 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 mediante el uso de 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 cualquier cantidad de datos que solo esté limitada por la sobrecarga de la CPU. Las API de afinidad de núcleos de CPU se pueden utilizar para garantizar que ambos procesos estén programados en el mismo clúster de núcleos de CPU. Un PoC que demuestra este enfoque para lograr una transmisión de datos rápida y robusta está disponible aquí. Este enfoque puede lograr tasas de transferencia de más de 1 MB / s sin una gran optimización (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 acceder a EL0 fue más un error de lo previsto. No hay forma de parchear o corregir el error en los chips existentes. Los usuarios preocupados por la falla no tienen más remedio que ejecutar todo el sistema operativo como una máquina virtual configurada correctamente. Dado que la VM desactiva el acceso de invitados a este registro, el canal oculto finaliza. Desafortunadamente, esta opción tiene una grave penalización de rendimiento.

Martin se topó con el error cuando, en su calidad de administrador principal de Asahi Linux, estaba usando una herramienta llamada m1n1, un proyecto destinado a portar Linux a Macs basados ​​en M1. Inicialmente consideró que el comportamiento era una característica patentada y, por lo tanto, 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 nada de qué preocuparse. Las personas con dos o más aplicaciones maliciosas ya instaladas en su computadora están mucho más preocupadas. La vulnerabilidad es más notoria porque los errores de chip, técnicamente conocidos como erratas, están presentes en prácticamente todas las CPU, incluidas las nuevas, que tienen la ventaja de aprender de errores anteriores en otras arquitecturas.

Apple no ha respondido a una solicitud de comentarios, por lo que aún no está claro si la compañía planea arreglar o mitigar el error en las generaciones futuras de CPU. Para aquellos interesados ​​en más detalles técnicos, el sitio web de Martin ofrece un análisis profundo.

Más populares

To Top