lundi 29 août 2016

Sécurite - Vol 1 : définitions

L'utilisation croissante d'outils informatiques divers, et les données de plus en plus sensibles que nous leur confions, font de la sécurité une problématique de plus en plus prégnante. Pour autant c'est un sujet souvent mal compris par les utilisateurs qui sont pourtant régulièrement impactés dans leurs usages par les procédures mises en oeuvre, sans nécessairement comprendre le pourquoi ni le comment.

Le sujet est complexe et nécessite d'être abordé progressivement. Nous allons tenter de donner un premier niveau de compréhension des problèmes et solutions. Comme d'habitude sur ce blog, notre objectif n'est pas de tenir des propos d'experts mais de vulgariser le sujet et donner les informations clés pour faciliter un éventuel travail complémentaire du lecteur intéressé.

Dans ce premier article nous expliquons les enjeux. Les articles suivants exploreront divers aspects des solutions usuelles et expliqueront les bases techniques requises (cryptographie en particulier).

La donnée au cœur de la problématique : DICP

Tout d'abord il est important de préciser ce qu'un professionnel de l'informatique entend par "sécurité" car ce n'est pas nécessairement la même chose que le grand public qui se focalise généralement sur la confidentialité.

Tout le monde a entendu parler du vol de données par d'audacieux pirates qui s'emparent des données de tel ou tel site web. Récemment, un site organisant des rencontres extra-conjugales s'est fait voler ses données et ces dernières ont été mises en ligne publiquement, conduisant à au moins deux suicides de personnes ne supportant pas de voir leurs infidélités, avérées ou non, dévoilées sur la place publique. Des "people" se sont fait voler des photos intimes dénudées qui ont fait la joie des voyeurs. Wikileaks est à l'origine de crises diplomatiques. Les exemples ne manquent pas. Ici, on est face à des problèmes de confidentialité de la donnée.

Egalement dans l'actualité récente, des pirates travaillant pour le compte de l'Etat Islamique ont mené des attaques de types DDOS (Distributed Deny Of Service) sur des sites de l'état afin de les rendre indisponibles. Rappelons qu'une attaque de ce type vise à solliciter un site en le bombardant de requêtes de façon à dépasser ses capacité de traitement et le faire tomber en panne. Ici, on est face à un problème de disponibilité de la donnée (le site étant indisponible, il ne peut plus délivrer la donnée).

Les mêmes pirates après les attentats du 13 novembre à Paris ont modifié les pages d'accueil de sites destinés au grand public, comment par exemple le site de France 5, afin de remplacer les contenus initialement publiés par des messages de propagande. Ici, on est face à un problème d'Intégrité de la donnée (l'information publiée "les terroristes ont commis un attentat abominable" est devenue un bullshit du genre "les héros du jihad ont puni les infidèles" ce qui bien sur n'est pas le message que voulait délivrer le rédacteur).

Plus récemment, après cette fois les attentats de Nice, l'application "alerte attentat" que l'état avait fait développer afin d'envoyer des messages d'alerte au public (enfin pour ceux équipés d'un smartphone Apple ou Android, ayant une couverture réseau pour les data, et ayant activé l'application... ) a totalement foiré : les messages d'alerte sont arrivés très longtemps après la bagarre car l'application était indisponible le moment venu. Encore un problème de disponibilité (de la donnée "une attaque est en cours à Nice, allez vous mettre à l'abri, évitez la zone") mais qui cette fois ci n'est pas lié à une attaque du système informatique.

Au travers de quelques exemples, nous avons mis en exergue les 3 aspects de la sécurité :
  • D pour Disponibilité de la donnée
  • I pour Intégrité de la donnée
  • C pour Confidentialité de la donnée

Auxquels il faut en ajouter un quatrième : P pour Preuve. Il s'agit ici de tout ce qui touche, en gros, aux logs qui permettent après la survenue d'un problème (comme la corruption ou l'indisponibilité d'une donnée) de déterminer
  • comment il est survenu, donc pour permettre d'analyser le problème et faire les corrections nécessaires
  • qui est responsable (notion de preuve) et qui doit éventuellement supporter les conséquences, financières et/ou judiciaires, du problème survenu
Les logs c'est le jargon informatique pour désigner les traces que laisse tout programme, principalement dans des fichiers dits de journalisation, sur ce qui se passe en interne, ou sur les actions sensibles menées par des opérateurs humains.

La sécurité du système d'information c'est la bonne prise en compte de ces 4 aspects, résumés dans l'acroyme DICP, à tous les niveaux (conception, exploitation, utilisation).

Firewall, antivirus etc.

Nous venons de définir ce qu'est la sécurité d'un système d'information et pour autant nous n'avons aucunement cité les premiers sujets qui viennent à l'esprit de nombreuses personnes quand on aborde le sujet. 

Le firewall a été popularisé par les conneries débitées dans les films et séries, et tout le monde a entendu parler des méchants virus informatiques et des antivirus qui les combattent.

Firewall comme antivirus ne sont que des moyens. Ce sont des éléments, certes importants, de la politique de sécurité (qui vise à garantir DICP des données) mais ce ne sont que des éléments parmi d'autres.

Pourquoi installons nous des antivirus (et les maintenons nous à jour, nous assurons nous que les utilisateurs ne peuvent les désactiver etc.) ? > Pour nous prémunir contre des virus. 

Pourquoi nous prémunissons nous des virus ? > Car les virus vont avoir une action malveillante qui impactera le DICP. Ils vont surveiller vos frappes au clavier et vous voler vos identifiants et mots de passe, ce qui compromet la Confidentialité et fausse les Preuves, ou mettre en place divers mécanismes pour atteindre ce même objectif. Ils vont supprimer ou modifier vos fichiers ce qui compromet l'Intégrité. Ils vont utiliser votre ordinateur pour faire des actions malveillantes (attaque ddos, spam, diffusion de virus ...) et ce faisant le priver d'une partie de sa capacité de traitement et compromettre la Disponibilité.

Quel est le rôle d'un firewall ? Interdire l'accès au réseau interne aux personnes non autorisées et donc, entre autre, garantir la Confidentialité et l'Intégrité des données.

Politique de Sécurité de l'Information

Nous avons parlé jusque ici de sécurité du système d'information (ou du système informatique, c'est la même chose).

Mais le système d'information n'est qu'un outil, qui sert à gérer de l'information, et ce qu'on cherche à protéger in-fine c'est l'information. Et il faut donc commencer par définir une politique de sécurite de l'information. Un simple exemple : à quoi bon dépenser des millions pour sécuriser à outrance les données stockées dans votre SI vis à vis du monde extérieur, si tout le monde ou peu s'en faut dans l'entreprise y a accès et sans avoir conscience des enjeux économiques associés ni être responsabilisé ?

La politique de sécurité du SI n'est qu'un élément de la politique de sécurité de l'information (un élément essentiel de nos jours mais pas le seul élément).

La politique de sécurité de l'information doit définir les informations importantes et leur sensibilité en terme de DICP. En effet, ce sont ces exigences qui vont guider la construction de la politique de sécurité du système d'information et elles ont un impact majeur en matière de coût.

Par exemple, si le besoin de disponibilité est très important, il va falloir mettre en place des solutions de haute disponibilité avec de la redondance sur tous les éléments, un site de secours informatique permettant de redémarrer très rapidement en cas de sinistre majeur, impliquant de la réplication en temps réel entre les deux sites et donc la location de liens réseaux à très haut débit etc.

Nul besoin d'être un expert pour comprendre que deux sites informatiques, ça coûte grosso modo le double d'un seul site... Votre société préfère peut être se trouver sans outil informatique pendant quelques jours, que supporter en permanence le coût d'une capacité de redémarrage en 1 Heure pour un sinistre dont la probabilité de survenance est somme toute assez faible. Des procédures manuelles dégradées et un processus de reprise progressif sur quelques jours sont sans doute suffisants. Mais si vous gérez un aéroport ou une base de missile nucléaire les choses sont différentes...

Je vous suggère la lecture de l'article en lien qui donne un très bon exemple et une très bonne explication des DICP de façon très amusante et en Français tant qu'à faire.

Quelques données clés au sujet de la sécurité

La sécurité est l'affaire de tous, à commencer par les utilisateurs des systèmes qui en constituent le principal maillon faible. L'ingénierie sociale est un des principaux moyens utilisés par les pirates pour détourner les mesures de sécurité mises en place par les organisations.


La sécurité ne relève pas que des informaticiens et de la mise en oeuvre de moyens technique ; il y a aussi et entre autre des aspects organisationnels ou de gestion RH. Par exemple, il faut penser à désactiver les comptes des collaborateurs quittant la société, sensibiliser les utilisateurs, identifier les responsables de la sécurité et les former, organiser les locaux ...


La sécurité maximale du SI est la sécurité de son élément le plus faible. Imaginez un SI super sécurisé au niveau réseau et pour lequel on permettrait un accès administrateur depuis un poste hébergé dans un local dont la porte ne fermerait pas a clé.

Il existe des méthodologies pour vérifier la prise en compte des contraintes DICP sur lesquelles s'appuient les consultants en sécurité pour mener des audits. Les formations relatives à la sécurité se développent, il y a un marché en plein essor en la matière.

Il existe des certifications qualité pour garantir que les organisations ont le souci et sont organisées d'une façon satisfaisante au regard du DICP. Le respect de telle ou telle certification est une exigence de plus en plus courante pour des grands contrats.

Il y a une prise de conscience forte de l'état sur l'importance de la sécurité compte tenu de la digitalisation croissante de l'économie et des risques de cyber-attaques pouvant gravement déstabiliser un état ou une économie. L'état s'est doté d'une agence de sécurité et embauche à tour de bras. Des opérateurs d'importance vitale (OIV) sont identifiés et se voient imposés par la loi des normes et règles en matière de sécurité.

Focus sur l'exemple "Alerte attentat"

La raison du dysfonctionnement était que suite à des travaux de génie civil (un bien grand mot pour parler d'ouvrier qui ont fait une tranchée dans le sol) le câble réseau raccordant le datacenter où était hébergée l'application a été coupé, ce qui a entraîné un dysfonctionnement de l'application.

Les sondes surveillant le bon fonctionnement de l'application et sur lesquelles s'appuyait la supervision (la surveillance du bon fonctionnement) ont données de mauvaises informations et laissé croire que l'application fonctionnait correctement après rétablissement de la connexion réseau.

Quand on a eu besoin de l'application, à priori dans les minutes qui ont suivi l'attentat de Nice (supposition, il y a peut être ici aussi eu des dysfonctionnements et des retards dans l'activation du système d'alerte) on s'est rendu compte du problème et il a fallu un long moment pour redémarrer le système (ce qui en soit n'est pas normal non plus).

Une première remarque : un datacenter digne de ce nom doit disposer de deux accès réseaux redondés de façon à ce que ce type d'incident, pas si rare, n'ait pas d'incidences. Ensuite, pour une application aussi critique, le bon sens aurait voulu qu'elle soit installée sur deux sites (deux datacenters) distincts et suffisamment distants géographiquement. Ces deux mesures de simple bon sens auraient permis d'apporter ce qu'on appelle la Haute Disponibilité (voir mon article sur la HD disponible ici), et ce d'autant plus facilement que la solution s'appuie sur une couche de virtualisation (voir mes articles sur la virtualisation ici, ici et ici). La Haute Disponibilité est un moyen au service de la politique de sécurité (plus particulièrement de l'aspect Disponibilité).

Ensuite, j'estime qu'une application bien conçue doit être capable de supporter une perte et un rétablissement de la connexion réseau. Il suffit de prendre cette considération en compte dans la phase de conception technique, les solutions existent. Enfin, la supervision a manifestement été bien mal conçue puisqu'elle affichait un voyant vert où on aurait du avoir des alertes en rouge clignotant partout. Bref, un amateurisme bien difficile à accepter s'agissant d'une application qui est censée protéger des vies humaines et qui doit être financée, conçue et exploitée en conséquence.  Ici aussi on est sur un problème de disponibilité et on voit que cette problématique de sécurité doit être prise en compte dans la conception, et donc en amont dans la spécification et l'expression du besoin qui en est à l'origine. La sécurité doit être prise en compte à tous les étages.

Face à cet échec, des corrections sont à apporter (et ont à priori été apportées). Mais au delà, il peut être intéressant d'établir les responsabilités respectives des différents intervenants du projet :

  • la MOA (l'état qui a rédigé le cahier des charges, défini le planning, financé l'opération, validé la solution) a elle exprimé le besoin de Haute Disponibilité, suffisamment financé l'opération pour permettre cette mise en oeuvre, vérifié le bon fonctionnement ? N'a elle pas imposé ou accepté un planning ne prévoyant cette mise en HD qu'ultérieurement (voire pas du tout) ?
  • la MOE (le prestataire qui a conçu et réalisé l'opération) a elle bien fait son travail, a elle rempli son devoir de conseil en alertant la MOA sur un besoin de HD non exprimé ou non financé, a elle bien sélectionné l'hébergeur (si ce n'est pas l'état qui l'a imposé ce qui est tout à fait probable dans le cas présent) ?
  • l'hébergeur (la société qui est en charge des serveurs physiques sur lesquels est installée l'application, et de leur connexion Internet) offrait il le niveau de sécurité requis ?
  • l'exploitant (la société en charge de la supervision applicative c'est à dire de surveiller le bon fonctionnement et de rétablir la situation en cas de problème, ici la même que l'hébergeur à priori). A priori il semble hors du coup car le mauvais fonctionnement des sondes ne peut guère lui être opposé, un exploitant  ne fait qu'utiliser les outils qu'on lui fournit en suivant des procédures qu'on lui fournit. Si ces outils ou procédures sont défaillants, il ne peut pas en être responsable, sauf dysfonctionnement manifeste qu'il n'aurait pu que constater et qu'il n'aurait pas signalé.
Ici on voit l'importance de bien contractualiser et de disposer des logs permettant de comprendre l'origine d'un problème afin de pouvoir se retourner contre le responsable et obtenir des dédommagements ou le faire condamner en cas de conséquence condamnable au civil ou au pénal. La sécurité doit être prise en compte à tous les étages.

Conclusion (temporaire)

La sécurité est un sujet d'actualité et qui ne cesse de prendre de l'importance.

Tout utilisateur régulier de site internet ou d'applications mobiles a pu voir apparaître de nouveaux usages en lien avec la sécurité, même si ils n'ont pas forcément fait le lien :
  • généralisation de techniques de double authentification : par exemple envoi de sms sur votre portable avec un mot de passe temporaire
  • possibilité d'utiliser ses identifiants de réseaux sociaux (FaceBoox, LinkedIn, Google+...) sur de multiples sites sans devoir se créer à chaque fois de nouveaux identifiants
  • demande d'autorisation pour autoriser à des applications d'accéder à certaines données personnelles gérées pour vous par diverses applications (réseaux sociaux ou autre)


Cette rapide  introduction visait à préciser que la sécurité du SI s'inscrivait dans un cadre plus global visant à la sécurité de l'information, qu'elle ne relevait pas uniquement des informaticiens et des moyens informatiques, et que son champ d'application était bien plus développé que ne l'imaginent probablement les néophytes sur le sujet.

Dans les prochains articles nous expliquerons rapidement les quelques principes de base en cryptographie dont la compréhension est requise, et nous mettrons un focus sur les problématiques d'authentification et d'habilitation.