Amazon, la archiconocida multinacional, ha anunciado la publicación como código abierto de Rex, que viene a ser una abreviatura de Trusted Remote Execution, Ejecución Remota Confiable en su traducción al castellano. Con esto sobre la mesa, uno ya puede intuir hacia donde va a ir el asunto.
Rex es básicamente un mecanismo que se encarga de verificar en tiempo de ejecución que los scripts cumplen con las políticas establecidas en Cedar, el lenguaje de políticas de código abierto desarrollado por la propia Amazon que está publicado bajo la licencia Apache 2.
La razón para crear Rex radica principalmente en el hecho de que los agentes de inteligencia artificial pueden terminar generando scripts de manera dinámica sin revisión humana por cada llamada al sistema, lo que abre la puerta la puerta a problemas como inyecciones e interpretaciones demasiado amplias de las tareas a ejecutar. Eso sí, aunque el foco está puesto sobre los agentes de inteligencia artificial, eso no quiere decir que los scripts enteramente hechos por humanos estén excluidos si así lo desea la organización de turno.
Rex se encarga de verificar los scripts, los cuales están escritos en Rhai y se ejecutan sobre el motor de este último, a través de una API proporcionada por el entorno de ejecución (runtime) para que cumplan con las políticas especificadas en Cedar. En lugar de ir por separado, Rex se apoya en el propio Cedar para definir los accesos permitidos a los scripts en Rhai. Con Rex se añade una capa adicional que impide a los scripts que se ejecutan a través del motor de Rhai interactuar de manera directa con el sistema anfitrión.
Esquema de Rex
En el repositorio de GitHub de Rex se expone que “los scripts se escriben en Rhai y se ejecutan dentro de un entorno aislado donde la E/S de archivos, el acceso a la red, la gestión de procesos y las consultas del sistema están controlados por comprobaciones de autorización detalladas de Cedar”. Las características principales resaltadas son la comprobación del acceso a los recursos en tiempo de ejecución con Cedar, el hecho de usar los descriptores de los ficheros en lugar de las rutas cuando sea posible para reducir los ataques de enlaces simbólico y de condición de carrera, además del hecho de funcionar de manera aislada (sandboxed) de forma los scripts no tienen acceso directo al sistema anfitrión a través del motor de Rhai, sino que todas las operaciones pasan por las API de Rust autorizadas.
Debido a que está construido con Rust, Rex es en realidad un crate que, según explica Amazon, puede ser instalado con Cargo en Linux y macOS con el comando cargo install rex-runner. El código fuente de Rex está publicado bajo la licencia Apache 2 y todos los detalles básicos están disponibles a través del anuncio oficial y repositorio de GitHub.
La entrada Amazon lanza Rex, un mecanismo de verificación de scripts en Rhai es original de MuyLinux


