Vulnerabilidad en macOS permite al atacante generar clics sintéticos

Otra charla que revisamos en DEF CON 26 fue la del ex NSA, Patrick Wardle, quien explicó en su conferencia titulada: ”El mouse es más poderoso que la espada” una vulnerabilidad zero-day para sistemas macOS, la cual ejecuta clics y tecleos ”automáticos”, sin el consentimiento del usuario. 

El ya ex funcionario de la Agencia Nacional de Seguridad de Estados Unidos, explicó que se trata de una vulnerabilidad crítica para la versión High Sierra, la cual, mediante la modificación de dos líneas de código, permite a un atacante ”generar eventos de teclado y mouse para evadir mecanismos de seguridad y así descubrir la ubicación del usuario, robar sus contactos o incluso llegar a cargar una extensión en el kernel”.

Wardle, además enfatizó que la falla radica en la interfaz del usuario, y que el ataque no permite al atacante infectar el computador, sino que permite evadir la seguridad de un equipo ya infectado.

¿Cómo funciona?

macOS incluye una funcionalidad que permite a determinados programas, como AppleScript, generar clics sintéticos, estos tienen la capacidad de deshabilitar ciertas funcionalidades, como por ejemplo un proceso automatizado. El descubrimiento para este investigador, fue que macOS falla en la protección de esta funcionalidad para eventos como extracción de los contactos del usuario, el acceso al calendario, o a la ubicación en la que el computador esté conectado al WI-FI.

¿Cómo lo descubrió?

Tiempo atrás, Patrick había descubierto que a través de un código podía acceder a una función oculta en macOS: ”Mouse Keys”. Esta funcionalidad permite utilizar el cursor del mouse con el teclado, y de este modo realizar clics sintéticos, los que le ayudaban a evadir los avisos de seguridad. Posterior a eso Apple lanzó un parche en respuesta, y Wardle lo analizó, y encontró que un clic sintético incluye un comando hacia “abajo” y otro hacia “arriba”, que equivalen al movimiento de presión y liberación del botón del mouse, pero por error Wardle copió y pegó una parte del código incorrecta, ya que indicaba el comando hacia abajo dos veces.

Cuando ejecutó el código, el sistema interpretó el segundo comando hacia abajo como si fuese hacia arriba, logrando que se realice un clic. Y el error está en que ese comando, de dos veces hacia abajo que permiten el clic sintético, no es bloqueado por el sistema y permiten realizar un clic sintético para habilitar la instalación de una extensión en el kernel.

Posterior a eso, Patrick accidentalmente copió y pegó en dos oportunidades el código para un mouse sintético y se olvidó de modificar el valor de una advertencia que indicaría un evento “hacia arriba” del mouse. Y sin darse cuenta del error, “compiló y corrió el código y para su sorpresa generó un clic sintético en ‘permitir’.

Además de comprobar que el código de prueba permitía hacer clics para habilitar permisos como si fuera un humano, probó los clics sintéticos para técnicas de hacking más complejas.

¿Soluciones?

Por un lado el ex NSA utilizó la conferencia para dar los detalles de esta vulnerabilidad zero-day, sin reportarlo a Apple. Y por otro lado, se anunció que el próximo macOS, Mojave, mitigó la vulnerabilidad. Una nueva característica de seguridad será la “Carga de la extensión del kernel asistida por el usuario”.