Précédent : Présentation générale et
objectifs Remonter : PROJET SATURNE, Système réparti tolérant
Suivant : Grands domaines d'application
Mots-clés : Tolérance aux fautes, sécurité,
réflexivité, protocole à métaobjet
Résumé : La technologie objet et plus particulièrement l'utilisation de protocole à métaobjets permet de définir et de réaliser des architectures de systèmes tolérant les fautes plus flexibles que suivant des approches traditionnelles. L'association de mécanismes peut se faire de façon transparente aux applications, les mécanismes peuvent être composés en fonction des besoins, les classes de base définies peuvent être réutilisées pour définir de nouveaux mécanismes.
Le développement d'applications réparties mêlant des mécanismes de tolérance aux fautes et de sécurité-confidentialité en suivant cette approche fait l'objet de nos travaux actuels. Nous l'avons abordé sous deux angles :
L'utilisation de cette approche permet ainsi d'aborder de façon claire la réutilisation et la composition de mécanismes. C'est un axe de recherche très prometteur tant d'un point de vue économique que sur le plan des possibilités de spécialisation et d'évolution des systèmes tolérant les fautes. Des perspectives nouvelles s'ouvrent avec la notion de réflexivité à la compilation qui permet de définir des protocoles à métaobjets plus riches que celui utilisé dans nos travaux actuels [3]. La définition d'un protocole à métaobjet propre à la tolérance aux fautes et considérant les standards de fait en matière d'architecture et de programmation répartie tel que CORBA constitue un axe prioritaire.
Mots-clés : Systèmes critiques, technologie
micronoyaux, validation, injection de faute
Résumé : L'utilisation de micronoyau du commerce pour concevoir et réaliser des systèmes opératoires est actuellement envisagée pour des systèmes critiques (systèmes avioniques embarqués, systèmes de contrôle-commande, etc.). Les applications critiques ainsi que des fonctions du système s'exécutant sur ce logiciel de base posent le problème de sa validation. L'analyse de son comportement en présence de fautes doit reposer sur des techniques appropriées d'injection de faute et l'amélioration du comportement observé nécessite la définition de mécanismes de détection d'erreur complémentaires, en s'appuyant par exemple sur une modélisation fonctionnelle et comportementale de ses fonctionnalités. La motivation de ces travaux résulte de la tendance actuelle, lors du développement de systèmes critiques de favoriser l'utilisation de composants sur étagère (COTS, Commercial Off The Shelf), y compris au niveau des logiciels exécutifs (cf.).
Participants : Yves Deswarte , Jean-Charles Fabre ,
Vincent Nicomette , David Powell , Eric Totel
Résumé : La protection constitue aujourd'hui l'une des composantes majeures des systèmes distribués, que ce soit pour la conservation de la confidentialité ou de l'intégrité des données. Cette protection passe par la réalisation de noyaux de sécurité dont le rôle est de mettre en oeuvre des mécanismes de contrôle d'accès définis par des politiques de sécurité. Le but des schémas d'autorisation définis par ces politiques est d'assurer certaines propriétés de sécurité dans le domaine considéré.
Nous avons élaboré un premier schéma d'autorisation mettant en oeuvre des noyaux de sécurité dans les systèmes d'objets distribués. Un système d'objets distribués est composé d'un ensemble d'objets dont la localisation est transparente aux utilisateurs. Certains de ces objets sont directement connus des utilisateurs (ce sont des objets persistants) et peuvent être invoqués grâce à des méthodes publiques. En revanche, il existe de nombreux objets temporaires, dédiés à la réalisation d'une action ponctuelle. De même, il existe des objets persistants mais dont la granularité est si fine que leur existence est totalement inconnue des utilisateurs d'un tel système.
Le schéma d'autorisation met en oeuvre deux niveaux de protection. La gestion des droits d'accès relatifs aux objets persistants et de forte granularité est prise en charge par un serveur d'autorisation. Le serveur d'autorisation est responsable de la fourniture aux utilisateurs des privilèges leur permettant d'accéder à des objets persistants. Ces privilèges seront délivrés seulement si l'utilisateur est autorisé à effectuer l'accès correspondant (le serveur d'autorisation gère une matrice de contrôle d'accès). Nous avons donné à ce serveur d'autorisation une grande souplesse quant à la gestion des droits d'accès, tout en garantissant au mieux le principe du moindre privilège.
Ce schéma d'autorisation est adaptable à différentes politiques de sécurité. En particulier, nous avons développé une politique obligatoire multi-niveau permettant de garantir des propriétés de confidentialité. Cette politique est une adaptation au modèle objet de la politique de Bell et LaPadula; comme elle affecte des labels aux différentes entités du système : habilitation pour les utilisateurs, classification pour les objets à état, intervalle de confiance pour les objets sans état et parenthèse pour les activités. La politique ainsi obtenue est plus souple que celle de Bell-LaPadula, en ce qu'elle autorise des flux d'information légitimes qui seraient interdits par une application directe de la politique de Bell-LaPadula. Mais elle est tout aussi efficace, puisqu'on peut montrer qu'elle interdit bien tous les flux d'information illégitimes.
Un autre schéma d'autorisation a été développé qui concerne cette fois la préservation de l'intégrité d'un système orienté objet, et en particulier vise à résoudre le problème de la coexistence de logiciels de criticité différente.
Résumé : La méthode d'évaluation quantitative de la sécurité que nous proposons repose tout d'abord sur une modélisation de la politique de sécurité dans le langage de la logique déontique. Cette spécification est complétée par une représentation des vulnérabilités du système sous la forme d'un graphe des privilèges. Ce graphe fait apparaître les différentes méthodes de transfert de privilèges existant dans le système d'information. Enfin, une mesure globale est obtenue à partir de ces représentations afin de fournir une évaluation quantitative de la sécurité du système d'information.
Afin de spécifier les objectifs de sécurité des systèmes d'information, ainsi que les mécanismes relatifs à la sécurité, nous proposons d'utiliser un formalisme logique, la logique modale, et plus précisément une de ses branches, la logique déontique. L'atout principal de ce formalisme est de faire coexister dans un même langage logique les formules usuelles de la logique propositionnelle et la notion plus riche de nécessité (et son dual, la possibilité) susceptible de prendre une sémantique d'obligation (et de permission), sans empêcher la description d'autres propriétés fonctionnelles du système. Ce formalisme semble particulièrement adapté pour l'écriture formelle d'une politique de sécurité. Son expressivité permet en effet de combiner des opérateurs exprimant des contraintes fortes sur le système décrit (correspondant à ses objectifs de sécurité) et une description plus traditionnelle du fonctionnement des mécanismes de sécurité et des propriétés de l'état de protection réel (éventuellement imparfait du point de vue des objectifs de sécurité).
Notre approche pour l'évaluation de la sécurité repose sur une
modélisation des vulnérabilités du système d'information sous
forme d'un graphe des privilèges. Le graphe des privilèges est un
modèle formel dans lequel les noeuds représentent des ensembles
de droits (ou privilèges), et les arcs des transferts de
privilèges. Ces transferts peuvent être licites (un utilisateur
ayant les privilèges B fait confiance à celui ayant les
privilèges A), ou implicites (B est un sous-ensemble de A), ou
encore illicites (le transfert est une attaque élémentaire). Un
poids peut être affecté à chaque transfert, selon la difficulté
et/ou le temps nécessaire à un attaquant pour exploiter la
méthode correspondant au transfert élémentaire de privilèges. Ce
graphe peut être analysé pour identifier les possibilités de
mettre en défaut les objectifs de sécurité du système. En effet,
à partir de la politique de sécurité, il est possible
d'identifier les attaquants éventuels, internes ou externes, et
les cibles potentielles (ensembles de privilèges sensibles). La
politique de sécurité peut être mise en défaut s'il existe au
moins un chemin depuis l'ensemble des privilèges d'un attaquant
jusqu'à une cible. A partir de ce graphe pondéré, il est possible
d'évaluer la sécurité comme étant la difficulté pour les
attaquants potentiels d'atteindre les cibles potentielles.
L'évaluation quantitative effectuée sur des données
expérimentales rassemblées dans un système informatique Unix de
grande taille ont d'ores et déjà montré que l'évolution de la
mesure permet d'identifier un certain nombre d'événements
pertinents pour la sécurité et liés à la vie opérationnelle du
système [8].
L'utilisation combinée d'un langage rigoureux et adaptable pour
la spécification d'une politique de sécurité et d'une méthode
d'évaluation quantitative adaptée à l'étude de la sécurité
opérationnelle permet également d'envisager la mise en oeuvre de
la méthode non seulement dans des systèmes informatiques, mais
également dans le cadre de systèmes d'information tels que ceux
que l'on rencontre dans les organisations. Il s'agit alors tout
d'abord de proposer une méthodologie d'analyse de la sécurité qui
permette de décrire les besoins de sécurité des organisations.
Ensuite, il importe fournir à l'administrateur de sécurité les
moyens d'évaluer la sécurité et d'étudier l'impact de
modifications éventuelles du fonctionnement de l'organisation
visant à réduire ou éliminer certaines vulnérabilités.