Bases de données   J-L Hainaut 2011 1 Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base.

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Sécurité informatique
Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Licence pro MPCQ : Cours
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Portée des variables VBA & Excel
Proposition de recherches sur ABI (Pro Quest) Lise Herzhaft (Urfist de Lyon) et MH Prévoteau (Bibliothèque Université Paris 2) Mise en forme par Nolwenn.
Les numéros 70 –
Les numéros
Directeur de Thèse : Pr. Witold Litwin
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Autorisations Utilisation eCATT
TP 3-4 BD21.
User management pour les entreprises et les organisations Auteur / section: Gestion des accès.
La législation formation, les aides des pouvoirs publics
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Initiation aux bases de données et à la programmation événementielle
Gestion de la communication par établissement sur le site ville
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Développement d’applications web
SECURITE DU SYSTEME D’INFORMATION (SSI)
Contrôles d'accès aux données
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Amélioration de la sécurité des données à l'aide de SQL Server 2005
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Chap 4 Les bases de données et le modèle relationnel
Configuration de Windows Server 2008 Active Directory
L’utilisation des bases de données
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Internet : la mémoire courte ? Capture de sites Web en ligne Conférence B.N.F, Avril 2004 Xavier Roche(HTTrack)
LES NOMBRES PREMIERS ET COMPOSÉS
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Logiciel gratuit à télécharger à cette adresse :
Docteur François-André ALLAERT Centre Européen de Normalisation
RACINES CARREES Définition Développer avec la distributivité Produit 1
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1.1 LES VECTEURS GÉOMÉTRIQUES
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Les concepts et les méthodes des bases de données
Chapitre 9 Les sous-programmes.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Introduction.
Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base.
Mise en oeuvre et exploitation
Gérer la sécurité des mots de passe et les ressources
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Créer des packages.
Institut Supérieur d’Informatique
 Formulaires HTML : traiter les entrées utilisateur
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Transcription de la présentation:

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4. SECURITE DES BASES DE DONNEES

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction 4.2 Intégrité des données 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès 4.5 Protection contre les intrusions 4.6 Conclusions Contenu 4. Sécurité des bases de données 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès Quelques faits [Ben Natan, 2005] Conférences dédiées au hacking (BlackHat, Defcon, etc.) 2001 : 1 communication consacrée aux attaques de BD 2002 : 5 communications consacrées aux attaques de BD 2003 : un track entier (= sous-conférence) consacré aux attaques de BD En 2001, plus de 40% de compagnies bancaires et financières ont subi des attaques conduisant à des accès non autorisés et à une corruption de données. Jason Smathers, a former AOL employee accused of stealing 92 million customer addresses from the company to sell to a spammer.

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès Annonce trouvée sur muzzfuzz.com : "[A]m offering reverse lookup of information for a t-mobile cell phone, by phone number at the very least, you get name, ssn, and DOB at the upper end of the information returned, you get web username/password, voic password, secret question/answer, sim#, IMEA#, and more" Ces données provenaient de la BD de l'opérateur wifi T- Mobile (2004). SQL Slammer (janvier 2003). Ce ver a infecté en 10 minutes plus de serveurs SQL Server Technique : buffer overflow.

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès Cinq dangers spécifiques  perte d'intégrité des données  non disponibilité des données  perte de confidentialité des données  perte de protection de données privées (privacy)  vol et fraudes

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès La sécurité des bases de données est un domaine complexe, polymorphe, pour lequel il n'existe pas encore d'étude intégrée et homogène. Il n'existe pas encore de solution globale ni de recettes clé-sur-porte. Objectifs de la présentation :  présentation des concepts de base  identification et description de quelques menaces majeures  description d'éléments de solution

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données Intégrité (théorique) : Etat d'une base de données qui constitue une image fidèle du domaine d'application. Remarque : impossible à vérifier. Intégrité (pratique) : Etat d'une base de données qui respecte un ensemble de contraintes d'intégrité. Remarque : techniquement vérifiable; simulation imparfaite de l'intégrité théorique. Contrainte d'intégrité : Propriété formelle que les données et leur évolution doivent respecter à défaut de quoi elles sont réputées corrompues. Contrainte d'intégrité statique : Propriété formelle que les données doivent respecter à tout instant (ou à des instants prédéfinis), à défaut de quoi elles sont réputées corrompues. Définit les états valides. Contrainte d'intégrité dynamique : Ensemble des transitions d'état d'un objet considérées comme valides. Toute transition non valide partant d'un état valide conduit à un état corrompu des données, même si cet état respecte toutes les contraintes d'intégrité statiques. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données Contrainte d'intégrité statique Exemples :  colonne obligatoire (non null)  contrainte d'unicité (identifiant)  contrainte référentielle (clé étrangère)  contraintes de valeurs (QCOM > 0) Contrainte d'intégrité dynamique Exemples :  la valeur de PRIX ne peut augmenter de plus de 5%  la valeur de SALAIRE ne peut diminuer  changement d'état civil : seules certaines transitions sont valides 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données - Menaces et contre-mesures Introduction de données valides mais inexactes Les données introduites respectent les contraintes d'intégrité statiques et dynamiques mais ne correspondent pas à l'état ou au comportement du domaine d'application. Exemple : erreur de montant déposé sur un compte (4500 au lieu de 5400). Contre-mesures : formation du personnel de saisie, conditions de travail favorables, double encodage, validation des données pour éviter les erreurs grossières, éviter l'encodage (transfert électronique si possible) Introduction de données invalides Les données introduites ne respectent pas les contraintes d'intégrité statiques et dynamiques. Exemple : introduction d'une quantité commandée négative. Contre-mesures : définir des contraintes dans le schéma et non dans les logiciels d'application, utiliser les mécanismes ad hoc : check, triggers, procédures SQL 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données - Menaces et contre-mesures Fausse manœuvre de l'utilisateur Le comportement de l'utilisateur conduit à la corruption de certaines données. Exemples : oubli de lancer une procédure de validation des données, exécution d'une fonction ou d'un programme inadéquats, interruption prématurée d'une séquence de saisie, abandon d'un poste de saisie (syndrome de la pause café), etc. Contre-mesures : formation des utilisateurs, ces incidents doivent être prévus et gérés dans les logiciels d'application. Existence de procédures exceptionnelles (corrections manuelles par exemple) 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données - Menaces et contre-mesures Erreur technique dans le logiciel applicatif Une situation imprévue provoque un incident d'exécution du programme d'application. Exemple : division par zéro, dépassement de longueur de champ, etc. Contre-mesures : ces erreurs doivent être prévues et gérées dans les logiciels, améliorer la formation des programmeurs. Erreur logique dans le logiciel applicatif La logique de l'application traduit mal les spécifications initiales. Le comportement du programme est erroné, bien que techniquement correct (pas d'incident). Contre-mesures : améliorer les méthodes d'analyse et de développement, formation des analystes. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données - Menaces et contre-mesures Erreur dans un logiciel système Comportement erroné, inadéquat ou arrêt prématuré d'un composant système : SGBD, système d'exploitation, gestionnaire d'écran, gestionnaire de communication, etc. Contre-mesures : ces incidents doivent être prévus dans les procédures d'exploitation et les programmes; application des correctifs fournis par les éditeurs de logiciels; application des procédures de reprise standard (OS, SGBD) et spécifiques (check points, transactions). 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.2 Intégrité des données - Menaces et contre-mesures Incident matériel Panne ou comportement inadéquat d'un composant matériel : mémoire RAM, bus, processeur, carte contrôleur, terminal, modem, ligne, serveur distant, etc. Contre-mesures : maintenance préventive, redondance matérielle, ces incidents doivent être prévus dans les procédures d'exploitation et les programmes; application des procédures de reprise (check points, transactions). Perte du support Le support de la base de données (en général disque magnétique) subit un incident qui le rend irrécupérable. Les données qu'il contenait sont perdues. Contre-mesures : maintenance préventive, surveillance hardware (SMART), redondance matérielle (mirroring, RAID), procédure de restauration détaillée et bien maîtrisée (simulations régulières). 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.3 Disponibilité des données 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.3 Disponibilité des données La base de données doit être accessible 24/24 - 7/7 Garantie de fonctionnement de l'équipement Garantie de fonctionnement des logiciels (SGBD, applications) Performances en cas de surcharge Dispositions en cas d'indisponibilité 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.3 Disponibilité des données Notion de transaction Définition Suite d'instructions représentant une unité logique de traitement. Une transaction comprend généralement plusieurs instructions de lecture et de modification de données. Exemples : enregistrement d'une commande réapprovisionnement d'un article en stock transfert d'un montant d'un compte vers un autre Les programmes travaillant sur une base de données sont généralement organisés en transactions 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.3 Disponibilité des données Notion de transaction Une transaction est atomique : ses instructions sont exécutées complétement ou pas du tout si la transaction se termine normalement, les modifications sont confirmées dans la base de données si la transaction échoue : les modifications déjà effectuées dans la BD sont annulées. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.3 Disponibilité des données Il existe une copie de sécurité de la base de données (= backup) Le SGBD maintient un journal des modifications effectuées sur les données depuis la prise de copie. journal = enregistrement chronologique d'événements + informations complémentaires sur ceux-ci; il contient en particulier :  les instants de début et de fin de chaque transaction  before images : copie des données avant une modification  after images : copie des données après une modification Protection contre les incidents 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.3 Disponibilité des données Reprise à chaud : annuler l'effet d'une transaction un incident local provoque l'arrêt prématuré d'une transaction; les données locales sont laissées dans un état incohérent (exemple : le montant à transférer a été retiré d'un compte mais pas encore redéposé sur le second compte); le SGBD lit le journal en sens inverse depuis le point courant jusqu'au début de la transaction arrêtée; le SGBD remplace chaque donnée modifiée par son image before; les données locales sont ainsi réétablies dans l'état précédent l'exécution de la transaction. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.3 Disponibilité des données Reprise à froid : reconstruction d'une BD détruite un incident global a affecté l'intégrité des données : corruption importante, non identifiable, destruction du support ; le contenu actuel de la base de données est irrécupérable; il existe une copie de sauvegarde (backup) de la base de données à l'instant t0; le journal contient les images after depuis l'instant t0 ; on restaure la base de données dans son état t0 puis on y introduit toutes les images after de toutes les transactions clôturées; la base de données se trouve alors dans un état correct. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité des données et contrôle des accès 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès Menaces Un utilisateur accède à des données qui ne lui sont pas autorisées L'utilisateur est légitime ou illégitime (intrus) Cet accès a pour but de lire des données, de les insérer, de les modifier ou de les détruire Un utilisateur obtient des informations privées sur des personnes, notamment par déduction à partir de données obtenues légalement 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès Modèles de contrôle d'accès Principes ce qui n'est pas autorisé est interdit l'utilisateur doit être enregistré l'utilisateur qui se connecte à une base de données doit avoir été identifié et authentifié (généralement via le logiciel d'application) Deux familles de modèles de contrôle d'accès [Bertino, 1998] discrétionnaires mandataires 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès Modèles de contrôle d'accès Modèles discrétionnaires (discretionary) l'utilisateur est propriétaire des objets qu'il a créés l'utilisateur peut transmettre à sa discrétion des autorisations sur ses objets à d'autres utilisateurs l'utilisateur peut transmettre à d'autres utilisateurs le droit de transmettre ces autorisations (délégation) modèle généralement adopté par les SGBD (voir SQL-DCL) 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès Limite des modèles discrétionnaires U1 peut lire (R) dans F1 U2 ne peut pas lire (  R) dans F1 U2 possède F2, dans lequel il peut lire (R) et écrire (W) F1 F2 U1 U2 R R/W RR

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès Limite des modèles discrétionnaires U2 donne à U1 le droit d'écrire dans F2 F1 F2 U1 U2 R R/W W

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès Limite des modèles discrétionnaires U2 crée un programme quelconque P (p. ex. tri) dans lequel il introduit une fonction cachée (un cheval de Troie cT) qui lit le contenu du fichier traité par P et le copie dans F2 si U1 utilise P sur F1, le contenu de F1 est copié dans F2 auquel U2 a accès. P cT F1 F2 U1 U2 F1 !

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès Modèles de contrôle d'accès Modèles mandataires (mandatory) l'utilisateur (sujet) est caractérisé par un niveau de sécurité Ls l'objet est caractérisé par un niveau de sécurité Lo exemple classique de niveaux : 4: top secret 3: secret 2: confidentiel 1: public un utilisateur a accès à un objet (table, colonne, ensemble de lignes) si leurs niveaux de sécurité (Ls, Lo) correspondent (cf. protocole de Bell & LaPadula) simple, facile à gérer 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès Protocole de Bell & LaPadula no read-up : le sujet peut lire (consulter) un objet si Ls  Lo no write-down : le sujet peut écrire (modifier) un objet si Ls  Lo L o2 LsLs F2F2 R L o1 F1F1 W R W x x

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès L f2 L u2 L f1 L u1 P cT F1 F2 U1 U2 x no write-down Résolution du problème du cheval de Troie

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès Un problème spécifique : l'inférence statistique On considère une collection de données individuelles confidentielles soumises à deux règles d'utilisation :  l'accès direct aux données sensibles est interdit  mais les requêtes statistiques sur ces données sont autorisées  Il est possible d'inférer (illégalement) des données sensibles à partir des réponses à des requêtes statistiques autorisées;  Il n'existe pas de contre-mesure générale à ce type d'inférence ! Deux observations troublantes : 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique EMPLOYE NEMP B062 B112 B332 B512 C003 C123 C400 D063 F010 F011 F400 K111 K729 L422 S127 S712 NOM GOFFIN HANSENNE MONTI GILLET AVRON MERCIER FERARD MERCIER TOUSSAINT PONCELET JACOB VANBIST NEUMAN FRANK VANDERKA GUILLAUME LOCALITE Namur Poitiers Genève Toulouse Namur Poitiers Toulouse Poitiers Toulouse Bruxelles Lille Toulouse Namur Paris CAT B2 C1 B2 B1 C1 B2 C2 C1 B2 C2 B1 C1 B1 SALAIRE sensiblesnon sensibles 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique select SALAIRE from EMPLOYE where NEMP = 'C400' select NEMP from EMPLOYE where SALAIRE between 3000 and 3500 requête refusée On vérifie que la première règle est d'application : select count(*) as N from EMPLOYE where LOCALITE = 'Toulouse' select count(*) as N, avg(SALAIRE) as Moy from EMPLOYE where CAT = 'B1' On essaye la deuxième : N 5 NMoy Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique Oui, mais si je demande : On corrige donc la règle : les requêtes statistiques dont la condition d'échantillonnage ne porte pas sur un identifiant sont autorisées select count(*) as N, avg(SALAIRE) as Moy from EMPLOYE where NEMP = 'C400' NMoy ! Ou encore (je ne demande pas de données sensibles) : select count(*) as N from EMPLOYE where NEMP = 'C400' and SALAIRE between 2600 and 2700 N 1 ! 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique Parfait. Je peux donc demander : On doit manifestement affiner la règle : les requêtes statistiques portant sur un échantillon de taille K telle que K < k sont interdites select count(*) as N, avg(SALAIRE) as Moy from EMPLOYE where LOCALITE = 'Poitiers' and CAT = 'B2' NMoy ! 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique Le contournement est facile : Mais la contre-mesure l'est tout autant : les requêtes statistiques portant sur un échantillon de taille K telle que k  K  (N - k) sont autorisées select count(*) as N1, avg(SALAIRE) as Moy1 from EMPLOYE where not (LOCALITE = 'Poitiers' and CAT = 'B2') N1Moy ,667 select count(*) as N, avg(SALAIRE) as Moy2 from EMPLOYE NMoy ,4375 SALAIRE(LOCALITE = Poitiers and CAT = 'B2') = (Moy2*N - Moy1*N1) / (N - N1) = (2878,4375* ,667*15) / (16-15) = ! 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique Ce n'est hélas pas suffisant : entrée en scène des traceurs ! 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique Soit C une condition "quasi" identifiante, définissant l'individu cible Soit T une condition "pas du tout" identifiante, définissant à peu près la moitié de la population. T est un traceur. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique Soient C  (LOCALITE = 'Poitiers' and CAT = 'B2') (devrait identifier C400) T  (NOM < 'M') (M est la 13e lettre de l'alphabet) ET:EMPLOYE where NOM < 'M' R: EMPLOYE E:EMPLOYE where LOCALITE = 'Poitiers and CAT = 'B2' R-ET:EMPLOYE where NOM >= 'M' 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique On calcule d'abord la taille de R N1 = select count(*) from EMPLOYE where NOM < 'M'= 8 N2 = select count(*) from EMPLOYE where NOM >= 'M'= 8 N = N1 + N2= 16 ET:EMPLOYE where NOM < 'M' R: EMPLOYE E:EMPLOYE where LOCALITE = 'Poitiers' and CAT = 'B2' R-ET:EMPLOYE where NOM >= 'M' et on vérifie la qualité du traceur : N1/N = 8/16 = 0,5  excellent 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique on calcule la taille de E (on vérifie que C est bien identifiante) n1 = select count(*) from EMPLOYE where (NOM < 'M') or (LOCALITE = 'Poitiers' and CAT = 'B2')= 8 n2 = select count(*) from EMPLOYE where (NOM >= 'M') or (LOCALITE = 'Poitiers' and CAT = 'B2')= 9 n = n1 + n2 - N= 1 ET:EMPLOYE where NOM < 'M' R: EMPLOYE E:EMPLOYE where LOCALITE = 'Poitiers' and CAT = 'B2' R-ET:EMPLOYE where NOM >= 'M' C est bien une condition identifiante 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique On calcule ensuite la somme des salaires dans R sumSR1 = select sum(SALAIRE) from EMPLOYE where NOM < 'M'= sumSR2 = select sum(SALAIRE) from EMPLOYE where NOM >= 'M'= sumSR = sumSR1 + sumSR2= ET:EMPLOYE where NOM < 'M' R: EMPLOYE E:EMPLOYE where LOCALITE = 'Poitiers' and CAT = 'B2' R-ET:EMPLOYE where NOM >= 'M' 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique ET:EMPLOYE where NOM < 'M' R: EMPLOYE E:EMPLOYE where LOCALITE = 'Poitiers' and CAT = 'B2' R-ET:EMPLOYE where NOM >= 'M' On peut enfin calculer le salaire de C400 sumSE1 = select sum(SALAIRE) from EMPLOYE where (NOM < 'M') or (LOCALITE = 'Poitiers' and CAT = 'B2')= sumSE2 = select sum(SALAIRE) from EMPLOYE where (NOM >= 'M') or (LOCALITE = 'Poitiers' and CAT = 'B2')= sumSE = sumSE1 + sumSE2 - sumSR= le salaire de C400 est ! 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique - Quelques contre-mesures 1.L'anonymisation des données est inutile : suppression, permutation ou transformation de NEMP sans effet. 2.Requêtes exécutées sur un échantillon aléatoire tiré de EMPLOYE; tiré pour chaque requête; mais inférence possible en exécutant une requête un grand nombre de fois. 3.Permutation de données entre les enregistrements; préserve les statistiques de degré n (n = nombre de critères dans le where de la requête statistique); utilise une BD dérivée. 4.Perturbation aléatoire des données sources (distribution normale, m = 0); effet négligeable pour grands échantillons, important pour petits échantillons; utilise une BD dérivée. 6.Perturbation des résultats (arrondi au plus proche multiple de q); calculé pour chaque requête. 7.Monitoring des requêtes : recherche des séquences douteuses. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.4 Confidentialité et contrôle des accès L'inférence statistique Compromis entre précision des statistiques et protection Le problème existe aussi pour des BD statistiques, ne contenant que des données agrégées ! Pas de solution efficace en toute généralité 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.5 Protection contre les intrusions (vol et fraude) 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.5 Protection contre les intrusions Menaces Consultation non autorisée de données confidentielles Vol de données Modification frauduleuse de données Destruction de données Principales motivations des vols de données  usage frauduleux  chantage  vente à des organisations criminelles 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.5 Protection contre les intrusions Une des techniques d'attaque : injection de code SQL Attaque profitant d'une vulnérabilité largement répandue dans les applications web développées de manière peu soigneuse. Attaque applicable à toute communication entre un client (humain ou programme) et une application accédant à une base de données SQL. Consiste à contrefaire une instruction SQL de manière à la détourner de son objectif initial. Permet à l'attaquant d'accéder à la base de données (lecture, insertion, modification, destruction) avec les privilèges de l'application. Une étude en 2003 a montré que 61% des applications étaient vulnérables à l'injection de code SQL (source Sanctum, citée dans [Ben Natan 2005]). Deuxième type d'attaque en 2006 (14%). 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.5 Protection contre les intrusions - Injection de code De nombreuses interfaces web comportent des séquences du type 1. acquisition de données via un formulaire 2. accès à la BD sur base de ces données Albert-Durant Login : A7cfg990 Mot de passe : Identification agent select count(*) into :N from SYS_USERS where USER_ID = 'Albert-Durant' and PW = 'A7cfg990'; if (N = 0) then AUTORISATION = False else AUTORISATION = True; SYS_USERS USER_ID Anne-Mercier Albert-Durant Charles-André PW 73flmrsZZ A7cfg990 biose584h74 autres... N = Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.5 Protection contre les intrusions - Injection de code On observe que les données fournies par l'utilisateur deviennent des fragments d'une requête SQL.  Parfait si l'utilisateur joue le jeu et ne fournit que les données demandées.  Danger si l'utilisateur se prend pour un programmeur SQL ! select count(*) into :N from SYS_USERS where USER_ID = ' ' or ' ' = ' ' and PW = ' ' or ' ' = ' '; if (N = 0) then AUTORISATION = False else AUTORISATION = True; SYS_USERS USER_ID Anne-Mercier Albert-Durant Charles-André PW 73flmrsZZ A7cfg990 biose584h74 autres... toujours True ! N = 3 ' or ' ' = ' Login : ' or ' ' = ' Mot de passe : Identification agent 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.5 Protection contre les intrusions - Injection de code Explication : évaluation de la condition where pour une ligne quelconque de la table SYS_USERS False or True and False or True  False or (True and False) or True  False or (False) or True  True  l'accès est accordé au fraudeur !! where USER_ID = ' ' or ' ' = ' ' and PW = ' ' or ' ' = ' ' ;  USER_ID = ' '  False (normal puisque j'ignore le Login)  ' ' = ' '  True (par construction)  PW = ' '  False (normal puisque j'ignore le mot de passe)  ' ' = ' '  True (par construction) 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.5 Protection contre les intrusions - Injection de code Contre-mesures 1.Programmation défensive. 2.Vérifier les données fournies par l'utilisateur. 3.Vérifier la forme des requêtes SQL envoyées au SGBD. 4.Login biométrique, par carte à puce 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.6 Conclusions 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4.6 Conclusions Importance du facteur humain (utilisateur, programmeur, analyste, gestionnaire, installeur, exploitant). Importance de la formation (administrateur de BD, programmeur sur BD). Familles de vulnérabilités et de menaces identifiées mais évolutives. Fortes liaison avec les autres aspects de la sécurité : notamment programmation et réseau. Pas encore de modèle global de la sécurité des BD. La sécurité : non seulement un métier en soi, mais surtout une préoccupation majeure de chaque métier intervenant dans la conception, l'évolution, l'exploitation et l'utilisation des Systèmes d'information. 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information Références 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information Site technique sur la sécurité des SGBD : Site de news sur la sécurité : Common weakness enumeration - CWE Dictionary, CAPEC - Common Attack Pattern Enumeration and Classification, David Litchfield, The Oracle Hacker's Handbook: Hacking and Defending Oracle, David Litchfield, Wiley, 2007 Rebecca Bond, Kevin Yeung-Kuen See, Carmen Ka Man Wong, Yuk-Kuen Henry Chan, Understanding DB2 9 Security, IBM Press, 2007 David Litchfield, "Cursor Injection", injection.pdf Ron Ben Natan, Implementing Database Security and Auditing: Includes Examples for Oracle, SQL Server, DB2 UDB, Sybase, Elsevier Digital Press, 2005 Bertino, E., Data Security, Data & Knowledge Engineering, 25 (1998), pp , Elsevier Chris Anley, Advanced SQL Injection In SQL Server Applications, NGS Software Insight Security Research (NISR) Publication, 2002, Références 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information Wikipedia, SQL Injection, Denning D., Schlörer, J., A Fast Algorithm for Calculating a Tracker in Statistical Database, ACM Transactions on Database Systems, Vol. 5, No. 1, March 1980 Muralidhar, K., Sarathy, R., Security of Random Data Perturbation Methods, ACM Transactions on Database Systems, Vol. 24, No. 4, Dec. 1999, pp. 487–493 Sicherman, G., De Jonge, W., Van De Riet, R., Answering Queries Without Revealing Secrets, ACM Transactions on Database Systems, Vol. 8, No. 1, March 1983, Pages De Jonge, W., Compromising Statistical Databases Responding to Queries about Means, ACM Transactions on Database Systems, Vol. 8, No. 1, March 1983, Pages Denning D., Secure Statistical Databases with Random Sample Queries, ACM Transactions on Database Systems, Vol. 5, No. 3, September 1980, Pages Denning D., Denning P., Schwartz, M., The Tracker: A Threat to Statistical Database Security, ACM Transactions on Database Systems, Vol. 4, No. 1, March 1979, Pages Hughes, G., Coughlin, T., Tutorial on Disk Drive Data Sanitization, 2006, Références 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information Connolly, T., Begg, C., Database Systems, Addison Wesley, 2005 [Chapter 18, Security, 29 pages] Litchfield, D., Dangling Cursor Snarfing: A New Class of Attack in Oracle, 23rd November 2006, Litchfield, D., Anley, C., Heasman, J., Grindlay, B., The Database Hacker's Handbook: Defending Database Servers, Wiley, 2005 Workbench d'expérimentation des différentes vulnérabilités d'un site web : Clarke, J., SQL Injection Attacks and Defense, Syngress Publish., Elsevier, 2009 Références 4.1 Introduction4.5 Protection contre les intrusions 4.2 Intégrité des données 4.6 Conclusions 4.3 Disponibilité des données 4.4 Confidentialité et contrôle des accès

Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information