Ce mémoire présente une approche d'application de politiques de sécurité qui utilise une analyse de types basée sur un système de types multi-valeurs. Cette analyse est suivie d'une instrumentation lorsque nécessaire. Le langage cible est un langage impératif. Notre approche vise à réduire les faux-positifs générés par une analyse statique, et à réduire la surcharge d'exécution en n'instrumentant que lorsque nécessaire. Les faux-positifs surviennent dans l'analyse de systèmes informatiques lorsqu'une information est manquante durant la compilation, par exemple le nom d'un fichier, et par conséquent, son niveau de sécurité. L'idée principale de notre approche est de distinguer les réponses négatives des réponses incertaines. Au lieu de rejeter les commandes potentiellement non sécuritaires, elles sont identifiées et étiquetées pour la seconde phase de l'analyse. Les réponses négatives et positives sont traitées comme cela se fait d'habitude. Ce travail est une approche hybride d'application de politique de sécurité : les points potentiellement sécuritaires du programme détectés par notre analyse par typage sont instrumentés par la suite avec des tests dynamiques. Le système de typage sur lequel se base le nôtre a été présenté par Desharnais et al. [12]. Notre approche a été acceptée pour publication [7]. Dans ce travail nous présentons les modifications apportées au précédent travail et la phase d'instrumentation qui la complète. La nouveauté de notre approche est de rajouter un niveau de sécurité aux trois du travail précédent. Nous traitons les canaux et les variables de façon spéciale. Les programmes interagissent par le biais de canaux de communication. Des niveaux de confidentialité sont associés aux canaux plutôt qu'aux variables dont le niveau de sécurité est fonction de l'information qu'elles stockent. Notre analyse est sensible au flot. / In this Master thesis, we present an approach to enforce information flow policies using a multi-valued type-based analysis followed by an instrumentation when needed. The target is a core imperative language. Our approach aims at reducing false positives generated by static analysis, and at reducing execution overhead by instrumenting only when needed. False positives arise in the analysis of real computing systems when some information is missing at compile time, for example the name of a file, and consequently, its security level. The key idea of our approach is to distinguish between negative and may responses. Instead of rejecting the possibly faulty commands, they are identified and annotated for the second step of the analysis; the positive and negative responses are treated as is usually done. This work is a hybrid security enforcement mechanism: the maybe-secure points of the program detected by our type based analysis are instrumented with dynamic tests. The basic type based analysis has been reported by Desharnais et al. [12], this work deals with the modification of the type system and the instrumentation step. It has been accepted for publication [7]. The novelty of our approach is the handling of four security types, but we also treat variables and channels in a special way. Programs interact via communication channels. Secrecy levels are associated to channels rather than to variables whose security levels change according to the information they store. Thus the analysis is flow-sensitive.
Identifer | oai:union.ndltd.org:LAVAL/oai:corpus.ulaval.ca:20.500.11794/24956 |
Date | 20 April 2018 |
Creators | Godonou, Théophane Gloria |
Contributors | Desharnais, Josée, Tawbi, Nadia |
Source Sets | Université Laval |
Language | French |
Detected Language | French |
Type | mémoire de maîtrise, COAR1_1::Texte::Thèse::Mémoire de maîtrise |
Format | 1 ressource en ligne (xix, 100 pages), application/pdf |
Rights | http://purl.org/coar/access_right/c_abf2 |
Page generated in 0.0019 seconds