Se dio a conocer la noticia de que Google a annoncé la libération du código fuente de los desarrollos relacionados avec le projet KataOScuyo objetivo es crear un sistema operativo seguro para hardware embebido.
Le système brinda soporte para plataformas basadas en arquitecturas RISC-V y ARM64. Pour simuler le fonctionnement de seL4 et l’entorno KataOS sur le matériel pendant le desarrollo, se utiliza el marco Renode.
C’est pourquoi l’implémentation de la référence est proposée avec le logiciel et le matériel complets Sparrow, qui combinent KataOS avec des puces basées sur la plate-forme OpenTitan. La solution proposéeace combinatoire possible d’un noyau de sistema operativo verificado lógicamente con componentes de hardware confiables (RoT, Root of Trust) construits utilise la plate-forme OpenTitan et l’architecture RISC-V.
Outre le code de KataOS, il est prévu d’ouvrir tous les composants de Sparrow, y compris le composant matériel, dans le futur.
Como base para este nuevo sistema operativo, elegimos seL4 como el microkernel porque pone la seguridad al frente y al centro ; está matemáticamente probado como seguro, con confidencialidad, integridad y disponibilidad garantizadas. A través del marco seL4 CAmkES, también podemos proporcionar componentes del sistema analizables y definidos estáticamente. KataOS proporciona une plate-forme sécurisée vérifiable que la protection de la confidentialité de l’utilisateur est logiquement impossible que les applications violent les protections de la sécurité du matériel du noyau et des composants du système sur des données sécurisées vérifiables.
La plataforma se está desarrollando teniendo en cuenta los chips spécialement diseñados para ejecutar aplicaciones de privacidad y aprendizaje automático que requieren un nivel específico de protección y garantía de que no hay fallas. Los sistemas que manipulan imágenes de personas y grabaciones de voz se dan como ejemplo de dichas aplicaciones. El uso de la verificación de confiabilidad en KataOS garantiza que, en caso de falla en una parte del sistema, esta falla no se extienda al resto del sistema y, en particulier, al kernel y las partes críticas.
L’architecture seL4 se destaca por mover partes para administrar los recursos del kernel en el espacio del usuario y aplicar los mismos controles de acceso para dichos recursos que para los recursos del usuario.
Le micro-noyau pas de proporciona abstracciones de alto nivel listas para usar para administrar archivos, procesos, conexiones de red y similares, sino que solo proporciona mecanismos mínimos para controlar el acceso al espacio de direcciones físicas, las interrupciones y los recursos del procesador. Las abstracciones de alto nivel y los controladores para interactuar con el hardware se implementan por separado in la parte superior del microkernel in forma de tareas a nivel de usuario. El acceso de tales tareas a los recursos available para el microkernel se organiza a través de la definición de reglas.
Pour une protection supplémentaire, tous les composants, à l’exception du micro-noyau, se décompose initialement en Rust utilizando técnicas de programación seguras que minimizan los errores cuando se trabaja con la memoria, lo que genera problemas como el acceso a un área de la memoria después de liberarla, la desreferenciación de punteros nulos y el desbordamiento del búfer.
El cargador de aplicaciones en el entorno seL4, los servicios del sistema, un marco de desarrollo de aplicaciones, una API para acceder a las llamadas del sistema, un administrador de procesos, un mecanismo de asignación de memoria dinámica, etc. están escritos en Rust . Para el montaje verificado se utiliza el toolkit CAmkES desarrollado por el proyecto seL4. Los componentes para CAmkES también se pueden crear en Rust.
La sécurité de la mémoire se proporciona en Rust en tiempo de compilación mediante la verificación de referencias, el seguimiento de la propiedad del objeto y la vida útil del objeto (alcance), así como mediante la evaluación de la corrección del acceso a la memoria durante la ejecución del código. Rust también brinda protección contra desbordamientos de enteros, Requiere que las variables se inicialicen antes de su uso, aplica el concepto de referencias y variables inmutables de forma predeterminada y ofrece tipado estático fuerte para minimizar los errores lógicos.
Finalmente para los interesados, deben saber que los componentes del sistema KataOS están escritos en Rust y se ejecutan sobre el microkernel seL4, para el cual se proporciona una prueba matemática de confiabilidad en los sistemas RISC-V, lo que indica que el código cumple completamente con las especificaciones especificadas en el lenguaje formal.
Le code du projet est ouvert à la licence Apache 2.0, vous pouvez consulter plus de détails sur le respect et le lien suivant.