Protection des données

Slides:



Advertisements
Présentations similaires
Chap. 18 Protection Chapitre 18
Advertisements

CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
Outils et scénarios d’édition collaborative en Haute École Étienne Vandeput Projet HETICE © CRIFA - ULg.
Présentation de Scribe Votre nouvelle organisation du Réseau Informatique Pédagogique.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
Chap. 18 Protection des données Chapitre 18
1 Structure des Systèmes Informatiques Chapitre 3 Beaucoup de choses dans ce chap. du manuel sont faciles à lire et ne je les discuterai pas en classe.
1 Structures d’ordinateurs (matériel) Chapitre 2
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
Les Réseaux informatique.
Concepts pour le contrôle de flux
Principes de sécurité Ref. : SP rev A
épreuve E6 questionnement possible
Comment Sécuriser Le Système d’information de son entreprise
FARAH.Z "Cours sécurité1" /2016
et sa politique d‘assurance qualité dans l‘éducation
Google analytics.
PrÉsentation de la Collaboration Interéquipe
LES TABLEAUX EN JAVA.
Les Bases de données Définition Architecture d’un SGBD
MOT Éditeur de modèles de connaissances par objets typés
Initiation aux bases de données et à la programmation événementielle
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
SECURITE DU SYSTEME D’INFORMATION (SSI)
Javadoc et débogueur Semaine 03 Version A16.
Principes de programmation (suite)
Algorithmique & Langage C
Semaine #4 INF130 par Frédérick Henri.
Tableau de bord des risques
Documentation technique (Linux)
Les grandes étapes de la recherche
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Comment faire une recherche info-documentaire ?
Programmation Orientée Objet
Rappel de la méthode de contrôle d’accès en UNIX-Linux
Exploiter le Web Etape 2.
Rapport de laboratoire
Formation sur les bases de données relationnelles.
Cahier journal Lundi 4 septembre:
CountrySTAT / FENIX Aperçu globale de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Structure des Systèmes Informatiques
Chapitre 3 : Caractéristiques de tendance centrale
Vérifier des papiers d’identité pour protéger vos bureaux
Tâche à réaliser pour les équipes :
5 Analyse avec Designer d'Oracle
Assembleur, Compilateur et Éditeur de Liens
Bonnes pratiques d’exploitation des applications
Module 13 : Implémentation de la protection contre les sinistres
Épreuve écrite E4.1 BTS CG Session /02/2017.
7 Contraintes d’intégrité en SQL
Langages de programmation TP11
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Présentation 4 : Sondage stratifié
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Chapitre V La Procédure Comptable
Logiciel de présentation
Elles contiennent des informations autre que géométriques
Formation « Utiliser un site Internet école »
Threads et Lightweight Processes
Design, innovation et créativité
Backup des Postes de Travail
Retour d’expérience Solutions organisationnelles
Mallette pédagogique Les quantités et le symbole- Calcul
MOT Éditeur de modèles de connaissances par objets typés
CE1 Module 4 Séance 1
Finances publiques Contrôle de l’exécution du budget
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

Protection des données Chapitre 18 http://w3.uqo.ca/luigi/ http://www.fotosearch.com/IGS236/is102-015/

Concepts importants du chapitre Niveaux de protection, anneaux en Multics Domaines d’exécution Besoin de connaître Protection sur les descripteurs des segments Matrices d’accès Copier, modifier, octroyer les droits d’accès Implémentation des droits d’accès: Listes d’accès aux objets Liste de capacité des processus Compromis, solutions mixtes

Le problème de la protection S’assurer qu’un objet ne puisse être accédé que par les processus qui sont autorisés dans la façon autorisée Importante pour la protection des données des usagers, pour le bon fonctionnement du système entier: vulnérabilité des SE qui ont des mauvais mécanismes de protection

Exigences, besoins. Exemple 1 Niveaux de protection: un programme de correction, écrit par un prof, exécute des progs. d ’étudiants. Nous avons 3 niveaux de protection: Système d ’exploitation Doit être protégé par rapport aux programmes usagers Peut les affecter (R,W,X?) Programme du prof Doit être protégé par rapport aux progrs. étudiants Peut les affecter Programme étudiant Doit être protégé par rapport aux programmes d’autres étudiants

Exigences, besoins. Exemple 2 Nous avons vu que les systèmes d’exploitation modernes sont organisés par couches de fonctionnalités Il est souhaitable de pouvoir protéger les couches les plus internes (les plus critiques) contre les plus externes P.ex le noyau contre les programmes d’application

Exigences, besoins. Exemple 3 Protection par rapport aux domaines d’exécution dans lesquelles l’usager se trouve Quand j’exécute un programme de traitement de texte, j’aurai accès à certaines données Fichiers .doc, .txt … Quand j’exécute mon application de courriel, j’aurai accès à d’autres données Fichiers .pst … Pour éviter la corruption de données .pst, il devrait être empêché de les ouvrir par les logiciels conçus pour .txt

Principe besoin de connaître (need to know) On ne devrait permettre à une entité que d’accéder à l’info dont elle a vraiment besoin Si un processus invoque une procédure, cette procédure doit avoir accès à ses paramètres, mais ne devrait pas être capable d ’accéder aux variables du processus Dans un hôpital, Un statisticien aura accès aux données disant les types de maladies, mais pas aux noms des patients Un médecin aura accès aux infos concernant ses patients, mais pas accès aux infos concernant d’autres patients

Mécanismes Comment trouver des mécanismes parfaitement adaptés aux besoins dont nous avons parlé? Ce qui suit présente quelques uns des mécanismes connus

Importance du SE Tout mécanisme de protection des données doit être fondé sur des mécanismes de protection de base du SE La sécurité des données commence dans le SE

Mécanismes de protection de base Modes superviseur – usager (bit dans UCT) L’UCT passe en mode superviseur par effet d’une interruption, qui peut être provoquée par une application P.ex. appel au système Elle passe en mode usager par requête du SE Instructions privilégiées – peuvent être exécutées seulement en mode superviseur  interruption si un usager cherche à les exécuter Les instructions importantes pour la protection sont privilégiées Le fait que les instructions d’E/S sont protégées permet la protection des fichiers

Protection de zones de mémoire principale Contrôle d’adresses générées pas la MMU bornes inférieures, supérieures ne peuvent pas être modifiées en mode usager les tentatives d’accéder à une adresse au delà des bornes causent une interruption

Point de réflexion Voir comment les mécanismes d’adressages de pagination et segmentation discutés dans le chapitres Gestion de la mémoire obtiennent les résultats de la comparaison d’adresses sans réellement faire aucune comparaison

Partage et protection de segments (ou de pages) Deux processus qui partagent un programme Mais les données de l’un sont protégées par rapport à l’autre

Protection de segments partagés Protection sur le chemin d`accès entre processus et segment Le contrôle d ’accès est effectué chaque fois qu’une adresse est calculée (donc besoin de matériel qui fasse ceci) Tabl. segms. Proc. 1 Lim. Base R,W Segment partagé Tabl. segms. Proc. 2 R Les deux proc partagent un segment, cependant Proc. 2 ne peut que le lire

Déroulement dans un exemple 1) Un processus demande de faire accès à un fichier 2) Le système de contrôle d’accès (à voir) détermine quels droits le processus a sur le fichier 3) Supposons que le processus a le droit de lire le fichier 4) Le fichier devient un segment dans la mémoire virtuelle de l’usager et son descripteur contiendra R 5) Après le SE va autoriser seulement les ops de lecture

Question Expliquer pourquoi les mécanismes de protection de la mémoire dépendent de l’existence des deux modes: usager et superviseur

Partage de fichiers Désirable sur les réseaux Nécessite de protection

Protection (détails dans un chap suivant) Types d ’accès permis lecture écriture exécution append (annexation) effacement listage: lister les noms et les attributs d ’un fichier Par qui

Listes et groupes d’accès - UNIX Modes d ’accès: R W E Trois classes d ’usager: propriétaire groupe public demander à l ’administrateur de créer un nouveau groupe avec un certain usager et un certain propriétaire droit du propriétaire de régler les droits d ’accès et d ’ajouter des nouveaux usagers

Listes et groupes d’accès Mode d’accès: read, write, execute Trois catégories d’usagers: RWX a) owner access 7  1 1 1 RWX b) group access 6  1 1 0 c) others access 1  0 0 1 Demander au gestionnaire de créer un groupe, disons G, et ajouter des usagers au groupe Pour un fichier particulier, disons jeux, définir un accès approprié owner group public chmod 761 jeux Changer le groupe d’un fichier chgrp G jeux

Machines virtuelles Le concept de protection de base dans l’infonuagique (cloud computing) Chaque machine virtuelle se comporte comme un ordi séparé donc en principe ses données ne peuvent pas être saisies de la part d’une autre machine virtuelle Chaque usager aura donc sa propre machine virtuelle

Ce qui suit n’est pas sujet d’examen pour 2017

Couches dans les systèmes de protection de données Couche 1: Chiffrement Couche 2: Contrôle d’identité Couche 3: Contrôle d’accès Couche 4: Contrôle de flux Couche 5: Protection de l’intimité (privacy)

Couche 1: Chiffrement Tout le système de sécurité dépend de la capacité de chiffrer certaines informations critiques pour les garder sécrètes Mots de passe Certains fichiers

Couche 2: Contrôle de l’identité Aussi, tout système de sécurité dépend de la capacité d’identifier les personnes, processus, etc. qui interviennent dans un système, Ainsi que de déterminer leurs droits et prérogatives sur les différentes ressources du système Cette couche utilise les fonctionnalités de la couche chiffrement

Couche 3: Contrôle d’accès Cette couche gère les requêtes des personnes, processus etc. qui demandent accès aux différentes ressources, données etc. Pour lire, écrire, exécuter, etc. Intercepte les requêtes des usagers, et autorise ou nie l’accès Cette couche utilise les fonctionnalités de la couche du contrôle de l’identité, pour déterminer qui est qui et qui peut faire quoi

Couche 4: Contrôle de flux Cette couche détermine qui peut avoir accès à quelle information dans un système Ex: un employé ne peut pas avoir accès au salaire d’un autre employé, ni directement ni indirectement Elle utilise les fonctionnalités du contrôle d’accès

Couche 5: Protection de la vie privée (Privacy) Cette couche se préoccupe d’implémenter les exigences de protection de la vie privée des individus P.ex. dans un réseau social certains individus pourraient demander que certaines informations (disons date de naissance) ne soient pas accessibles à autres individus Utilise les fonctionnalités du contrôle de flux

Modèles de protection

Modèles MAC et DAC Modèles MAC: Mandatory Access Control Le SE, programmé par un administrateur, détermine qui peut faire accès à quelles informations et pour faire quoi Accès aux informations selon les qualifications (credentials) de l’usager qui cherche à faire accès Application: systèmes d’haute sécurité Modèles DAC: Discretionary Access Control L’usager a le contrôle d’accès à ses données Peut déterminer qui peut accéder à quoi

Systèmes MAC et leurs implémentations

Exemple d’application militaire Le soldat simple ne peut pas savoir (lire) ce que le général sait, Mais il peut l’informer (écrire) No read up, no write down Read down, write up

Modèle Bell-La Padula (BLP): un système MAC Les Objets (données, fichiers) sont classifiés en niveaux de sensibilité P.ex. Public, Classifié, Secret, Très Secret Les Sujets sont classifiés en catégories d’habilitation (clearance) par rapport aux données auxquelles ils peuvent avoir accès: P.ex. Soldat dans Public, Capitan dans Classifié, Colonel dans Secret, Général dans Très Secret Règles: Un sujet ne peut pas lire dans une catégorie plus élevée No read up – read down permis Un sujet peut ne peut pas écrire dans une catégorie moins élevée No write down – write up permis

Cheval de Troie! Vicky crée un fichier appelé MesAffaires, seulement pour elle Jean crée un fichier XXX et donne à Vicky l’autorisation d’écrire sur ce fichier (à l’insu de Vicky) Jean crée un Programme et donne à Vicky l’autorisation à l’exécuter Ce Programme (le cheval de Troie!) fait des choses utiles pour Vicky mais aussi il lit de MesAffaires et écrit sur XXX Dans BLP: Si le ficher MesAffaires est classifié dans un niveau de sensibilité supérieur à celui de XXX, l’information ne peut pas être copiée de MesAffaires à XXX Si Programme est défini comme sujet à un niveau inférieur à celui de MesAffaires, Programme ne peut pas lire MesAffaires http://www.springerreference.com/docs/html/chapterdbid/317733.html Lire aussi l’histoire mythique du Cheval de Troie … INF6153 34

Exercice Prouver que ce mécanisme empêche vraiment la circulation de l’information dans la direction non souhaitée Non seulement de manière directe, mais aussi de manière indirecte

Le SE Multics a implémenté ce concept déjà à partir des années 196X Implémentations Le SE Multics a implémenté ce concept déjà à partir des années 196X Les systèmes Intel ont fourni du matériel pour ceci à partir des modèles x86 Mais les implémentations logiciel ont tardé Linux implémente maintenant un modèle de protection à « anneaux » ou « niveaux »

Multics: Anneaux de protection (`peau d’oignon`) Extension du concept de mode superviseur-usager (chaque mode est un anneau) Chaque anneau est un domaine de protection Les anneaux les plus internes sont les plus essentiels, les plus privilégiés, et les plus protégés

Affectation de processus aux anneaux Exemple: anneau 0: noyau du SE anneau 1: fonction d’administration système anneau 2: programme de correction du prof anneau 3: programme de l`étudiant Chaque segment d’un processus est affecté à un anneau À un moment donné, un processus se trouve dans un anneau Quand un proc. se trouve dans un anneau n, il peut accéder librement aux segments dans l ’anneau n, ou anneaux extérieurs il ne peut pas accéder aux segments dans les anneaux intérieurs

Mécanisme d’anneaux L’UCT a un registre qui contient le numéro de l’anneau où elle est en train d ’exécuter Un proc qui exécute dans un anneau peut accéder aux données dans les anneaux plus externes. cependant ses capacités peuvent être limitées par rapport à certains fichiers (R,W,E) comme discuté (need to know) L’appel aux procédure plus externes et relativement libre, cependant il faut `copier` les params dans une zone où il puissent être lus en exécutant dans un anneau qui a moins de capacités Il faut aussi se préoccuper que les paramètres puissent être rendus disponibles au niveau plus externe L’appel aux procédures plus internes est contrôlé par le SE par des règles rigoureuses: v. manuel

Intégrité et diffusion de l’information Le système Bell-LaPadula se préoccupe de limiter l’accès aux informations Dans d’autres systèmes, la préoccupation pourrait être surtout de sauvegarder l’intégrité de l’information P.ex. qu’un subordonné, pouvant écrire en haut, pourrait modifier les directives provenant de là

Système Biba Le système Biba se préoccupe justement de protéger l’intégrité des infos des niveaux supérieurs Règles: Un sujet ne peut pas écrire dans une catégorie plus élevée No write up – write down permis Un sujet peut ne peut pas lire dans une catégorie moins élevée No read down – read up permis Persuadez-vous que les information plus sécrètes ne peuvent pas être corrompues

Domaines d’application Il est clair que Bell-LaPadula et Biba ne peuvent pas simultanément être en vigueur pour les mêmes sujets et données Cependant chacun a son domaine d’application dans une entreprise, p.ex.: Les subordonnés peuvent écrire en haut les statistiques de vente, les gérants ne peuvent pas les changer (Bell-LaPadula) Les gérants peuvent écrire en bas les politiques de vente, les subordonnés ne peuvent pas les changer On peut donc penser à une répartition d’une organisation: Partie où on applique BLP et partie où on applique Biba

Systèmes DAC: Discretionary Access Control

Domaines d’exécution

Domaines d’exécution: modèle abstrait Nous avons dans un systèmes des ‘domaines d’exécution’ qui déterminent ce qu’un processus peut faire quand il se trouve dans chaque domaine L’impression de O4 peut être effectuée dans domaine D2 ou D3, pas D1

Changement de domaines d’exécution À chaque moment dans son exécution, un processus (ou usager...) se trouve dans un domaine d’exécution En exécutant, un proc peut passer d’un domaine à un autre L’impression de O4 peut être effectuée dans domaine D2 ou D3, pas D1

Réalisation de domaines Un usager peut être associé à un domaine changement de domaine au moment de changement d’usager Un processus peut être associé à un domaine changement de domaine au moment de changement de processus Une procédure ou méthode peut être un domaine changement de domaine au moment de changement de procédure ou méthode

Méthode de la matrice d’accès Indique les capacités d’un processus exécutant dans un domaine Di sur différents objets capacités du dom. D2 capacités sur le fichier F2

La matrice d’accès sépare le mécanisme des critères Mécanismes Le SE fournit la matrice d’accès et les règles Assure que la matrice ne soit manipulée que par des agents autorisés et que les règles soient respectées Critères (politiques, policies) sont dictés par les usagers quels domaines peuvent accéder à quel objet avec quelles capacités

Extensions de la méthode de la matrice d’accès

Changement de domaine comme capacité Un usager qui se trouve dans le domaine D2 peut changer au domaine D3 ou D4.

Capacité de copier les droits d’accès Un processus peut avoir le droit de recopier un droit d’accès d ’un domaine à un autre (signalé par *) p.ex. un proc exécutant dans domaine D2 peut copier son droit d ’accès sur fichier F2 à un autre domaine Après modif

Droits de propriétaire Droit d ’un propriétaire de changer les droits d’autres sur les objets qui lui appartiennent si (i,j) contient owner, un proc dans Di peut ajouter ou enlever des droits dans la colonne j

Implantation des matrices d’accès Difficile à implanter de façon que chaque accès de mémoire puisse être contrôlé Tableau global. Désavantages: grand, éparpillé, doit être paginé Par colonne: chaque objet est associé à une liste d’accès (qui peut faire quoi sur l ’objet) facile à mettre à jour à partir de l ’objet difficile à mettre à jour à partir des domaines Par ligne: chaque domaine est associé à une liste de ses capacités facile et difficile: contraire du précédent etc: v. discussion dans manuel

Mécanismes serrure-clé (lock-key): un compromis Chaque objet a une liste de patrons de bit unique: ses serrures Chaque domaine a aussi une liste de patrons de bits unique: ses clés Un processus qui exécute dans un domaine a accès à un objet seulement si une des clés du domaine correspond à une des serrures sur l’objet Serrures et clés sont gérées par le SE

Solutions mixtes: exemple Les objets ont des listes d’accès Quand un processus cherche à accéder à un objet (p.ex. un fichier) le SE cherche sur la liste d’accès de l`objet si le domaine du proc a droit d’accès à l’objet Si oui, la capacité d’accéder à l’objet est ajoutée à la liste des capacités du processus Dans le cas de segmentation, quand un nouveau segment est ajouté à un proc, on crée une entrée additionnelle dans le tableau des segments, avec la protection appropriée

Fonctionnement possible lim base R R R,W R,W R,W X Le tableau de segments d’un proc qui a droit d’accès à 2 segms Le proc a demandé accès à un 3ème segment pour l’exécuter. Le SE contrôle qu’il a droit, si oui il ajoute le droit d’accès au tableau des segments du processus

Problèmes 1) implantation efficace 2) comment s’assurer que la matrice correspond aux exigences de sécurité

Solutions basées sur les langages de programmation Les langages de programmation peuvent inclure des énoncés qui déterminent les droits de protection. p.ex. en Java contrôle d ’accès aux méthodes et variables Considérations: Fiabilité ̶ :un système basé sur les mécanismes d ’un langage de programmation peut être moins fiable qu’un système basé sur le noyau du SE Efficacité ̶ : un système qui utilise le noyau, le matériel, etc. sera normalement plus efficace Flexibilité +: un système basé sur un langage de programmation sera plus flexible et plus adapté aux besoins de l ’usager Cependant, le langage de programmation peut faire appel au noyau.

Conclusion Les exigences de protection peuvent être très complexes La méthode de la matrice d’accès est puissante et générale, mais son implantation efficace est problématique Les systèmes réels cherchent à approximer le résultats désirés par des solutions mixtes

Concepts importants du chapitre Niveaux de protection Modèle de protection à couches: 5 couches Protection de diffusion et d’intégrité: Bell-LaPadula, Biba Implémentation de Bell-LaPadula dans système Multics Domaines d’exécution Besoin de connaître Protection sur les descripteurs des segments Matrices d’accès Copier, modifier, octroyer les droits d’accès Implémentation des droits d’accès: Listes d’accès aux objets Liste de capacité des processus Compromis, solutions mixtes

Par rapport au livre: Chap 18 Sauf Protection en Unix Mécanismes spécifiques: Hydra, CAP etc. Section 18.6: connaissance générale