Simple Science

La science de pointe expliquée simplement

# Informatique# Cryptographie et sécurité# Systèmes d'exploitation

Un nouveau modèle pour l'isolation des applications

Présentation d'un cadre pour une meilleure isolation des applications et un partage efficace des ressources.

― 7 min lire


Isolation dans lesIsolation dans lesapplications modernesressources entre les applis.Un cadre pour le partage sécurisé de
Table des matières

Les systèmes d'exploitation (OS) sont super importants pour gérer comment le matos et les logiciels interagissent. Ils permettent à plusieurs applications de tourner en même temps sans se foutre en l'air les unes les autres. C'est crucial pour la sécurité et la performance. Au fil des ans, la communauté des systèmes a développé plein de techniques pour arriver à cette séparation, qu'on appelle l'isolation.

L'isolation, c'est vital parce que ça protège les applications les unes des autres. Mais avec de nouvelles manières de faire tourner les applications, comme les conteneurs et les machines virtuelles, la question de comment assurer une isolation efficace est devenue plus compliquée. Différentes méthodes offrent divers niveaux de séparation, et comprendre ça peut aider les devs à prendre de meilleures décisions.

Besoin d'une Nouvelle Approche

Avec l'émergence de nouveaux scénarios d'application, il faut créer de nouvelles formes d'isolation. Si chaque méthode d'isolation est traitée comme une entité à part, ça devient difficile de voir comment elles interagissent entre elles. Ça peut conduire à des problèmes de sécurité et de performance, car les ressources partagées peuvent créer des conflits.

Pour relever ce défi, un nouveau modèle est nécessaire. Ce modèle devrait permettre aux devs d'exprimer clairement le niveau de partage des ressources. Il devrait aussi aider à identifier le degré d'isolation requis pour des applications spécifiques.

Définir les Domaines de Protection

Au cœur de ce nouveau modèle, on trouve le concept de Domaines de Protection (DP). Un DP représente un ensemble de ressources qu'une application peut utiliser, comme la mémoire, les fichiers et la puissance de traitement. Chaque DP a son propre ensemble de ressources et des règles pour y accéder.

Par exemple, un DP pourrait être un processus qui tourne sur ton ordi. Chaque processus est isolé des autres, garantissant qu'aucun ne peut affecter l'autre directement. Mais ils peuvent partager des ressources sous-jacentes comme la mémoire ou les systèmes de fichiers.

Comprendre le Partage de ressources

Le partage de ressources, c'est quand deux ou plusieurs DP accèdent à la même ressource. Ça peut arriver à différents niveaux. Par exemple, deux processus pourraient partager un fichier dans un système de stockage ou une portion de mémoire. Le niveau de partage détermine à quel point les DP sont isolés les uns des autres.

Quand les DP partagent des ressources, il y a généralement trois types de partage :

  1. Isolation Faible : Deux DP partagent l'accès à certains objets, mais ne s'interfèrent pas directement. Par exemple, deux processus peuvent accéder au même fichier, mais leurs structures de données internes restent séparées.

  2. Isolation Forte : Deux DP ne partagent aucun objet ou ressource. Ils peuvent fonctionner indépendamment sans risque de s'affecter.

  3. Isolation Relâchée : C'est un juste milieu où deux DP pourraient partager certaines ressources mais pas assez pour compromettre leur fonctionnement.

Comprendre ces niveaux d'isolation est crucial pour construire des systèmes sécurisés et efficaces.

Relations de Ressources

Chaque DP a un ensemble de relations qui définissent comment les ressources interagissent entre elles. Ces relations aident à déterminer combien de partage a lieu entre les DP. Par exemple, si deux processus partagent un bloc de mémoire, cette relation doit être suivie pour s'assurer qu'ils ne se remplacent pas les données.

Les relations de ressources peuvent être visualisées dans un modèle où différentes ressources sont connectées en fonction de leurs niveaux de partage. C'est essentiel pour comprendre comment améliorer l'isolation entre les DP.

Le Spectre de l'Isolation

Avec ce nouveau modèle, on peut définir un spectre d'isolation. Ce spectre quantifie combien d'isolation existe entre deux DP en fonction des ressources qu'ils partagent. Ça permet aux devs de mesurer le degré d'isolation de manière plus structurée.

Par exemple, si deux DP ne partagent aucune ressource du tout, ils sont à une extrémité du spectre, ce qui indique une forte isolation. D'un autre côté, s'ils partagent beaucoup de ressources, ils sont à l'autre extrémité, ce qui indique une faible isolation. Ce spectre peut aider les devs à choisir le bon niveau d'isolation pour leurs applications.

APIs Unifiées pour Créer des DP

Pour mettre en œuvre ce nouveau modèle, une API unifiée peut être développée. Cette API permet aux devs de créer facilement de nouveaux DP, en spécifiant les ressources qu'ils veulent inclure et comment ces ressources doivent être partagées.

Grâce à cette API, un dev peut créer un nouveau DP pour une application, en choisissant le bon niveau d'isolation selon le spectre. Cette flexibilité permet une large gamme de configurations, facilitant le déploiement d'applications dans différents environnements.

Requêtes pour les Relations de Ressources

Le modèle inclut aussi la possibilité de faire des requêtes sur les relations de ressources. En interrogeant comment les ressources sont partagées entre les DP, les devs peuvent comprendre comment des changements sur un DP pourraient affecter un autre.

C'est particulièrement utile dans des environnements multi-locataires comme le cloud computing, où plusieurs applications tournent sur le même matériel. Savoir les relations de ressources aide à s'assurer que les applications ne se gênent pas accidentellement.

Mise en Œuvre sur un Microkernel

Le modèle a été mis en œuvre en utilisant un microkernel basé sur les capacités. Ce type de kernel n'a pas d'abstractions prédéfinies pour les processus ou les conteneurs, ce qui permet une approche plus flexible pour définir comment les ressources sont partagées.

Avec ce microkernel, les devs peuvent mettre en œuvre le nouveau modèle d'isolation tout en profitant des capacités existantes. Ça garantit qu'ils peuvent construire à la fois de nouveaux mécanismes d'isolation et utiliser ceux déjà existants tout en fournissant le niveau de séparation souhaité.

Cas d'Utilisation et Exemples

Les applications pratiques de ce modèle sont vastes. Par exemple, lors de la conception d'une architecture sans serveur, les devs peuvent choisir différents degrés d'isolation en fonction des ressources dont l'application a besoin.

Quand de nouveaux patterns de comportement d'application émergent, comme les microservices ou les architectures orientées événements, avoir un modèle clair pour l'isolation aidera les devs à créer des solutions répondant à des exigences spécifiques.

Conclusion

Le besoin d'une isolation efficace dans les systèmes d'exploitation est plus pertinent que jamais. À mesure que les applications deviennent plus complexes et que le partage de ressources augmente, avoir une compréhension claire de la gestion de l'isolation est crucial.

Le nouveau modèle pour définir les Domaines de Protection et leurs relations de ressources connexes fournit un cadre que les devs peuvent utiliser. Il établit un langage commun pour discuter et mettre en œuvre des mécanismes d'isolation.

En utilisant ce modèle, les devs peuvent s'assurer que leurs applications tournent en toute sécurité et efficacité tout en prenant des décisions éclairées sur le partage de ressources et les niveaux d'isolation. Cette approche va certainement mener à des systèmes mieux conçus à l'avenir.

Source originale

Titre: OSmosis: No more D\'ej\`a vu in OS isolation

Résumé: Operating systems provide an abstraction layer between the hardware and higher-level software. Many abstractions, such as threads, processes, containers, and virtual machines, are mechanisms to provide isolation. New application scenarios frequently introduce new isolation mechanisms. Implementing each isolation mechanism as an independent abstraction makes it difficult to reason about the state and resources shared among different tasks, leading to security vulnerabilities and performance interference. We present OSmosis, an isolation model that expresses the precise level of resource sharing, a framework in which to implement isolation mechanisms based on the model, and an implementation of the framework on seL4. The OSmosis model lets the user determine the degree of isolation guarantee that they need from the system. This determination empowers developers to make informed decisions about isolation and performance trade-offs, and the framework enables them to create mechanisms with the desired degree of isolation.

Auteurs: Sidhartha Agrawal, Reto Achermann, Margo Seltzer

Dernière mise à jour: 2023-09-17 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2309.09291

Source PDF: https://arxiv.org/pdf/2309.09291

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires