Nos travaux ont pour but de fournir une solution aux problèmes de confidentialité dans les systèmes multi-applicatifs: assurer la sécurité des applications dédiées aux systèmes portables et autonomes en vérifiant des propriétés de sécurité en termes de flot d'information au moment du chargement des applications, contrairement aux travaux existants qui ne sont ni modulaires ni dynamiques. Afin de fournir un solution complète, nous avons traité les aspects à la fois pratiques et théoriques du problème. Dans un premier temps, nous proposons un modèle et un outil adaptés aux contraintes inhérentes aux systèmes embarqués. Notre approche est modulaire et supporte l'héritage et Ia surcharge. La vérification est donc incrémentale et s'effectue sur le système cible, le seul endroit ou la sécurité peut être garantie. Il s'agit à notre connaissance, du premier vérifieur embarqué pour l'analyse de flot d'information. Afin de prouver l'utilité pratique de notre modèle nous avons mené des expérimentations et nous avons testé l'outil dans des contextes différents. Dans un deuxième temps, nous traitons les aspects théoriques: nous proposons un modèle formel basé sur des graphes de l'abstraction de la mémoire. Un graphe de l'abstraction de la mémoire est un graphe « points-to» prolongé par des noeuds de type primitif et par des liens issus de flots implicites. Notre construction est prouvée correcte par un théorème de non-interférence. De plus, les politiques de sécurité ne nécessitent pas d'être connues pendant l'analyse: le flot d'information est vérifié a posteriori en étiquetant le graphe de l'abstraction de la mémoire avec des niveaux de sécurité. / This work aims at providing a solution to confidentiality issues in multiapplicative systems: ensuring security for an applications running on small and autonomous systems by verifying information flow properties at deployment time. Existing work on information flow does not scale to small open systems due to resources limitations and due to lack of modularity, which is essential in a dynamically evolving environment. ln order to provide a complete solution, we address both practical and theoretical aspects. We first propose a model and a tool dedicated to small open systems running Java bytecode, with support for inheritance and override. Our approach is modular, hence the verification is incremental and is performed on the target device, the only place where the security can be guaranteed. To our knowledge, it is the first information flow verifier for embedded systems. To prove its usability, we ran different experiments and we tested the tool in several contexts. Secondly, we tackle the information flow issue from a theoretical point of view. We propose a formal model, based on abstract memory graphs; an abstract memory graph is a points-to graph extended with nodes abstracting input values of primitive type and flows arising trom implicit flow. Our construction is proved correct with respect to non-interference. Contrary to most type-based approached, our abstract memory graph is build independently on any security level knowledge. Information flow is checked by labeling graphs a posteriori.
Identifer | oai:union.ndltd.org:theses.fr/2008LIL10106 |
Date | 04 December 2008 |
Creators | Ghindici, Dorina |
Contributors | Lille 1, Ryl, Isabelle, Grimaud, Gilles |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | English |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0021 seconds