11.8 - Les mécanismes de protection
Transcription
11.8 - Les mécanismes de protection
Informatique appliquée à la Géomatique _____________________________________________________________________________________________________________________________________________________________ Cours destiné à former les Ingénieurs Informaticiens Géomaticiens de l’ENSG et les Master 2 "IASIG" de l’UPMC François BOUILLÉ Prof. UPMC / ENSG Chapitre 11.8 Chapitre 11.8 Les mécanismes de protection Pinus pinea F. Bouillé – Système HBDS (prot) Objectif du chapitre 11.8 : Présenter les divers mécanismes assurant la protection d’un système d’information, et plus particulièrement les spécificités dans un système de gestion de base de données à TAD persistants. Mots-clés : Erreurs, piratage, sabotage, copie de sauvegarde, mirroring, duplexing, technologie RAID, mot de passe, encryptage, système de trace, protection active / passive, ninja bloquant / non-bloquant, virus orienté-objet, firewall, impulsion électromagnétique, cloud-computing, droits d’accès, encapsulation. Sigles : RAID, IEM. F. Bouillé – Système HBDS (prot) PLAN 1 - Préambule 2 - Généralités sur la protection 3 - Protection matérielle 4 - Protection logicielle de l’archivage 5 - Protection logicielle des TAD 5.1 - Protection passive 5.2 - Protection active 6 - Le principe d’un NINJA 7 - Mises en garde diverses 8 - Distinctions sur la protection F. Bouillé – Système HBDS (prot) 1 - Préambule En accédant au système de la machine, tout utilisateur est immédiatement confronté à un premier mécanisme de protection : -on lui demande son identifiant et son mot de passe. Cette protection indispensable est, bien sûr, loin d’être suffisante, et dans de nombreux systèmes montés autour du système opératoire : -système de fichiers, -système de gestion de bases de données, -système de gestion de bases de connaissances, -……… d’autres mécanismes d’identification seront appliqués, ainsi que diverses précautions visant à assurer une sécurité maximale, qui ne saurait être absolue. Nous allons retrouver certains de ces mécanismes déjà rencontrés (chapitres 6 et 10.10), pour accéder ensuite aux spécificités de la protection d’un système de gestion de la connaissance fondée sur des TAD persistants. 2 - Généralités sur la protection La protection a pour but de contrer 3 dangers : -les erreurs, -le piratage d’information, -le sabotage. Les divers mécanismes de protection doivent être : -facultatifs, -compatibles, -indépendants. Protéger à bon escient : -la protection doit être proportionnée à l’importance de la ressource à protéger, -doit être à la mesure du risque d’attaque. F. Bouillé – Système HBDS (prot) 3 - Protection matérielle Local sécurisé (certains centres sont sous dalle de béton de plusieurs mètres …) Installations en cage de Faraday Contrôle d’accès (méthodes variées selon les centres) Alimentation stabilisée, onduleurs, voire groupes électrogènes Copies de sauvegarde (journalières + hebdomadaires + mensuelles) Conservation locale en armoire ignifugée Copies en un autre local Mirroring (cf les divers niveaux de RAID) Duplexing Par ailleurs, personnel compétent, fiable, et de confiance… F. Bouillé – Système HBDS (prot) 4 - Protection logicielle de l’archivage Revoir le cours du chapitre n°6 La protection se tient au niveau du système de fichiers SFSI : -clés (passwords) sur les fichiers -clés éventuelles sur certains articles contre les indiscrétions -possibilité d’encryptage -relecture après écriture (automatique et non optionnel sur certains centres) contre les erreurs du système -transfert immédiat plutôt que différé -traçage de toutes les opérations effectuées -mécanisme de mémorisation des tentatives d’intrusion et des mots de passe fournis -heuristique de recherche de la stratégie de l’attaquant Dans les SGBD relationnels, gestion des droits d’accès (voir le cours sur Oracle). F. Bouillé – Système HBDS (prot) 5 - Protection logicielle des TAD Il existe de types de protection, pouvant être utilisées simultanément : -défensive ( = passive), -offensive ( = active). (*) 5.1 - Protection passive Les chaînes DSS sont constituées de champs en nombre quelconque, de longueurs quelconques, et en ordre quelconque, ce qui ne facilite pas le décodage lors d’une intrusion. Les chaînes DSS reposent sur l’emploi de balises. Il existe plusieurs modes de protection passive sur ces chaînes : -clé sur TAD, -protection croisée, -encryptage. (*) Contrairement à ce qu’il en est dans les grenades, l’offensive est encore plus efficace. F. Bouillé – Système HBDS (prot) Clé sur un TAD : -la clé peut être liée à l’un des deux droits consultation -elle est insérée au sein de la chaîne DSS modification -trois primitives permettent de manipuler les clés : -pose d’une clé : PUTPW ( TAD, mode, PW, Mess ) TAD protégé consultation modification clé message en retour -remplacement d’une clé : REPPW ( TAD, mode, OPW, NPW, Mess) ancienne nouvelle -suppression d’une clé : DELPW ( TAD, mode, PW, Mess ) F. Bouillé – Système HBDS (prot) Le concept de passe ou « super-clé » ( = Masterkey) : -l’usage d’un passe consiste à transgresser les protections assurées par les clés individuelles sur des TAD de niveau hiérarchique inférieur. -quelques exemples : -un passe sur un attribut de classe permet de transgresser les protections individuelles qui ont pu être définies sur certains attributs d’objets relevant de cet attribut de classe ; pour rendre plus clair l’usage, utilisons les codes habituels : F. Bouillé – Système HBDS (prot) Attention : -un passe est une protection, car c’est une clé, mais c’est aussi la possibilité de transgresser d’autres protections. -il peut devenir une faille en cas de perte ou de divulgation. Trois primitives de manipulation d’un passe : -création d’un passe : PUTMK ( TAD, mode, MK, Mess ) TAD qui possède le contrôle consultation passe modification message de retour -remplacement d’un passe : REPMK ( TAD, mode, OMK, NMK, Mess ) ancien passe nouveau passe -suppression d’un passe : DELMK ( TAD, mode, MK, Mess ) F. Bouillé – Système HBDS (prot) Protection croisée : -pour le TAD protégé : • au sein de la chaîne protégée, une balise indique que la donnée est protégée, mais rien ne fournit le moyen de lever la protection, Exemple : specify "RESERVOIR" . "volume" protected ; -pour le TAD protecteur : • ailleurs, un autre TAD, dit protecteur, contient dans sa chaîne DSS, le code d’en-tête de la chaîne protégée ; pour accéder au TAD protégé, il faut avoir préalablement invoqué le TAD protecteur. Celui-ci peut être lui-même protégé. Evidemment, il faut éviter un bouclage… • NB : le TAD protecteur et le TAD protégé ne sont pas forcément du même type. Exemple : protection "Eucalyptus cordata" [ "MYRIACEES" ] on "RESERVOIR" . "volume" ; F. Bouillé – Système HBDS (prot) Encryptage : -il peut être le même pour toutes les chaînes, ou bien être différent pour chaque classe (codage porté par la DSS de la classe), voire pour chaque attribut de classe ou lien entre classes (et porté par le TAD correspondant). Rappel : -cryptographie symétrique : exemple DES (obsolète), remplacé par AES (clés de 128 bits) -cryptographie asymétrique, avec clé privée et clé publique : Exemple : RSA, PGP F. Bouillé – Système HBDS (prot) Ces diverses méthodes passives, mêmes combinées, ne sont pas une garantie absolue ; avec un peu de temps et des moyens de calculs puissants, la protection peut être cassée. Il faut donc utiliser des moyens plus énergiques, la meilleure des défenses étant souvent l’attaque. Votre système a été piraté. Le pirate en a la copie, certes,… mais il ne sait pas ce qui l’attend !!! La puissance de calcul prend ici moins d’importance lorsque l’on ne peut s’affranchir d’une intervention humaine pour la compréhension. Utilisons la protection active. F. Bouillé – Système HBDS (prot) 5.2 - Protection active Les classes supportent de nombreux attributs algorithmiques, qui peuvent être : -calculés à chaque invocation, spécifiés computed , -calculés lors d’un événement, spécifiés event , -affectés. Il en est de même des liens, qui peuvent calculés (2 modes) ou faire l’objet d’une assertion. Dans les trois cas, il peut y avoir des méthodes dédiées à l’accès pour consultation ou pour mise à jour. Une structure contenant simplement quelques centaines de classes peut donc supporter plusieurs milliers d’algorithmes, qui ont été traduits en langage ADT, et implantés sous forme de code portable, dit A-code, lequel est évidemment incompréhensible. Dans ce contexte, il est très simple de placer dans le A-code un outil très intéressant, baptisé NINJA (pour faire référence au mode remarquable d’intervention de ces guerriers de l’ancien Japon). F. Bouillé – Système HBDS (prot) 6 - Le principe d’un NINJA Le NINJA est un virus orienté objet, domestiqué, présent dans le système, où il vit en commensal, et totalement inoffensif lors d’un usage normal. Ses caractéristiques sont les suivantes : -noyé dans le A-code, -furtif, -reproductible, -mutant. Il ne se déclenche qu’après un certain nombre de requêtes acceptées, parmi lesquelles une ou plusieurs sont indispensables (pas toujours les mêmes) pour passiver le virus. Par ailleurs, son fonctionnement ne laisse pas de témoignage dans le système de trace… F. Bouillé – Système HBDS (prot) Il a deux actions possibles : -ninja bloquant : il provoque des dégâts irréparables dans le système, pouvant entraîner un blocage généralisé ( mais alors, celui qui s’est emparé de la copie va détecter les anomalies…), -ninja non-bloquant : par un mode plus subtil, il fournit des résultats faussés, mais dans des marges « raisonnables ». Exemple en SIG : les coordonnées sont légèrement faussées, les indications des largeurs ou hauteurs de tunnels, les poids maximaux autorisés sur les ponts, etc…On peut ôter des éléments ou en rajouter. Allez avec cela, par exemple, prévoir un itinéraire pour des convois spéciaux de véhicules hors gabarit… L’imagination d’un concepteur de NINJA est naturellement sans limite… Le NINJA est donc un virus orienté-objet, mais sans aucune intention malveillante, il ne fait qu’assurer de l’auto-défense, bien légitime… Il n’a rien à voir avec les virus produits par des malfrats pour empoisonner la vie des honnêtes gens (ou pour vendre des antivirus…). F. Bouillé – Système HBDS (prot) C’est le temps requis qui joue en faveur de la protection par NINJA : -pour trouver le NINJA, il faut disposer du décompilateur ; soit ! Supposons qu’il ait été piraté en même temps ; il reste à décompiler tous les modules programmés du système, pour y trouver une séquence ne correspondant pas à l’algorithme sensé faire une tâche. -lorsque l’on sait le temps qu’il faut à l’ingénieur pour simplement trouver un bug dans un logiciel dont il est l’auteur, l’on imagine le temps à passer au milieu de quelques milliers de modules. C’est bien pire dans le cas d’un programme dont on n’est pas l’auteur, et dont on cherche ce qu’il est supposé faire…. -en supposant qu’un NINJA ait fini par être localisé, puis éliminé, le module étant recompilé (ce qui suppose que le compilateur ait été lui aussi piraté, mais là n’est pas le problème…), le pirate n’a rien résolu, car il se trouve dans le contexte du déminage (le risque en moins !!! ), il n’a plus qu’à rechercher d’éventuels NINJA dans tous les autres modules. Car, s’il en reste un, compte tenu de sa reproductibilité, tout le travail sera à recommencer à court terme. Années garanties …. NB : le ninja a été conçu pour ne pas activer le système de trace. F. Bouillé – Système HBDS (prot) 7 - Mises en garde diverses Certaines précautions relèvent simplement du bon sens : -exemple : faire chaque jour des copies de sauvegarde… -ne pas laisser la copie de sauvegarde dans le même sac que le portable (cas de petite application), -ne pas laisser traîner les mots de passe, en changer souvent, -ne pas utiliser les mots de passe que tout le monde peut trouver en quelques tests (références familiales, plaque d’immatriculation, etc…) Un disque formaté « en dur » reste encore déchiffrable. Ne le jetez pas. Le silence absolu d’un disque s’obtient par un passage au chalumeau (l’on dépasse le point Curie). F. Bouillé – Système HBDS (prot) Pour les données hautement confidentielles, le réseau local ne doit avoir aucune connexion avec un réseau donnant sur l’extérieur. Attention : une imprimante connectée à deux réseaux est un point de passage. Précautions sur les réseaux : -le duplexing vers un autre centre entraîne l’usage d’un réseau de communication, qui s’avère un point de faiblesse. -il n’y a pas besoin de faire une épissure sur un câble pour savoir ce qui passe dedans ; un simple boîtier placé à quelques mètres est amplement suffisant… -la fibre optique n’est pas inviolable ; un coin de silice et un photomultiplicateur permettent de détourner une infime partie du flux, sans être détectés. -placer une fibre dans un tube sous forte pression de gaz (pression surveillée) n’apporte aucune garantie ; l’on sait ouvrir un tube sous pression et opérer dedans… Attention : contrairement à ce qui est fréquemment allégué, -les murs de feu (firewalls) ne sont pas infranchissables, -un encryptage ne résiste qu’un certain temps. Par ailleurs, il n’existe aucune protection contre les IEM ( impulsions électromagnétiques ). F. Bouillé – Système HBDS (prot) Attention aux effets de mode Le stockage et les traitements en contexte de « cloud computing » , lorsqu’on travaille sur des données « sensibles » sont un piège destiné aux imbéciles (que l’on rencontre souvent dans les hauts niveaux de décision) : -sous prétexte de moindre coût, une société confie ses données, sans savoir . où elles sont physiquement localisées, . comment elle pourra un jour les rapatrier définitivement sous une forme lisible, PAC . qui peut s’en servir discrètement. -les centres spécialisés ne sont pas à l’abri d’attaques ciblées, et les organismes qui les détiennent ne sont pas forcément irréprochables, -en contexte international, ou sous la pression d’organismes puissants, les données peuvent faire l’objet d’un blocus. La grande offensive commerciale en faveur du « cloud computing » n’est pas innocente, et en regardant les organismes qui sont derrière cette poussée, on comprend immédiatement le danger d’asservissement. F. Bouillé – Système HBDS (prot) 8 - Distinctions sur la protection Nous avons traité dans ce chapitre des moyens de protection appliqués à une base de connaissances fondées sur des TAD persistants. Ces moyens ne sont pas à confondre avec ceux utilisés dans d’autres domaines, entre autres : -les bases de données relationnelles, où la protection est assurée par le fait qu’un usager reçoit des droits d’accès à tout ou partie d’une table (voir le cours d’Oracle, avec les ordres grant et revoke). Il suffit alors de connaître le nom de l’utilisateur et son mot de passe, ce qui représente une sécurité dérisoire… -les langages de programmation dits « orientés objet » pour lesquels la protection est assurée par l’encapsulation, qui peut être : -stricte, tout objet étant accessible uniquement par des méthodes ; c’est la cas de EIFFEL ou de SMALLTALK (vieux dérivé du LISP), à titre d’exemple ; mais ce sont des langages qui ont peu d’impact en contexte industriel. -beaucoup moins rigoureuse, la protection relevant de 3 niveaux : public, protégé, privé ; c’est le cas de C++ et JAVA , à titre d’exemple, qui sont très utilisés F. Bouillé – Système HBDS (prot) Pour compléter votre information : -chaque chapitre faisant l’objet d’une vidéo est accompagné d’un diaporama. Regardez-le ! -reportez-vous aux supports de cours. Les divers fascicules (plus de 1000 pages) sont beaucoup plus détaillés. -reprenez les projets des Travaux Pratiques faits à l’ ENSG. Sur ce cours, pour plus d’information : - regarder la vidéo du cours, - se reporter au support de cours intitulé : "L’architecture du système HBDS" Travaux pratiques à l’ENSG : Révision de la protection par mots de passe sur SFSI. Ecriture des algorithmes des divers mécanismes de protection sur les TAD. Mise au point de quelques ninjas bloquants et non-bloquants. F. Bouillé – Système HBDS (prot) Pinus strobus Bon courage !!!