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 !!!

Documents pareils