Enjeux des protections physique et logique en sécurité des systèmes d'information

Etant donné leur importance vitale, on pourrait aisément imaginer que le fonctionnement des protections physique et logique en SSI, sécurité des systèmes d'information, est largement connu par les managers des entreprises. Généralement ce n'est pas le cas. Cette synthèse est une mise en texte d'une présentation effectuée à l'ESSEC Business School.

Qu'est ce que la protection physique en SSI ? 

Toute mesure de protection logique est vouée à l’échec si une attention insuffisante n’est pas portée à la sécurité physique des données et des traitements. 

Lorsqu’un hacker parvient à avoir un contact physique direct avec un poste informatique, il est en mesure de prendre le contrôle du système d’information. On parle alors d’un système compromis. La compromission d’un système d’information désigne le fait qu’un agent malveillant ait pu d’une façon ou d’une autre, en usurper l’accès pour obtenir des informations qui auraient dû rester confidentielles.

Pour permettre une meilleure protection physique plusieurs mesures de sécurité prioritaires doivent être priorisées :

-       La sécurité des bâtiments qui abritent les systèmes d’information et les bases de stockage de données ;

-       Le contrôle des accès aux infrastructures ;

-       La qualité de l’alimentation électrique et des systèmes de refroidissement ;

-       La mise à jour régulière de la certification du câblage du réseau local et des accès des réseaux extérieurs.

-       Quand le personnel est amené à utiliser des réseaux sans fil plusieurs précautions spécifiques doivent être observées : le positionnement adéquat des bornes d’accès et le contrôle des signaux en provenance et à destination de l’extérieur (notamment en matière de puissance de l’émission) ;

Afin de minimiser les risques de vol ou de compromission des données de l’organisation, certaines précautions précises sont à observer :

-       Les données sensibles doivent être sauvegardées sur des supports physiques distincts des supports connectés;

-       Des copies de sauvegarde doivent pouvoir être stockées hors du site d’exploitation ;

-       Des postes de secours pour les applications vitales doivent être mis en place et testés régulièrement;

Un certain nombre d’innovations récentes permettent d’améliorer la sécurité en matière de stockage des données. A ce titre les networks attached storage (NAS) donnent aux responsables en sécurité des systèmes d’information la possibilité d’effectuer des prises d’instantané (ainsi que des réplications à distance. Les systèmes de gestion de mémoire de masse LVM (logical volume management) permettent quand à eux de limiter considérablement les risques de perte de données dans les cas de défaillance du disque. Ces différentes technologies doivent être idéalement complétées par les mesures de protection logique adéquates.

La protection logique :  la cryptographie et l’ authentification

Les techniques développées par la cryptographie sont des outils efficaces pour tente d’identifier un agent numérique.

La protection d’un système d’exploitation repose sur des dispositifs de sécurisation des fichiers, des données éphémères créés durant l’exécution d’un processus mais également   de tous les objets matériels (appelés dans le vocabulaire technique « objets persistants ») comme par exemple les périphériques ou les interfaces réseaux. Protéger le système d’exploitation c’est empêcher qu’un agent qui n’y a pas été autorisé puisse altérer un fichier ou modifier une zone mémoire.

En 1964 Fernando Corbato et Jerry Saltzer développent au Massachusetts Institute of Technology (MIT) MULTICS (Multiplex Information and Computing Service). L’objectif était de mettre en place un système informatique capable de fournir des systèmes interactifs en temps partagé pour un millier d’utilisateurs en simultané. MULTICS comportait un langage de commande de la machine qui était le même langage de programmation que celui qui est utilisé par l’utilisateur lorsqu’il interagi avec le système.

Il est à noter que le langage PL/1, langage évolué s’appuyant sur les systèmes Burroughs écrit en ALGOL (ALGorithmic Oriented Language),  a permis d’améliorer le système d’exploitation MULTICS. Par ailleurs le développement de la mémoire virtuelle segmentée i a permis de combiner la mémoire centrale pour les données volatiles et les données persistantes.

MULTICS demeure pourtant l’inspirateur principal des modèles contemporain. MULTICS est la première référence en matière de protection des systèmes d’information. En 1975 le collectif CROCUS actualise MULTICS

L’intérêt principal de ces deux modèles de protection repose sur la structuration « en anneaux ». Un processus s’exécute dans un anneau et chaque anneau se voit attribué un niveau de privilège. Il y a huit anneaux qui sont numérotés de zéro à sept avec un anneau zéro qui a les privilèges les plus élevés et un anneau sept qui a les privilèges les moins élevés. L’anneau du processus courant se trouve au niveau de la zone de mémoire contenant les informations essentielles sur le traitement en cours. Tous les segments (qu’ils soit pour de de la mémoire relative ou de la mémoire persistante) sont pour chaque type d’accès (lecture, écriture ou exécution) liés à un anneau.

Quand un processus sera exécuté dans un anneau ayant une valeur inférieure ou égal à l’anneau d’exécution d’un segment, le programme contenu dans ce segment pourra être exécuté. Mais si le processus est exécuté dans un anneau qui a une valeur supérieure à l’anneau d’exécution l’action est bloqué. Un processus peut changer d’anneau si le responsable du système d’exploitation débloque les accréditations nécessaires qui vont permettre l’attribution de privilèges supérieures et donc l’accès à de nouveaux segments.

La protection des objets informatiques est pensée pour être d’utilisation intuitive :

-       Chaque poste à un administrateur. Celui-ci est généralement l’utilisateur qui l’a créé ; MULTICS considère tous les objets  (fichiers, processus, ou structure de données éphémères) comme des espaces de mémoire virtuels. On parle de segments.

-       Pour accéder à un segment, l’administrateur défini une série de droits d’accès. Chacun de ces droits d’accès correspond à un type de tâche : pour la lecture c’est le droit de consultation ; pour l’écriture ou la destruction c’est le droit de modification ; pour l’exécution d’un programme, c’est le droit d’exécution ; enfin le droit de blocage sert par exemple dans le cadre d’un processus en cours d’exécution.

-       Les droits d’accès sont liés à la liste de contrôle d’accès (access control list) qui énumère les utilisateurs ou les catégories d’utilisateurs avec les droits d’accès spécifiques.

-       Chaque utilisateur a la jouissance d’un certain nombre de privilèges. Ces privilèges sont concomitants du mode de navigation. Il y en a principalement deux : le mode « absolu » (qui donne un pouvoir complet sur le système) et le mode « utilisateur » (qui ne permet d’effectuer que des actions prédéfinies avec l’interface administrateur).

La protection logique : Paramétrer l’authentification

Les dispositifs de protection des systèmes d’exploitation modernes ne sont réellement efficaces que s’ils sont accompagnés des paramètres de sécurité suffisants. Les principaux paramètres de sécurité sont la séparation des privilèges, la sécurisation des mesures d’authentification et d’identification et le respect de la liste des contrôles d’accès.

 Séparer les privilèges revient à définir que si un utilisateur souhaite effectuer une activité du système, il lui faudra un certain nombre privilèges. Pour autant les privilèges dont il n’a pas un besoin nécessaire ne doivent pas lui être attribués. La norme est celle du privilège minimum.

. De manière générale, , sauf justement le cas de l’utilisateur root sous Linex, pour les différents systèmes d’exploitation,  l’administrateur réseau n’a pas accès à l’intégralité des privilèges. Sous linux, l’utilisateur root possède l’intégralité des droits sur toutes les interfaces du système. S’il effectue une fausse manœuvre, il peut compromettre sérieusement la sécurité et le fonctionnement du système notamment par la destruction ou la modification des fichiers de configuration du système

Les utilisateurs ordinaires ont systématiquement des droits d’accès particulièrement limités. Ces droits ne concernent que la création, l’écriture, la destruction de leurs propres données et éventuellement l’autorisation d’une la lecture partagée d’autres données d’utilisateurs ordinaires.

L’utilisateur qui se place au niveau administrateur peut néanmoins accroître son niveau de privilège s’il doit effectuer une action précise qui nécessite cette extension des privilèges. Les journaux du système, qui sont destiné à conserver la trace de tous les éléments qui le modifie de quelque manière que ce soit, enregistre l’identité des auteurs et les procédures suivis pour augmenter leurs privilèges.

En sécurité des systèmes d’information, les professionnels se fondent sur le modèle tri-partite. Ce modèle avec une architecture en trois étages est le  plus communément utilisé dans la sécurisation de systèmes informatiques. Il est également possible de multipliés les étages de l’architecture système : on parle alors d’une architecture multi-partite.

La modèle tri-partite est l’extension du modèle bi-partite qui reponse sur deux entités : le client et le serveur. L’architecture tri-partite repose sur trois groupes de fonctions. Chacune de ces fonctions est implantée sur un système informatique distinct avec des réseaux différents et des règles de sécurités ad-hoc pour chacune des fonctions.

Les trois niveaux du modèle sont les suivants :

-Le niveau donnée qui correspond au stockage des bases de données

-Le niveau logique pour les logiciels

-Le niveau présentation pour le navigateur, l’interface homme-machine.  

Entre le niveau présentation (navigateur) et le niveau logique (logiciel) on trouve le mandataire application (ou reverse proxy). Le reserve proxy est un serveur web spécialisé qui fonctionne comme une sorte de poste de frontière en ce qu’il permet d’ autoriser ou de refuser des requêtes émises par les utilisateurs en fonction des privilèges qui leur ont été attribués préalablement.

Lorsqu’un utilisateur veut accéder à un système d’information il doit tout d’abord s’identifier et s’authentifier. Ce qu’on appelle l’« identité » d’un utilisateur est déterminé par les privilèges et les droits d’accès de celui-ci. Pour que cette identité soit reconnue il faut que les privilèges et les droits d’accès soient convenablement administrés.  L’utilisateur fait généralement  usage d’un login c’est à dire un identifiant unique.

Grâce à l’unicité de l’identifiant l’administrateur est en mesure de vérifier à postériori quelles ont été les actions des utilisateurs et surtout à quel utilisateur correspond quelle action. C’est évidemment décisif lorsqu’il s’agit de déterminer l’origine d’un acte malveillant sur un réseau informatique.   

En conséquence de ce que nous venons de décrire, les utilisateurs doivent être régulièrement sensibilisés sur plusieurs aspects de sécurité des systèmes d’information :

- les utilisateurs doivent s’habituer à ne pas divulguer leurs identifiants leurs mots de passe

-les mots de passe doivent être suffisamment complexes

-Il est peu responsable d’utiliser  trop souvent les mêmes mots de passe

La sécurité ne doit pas pour autant remettre en question l'aspect pratique. En ce sens, le système d’authentification doit être suffisamment aisé d’accès, c’est à dire qu’il faut que l’utilisateur puisse s’ « approprier » le système d’authentification. Afin de répondre à cet impératif un grand nombre d’organisations ont mise en place des systèmes d’authentification centralisés. Ces solutions permettent de limiter le nombre de systèmes d’authentification particulier qui serait requis pour chaque  application. Les systèmes d’authentification personnalisés ou  single sign-on (SSO) permettent que les utilisateurs ne soient pas obligés de multiplier les mesures d’identification. A priori on pourrait imaginer que le SSO est une limitation à la sécurité des systèmes d’information or il a l’effet contraire.

La saisie multiple d’identifiant et de mots passe augmente considérablement les risques de sécurité informatique. En effet, les identifiants et les mots de passe correspondant sont stockés dans les différentes bases de chaque application. Elles sont alors beaucoup plus facilement accessibles pour un hacker. Dans la majorité des organisations un agent doit pouvoir accéder à plusieurs postes de travail et à ce titre  la gestion des changements de mot de passe devient considérablement plus complexe. Ceci engendre des possibilités d’erreur exponentielles. La solution des agents est généralement de noter de manière physique les identifiants et mots de passe. Evidemment c’est une solution inopérante en terme de sécurité informatique.

Les systèmes de SSO rendent possible la mise en place d’un référentiel centralisé des identités et des mots de passe. De cette manière toutes les applications sont re-dirigées vers un système centralisé de vérification de l’identité d’un utilisateur. Centraliser le stockage des mots de passe et des identifiants permet de limiter la surface numérique qui est à protéger. Cela rendu le nombre de failles potentiellement exploitables par un hacker. Avec une utilisation optimale du SSO on a accès à un système de ticket entre les trois entités (l’application, le serveur d’authentification du SSO et l’utilisateur et son navigateur web) et cela permet de ne jamais avoir à transmettre les éléments confidentiels.

Le procédé d’authentification qui est le plus classique est le couple login/password (identifiant – mot de passe). La création d’ un compte utilisateur nécessite correspond à un enregistrement dans le fichier /etc/passwd qui est la base de donnée d’identification. Ce fichier a une entrée par utilisateur. Chaque entrée est elle-même constituée de champ qui sont séparés les uns des autres par « : ».

Le fichier est un liste des champs qui suivent l’ordre suivant:

-  le login ou le nom de l’utilisateur;

-  le mot de passe qui est enregistrer de manière codée. Il est toujours conservé dans le fichier /etc/password. Ceci facilite généralement le travail du pirate informatique) ;

- UID et le GID qui sont respectivement le numéro d’identification (UID) et le numéro de groupe de l’utilisateur (GID) ;

- le vrai nom de l’utilisateur;

- le répertoire d’accueil et le programme d’accueil;

Un mot de passe est systématiquement codé. Un codage est effectué grâce à une fonction de condensation. Cette fonction mathématique permet de calculer l’empreinte numérique du mot de passe (on parle de condensat). De manière pratique, lorsque l’utilisateur souhaite se connecter et tape son mot de passe, le condensat est calculé et il est comparé à celui qui est présent dans la base d’identification.

Le calcul d’une fonction de condensation pour une donnée de taille arbitraire « d », donnera une valeur h = H(d) qui aura une taille fixe de 20 octets. La valeur « h » est condensat, c’est-à-dire l’empreinte de la donnée d que l’on appelel aussi par un anglicisme le « haché ». Pour toutes les fonctions de condensation, il existe des collisions, ce qui signifie qu’il y a deux types de données (des zéros et des uns) qui auront le même condensat au travers de la fonction « H ». Cela s’explique par le fait que le nombre d’entrées possibles de la fonction « H » est très supérieur à l’ensemble des sorties. Il n’est pas obligatoire d’avoir plusieurs antécédents pour une même valeur image. On désigne par « n » la taille en bits du condensat produit par la fonction « H » dans un mode cryptographique. Il existe donc 2n condensats possibles associés à une même valeur d’entrée puisque chaque bit peut prendre 2 valeurs : zéro ou un. La fonction de condensation H présente alors deux caractéristiques principales, elle est :

-       Résistante aux collisions : pour  exploiter les entrées sorties de la fonction H, il faut intercepter 2n/2 valeurs d’entrée/sorties pour obtenir une collision, c’est-à-dire trouver deux valeurs  « d1 » et « d2 » tels que H(d1) = H(d2).

-       Résistante aux pré-images : quand un l’attaquant obtient une valeur hx de n bits de condensat, il lui faudra avec le meilleur algorithme de pré-image tester 2n valeurs de H pour obtenir un  antécédent de h.

La fonction de condensation est cryptographique lorsqu’elle est utilisée plus spécifiquement dans le contexte de la construction des systèmes sécurisés. Une fonction de condensation cryptographique a deux propriétés complémentaires par rapport à la fonction  de condensation classique. Ces deux propriétés complémentaires rendent plus difficile le travail de l’attaquant. Le National Institute of Standards and Technology (NIST) a publié dès 1995, le secure hash standard (SHS) qui propose une nouvelle fonction de condensation,  secure hash algorithm standard-1, (généralement écrite SHA-1). Les condensats font 160 bits, il y a donc une résistance aux collisions et aux pré-images supérieures à celle des MD5 (respectivement 280 et 2160). Si il n’existe à ce jour pas suffisamment de publications permettant d’exhiber des collisions, la difficulté pour en construire n’est pas irréalisable étant donné qu’il suffirait d’évaluer SHA-1 seulement 260.

Dans plusieurs systèmes informatiques et en particulier avec Unix et Linux, les utilisateurs doivent pouvoir avoir accès en lecture au fichier /etc/passw. Celà permet de mettre la main sur les condensats des mots de passe des utilisateurs et de tenter de trouver la version en claire. La fonction qui permet de transformer un mot de passe en clair en un condensat est une fonction largement disponible sur Internet. Les méthodes les plus utilisées pour tenter de casser le mot de passe sont l’attaque par dictionnaire et l’attaque par force brut. De quoi s’agit-il ?

-       L’attaque par dictionnaire va  utiliser une liste de mots prédéterminés dans la fonction de condensation en en faisant varier l’orthographe et la typographie afin de comparer les résultats obtenus avec les condensats contenus dans le fichier /etc/passwd.

-       L’attaque par force brut ne va pas se limiter à une liste pré-définie de terme mais va utiliser toutes les combinaisons possibles de caractères pour générer des mots de passe arbitraires et  les codés avec la fonction de condensation. Ils sont ensuite comparés avec le texte « pompé » dans le fichier /etc/passwd.

Ce type de méthode est très connue des « white hats ». Malheureusement de plus en plus d’utilisateurs transférent leur condensats dans des fichiers avec des droits d’accès plus limités ( généralement /etc/shadow/). Avec les bases de données d’identification, il devient très aisé facile d’effectuer des attaques informatiques. Ainsi en 2015, la clé « Trois Suicides » a permis des attaques entrainant des préjudices de plusieurs milliards de dollars au dépend de LinkedIn, Adob et Ashley Madison.

Cette  synthèse permet de mettre en perspective les enjeux des protections physique et logique en matière de sécurité des systèmes d'information. Néanmoins il est impossible d'être exhaustif et ceci est particulièrement vrai car la sécurité des systèmes d'information est un environnement  qui évolue régulièrement avec de nouveaux risques mais aussi de nouvelles opportunités.