Conception et implémentation de systèmes sûrs et sécurisés

Documents pareils
La technologie Java Card TM

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

TP1 : Initiation à Java et Eclipse

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Bases Java - Eclipse / Netbeans

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Haka : un langage orienté réseaux et sécurité

Modélisation des interfaces matériel/logiciel

Virtualisation et sécurité Retours d expérience

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

INSTALLATION ET CONFIGURATION DE OPENLDAP

La sécurité dans les grilles

Conception et Intégration de Systèmes Critiques

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Introduction aux Machines Virtuelles avec VMKit

System Center 2012 R2 Licensing Fiche Produit

WEA Un Gérant d'objets Persistants pour des environnements distribués

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Rapport de certification

1 Introduction à l infrastructure Active Directory et réseau

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Projet de Veille Technologique

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Machines virtuelles Cours 1 : Introduction

Héritage presque multiple en Java (1/2)

Derrière toi Une machine virtuelle!

Plan du cours. Historique du langage Nouveautés de Java 7

Cours 1 : La compilation

Votre Réseau est-il prêt?

Traduction des Langages : Le Compilateur Micro Java

Ces deux machines virtuelles seront installées sous VMWARE WORKSTATION.

Le Network File System de Sun (NFS)

Projet Active Object

Introduction à LDAP et à Active Directory Étude de cas... 37

JOURNEES SYSTEMES & LOGICIELS CRITIQUES le 14/11/2000. Mise en Œuvre des techniques synchrones pour des applications industrielles

Auto-évaluation Aperçu de l architecture Java EE

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

Modèles et politiques de sécurité pour les infrastructures critiques

Java Licence Professionnelle CISII,

Java et les bases de données

Bases de données. Chapitre 1. Introduction

Information utiles. webpage : Google+ : digiusto/

DNS ( DOMAIN NAME SYSTEM)

Conception des bases de données : Modèle Entité-Association

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Introduction aux systèmes temps réel. Iulian Ober IRIT

IV- Comment fonctionne un ordinateur?

Préparation à la certification LPIC-1 "Junior Level Linux Certification"

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Projet gestion d'objets dupliqués

Un nouveau modèle d'identité NFC compatible avec l'écosystème mobile, et cas d'usage

Chapitre 2 : Abstraction et Virtualisation

Programmation parallèle et distribuée

Systèmes d exploitation

Enseignement secondaire technique

Vérification formelle de la plate-forme Java Card

pfsense Manuel d Installation et d Utilisation du Logiciel

Configuration du serveur FTP sécurisé (Microsoft)

SNMP for cloud Jean Parpaillon. SNMP4cloud - 1

Rappel sur les bases de données

NBS System et Zend Technologies Découvrez la scalabilité sans limite pour vos applications PHP grâce au Zend Cloud

Le concept de virtualisation regroupe

Systèmes et algorithmes répartis

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Integrated Modular Avionic

Gestion mémoire et Représentation intermédiaire

Gestion répartie de données - 1

Les Architectures Orientées Services (SOA)

Introduction aux Technologies de l Internet

Initiation à JAVA et à la programmation objet.

Initiation à la sécurité

Formula Negator, Outil de négation de formule.

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Vulgarisation Java EE Java EE, c est quoi?

L annuaire et le Service DNS

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

NFP111 Systèmes et Applications Réparties

A. À propos des annuaires

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Le cadre des Web Services Partie 1 : Introduction

palais des congrès Paris 7, 8 et 9 février 2012

CALENDRIER DES FORMATIONS ET CERTIFICATIONS AXWAY

Classes et Objets en Ocaml.

Résolution de noms. Résolution de noms

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Asterisk QuickRecord. ANTOINE MANSUY IUT DE COLMAR

Entraînement au concours ACM-ICPC

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Problème physique. CH5 Administration centralisée

PRESENTATION DU STANDARD TIA (Télécommunications Industry Association) 942

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Transcription:

Conception et implémentation de systèmes sûrs et sécurisés Julien Delange <delange@enst.fr> ( 06/03/2009 )

Plan Introduction Approches de sécurité et sûreté Application au langage AADL Implémentation de systèmes sûrs et sécurisés Conclusion 2

Plan Introduction Approches de sécurité et sûreté Application au langage AADL Implémentation de systèmes sûrs et sécurisés Conclusion 3

AADL Langage à base de composants Emboîtement de composants Plus haut composant : system Ajout de propriétés Description fine du système Outillage complet Atelier de modélisation Validation de modèles (Cheddar, plug-ins,...) 4

Retour vers le futur... AADL, bon candidat pour conception/l implémentation cf. interventions de B. Zalila et P. Feiler Projets Assert, Flex-eWare,... Modélisation et validation du système Description bas-niveau comportant toutes les propriétés du système Etapes de validation (ordonnançabilité,...) Génération automatique de code Implémentation de l application Seule partie écrite : le code applicatif (partie dîte fonctionnelle ) 5

De PolyORB-HI à POK Faits interessants... Implémentation réellement minimale, faible complexité cf. projets Flex-eWare... manque des propriétés importantes Assurer le fonctionnement du système (aspect sûreté) Apporter des garanties sur la légitimité des échanges (aspect sécurité) Intégration des propriétés de sécurité/sûreté Quels efforts de modélisation, validation ou implémentation? Création du projet POK 6

Plan Introduction Approches de sécurité et sûreté Application au langage AADL Implémentation de systèmes sûrs et sécurisés Conclusion 7

Politiques de sécurité (1) Que peut faire un sujet sur un objet? Objet = donnée ; Sujet manipule les objets Opérations = {lecture, écriture, éxécution} Niveaux et domaines de sécurité Niveaux = {secret,top-secret,non classé,...} Domaines = {militaire, civil,...} Nombreuses politiques existantes Bell-Lapadula : no read-up, no write-down Biba : no read-down, no write-up 8

Politiques de sécurité (2) Sujet 1 Classification : Secret Domaine : A Sujet 2 Classification : Top-Secret Domaine : A Sujet 4 Classification : Top-Secret Domaine : B Sujet 3 Classification : Non classifié Domaine : B 9

Politiques de sécurité (2) Sujet 1 Classification : Secret Domaine : A Sujet 2 Classification : Top-Secret Domaine : A Sujet 4 Classification : Top-Secret Domaine : B Sujet 3 Classification : Non classifié Domaine : B 9

Politiques de sécurité (2) Sujet 1 Classification : Secret Domaine : A Sujet 2 Classification : Top-Secret Domaine : A Sujet 4 Classification : Top-Secret Domaine : B Sujet 3 Classification : Non classifié Domaine : B 9

Politiques de sécurité (2) Sujet 1 Classification : Secret Domaine : A Sujet 2 Classification : Top-Secret Domaine : A Sujet 4 Classification : Top-Secret Domaine : B Sujet 3 Classification : Non classifié Domaine : B 9

Politiques de sécurité (2) Sujet 1 Classification : Secret Domaine : A Sujet 2 Classification : Top-Secret Domaine : A Sujet 4 Classification : Top-Secret Domaine : B Sujet 3 Classification : Non classifié Domaine : B 9

MILS Multiple Independent Level of Security (J. Rushby) Plusieurs niveaux de sécurité Maintient d une séparation entre les niveaux Classification des composants Single Level of Security Multiple Single Level of Security Multiple Level of Security (à éviter) Supervision des échanges Introduction d un noyau/machine virtuelle de supervision Abstrait? Oui, ce n est pas un standard... 10 SLS {A} SLS {B}

MILS Multiple Independent Level of Security (J. Rushby) Plusieurs niveaux de sécurité Maintient d une séparation entre les niveaux Classification des composants Single Level of Security Multiple Single Level of Security Multiple Level of Security (à éviter) Supervision des échanges Introduction d un noyau/machine virtuelle de supervision Abstrait? Oui, ce n est pas un standard... 10 SLS {A} SLS {A} SLS {B} SLS {B}

MILS Multiple Independent Level of Security (J. Rushby) Plusieurs niveaux de sécurité Maintient d une séparation entre les niveaux Classification des composants Single Level of Security Multiple Single Level of Security SLS {A} SLS {A} SLS {B} SLS {B} Multiple Level of Security (à éviter) MSLS {A,B} Supervision des échanges Introduction d un noyau/machine virtuelle de supervision Abstrait? Oui, ce n est pas un standard... 10

MILS Multiple Independent Level of Security (J. Rushby) Plusieurs niveaux de sécurité Maintient d une séparation entre les niveaux Classification des composants Single Level of Security Multiple Single Level of Security SLS {A} SLS {A} SLS {B} SLS {B} Multiple Level of Security (à éviter) MSLS {A,B} Supervision des échanges Introduction d un noyau/machine virtuelle de supervision MSLS {A,B} Abstrait? Oui, ce n est pas un standard... 10

Apport de la sûreté Assurer le fonctionnement du système Eviter toute perturbation, maximiser la disponibilité Nécessaire dans de nombreux domaines (ex : DO178B) Identification et recouvrement des fautes Quelles fautes, à quel niveau peut-on les détecter? Quelles procédures exécuter? Limiter la propagation Restreindre les potentiels impacts des fautes Nécessite une architecture dédiée 11

ARINC653 Standard avionique Concerne davantage la sûreté Notion de partitionnement Noyau/intergiciel dédié Partition 1 Partition 2 Noyau ARINC653 Partition 1 Partition 2 Noyau ARINC653 Chaque partition est indépendante (ressources, runtime,...) Identification et traîtement des fautes Niveaux de traîtement des fautes (noyau, partition, tâche) Confinement des fautes, réduction de l impact 12

Bilan Notion de partitionnement Entité d exécution indépendante Isolation des ressources partagée Politique de sécurité Classification sujet/objet, autorisation de la communication Supervision des échanges Politique de sûreté Quelles fautes, quelle procédure de recouvrement? Limitation des effets causés par une faute/erreur 13

Bilan Notion de partitionnement Entité d exécution indépendante Isolation des ressources partagée Politique de sécurité Classification sujet/objet, autorisation de la communication Supervision des échanges Politique de sûreté Quelles fautes, quelle procédure de recouvrement? Administration batiment Contrôle sécurité Limitation des effets causés par une faute/erreur 13

Bilan Notion de partitionnement Entité d exécution indépendante Isolation des ressources partagée Politique de sécurité Classification sujet/objet, autorisation de la communication Supervision des échanges Politique de sûreté Quelles fautes, quelle procédure de recouvrement? Administration batiment Contrôle sécurité Limitation des effets causés par une faute/erreur 13

Plan Introduction Approches de sécurité et sûreté Application au langage AADL Implémentation de systèmes sûrs et sécurisés Conclusion 14

Modifications niveau modèle Utilisation des spécificités AADLv2 Expression de la notion de partitionnement Noyau dédié, runtime spécifique à chaque partition Propriétés d exécution (empreinte mémoire, ordonnancement) Spécification des propriétés de sécurité Niveaux de sécurité, domaines Comment spécifier? Quels composants? 15

Expression du partitionnement Utilisation combinée de plusieurs composants Aspect runtime (virtual processor) Aspect isolation mémoire (process) Association 1-1 process et virtual processor Ajout des spécificités à chaque composant Ordonnancement (processor et virtual processor) Ressources (taille des threads de chaque partition) 16

Modélisation des niveaux de sécurité Modélisation de niveaux de sécurité (virtual bus) Possibilité de réutilisation, d héritage Classification des composants Ajout d une propriété pour chaque partition Spécification du nombre de niveaux et de leur isolement (SLS, MSLS, MLS) Association composants et niveaux de sécurité Composants et/ou ports 17

Validation sécurité Inspection des connections inter-partitions Quels sont les niveaux de sécurité? Respectent-ils la politique de sécurité? Inspection intra-partition inutile Niveau de sécurité d une partition = niveaux de sécurité de ses tâches Méthode extensible Vérification de plusieurs politiques de sécurité 18

Modélisation des aspects sûreté Modélisation des potentielles fautes A chaque niveau du système (noyau, partition, tâche) Fautes différentes pour chaque niveau Modélisation des procédures de recouvrement Association d une procédure pour chaque faute Annotation du modèle (utilisation des properties AADL) Non-propagation implicite (via le virtual processor) 19

Validation sûreté Parcours du tryptique tâche-partition-noyau Pour chaque tâche, calcul de la partition exécutée et du noyau utilisé Calcul du recouvrement des fautes Vérification que chaque cas est traîté Aucune faute ne devrait impacter le système Détection des erreurs non-traîtées 20

Plan Introduction Approches de sécurité et sûreté Application au langage AADL Implémentation de systèmes sûrs et sécurisés Conclusion 21

Ajout supplémentaires Configuration des partitions Ressources, code de l application Erreurs gérées Configuration du noyau Communication inter-partitions Protocole d ordonnancement Erreurs Runtime dédiée Gestion du partitionnement Détection et reprise d erreur 22

Ajout supplémentaires Configuration des partitions Ressources, code de l application Erreurs gérées Configuration du noyau Communication inter-partitions Protocole d ordonnancement Code applicatif Runtime AADL Modèles AADL Génération de code Code généré Erreurs Runtime dédiée Gestion du partitionnement Détection et reprise d erreur 22 Compilation Application

Sécurité et sûreté à l exécution Aucune vérification des échanges à l exécution Le système est valide par construction Supervision des échanges par le noyau Détection et reprise d erreurs Conforme au modèle Confinement des erreurs non traîtées au runtime 23

Plan Introduction Approches de sécurité et sûreté Application au langage AADL Implémentation de systèmes sûrs et sécurisés Conclusion 24

Conclusion AADL : langage pivot d implémentation de système Spécification des propriétés non fonctionnelles Implémentation concrète (pas de stub/skels à compléter) Apport de la sécurité/sûreté Point de vue bas-niveau Conformité avec les standards actuels 25

Questions? Note : ces travaux ont été en partie publiés dans l annexe ARINC653 du standard AADL 26