El intento de Samsung de evitar ataques en los teléfonos Galaxy modificando el código del kernel de Linux terminó exponiéndolo a más errores de seguridad, según Google Project Zero (GPZ).
Según los investigador de GPZ, Jann Horn, no solo los fabricantes de teléfonos como Samsung crean más vulnerabilidades al agregar controladores personalizados posteriores para el acceso directo de hardware al kernel de Linux de Android, sino que los proveedores estarían mejor utilizando las características de seguridad que ya existen en el kernel de Linux.
Fue este tipo de error el que Horn encontró en el kernel de Android en el Samsung Galaxy A50. Pero como él señala, lo que hizo Samsung es bastante común entre todos los vendedores de teléfonos inteligentes. Es decir, agregar código al código del kernel de Linux en sentido descendente que los desarrolladores de kernel en sentido ascendente no han revisado.
Incluso cuando estas personalizaciones posteriores están destinadas a agregar seguridad a un dispositivo, también introducen errores de seguridad. Las mitigaciones de seguridad del núcleo previstas por Samsung introdujeron un error de corrupción de memoria que Google informó a Samsung en noviembre.
Se parchó en la actualización de febrero de Samsung recién lanzada para teléfonos Galaxy. El problema afecta al subsistema de seguridad adicional de Samsung llamado PROCA o Process Authenticator.
Samsung describe el error, SVE-2019-16132, como un problema moderado que consiste en vulnerabilidades de uso libre y doble libre en PROCA. Este permite la «posible ejecución de código arbitrario» en algunos teléfonos Galaxy con Android 9.0 y 10.0.
Por cierto, la actualización de febrero también incluye un parche para una falla crítica en los «dispositivos TEEGRIS». Este se refiere al Trusted Execution Environment (TEE) en los teléfonos Galaxy más nuevos que contienen el sistema operativo TEE patentado de Samsung. El Galaxy S10 se encuentra entre los dispositivos TEEGRIS.
Android quiere orden con el código del kernel de Linux
Pero la nueva publicación de blog de Horn se centra en los esfuerzos en Android para reducir el impacto de seguridad de los proveedores que agregan un código único al núcleo.
«Android ha estado reduciendo el impacto de seguridad de dicho código. ¿Cómo? Al bloquear qué procesos tienen acceso a los controladores de teléfonos. Estps a menudo son específicos del proveedor», explica Horn.
Un ejemplo es que los teléfonos Android más nuevos acceden al hardware a través de procesos auxiliares dedicados. Estos son conocidos colectivamente como la Capa de abstracción de hardware (HAL) en Android. Pero Horn dice que los proveedores que modifican cómo funcionan las partes centrales del núcleo de Linux socavan los esfuerzos para «bloquear la superficie de ataque».
En cambio, sugiere que los fabricantes de teléfonos usen funciones de acceso directo al hardware que ya son compatibles con Linux, en lugar de personalizar el código del kernel de Linux.
Horn dice que algunas de las características personalizadas que Samsung agregó son «innecesarias» y que no afectarían al dispositivo si se eliminaran.
Él especuló que PROCA está destinado a restringir a un atacante que ya ha obtenido acceso de lectura y escritura en el núcleo. Pero reconoce que Samsung podría ser más eficiente al dirigir los recursos de ingeniería para evitar que un atacante obtenga este acceso en primer lugar.
:)«Creo que las modificaciones del kernel específicas del móvil serían mejores ya sea que se actualicen o se trasladen a los controladores de espacio de usuario, donde se pueden implementar en lenguajes de programación más seguros y/o sandboxed. Al mismo tiempo no complicarán las actualizaciones a las versiones más recientes del kernel», explicó Horn.