Extending Layered Attestation into ARM Application Run-Times
Este artículo presenta ARA, un ancla de tiempo de ejecución de aplicaciones basada en ARM que extiende la atestación respaldada por hardware desde el momento de la carga hacia la ejecución mediante el aprovechamiento de Extensiones de Superposición de Permisos para crear un dominio atestatado y protegido para la verificación de la integridad en tiempo de ejecución y la protección de secretos con una sobrecarga de rendimiento mínima.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
En el mundo de la informática moderna, la confianza suele establecerse en el preciso momento en que un programa se inicia. Cuando abres una aplicación en tu teléfono, el dispositivo comprueba para asegurar que el software es genuino y no ha sido manipulado antes de que siquiera comience a ejecutarse. Este proceso, conocido como atestación, se basa en una "raíz de confianza" respaldada por hardware, un fundamento seguro integrado en el propio chip que verifica la identidad del software. Sin embargo, una vez que se supera esa comprobación inicial y la aplicación comienza su labor, este alto nivel de seguridad suele desvanecerse. El dispositivo asume que el programa se está comportando correctamente, dejando un vacío donde actores malintencionados podrían potencialmente alterar el comportamiento de la aplicación, robar secretos o manipular datos sin que el sistema lo note. Durante años, la solución a este problema consistió en trasladar las tareas sensibles a entornos separados e aislados, pero hacer esto requería que la computadora cambiara constantemente de marcha entre diferentes zonas de seguridad, un proceso que era lento y agotaba la batería.
Un equipo de investigadores de la Universidad de Zúrich y Huawei ha desarrollado un nuevo enfoque para cerrar esta brecha, permitiendo que la seguridad persista durante toda la vida de una aplicación sin el pesado coste de rendimiento. Crearon un sistema llamado ARA, que establece una zona segura y protegida directamente dentro del propio espacio de memoria de la aplicación. Al utilizar una característica de hardware recientemente introducida en los procesadores ARM modernos, los investigadores permitieron que la aplicación albergue su propio guardia de seguridad de confianza que puede vigilar las acciones del programa y proteger claves sensibles en tiempo real. Su trabajo demuestra que es posible mantener un alto nivel de seguridad y verificar que una aplicación se está comportando correctamente mientras se ejecuta, todo ello operando casi a la misma velocidad que una aplicación no asegurada.
El desafío central que enfrentaron los investigadores fue cómo mantener un sistema de seguridad confiable aislado de una aplicación potencialmente comprometida sin obligarlos a comunicarse a través de una frontera lenta y distante. Los métodos tradicionales suelen depender de la ejecución del servicio de seguridad en un proceso completamente separado o en un enclave de hardware especializado. Si bien estos métodos son seguros, requieren que la computadora detenga la aplicación principal, cambie de contexto y se comunique a través de barreras complejas cada vez que se necesita una comprobación de seguridad. Este cambio constante crea un retraso significativo, lo que lo hace poco práctico para tareas que requieren decisiones frecuentes de una fracción de segundo, como monitorear cada paso que da un programa o desencriptar una transmisión de video en tiempo real. Los investigadores se dieron cuenta de que la solución residía en una nueva capacidad de hardware llamada Extensiones de Superposición de Permisos (Permission Overlay Extensions), que permite a un solo programa dividir su propia memoria en habitaciones distintas e aisladas con diferentes reglas de acceso, todas gestionadas por el propio procesador.
Utilizando esta tecnología, el equipo construyó ARA para que actúe como un ancla segura dentro del espacio de direcciones de la aplicación. Cuando la aplicación se lanza, un cargador de confianza configura primero el entorno, dividiendo la memoria en tres áreas distintas: una para el código de la aplicación no confiable, una para un punto de entrada controlado y otra para los servicios de seguridad. Luego, se instruye al procesador para que haga cumplir reglas estrictas en estas áreas. La aplicación principal puede leer y escribir sus propios datos, pero tiene totalmente prohibido tocar la memoria donde residen los servicios de seguridad. Crucialmente, la aplicación no puede cambiar estas reglas por sí misma. Incluso si un hacker logra inyectar código malicioso en la aplicación, ese código es físicamente incapaz de alcanzar el área segura o alterar los permisos que la mantienen a salvo. La única forma en que la aplicación puede interactuar con los servicios de seguridad es a través de una puerta específica y preaprobada que el sistema de seguridad controla.
Los investigadores probaron este sistema con dos escenarios distintos para ver cómo funcionaba en el mundo real. En el primer caso, simularon un servicio de transmisión de medios que necesitaba desencriptar contenido de video utilizando una clave secreta. Compararon su nuevo sistema contra el método estándar de usar un proceso separado para la desencriptación. Los resultados mostraron que el nuevo sistema era drásticamente más rápido. Para un archivo de video de dos horas, el método tradicional añadía varios segundos de retraso debido al constante cambio entre procesos, mientras que el nuevo sistema añadía solo una fracción de segundo. En el segundo caso, probaron un sistema que monitorea constantemente el comportamiento de la aplicación para asegurar que está siguiendo el camino correcto, una tarea que requiere miles de comprobaciones de seguridad por segundo. Aquí, el nuevo sistema fue aproximadamente treinta a cincuenta y cinco veces más rápido que el método tradicional. La ganancia de velocidad provino de eliminar la necesidad de cambiar entre diferentes procesos o pedir ayuda al sistema operativo; las comprobaciones de seguridad ocurrían directamente dentro del flujo de la aplicación, protegidas por el hardware.
El estudio también abordó cómo este sistema encaja en el panorama de seguridad existente de los dispositivos móviles. Los teléfonos modernos ya utilizan hardware para verificar que una aplicación es legítima cuando se instala o se lanza por primera vez. Los investigadores diseñaron su sistema para extender esta cadena de confianza existente. Cuando la aplicación comienza, el dispositivo verifica los servicios de seguridad de forma segura, tal como verifica la propia aplicación. Esto significa que un servidor remoto puede tener la certeza de que las comprobasiones de seguridad que ocurren dentro de la aplicación son genuinas y no han sido manipuladas. El sistema también incluye un método para entregar claves secretas de forma segura a la aplicación. Un servidor puede enviar una clave encriptada que solo la instancia específica y verificada de la aplicación puede desbloquear, asegurando que incluso si la aplicación se ejecuta en un dispositivo comprometido, el secreto permanezca a salvo dentro de la zona de memoria protegida.
Si bien el sistema muestra una gran promesa, los investigadores señalaron que la característica de hardware requerida aún no está disponible en ningún dispositivo comercial. Construyeron su prototipo utilizando un entorno simulado y un procesador físico modificado para demostrar que el concepto funciona. También reconocieron que su diseño actual asume que la aplicación se ejecuta en un solo hilo, y soportar múltiples hilos simultáneos requeriría ingeniería adicional para asegurar que las reglas de seguridad se mantengan correctamente para cada hilo. A pesar de estas limitaciones, el trabajo proporciona un plano práctico para un futuro donde las aplicaciones puedan ser tanto rápidas como seguras. Sugiere que el largo compromiso entre rendimiento y protección no es inevitable y que, con el soporte de hardware adecuado, podemos tener aplicaciones que protejan sus propios secretos y verifiquen su propia integridad sin ralentizar la experiencia del usuario.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.