La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 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 de données Partie 4 - Sécurité des bases de données DTIC M321 - Systèmes d ’information 4. SECURITE DES BASES DE DONNEES

2 Bases de données   J-L Hainaut 2011 2 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

3 Bases de données   J-L Hainaut 2011 3 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

4 Bases de données   J-L Hainaut 2011 4 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 e-mail addresses from the company to sell to a spammer. http://www.securityfocus.com/news/10271

5 Bases de données   J-L Hainaut 2011 5 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, voicemail password, secret question/answer, sim#, IMEA#, and more" Ces données provenaient de la BD de l'opérateur wifi T- Mobile (2004). http://www.securityfocus.com/news/10271 SQL Slammer (janvier 2003). Ce ver a infecté en 10 minutes plus de 120.000 serveurs SQL Server 2000. Technique : buffer overflow.

6 Bases de données   J-L Hainaut 2011 6 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

7 Bases de données   J-L Hainaut 2011 7 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

8 Bases de données   J-L Hainaut 2011 8 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

9 Bases de données   J-L Hainaut 2011 9 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

10 Bases de données   J-L Hainaut 2011 10 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

11 Bases de données   J-L Hainaut 2011 11 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

12 Bases de données   J-L Hainaut 2011 12 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

13 Bases de données   J-L Hainaut 2011 13 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

14 Bases de données   J-L Hainaut 2011 14 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

15 Bases de données   J-L Hainaut 2011 15 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

16 Bases de données   J-L Hainaut 2011 16 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

17 Bases de données   J-L Hainaut 2011 17 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

18 Bases de données   J-L Hainaut 2011 18 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

19 Bases de données   J-L Hainaut 2011 19 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

20 Bases de données   J-L Hainaut 2011 20 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

21 Bases de données   J-L Hainaut 2011 21 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

22 Bases de données   J-L Hainaut 2011 22 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

23 Bases de données   J-L Hainaut 2011 23 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

24 Bases de données   J-L Hainaut 2011 24 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

25 Bases de données   J-L Hainaut 2011 25 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

26 Bases de données   J-L Hainaut 2011 26 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

27 Bases de données   J-L Hainaut 2011 27 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

28 Bases de données   J-L Hainaut 2011 28 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

29 Bases de données   J-L Hainaut 2011 29 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 !

30 Bases de données   J-L Hainaut 2011 30 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

31 Bases de données   J-L Hainaut 2011 31 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

32 Bases de données   J-L Hainaut 2011 32 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

33 Bases de données   J-L Hainaut 2011 33 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

34 Bases de données   J-L Hainaut 2011 34 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 2.800 3.050 3.200 3.355 2.600 2.900 2.650 2.800 2.950 3.400 1.900 3.800 2.450 2.650 3.600 1.950 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

35 Bases de données   J-L Hainaut 2011 35 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 52.831 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

36 Bases de données   J-L Hainaut 2011 36 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 12.650 ! 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

37 Bases de données   J-L Hainaut 2011 37 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 12.650 ! 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

38 Bases de données   J-L Hainaut 2011 38 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') N1Moy1 152.893,667 select count(*) as N, avg(SALAIRE) as Moy2 from EMPLOYE NMoy2 16 2.878,4375 SALAIRE(LOCALITE = Poitiers and CAT = 'B2') = (Moy2*N - Moy1*N1) / (N - N1) = (2878,4375*16 - 2893,667*15) / (16-15) = 2.650 ! 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

39 Bases de données   J-L Hainaut 2011 39 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

40 Bases de données   J-L Hainaut 2011 40 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

41 Bases de données   J-L Hainaut 2011 41 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

42 Bases de données   J-L Hainaut 2011 42 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

43 Bases de données   J-L Hainaut 2011 43 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

44 Bases de données   J-L Hainaut 2011 44 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'= 20.955 sumSR2 = select sum(SALAIRE) from EMPLOYE where NOM >= 'M'= 25.100 sumSR = sumSR1 + sumSR2= 46.055 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

45 Bases de données   J-L Hainaut 2011 45 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')= 20.955 sumSE2 = select sum(SALAIRE) from EMPLOYE where (NOM >= 'M') or (LOCALITE = 'Poitiers' and CAT = 'B2')= 27.750 sumSE = sumSE1 + sumSE2 - sumSR= 2.650 le salaire de C400 est 2.650 ! 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

46 Bases de données   J-L Hainaut 2011 46 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

47 Bases de données   J-L Hainaut 2011 47 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

48 Bases de données   J-L Hainaut 2011 48 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

49 Bases de données   J-L Hainaut 2011 49 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

50 Bases de données   J-L Hainaut 2011 50 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

51 Bases de données   J-L Hainaut 2011 51 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 = 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

52 Bases de données   J-L Hainaut 2011 52 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

53 Bases de données   J-L Hainaut 2011 53 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

54 Bases de données   J-L Hainaut 2011 54 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

55 Bases de données   J-L Hainaut 2011 55 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

56 Bases de données   J-L Hainaut 2011 56 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

57 Bases de données   J-L Hainaut 2011 57 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

58 Bases de données   J-L Hainaut 2011 58 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 : http://www.databasesecurity.com/ Site de news sur la sécurité : http://search.securityfocus.com Common weakness enumeration - CWE Dictionary, http://cwe.mitre.org/data/dictionary.html CAPEC - Common Attack Pattern Enumeration and Classification, http://capec.mitre.org/data/dictionary.html 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", http://www.databasesecurity.com/dbsec/cursor- 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. 199-216, Elsevier Chris Anley, Advanced SQL Injection In SQL Server Applications, NGS Software Insight Security Research (NISR) Publication, 2002, http://www.ngssoftware.com/papers/advanced_sql_injection.pdf 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

59 Bases de données   J-L Hainaut 2011 59 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, http://en.wikipedia.org/wiki/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 41-59. De Jonge, W., Compromising Statistical Databases Responding to Queries about Means, ACM Transactions on Database Systems, Vol. 8, No. 1, March 1983, Pages 60-80. Denning D., Secure Statistical Databases with Random Sample Queries, ACM Transactions on Database Systems, Vol. 5, No. 3, September 1980, Pages 291-315. 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 76-96. Hughes, G., Coughlin, T., Tutorial on Disk Drive Data Sanitization, 2006, http://cmrr.ucsd.edu/people/Hughes/DataSanitizationTutorial.pdf 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

60 Bases de données   J-L Hainaut 2011 60 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, http://securitywatch.eweek.com/cursor-snarfing.pdf 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 : http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project 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

61 Bases de données   J-L Hainaut 2011 61 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


Télécharger ppt "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."

Présentations similaires


Annonces Google