Gestion des droits d accès. Quelques exemples de vulnérabilité



Documents pareils
Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Partie II Cours 3 (suite) : Sécurité de bases de données

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de données et sites WEB

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

Gestion des utilisateurs et de leurs droits

Bases de données et carte à puce

Les bases de données

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Olivier Mondet

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Bases de données relationnelles

Administration des bases de données. Jean-Yves Antoine

Cours Bases de données 2ème année IUT

Le Langage SQL version Oracle

SQL Historique

Configurer la supervision pour une base MS SQL Server Viadéis Services

Mysql. Les requêtes préparées Prepared statements

Bases de Données relationnelles et leurs systèmes de Gestion

Identité, sécurité et vie privée

Présentation du module Base de données spatio-temporelles

La sécurité informatique d'un centre d imagerie médicale Les conseils de la CNIL. Dr Hervé LECLET. Santopta

Les risques liés à la signature numérique. Pascal Seeger Expert en cybercriminalité

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

Concilier mobilité et sécurité pour les postes nomades

JSSI 2008 Obligations de protection des données personnelles et de la vie privée pour un opérateur mobile

Sécuriser les bases de données ORACLE

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

CHARTE INFORMATIQUE LGL

La sécurité dans les grilles

Le langage SQL (première partie) c Olivier Caron

Sécurité dans les SGBD

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Notes de cours : bases de données distribuées et repliquées

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

Frédéric Cuppens et Nora Cuppens-Boulahia

Encryptions, compression et partitionnement des données

Sécurité des Systèmes d Information Une politique simple pour parler à la Direction Générale De la théorie à la pratique

Cours: Administration d'une Base de Données

Fiches micro-informatique SECURITE LOGIQUE LOGIxx

CHAPITRE 1 ARCHITECTURE

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Intégrité des données

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

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

CREATION WEB DYNAMIQUE

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

LES ACCES ODBC AVEC LE SYSTEME SAS

Montrer que la gestion des risques en sécurité de l information est liée au métier

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite)

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Rootkits sous Oracle

TP Contraintes - Triggers

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Solutions Microsoft Identity and Access

INF4420: Éléments de Sécurité Informatique

PHP 4 PARTIE : BASE DE DONNEES

Cours de SQL SERVER 2005 SQL SERVER 2005

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

M2 Miage Gestion des Identités et des Accès

Stratégie de gestion des cyber-risques dans les entreprises : Quelles (ré)actions?

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Industrie des cartes de paiement (PCI) Norme de sécurité des données Récapitulatif des modifications de

Sécurité des systèmes informatiques Introduction

La sécurité informatique

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Les déclencheurs. Version 1.0. Grégory CASANOVA

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

MYSQLDUMP & ZRM COMMUNITY

La gestion des mots de passe pour les comptes à privilèges élevés

Le Cloud Computing est-il l ennemi de la Sécurité?

Authentification et contrôle d'accès dans les applications web

Public Key Infrastructure (PKI)

Bases de données Outils de gestion

Auto-évaluation Oracle: cours de base

Attaques applicatives

INTRODUCTION AUX BASES de DONNEES

Charte de bon Usage des Ressources Informatiques, de la Messagerie et de l Internet

SQL MAP. Etude d un logiciel SQL Injection

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

L objet de cet article est de présenter succinctement ces possibilités.

Le Langage De Description De Données(LDD)

Gestion des Clés Publiques (PKI)

Protection des données personnelles : Vers un Web personnel sécurisé

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

UTILISATION DES TECHNOLOGIES DE L INFORMATION ET DES COMMUNICATIONS

Cours 14. Crypto. 2004, Marc-André Léger

La convergence des contrôles d accès physique et logique

SSH, le shell sécurisé

Transcription:

Gestion des droits d accès 1 Les menaces 2 Menaces Modèles de contrôle d accès Contrôle d accès dans SQL Chiffrement de bases de données Contrôle de l usage des bases de données Omniprésence des bases de données Systèmes d information institutionnels, SI d entreprise, personnelles, "ambiantes" et grands opérateurs du Web (Google, Facebook ) Une information de valeur Données centralisées, organisées, cohérentes, complètes, à jour Pouvant révérer des informations critiques du point de vue personnel, industriel, commercial, administratif, militaire, diplomatique Pouvant être croisée avec une multitude d autres sources "Google entre vie privée et secret défense" (confidentiel.net) base in the sky, MySQL Désanonymisation de données personnelles (Sweeney, AOL) De plus en plus aux mains de prestataires externes Hébergement de professionnelles ou personnelles Données accumulés par des sites web, fournisseurs de services, Ron Rivest : «La révolution digitale inverse les défauts : ce qui était autrefois difficile à copier devient facile à dupliquer, ce qui était oublié devient mémorisé à jamais et ce qui était privé devient public» Quelques exemples de vulnérabilité La négligence à l origine de nombreux trous de sécurité Base des adhérents UMP et leurs dons en accès libre (Canard Enchaîné, janv 07) Données personnelles de 25 Millions de contribuables Anglais égarées (BBC, nov 07) Données de 70 Millions de vétérans US égarées (LossDB, oct 09) Musée des sites francophones piratés environ 50/mois (ZATAZ) 490.000 Bases de Données sans protection sur le Web (D. Litchfield)? Même les sites les plus sûrs sont piratés/analysés FBI, NASA, Pentagone n échappent pas à la règle Rapport annuel CSI/FBI Les SG constituent la 1 ère cible des attaques 45% des attaques sont internes Parades? «Unbreakable Oracle» cassé quelques semaines après son annonce 3 Exemple d usage détourné : Que voulez-vous savoir sur vos amis, voisins, nourrice, employés? 4

Exemple d usage détourné : Que voulez-vous savoir sur vos amis, voisins, nourrice, employés? 5 Autre exemple emblématique: PRISM NSA 6 «The data within the report is compiled from thousands of different sources that include government, property, and other public record repositories.» Sécurité des Systèmes d Information : définition Confidentialité Seules les personnes autorisées ont accès aux ressources du SI Ressources : données stockées dans la base ainsi que traitements activables sur ces données Intégrité Les ressources du SI ne sont pas corrompues : toute modification illicite (destruction, altération, substitution, rejeu) des données stockées et échangées doivent pouvoir être détectée Disponibilité L accès aux ressources du SI est garanti de façon permanente : idem 7 8 Une combinaison d outils sécuritaires 2- Protection des communications User 1- Authentification 9- Législation 3- Autorisations 8- Anonymisation de données 7- Rétention limitée des données 4- Chiffrement des données Extraction Requêtes 5- Audit 6- Contrôle d usage

T1 : Identification/authentification 9 T2 : Chiffrement des communications 10 Serveur Serveur Au minimum : login (identification) + password (authentification) Assuré par le SG et/ou l OS et/ou l application Authentification forte : Forte = 2 éléments d authentification distincts parmi : Ce que l entité connaît : password, pin code, etc Ce que l entité détient : carte à puce, token, badge RFID, etc Ce que l entité est : empreinte biométrique Technologie éprouvée (ex: SSL) Assure la confidentialité des messages Techniques cryptographiques complémentaires Hachage : intégrité des messages Signature : authentification et non répudiation du message T3 : Contrôle d accès 11 Politique de contrôle d accès = ensemble de règles 12 Précise qui est autorisé à faire quoi sur quelles données et sous quelles conditions Serveur Format des règles : Contrôle d accès sophistiqué dans les SG Autorisations affectées à des utilisateurs, groupes ou rôles Peut porter sur des objets d une granularité variée : tables, vues, procédures stockées Sujet avoir avoir avoir Permission Interdiction Obligation réaliser Action réaliser réaliser agir sur agir sur Objet Ensemble d objets

Modèle discrétionnaire (DAC) 13 Commandes SQL Grant 14 DAC = Discretionary Access Control Contrôle d accès discrétionnaire Principes de DAC Le créateur d un objet fixe la politique de contrôle d accès sur cet objet Les sujets reçoivent des permissions pour réaliser des actions sur des objets Les sujets ont l autorisation de transférer certaines permissions à d autres sujets Droits discrétionnaires de donner des permissions à d autres sujets GRANT <liste privileges> ON <table ou vue ou procedure stockée > TO <liste utilisateurs> [ WITH GRANT OPTION ] ; WITH GRANT OPTION est optionnel signifie que l utilisateur qui obtient le privilège peut ensuite accorder ce privilège à un autre utilisateur Ex: GRANT All ON Prescriptions TO Dupont // Dupont est médecin WITH GRANT OPTION Privilèges SQL 15 Commande SQL Revoke 16 Principaux privilèges (permissions) possibles SELECT : permet la consultation de la table INSERT : permet l insertion de nouvelles données dans la table UPDATE : permet la mise à jour de n importe quelle colonne de la table UPDATE(nom_colonne) : permet la mise à jour d une colonne spécifique de la table DELETE : permet de supprimer n importe quelle donnée de la table ALTER : Modifier la définition d un objet EXECUTE : Compiler et exécuter une procédure utilisée dans un programme REFERENCE : référencer une table dans une contrainte INDEX : Créer un index sur une table REVOKE [ GRANT OPTION FOR ] <liste privileges> ON <table ou vue ou procédure stockée > FROM <liste utilisateurs> [option_propagation] ; [GRANT OPTION FOR] signifie que seul le droit de transfert est révoqué [option_propagation] = RESTRICT ou CASCADE Supposons que A accorde le privilège p à B et B accorde ensuite p à C CASCADE : si A révoque p à B alors C perd aussi le privilège RESTRICT : si A révoque p à B alors la révocation échoue Ex: REVOKE Delete, Update ON Prescriptions FROM Dupont CASCADE Ainsi que les fonctions d administration: CREATE/ALTER/DROP TABLE et CREATE/DROP USER Et si un utilisateur U a reçu le privilège p de A et de B (sans relation entre A et B)?

Confidentialité via les vues 17 Droits d accès sur des vues 18 Principe : Restreindre l'accès à la en distribuant les droits via des vues : Requête Q sur des vues Vérification des droits OK Résultat Service des ressources humaines Employés (intranet) Id-E Nom Prénom Poste 1 Ricks Jim 5485 2 Trock Jack 1254 3 Lerich Zoe 5489 4 Doe Joe 4049 Public (internet) Nombre Masse d employés Salariale 4 890 OK Définition des Vues + Droits associés Gestionnaire de Vues Requête Q sur les relations de base Exécution de requête Id-E Nom Prénom Poste Adresse Ville Salaire 1 Ricks Jim 5485. Paris 230 2 Trock Jack 1254. Versailles 120 3 Lerich Zoe 5489. Chartres 380 4 Doe Joe 4049. Paris 160 Base de données privée virtuelle (VPD) 19 VPD : Contexte d application 20 Principe (Oracle) : Rajouter dynamiquement des conditions aux requêtes utilisateur en fonction d un contexte quelconque (lié à cet utilisateur et/ou à l application) Requête Q Oracle a prévu un contexte par défaut USERENV : contient des informations système relatives à la session courante Exemple : CURRENT_USER, HOST, ISDBA Résultat Possibilité de créer un nouveau contexte et d y associer des attributs Contexte Fonction d ajout de condition liée au contexte Gestionnaire de VPD Requête Q Complétée en fonction du contexte Exécution de requête Exemple : create context CTX_SEC_MEDICALE using SCHEMA_MED.SEC_MEDICALE CTX_SEC_MEDICALE sera un contexte associé au package PL/SQL nommé SEC_MEDICALE et stocké dans le schéma SCHEMA_MED

VPD : Définition des règles de sécurité 21 Exemple de transformation de requêtes 22 Les règles de sécurité sont écrites en PL/SQL create package body SEC_MEDICALE as function DOSSIER_SEC return varchar2 is MY_PREDICATE varchar2(2000) ; begin MY_PREDICATE := 'id_patient in (SELECT id_patient FROM dossier_medical WHERE medecin_traitant = sys_context("userenv", "CURRENT_USER"))' ; return MY_PREDICATE ; end DOSSIER_SEC ; end SEC_MEDICALE ; Puis associées à un objet DBMS_RLS.add_policy // RLS = Row Level Security (object_schema => 'SCHEMA_MED', object_name => dossier_medical', policy_name => mesdossiers', policy_function => ' DOSSIER_SEC'); END; Supposons que le médecin Jean formule la requête suivante : SELECT * FROM dossier_medical WHERE id_patient = 'Paul' L application de la règle mesdossiers va automatiquement transformer cette requête en la requête suivante : SELECT * FROM dossier_medical WHERE id_patient = 'Paul' AND id_patient in (SELECT id_patient FROM dossier_medical WHERE medecin_traitant = 'Jean' ) ; Jean ne pourra ainsi accéder qu aux dossiers médicaux de ses patients RBAC : Role-Based Access Control 23 RBAC : Gestion des rôles dans SQL 24 Rôle = ensemble de privilèges associés à une fonction Les utilisateurs sont habilités à jouer certains rôles Les rôles peuvent être organisés en hiérarchie Factorise la gestion des privilèges R1 rôle senior de R2 si chaque fois qu un utilisateur joue le rôle R1, cet utilisateur joue aussi le rôle R2 Permet d exprimer Spécialisation/Généralisation Relation hiérarchique entre employés Cardiologue Rhumatologue... Généraliste Médecin Personnel médical Spécialiste Création des rôles CREATE ROLE <nom_role> ; Création d un nouveau rôle nom_role DROP ROLE <nom_role> ; Suppression du rôle nom_role SET ROLE <liste_roles> ; Permet à un utilisateur d activer un ensemble de rôles pendant la durée d une session SQL Affectation des privilèges aux rôles GRANT <liste privileges> ON <table ou vue ou procédure> TO <liste roles> [ WITH GRANT OPTION ] ; Affectation des rôles aux utilisateurs GRANT <liste roles> TO <liste utilisateurs> Rôle junior et rôle senior GRANT <role1> TO <role2> Le rôle role2 reçoit tous les privilèges du rôle role1

Exemple d utilisation 25 La théorie face à la pratique 26 Le médecin a accès aux dossiers de ses patients Définition d une vue Create view dossier_patient_du_medecin as Select * From dossier_patient Where dossier_patient.medecin_traitant = CURRENT_USER ; Création du rôle médecin Create role medecin Affectation des droits au rôle médecin Grant all on dossier_patient_du_medecin to medecin Affectation du rôle aux médecins Grant medecin to jean, jeanne MAC : Mandatory Access Control Objectif : lutter contre les chevaux de Troie transmission illégale d informations via un programme malveillant Basé sur le modèle de Bell-LaPadula 27 Synthèse sur les modèles de contrôle d accès Principe fondateur Réaliser Agir sur Sujet Action Objet 28 Politique de sécurité multi-niveaux (simplifiée) Niveaux de sécurité hiérarchiques Unclassified < Confidentiel < Secret < Très Secret Le niveau de sécurité d un utilisateur = niveau d accréditation Le niveau de sécurité d un objet = niveau de classification Principe du contrôle No read up : read permis si accréditation classification No write down : write permis si accréditation classification DAC Permet de structurer les Objets RBAC Permet de structurer les Sujets MAC Lutte contre les programmes malveillants Mais offre peu de souplesse dans la définition des politiques Mais tout cela suppose que l'utilisateur passe "par la porte d'entrée"!!

T4 : Chiffrement de la 29 T4 : Oracle Obfuscation Toolkit 30 Fourniture d un «package» permettant le chiffrement / déchiffrement de données Serveur Principe : chiffrer l empreinte disque de la pour résister aux attaques sur les fichiers Exemples : Oracle Obfuscation Toolkit Protegrity Secure. Oracle, Informix, Sybase, SQL Server, IBM DB2 Problèmes : Gestion et partage de clés à la charge de l application Dégradation des performances Système non résistant à un pirate administrateur Les packages peuvent être substitués, Les données apparaissent en clair lors de l exécution des requêtes ORACLE : «DBA has all privileges»!! T4 : Protegrity Secure. 31 Alternatives (non générales) : déchiffrement et contrôle sur le client 32 SG + Secure Server Secure Manager Solution basée sur 2 modules : Secure.Manager : gestion des utilisateurs, droits et clés Secure.Server : module de chiffrement intégré au noyau SG et 2 personnes physiques différentes base Administrator (DBA) / Security Administrator (SA) Clés s Privilèges Isolation DBA/SA Mais données toujours en clair à un moment de l exécution Query Mgr Query Mgr Encryption Decryption Query Mgr [HIL02] : hébergement de données privées Encryption Decryption Rights Mgr Query Mgr C-SDA [BoP02] : Données partagées (droits différents) User User

Un vœu pour le futur : Bases de données Hippocratiques Les dix commandements des H Spécification des objectifs: Les objectifs de la collecte et de l exploitation des données doivent être associés au stockage de ces données Consentement: Le consentement de l utilisateur pour stocker/interroger/transmettre ses données par rapport à un objectif annoncé doit être recueilli Limitation de collecte: Ne collecter que les données strictement nécessaires à l accomplissement de l objectif annoncé Limitation d usage: Limiter l usage des données à l accomplissement de l objectif annoncé 33 Les Dix commandements des H (suite) Limitation de divulgation: Ne divulguer les données personnelles qu aux organismes autorisés par l utilisateur Limitation de conservation: Supprimer les données dépassant le délai de conservation prévu Exactitude: S assurer de l exactitude des données recueillies Sûreté: Protéger les données contre tout type d attaques Ouverture: Doter l utilisateur du droit d accès et de modification de ses données personnelles. Conformité: Doter l utilisateur du droit d auditer le système et d en vérifier la conformité. 34