Module « politiques de sécurité »
L’expression d’une politique de sécurité est une étape incontournable dans la conception d’un système d’informations devant répondre à des exigences de confidentialité, d’intégrité et de disponibilité. Le cours propose une démarche formelle et rigoureuse pour exprimer une politique de sécurité globale et cohérente. Nous distinguons les exigences de contrôle d’accès, de contrôle d’usage et de contrôle de flux et nous présentons les différents modèles formels permettant d’exprimer ces différentes exigences. Les techniques pour déployer des exigences de sécurité dans un systèmes d’information sont expliquées, notamment dans le cas des systèmes d’exploitation et de gestion de bases d’informations.
Intervenants potentiels : Frédéric Cuppens et Nora Cuppens.
Pré-requis : Techniques de modélisation et de preuve en logique, Base de données (SQL), Principes de fonctionnement d’un système d’exploitation.
Organisation et description du cours :
- Contrôle d’accès (4h) : concepts de politiques et propriétés de sécurité, modèle discrétionnaire, RBAC, OrBAC, gestion de conflit, délégation et administration de droits
- Contrôle de flux (4h) : Problématique des chevaux de Troie et des canaux cachés, confidentialité (Bell et LaPadula, Non Interférence, Causalité, DTE), intégrité (Biba, Clark- Wilson), muraille de Chine
- Contrôle d’usage (2h) : modèles (UCON, Nomad), disponibilité (exigences en temps fini, en temps borné, gestion des obligations et violation)
- Mise en oeuvre du contrôle d’accès (6h) : architecture AAA, langage d’expression de droits (XaCML, DAC-SQL, RBAC-SQL), déploiement de politiques
- Mise en oeuvre du contrôle de flux (4h) : système d’information multi-niveaux, confinement, architecture Flask et GFAC.
Module « cryptographie »
Les objectifs de ce module sont multiples. En premier lieu, il s’agit de donner les principes fondamentaux de la cryptographie moderne, en mettant l’accent sur l’utilisation concrète de ces principes, ainsi que leurs limites. Ensuite, sont introduits les protocoles cryptographiques, ainsi que les attaques classiques auxquels ils sont sujets, justifiant le besoin de preuve de protocoles. La partie suivante traite précisément de cet aspect preuve de protocoles cryptographiques, et détaillant plus particulièrement l’approche à base de model-checking. Finalement, l’utilisation des protocoles cryptographiques est présentée dans le contexte de groupes d’utilisateur.
Intervenants : Christophe Bidan, Marc Joye, Valérie Viet Triem Tong.
Pré-requis : Aucun.
Organisation et description du cours :
- Rappel des principes fondamentaux de cryptographie (4h) : cryptographie symétrique, cryptographie asymétrique, fonctions de hachage...
- Cryptographie appliquée (4h) : Cryptographie symétrique vs. asymétrique, choix des algorithmes, standards, taille des clés, limites de la cryptographie...
- Protocoles cryptographiques (4h) : authentification, certification, échange de clés, attaques classiques, preuves à apport nul de connaissance...
- Preuve des protocoles cryptographique (4h) : modèle formel, preuve de propriétés par model-checking, validation.
- Protocoles appliqués / Cas d’étude (4h) : cryptographie à seuil, authentification de groupe, chiffrement de groupe, signature de groupe, certification de groupe...
Module « sécurité du logiciel »
L’objectif du cours est d’enseigner les notions fondamentales de l’analyse statique de programmes (sémantique opérationnelle, interprétation abstraite, systèmes de types) et de montrer comment ces techniques sont utilisées pour améliorer la sécurité des logiciels embarqués (byte code Java, C, etc.). À la fin du cours, l’étudiant sera capable d’écrire une sémantique opérationnelle d’un langage de programmation et de définir un système de types et des analyses statiques pour ce langage d’une manière systématique, en s’appuyant sur la théorie de l’interprétation abstraite. Le cours utilisera le byte code Java comme étude de cas et présentera une gamme d’analyse statique pour ce langage (vérification de type du byte code, analyse de flux d’information, analyse virale) ainsi que leur utilisation pour sécuriser un code et éviter certaines failles de sécurité.
Intervenants potentiels : D. Pichardie, T. Jensen, E. Filiol.
Pré-requis : cours de compilation, connaissances souhaitables en sémantique opérationnelle.
Mots-clés : sémantique opérationnelle, interprétation abstraite, systèmes de types, vérification du byte code Java, flux d’information, sécurité des langages de programmation.
Organisation et description du cours :
- Sémantique opérationnelle (2h) : sémantique opérationnelle à petit pas et sémantique naturelle pour un simple langage impératif et pour le lambda calcul ; équivalence sémantique ; sémantique du byte code Java.
- Interprétation abstraite (6h) : analyse de flot de données (variables vivantes, expressions disponibles) ; théorie de treillis (connexions de Galois, calcul de points fixes) ; conception d’interprétations abstraites pour un langage impératif ; analyse relationnelle (polyèdres, octogones) ; analyse inter-procédurale ; analyse d’alias.
- Systèmes de types (2h) : lambda calcul simplement typé ; polymorphisme ; invariance et correction par typage, inférence de type ; unification.
- Sécurité logicielle (10h) : vérification du byte code Java ; analyse de flux d’information et canaux cachés ; attaques basées sur l’obfuscation de types ; détection de virus et virologie informatique.
Module « disponibilité / gestion des droits numériques »
Ce cours comporte deux parties distinctes de 10h chacune : la première traite de la disponibilité des systèmes et services applicatifs, et la deuxième de la protection des documents (réglementation de l’accès à ces contenus, droits d’auteur, traçage de fraudes).
Disponibilité des systèmes
Ce cours aborde le problème de la disponibilité qui est l’un des attributs majeurs de la sûreté de fonctionnement. L’accent est mis sur la conception et l’utilisation de mécanismes de redondance en présence de fautes transitoires qui peuvent être de nature accidentelle ou intentionnelle. L’essentiel du cours est consacré à l’étude des solutions logicielles permettant d’assurer la disponibilité d’un service critique accédé par des entités extérieures. Les mécanismes de tolérance aux fautes sont analysés aussi bien du point de vue de leurs architectures globales que du point de vue des problèmes algorithmiques fondamentaux qu’ils nécessitent de résoudre.
Intervenants : Eric Totel, Frédéric Tronel.
Pré-requis : connaissances de base en algorithmique des systèmes distribués fiables.
Organisation et structure du cours :
- Définitions et architectures des solutions (4h) : Après un rappel des concepts liés à la sûreté de fonctionnement et plus particulièrement à la notion de disponibilité, nous considérons tour à tour les fautes accidentelles (pannes matérielles et erreurs de conception) puis les fautes intentionnelles (comportements arbitraires) en présentant des mécanismes assurant la tolérance aux défaillances (détection, recouvrement, masquages) puis des mécanismes de détection (diversification fonctionnelle) et de tolérance aux intrusions (fragmentation-redondance-dissémination).
- Calculabilité dans des environnements asynchrones non fiables (6h) : Les solutions décrites se heurtent toutes à des problèmes de maintien de la cohérence entre des copies distribuées. Pour résoudre ces problèmes, il faut, en particulier, apporter auparavant des solutions à divers problèmes d’accord. Outre le fait de présenter des solutions algorithmiques mettant en oeuvre des paradigmes classiques (réutilisables dans d’autres contextes applicatifs), notre objectif est de mettre en lumière les résultats d’impossibilité associés à ce type de problème et les stratégies adoptées pour les contourner (accroître les hypothèses ou affaiblir la spécification du problème). Une étude des fautes arbitraires transitoires sera l’occasion d’identifier les relations qui peuvent exister entre des mécanismes assurant la disponibilité et des mécanismes de recouvrement.
Protection des contenus
Ce cours aborde les outils permettant de gérer la diffusion de documents numériques, que ce soit pour contrôler l’accès à ces derniers, faciliter la gestion et la protection des droits d’auteur qui leurs sont associés, lutter contre les fraudes par des techniques de traçage.
Intervenants potentiels : A. Durand ou M. Karroumi, C. Fontaine ou T. Furon.
Pré-requis : les bases de la cryptographie (chiffrement, signature, protocoles).
Positionnement par rapport aux autres modules : les bases de la cryptographie devant être acquises, il est souhaitable que ce cours ait lieu après le module « crypto, protocoles crypto et preuves de protocoles ».
Mots-clé : contrôle d’accès, DRM, traçage de traitres, piratage, virus.
Organisation et structure du cours :
- Protection de contenus (2h) : Cette partie introductive traitera du concept de protection de copie, des techniques de base pour la protection de contenus, des techniques utilisées en accès conditionnel, des tendances actuelles (cinéma numérique, superdistribution...), de la standardisation. Des exemples concrets de systèmes de protection de contenus (Cinéma Numérique, DTCP, SmartRight...) seront présentés.
- DRM (3h) : Cette partie approfondira théorie et pratique des trois couches composant le modèle actuel de tout système DRM : expression des droits (XrML et ODRL), l’application des droits et la protection du contenu. Les systèmes OMA DRM et Marlin seront plus particulèrement étudiés. Enfin, les différentes approches de l’interopérabilité des DRM seront étudiées (Coral, DVB, DMP).
- Tatouage (2h) : Il s’agit d’une introduction à la problématique du tatouage, qui vise à cacher une information dans un signal, par exemple pour identifier le propriétaire de celui-ci. Cette présentation ne s’appuie pas sur des connaissances de traitement du signal ; l’objectif est de faire découvrir les principes liés à ce type de protection, de plus en plus actuel comme complément aux techniques purement cryptographiques.
- Traçage de traitres (3h) : Cette partie présentera en détail les différentes techniques de « Broadcast Encryption » (qui permettent de diffuser du contenu chiffré à n’importe quel sous-groupe d’utilisateurs choisis parmi un grand nombre) ainsi que les techniques de « Traitor Tracing » visant à repérer les utilisateurs pirates (responsables d’une fuite de contenu ou de clés) afin de permettre leur revocation. Enfin, l’exemple pratique d’AACS (protection de contenus sur DVD Haute Définition) sera présenté. On abordera également ce problème sous l’angle du tatouage, expliquant comment ces mêmes techniques trouvent leur intérêt dans le contexte du traçage de documents multimédia via des données cachées dans le medium lui-même, et pas seulement dans les procédés de chiffrement.
Module « détection d’intrusions et survivabilité »
Les approches de sécurité classiques sont des approches préventives qui visent à empêcher les violations des propriétés de sécurité. Si les approches préventives sont indispensables, elles ne sont cependant pas suffisantes. En effet, des failles permettent de contourner les mécanismes préventifs. La sécurité réactive s’intéresse en conséquence à des techniques permettant de détecter les tentatives de violation des propriétés de sécurité et de superviser la sécurité des systèmes d’information. Cette forme de sécurité est complémentaire de la prévention et constitue une seconde ligne de défense dans la protection des systèmes. L’objectif de ce module est de présenter les modèles de détection d’intrusions et de supervision existants, leurs limites, ainsi que les problèmes ouverts. La seconde partie du cours aborde l’étude des mécanismes permettant d’augmenter la disponibilité des réseaux de communication en présence d’attaques ou intrusions, notamment dénis de services et exploitation de vulnérabilités.
Intervenants potentiels : Ludovic Mé, Benjamin Morin, Bernard Cousin.
Pré-requis : Systèmes d’exploitation et réseaux.
Acquis : les différentes approches de la détection d’intrusions, leurs limites, les problèmes encore ouverts.
Mots-clé : détection d’intrusions, corrélation d’alertes, supervision de la sécurité, survivabilité.
Organisation et description du cours :
- Détection d’intrusions (14h) : Rappels sur les vulnérabilités des systèmes et sur les menaces provenant de l’exploitation de ces vulnérabilités. Architecture fonctionnelle d’un outil de détection d’intrusions : présentation des différents éléments de cette architecture et de leurs caractéristiques. Acquisition de données de sécurité aux niveaux réseau, OS et application. Etude des modèles classiques pour la détection d’intrusions : approches comportementales et par signatures, limites de ces approches (faux positifs, faux négatifs, techniques d’évasion). Approches « évoluées » (ex : specification-based, policy-based, modèle de comportement implicite) permettant de dépasser les limites des approches classiques. Coopération entre approches et corrélation d’alertes : approche parallèle et approche en série ; corrélation implicite et explicite ; prise en compte du contexte ; supervision globale de la sécurité (« veille-alerte-réponse »). Evaluation des IDS : présentation des critères qualitatifs et quantitatifs de mesure de performances des outils de détection d’intrusions.
- Survivabilité (6h) : Survie des réseaux : Les différents plans de gestion du réseau, disponibilité des réseaux informatiques (déni de service), définition des défaillances, protection ou restauration, classification des méthodes de rétablissement, critères de performance, préemption de chemin, réservation des ressources dans les réseaux, partage des protections, multiplexage des chemins principaux et de secours. Re-routage Internet : Sécurité du routage IP, protocoles de routage Internet, authentification des routeurs, intégrité et confidentialité des paquets de routage, gestion de la sécurité dans les réseaux IP, cycle de rétablissement IP, profil de défaillance et détection des fautes dans l’Internet, gestion des instabilités, sécurité de réseau et gestion du trafic dans l’Internet, méthodes d’amélioration de la disponibilité de réseau. La robustesse des réseaux d’infrastructure : Le cadre ASON, l’architecture des réseaux optiques (WDM, SDH ou SONET), gestion de défaillances (détection, propagation, notification), processus automatique de commutation, particularité des réseaux optiques, protection d’anneau, la technique MPLS, architecture de G-MPLS, protection globale ou local de chemin, concept de SRLG, signalisation de la protection pour MPLS, la survie de réseaux multicouches.
Dernière modification : 24/11/2009