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



Documents pareils
Bases de données et sites WEB

Gestion des utilisateurs et de leurs droits

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.

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

Systèmes de Gestion de Bases de Données

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

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

Bases de données et sites WEB Licence d informatique LI345

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

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

Le Langage SQL version Oracle

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

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

Les bases de données

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

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

Sécurité dans les SGBD

SQL Historique

Partie 0 : Gestion des tablespace et des utilisateurs... 3

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

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

Bases de données relationnelles

Langage SQL : créer et interroger une base

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

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

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

Intégrité des données

Compétences Business Objects

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

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

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

Cours: Administration d'une Base de Données

Olivier Mondet

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

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

Le Langage De Description De Données(LDD)

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

Pour les débutants. langage de définition des données

A QUOI SERVENT LES BASES DE DONNÉES?

Gestion des Clés Publiques (PKI)

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Auto-évaluation Oracle: cours de base

Bases de données - Modèle relationnel

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

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

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

MySQL / SQL EXEMPLES

Bases de données Cours 4 : Le langage SQL pour ORACLE

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Introduction au Système de Gestion de Base de Données et aux Base de Données

Bases de Données Avancées

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

CATALOGUE FORMATIONS DOMAINE Bases de données

PHP 4 PARTIE : BASE DE DONNEES

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Information utiles. webpage : Google+ : digiusto/

Bases de Données. Plan

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

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

SQL MAP. Etude d un logiciel SQL Injection

Bases de données. Chapitre 1. Introduction

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

16H Cours / 18H TD / 20H TP

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

données en connaissance et en actions?

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Département Génie Informatique

TP11 - Administration/Tuning

Historisation des données

TP Administration Oracle

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

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

Bases de Données Réparties

A QUOI SERVENT LES BASES DE DONNÉES?

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

1 Introduction et installation

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Bases de données avancées Introduction

Chap. I : Introduction à la sécurité informatique

Modélisation et Gestion des bases de données avec mysql workbench

Gestion de base de données

Création et Gestion des tables

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Frédéric Cuppens et Nora Cuppens-Boulahia

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

CREATION WEB DYNAMIQUE

Master Exploration Informatique des données DataWareHouse

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Devoir Data WareHouse

LE LANGAGE SQL2 1. INTRODUCTION

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

Transcription:

Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html

Plan du cours 1 Introduction 2 3 4

Bibliographie Livres : W. Stallings & L. Brown : Computer security, principles and practice. Pearson Prentice Hall ed. 2008. Supports de cours : Support de cours : J. Le Maitre : http ://lemaitre.univ-tln.fr/cours.htm Support de cours : A. Bonnecaze : http ://alexis.bonnecaz.perso.esil.univmed.fr

Introduction Sécurité des bases de données : définir une politique de sécurité préserver la confidentialité, l intégrité et la disponibilité des données éviter les inférences

Introduction Fig.: source cours J. Le Maitre

Objectifs du contrôle d accès préserver la confidentialité, l intégrité et la disponibilité des données confidentialité : protection contre divulgation non autorisée intégrité des données : protection contre modification ou destruction non autorisées disponibilité : fournir les données aux utilisateurs autorisés quand ils en ont besoin

Fig.: source cours J. Le Maitre

sujets utilisateurs, groupe d utilisateurs, tous les utilisateurs objets BD, tables, vues, index, procédures, sur les tables sur le schéma sur la base de données groupe de privilèges privilèges rôles

contrôle d accès SGBD : en général discrétionnaire (DAC) basé sur les rôles (RBAC)

contrôle d accès SGBD : différentes politiques administration centralisé : un petit nombre d utilisateurs peut accorder ou révoquer des privilèges administration basée sur le propriétaire : le créateur d un objet peut accorder ou révoquer des privilèges administration décentralisée : le créateur d un objet peut également accorder ou révoquer des droits à d autres utilisateurs qui peuvent à leur tour accorder ou refuser des privilèges sur l objet

Fig.: source cours J. Le Maitre

contrôle d accès SQL modèle discrétionnaire (DAC) le créateur d un objet possède tous les privilèges sur cet objet pour accéder à un objet qu il n a pas crée un utilisateur doit recevoir les privilèges nécessaires création des utilisateurs : administrateur de la BD création d utilisateurs création de groupes d utilisateurs

privilèges privilèges objets concernent des opérations précises sur des tables, des vues, des procédures stockées dont le nom est spécifié privilèges systèmes concernent des opérations sur tous les objets d une certaine catégorie

privilèges objets SELECT(C 1, C 2 ) pour lire le contenu de certaines ou toutes les colonnes d une table INSERT(C 1, C 2 ) pour insérer une valeur dans certaines ou toutes les colonnes d une table UPDATE(C 1, C 2 ) pour modifier le contenu de certaines ou toutes les colonnes d une table DELETE pour supprimer des lignes d une table

privilèges objets REFERENCES(C 1, C 2 ) pour faire référence à une table ou à certaines colonnes d une table dans une contrainte d intégrité TRIGGER pour placer un TRIGGER sur une table USAGE pour manipuler des domaines EXECUTE pour exécuter des procédures stockées

attribution de privilèges sur des objets oracle GRANT liste-droits ALL ON nom-composant TO liste-utilisateurs PUBLIC [WITH GRANT OPTION ] ; ALL : tous les privilèges que le donneur peut accorder PUBLIC : tous les utilisateurs connus du système WITH GRANT OPTION : possibilité de transmettre les privilèges qui lui sont accordés

attribution de privilèges sur des objets oracle GRANT liste-droits ALL ON nom-composant TO liste-utilisateurs PUBLIC [WITH GRANT OPTION ] ; liste-droits : SELECT INSERT UPDATE DELETE ALTER INDEX REFERENCES ALL [PRIVILEGES ]

Fig.: source cours W. Stallings & L. Brown

suppression de privilèges REVOKE [GRANT OPTION FOR] liste-systeme-privileges ALL ON liste-objets FROM liste-utilisateurs [RESTRICT CASCADE] liste CASCADE : révocation concerne les utilisateurs cités dans la clause FROM ainsi que ceux à qui les privilèges ont été récursivement transmis RESTRICT révocation concerne les utilisateurs cités dans la clause FROM [GRANT OPTION FOR] pas les privilèges révoqués mais le droit de les transmettre

graphe d octroi de privilèges : outil de gestion de la propagation de privilèges et leur révocation chaque noeud représente un utilisateur chaque arc représente un octroi de privilège, il est étiqueté par ce privilège

Fig.: source cours J. Le Maitre

Fig.: source cours J. Le Maitre

Fig.: source cours J. Le Maitre

: vues Importance des vues : elles permettent de définir de façon précise les portions dune BD sur lesquelles des privilèges sont accordés. exemple table : employe(nom, departement, salaire) restriction de l accès à l affectation ou au salaire d un employé en définissant les deux vues suivantes : create view affectation employe(nom, departement) as select nom, departement from employe create view salaire employe(nom, salaire) as select nom, salaire from employe et en accordant des privilèges sur chacune de ces deux vues, par exemple : grant update on salaire employe to pierre

Fig.: source cours J. Le Maitre

Fig.: source cours J. Le Maitre

Les rôles un rôle est un ensemble de privilèges les rôles sont assignés aux utilisateurs qui peuvent avoir plusieurs rôles Les rôles sont organisés hiérarchiquement différence entre rôle et utilisateur : un utilisateur peut être propriétaire dun objet, un rôle ne le peut pas.

création de rôle CREATE ROLE nom-de-rôle [IDENTIFIED BY mot-de passe ]; ajout, modification, suppression de mot de passe ALTER ROLE nom-de-rôle [IDENTIFIED BY mot-de passe ] ; suppression de rôle DROP ROLE nom-de-rôle;

attribution de rôles GRANT liste-roles TO liste-roles-utilisateurs [WITH ADMIN OPTION ] ; suppression de rôles REVOKE liste-roles FROM liste-roles-utilisateurs

exemple : Les 4 rôles de la BD ma petite entreprise : employé : privilège de consulter les affectations responsable (de département) : privilège employé privilège de consulter les salaires de ses employés srh (service des ressources humaines) : privilège employé, privilège de modifier le département dans lequel travaille un employé et le responsable dun département. agent comptable : privilège employé privilège de mettre jour le salaire des employés

Fig.: exemple rôles source : J. Le Maitre

problème d inférence en sécurité BD possibilité de déduire (d inférer) des informations confidentielles à partir d informations non confidentielles canal d inférence canal par lequel un utilisateur peut atteindre un ensemble de données autorisées X et en déduire un ensemble de données non autoris ees par l application d une fonction : Y =f(x)

Fig.: Inférence source : W. Stallings & L. Brown

: exemple Fig.: Exemple inférence source : W. Stallings & L. Brown

: BD statistique BD statitique une Base de Donnée où : les données ne sont accessibles que par des fonctions statistiques : somme, moyenne, variance, écart-type l accès aux données individuelles n est pas autorisé contrôle d inférence empêcher l utilisateur d obtenir des informations individuelles par rapport aux donnés statistiques

: exemple BD statistique Fig.: Exemple BD statistique source : W. Stallings & L. Brown

: exemple BD statistique exemple d inférence Supposons que l on sache que Baker est une étudiante en EE mais que ce n est pas la seule La sequence de requêtes : COUNT(EE AND Female) SUM(EE AND Female, GP)

: exemple BD statistique exemple d inférence Supposons que l on sache que Baker est une étudiante en EE mais que ce n est pas la seule La sequence de requêtes : COUNT(EE AND Female) = 1 SUM(EE AND Female, GP) = 2.5 Accès à des informations sensibles!!!!

: BD statistique protection des BD statistiques contre les attaques par inférence techniques de restriction contraintes sur la taille des échantillons qui peuvent être intérrogés techniques de perturbation introduction de modifications soit dans les enregistrements de la BD, soit dans les réponses aux requêtes pour cacher la valeur des informations individuelles

: exemple BD statistique Fig.: Exemple BD statistique source : W. Stallings & L. Brown

: exemple BD statistique exemple de contrôle d inférence : contrainte de taille C : formule caractéristique (utilisation de OR, AND et NOT) X(C) : échantillon ou ensemble des lignes de la BD qui correspondent à C q(c) : requête permise si k X(C) N k avec k > 1

: exemple BD statistique contrainte de taille insuffisant : décomposition de la requête en parties qui ne violent pas la contrainte de taille C = C1 AND C2 et T = C1 AND NOTC2 Si un individu I est uniquement identifié par C alors COUNT(C) = COUNT(C1) COUNT(T) permet de déterminer si COUNT(C1) = 1 pour déterminer si l individu I possède l attribut D COUNT(C AND D) = COUNT(T OR C1 AND D) COUNT(T)

: exemple BD statistique nouveau contrôle d inférence restreindre la taille des intersections entre échantillon q(c) : requête permise si X(C) X(D) r

Le chiffrement des bases de données Fig.: source : W. Stallings & L. Brown

Le chiffrement des bases de données chiffrement à différents niveaux : BD, lignes, colonnes Principaux inconvénients gestion des clés : processus complexe car de nombreux utilisateurs et nombreuses applications manque de flexibilité : difficultés pour les recherches dans la base