Introduction à la sécurité

Commençons cette partie par une introduction aux principes de sécurité. Nous allons d’abord voir ce qu’est la sécurité et les différentes façons de sécuriser un réseau. Ce chapitre servira de base aux autres. Dans ceux-ci, nous entrerons un peu plus dans les détails des principales attaques en réseau et nous verrons comment les prévenir. ;)

Cette partie n’aborde que quelques notions de cybersécurité. Pour aller beaucoup plus loin, vous pouvez vous procurer La Cybersécurité de Zéro, disponible sur toutes les plateformes et dans les bonnes librairies !

La Cybersécurité de Zéro, aux éditions Eyrolles, reprend des éléments de cette partie
La Cybersécurité de Zéro, aux éditions Eyrolles, reprend des éléments de cette partie

C'est quoi la sécurité ?

Bien ! Nous allons consacrer cette partie à la sécurité réseau… OK… Mais, à quoi sert la sécurité ? Le savez-vous ?

Un réseau est constitué de plusieurs nœuds. D’ailleurs, c’est même cela la définition basique d’un réseau : une interconnexion de nœuds. Mais, ces nœuds sont interconnectés dans le but de s’échanger des informations, qui sont appelées des ressources.

Qu’est-ce qu’une ressource ?

Dans un réseau, une ressource est toute forme de données ou d’applications que l’on peut utiliser pour accomplir une tâche précise. Par exemple, dans le cas d’une imprimante, les ressources dont elle a besoin pour accomplir sa fonction (imprimer) sont majoritairement le papier et l’encre.

Dans une entreprise, le réseau a principalement pour but l’échange de ces ressources desquelles dépendent les activités commerciales de l’entreprise. Étant donné que ces ressources sont cruciales à son bon fonctionnement, il est important, voire obligatoire, de veiller à leur sécurité.

Pourquoi protéger les ressources ?

En ce qui concerne l’imprimante, nous savons tous que son travail consiste à imprimer des données numériques sur support physique. Que se passerait-il alors si quelqu’un volait tous les papiers de l’imprimante ? Elle a beau avoir l’encre, sans papier elle ne peut pas remplir sa fonction. On peut ainsi parler du niveau de dépendance ou degré de dépendance de l’imprimante. Non seulement elle a besoin d’encre, mais aussi de papier. Il est donc important de veiller à ce que personne n’enlève l’encre ou le papier de l’imprimante, car ces deux ressources lui sont liées. ;)

C’est logique vous nous direz, mais nous sommes en train de poser des bases très importantes en réseaux. Vous devez saisir cette notion de dépendance. Vous aurez beau protéger une ressource importante, si une autre ressource qui est liée à cette dernière est exposée, cela demeure une faille qu’un intrus peut exploiter. La sécurité consiste à veiller à l’intégrité des ressources d’un réseau, ainsi qu’à leur disponibilité.

Cette information est très importante, c’est une règle que vous devez retenir. Plus des nœuds d’un réseau dépendent d’une ressource, plus cette ressource sera la cible principale d’une attaque. Plus le degré de dépendance est élevé, plus il faut songer à sécuriser ladite ressource.

Étude de cas : Zeste de Savoir

Imaginez que vous administrez le réseau de Zeste de Savoir. Commençons d’abord par localiser les ressources du site.

Quelles sont les ressources de Zeste de Savoir ?

Elles sont nombreuses, mais voici les principales :

  • Les tutoriels ;
  • Les articles.

Les membres du site peuvent être considérés comme étant des ressources, mais nous allons plutôt les considérer comme étant les nœuds qui forment le réseau de Zeste de Savoir. Les tutoriels sont, sans l’ombre d’un doute, les ressources les plus importantes. Ce sont ces ressources qui génèrent majoritairement tout le trafic du site.

Et si tous les tutoriels étaient supprimés ?

Que se passerait-il si un jour vous vous connectiez sur Zeste de Savoir et qu’il n’y ait plus un seul tutoriel en ligne ? :o

Zeste de Savoir gardera encore longtemps ses membres, mais le trafic va considérablement diminuer ou stagner. Grâce à la communauté, il y aura toujours des membres qui viendront pour discuter sur les forums. Mais, la principale ressource attrayante n’étant plus disponible, Zeste de Savoir commencera à entrer dans une période de déclin.

Une fois qu’un « attaquant » (hacker si vous voulez) localise la ressource dont le réseau dépend considérablement, cette dernière deviendra sa cible principale (on parle aussi de cible d’évaluation). C’est alors que nous répétons notre règle d’or :

Plus des nœuds d’un réseau dépendent d’une ressource, plus cette ressource sera la cible principale d’une attaque. Plus le degré de dépendance est élevé, plus il faut songer à sécuriser ladite ressource.

Vous devez noter que « nuire » aux tutoriels implique l’exploitation d’une faille quelconque. Nous allons parler de l’exploitation dans les sous-parties suivantes.

Tout au long de cette partie, nous allons vous apprendre les bonnes pratiques à mettre en place pour maximiser la sécurité des ressources dans un réseau.

Si vous avez lu tout le cours, vous êtes très riches en connaissances. Nous allons donc entrer dans des détails techniques (surtout dans le langage). Nous allons vous considérer comme étant des professionnels travaillant en tant qu’administrateurs réseaux. Ainsi, vous aurez à votre disposition de nombreux conseils en sécurité, et surtout beaucoup de techniques de prévention et de protection contre les attaques. ;)

Comprendre la terminologie

Nous allons, dans cette sous-partie, aborder la terminologie en sécurité. Oui, ça ne parait pas extraordinaire, mais ce premier chapitre n’est qu’une introduction au concept. ;)

Une menace

En anglais threat, une menace est une situation qui pourrait potentiellement conduire à un événement dramatique. Quand vous recevez des appels anonymes d’une personne menaçant de vous tuer, ceux-ci constituent une situation qui pourrait conduire à un événement dangereux, votre mort en l’occurrence. Dans la vie courante, lorsque vous recevez des menaces, vous prenez des mesures en conséquence, par exemple informer la police.

Dans un réseau, le principe reste le même. Une menace est une situation qui pourrait conduire à une potentielle rupture de la sécurité de votre réseau. Dès que vous localisez une menace, si innocente paraisse-t-elle, si vous êtes un employé, informez immédiatement votre administrateur de sécurité. Si c’est vous l’administrateur, commencez à mettre en place toute solution pouvant neutraliser cette menace.

La vulnérabilité

Également appelée faille, la vulnérabilité est une faiblesse quelconque dans votre réseau qu’un hacker peut exploiter au travers d’un logiciel qu’on appelle « exploiteur ». Ces logiciels sont des morceaux de code qui profitent de la présence de bugs dans un système ou de failles dans un réseau pour avoir accès illégalement à des ressources, voire augmenter les privilèges d’un compte utilisateur afin de mieux exploiter les ressources et ouvrir une porte pour un autre hacker.

La majorité des failles sont des choses que l’on néglige, telle que la complexité d’un mot de passe. En tant qu’administrateur en sécurité réseau, il est important d’informer régulièrement les employés de votre société sur les politiques de sécurité, c’est-à-dire les bonnes pratiques. Parmi ces bonnes pratiques figurent la complexification d’un mot de passe. Si un employé junior0 a pour compte utilisateur « junior0 » et mot de passe « junior0 », cette faiblesse est une faille qu’un hacker peut exploiter pour avoir accès aux ressources sous le pseudo de junior0. Une fois qu’il a accès à ce compte, il peut éventuellement augmenter ses privilèges, par exemple passer d’un compte utilisateur simple à un compte administrateur et avoir les mêmes privilèges que vous, l’administrateur légitime. ;)

Il existe principalement deux types d’exploitation :

  • locale : une exploitation est dite locale lorsqu’elle émane de l’intérieur du réseau. Comme nous l’avons dit plus haut, si un hacker se sert du compte utilisateur d’un nœud légitime de votre réseau pour augmenter ses privilèges, toute attaque à partir de ce compte sera locale.
  • distante : une attaque distante, contrairement à une attaque locale, ne vient pas du réseau en tant que tel. C’est un hacker qui se trouve dans un réseau distant qui essaie d’exploiter une faille « à distance » sans avoir accès à un compte local à votre réseau.

Que cela vous surprenne ou non, la majorité des attaques sont locales et non distantes.

Les étapes d’exploitation d’une faille

Voici un schéma illustrant une procédure très commune d’exploitation d’une faille :

Schéma d'exploitation d'une faille
Schéma d’exploitation d’une faille

Le schéma est très évocateur, mais nous allons quand même le survoler un peu.

  • L’étape 1 consiste à trouver une faille. Généralement on utilise des logiciels de scannage (de port par exemple). Il est important de commencer par trouver la cible d’évaluation. Il faut une stratégie pour remporter une guerre. La cible d’évaluation est expliquée plus bas.
  • L’étape 2 consiste, bien sûr, à exploiter cette faille, c’est-à-dire, profiter de cette ouverture pour aboutir à « quelque chose ».
  • À l’étape 3, on s’assure que cette faille restera toujours ouverte afin de pouvoir l’utiliser à chaque fois. Eh oui, c’est comme l’open source, c’est mieux de réutiliser un code que de tout coder soi-même. ^^ Si une faille est déjà existante, autant la maintenir plutôt que d’en chercher une autre. Cela se fait souvent par l’installation d’une porte dérobée (backdoor).
  • L’étape 4, c’est « faire quelque chose » de cette faille. Par exemple, « prendre possession d’un compte » (to take ownership en anglais) et augmenter les privilèges de ce compte. Ainsi, si c’était un compte utilisateur simple, il s’agit d’acquérir les privilèges d’un compte administrateur.
  • L’étape 5 consiste à exploiter « localement » les ressources. Étant donné que vous possédez un compte interne au réseau, vous passez pour une personne légitime. C’est le principe de l’exploitation interne ou locale.
  • Finalement, la plus subtile des étapes, c’est, bien sûr, effacer ses traces. En termes d’investigation, c’est ce qu’on appelle « commettre le crime parfait ». Nous verrons comment effacer les traces dans un réseau et aussi quelques techniques d’évasion (fuite) en cas de détection.

Nous avons volontairement « disséqué » les étapes d’exploitation, mais sachez que ces 6 étapes peuvent être classées en 3 catégories. L’étape 1 c’est ce qu’on appelle la phase de « test de pénétration » ou « papier-crayon ». C’est une phase dans laquelle on se documente au maximum et on planifie notre attaque en cherchant à découvrir les caractéristiques (topologie, plan d’adressage, etc) du réseau que l’on cible afin de trouver une faille.

Les étapes 2 à 5 peuvent être groupées dans une catégorie « exploitation ». En effet l’exploitation d’une faille couvre tous les aspects mentionnés dans ces étapes.

La dernière étape peut être classée dans la catégorie « évasion ». « Effacer ses traces », c’est une forme de « fuite subtile ».

Cible d’évaluation

Le terme cible d’évaluation vient de l’expression anglaise Target Of Evaluation (TOE). Cette expression est plus propre à la certification CEH (que nous allons vous présenter) qu’à la sécurité de façon générale. Mais, le principe est universel. Une cible d’évaluation est la ressource la plus importante, celle dont dépendent les nœuds de votre réseau. Pour Zeste de Savoir, nous avons vu qu’il s’agissait des tutoriels. Ils sont, en termes de sécurité, une cible d’évaluation pour le hacker. Pour les banques, la cible d’évaluation pourrait être, par exemple, les numéros de comptes des clients.

Qu’est-ce qu’une attaque ?

On appelle attaque, toute tentative maligne de pénétrer un réseau illégitimement, par le biais de l’exploitation d’une vulnérabilité (ou faille). La majorité des attaques en réseau sont dues aux failles, et pour cela, le coupable numéro 1 c’est vous-même.

Imaginez que vous avez sur votre compte bancaire 300 000 euros. Pour ne pas oublier votre mot de passe, vous avez écrit sur un petit morceau de papier « mot de passe de mon compte : 4590 ». Un jour vous oubliez ce morceau de papier sur votre bureau au travail avec votre portefeuille. Un collègue s’en rend compte, prend votre carte, va dans un guichet retirer une grosse somme et retourne au bureau déposer votre portefeuille. Le fait d’avoir écrit ce mot de passe était une faille de sécurité. Avoir oublié le portefeuille était une erreur d’attention. Le retrait illégal de l’argent était une attaque. Qui est le premier coupable ? Celui qui a volé l’argent ou vous-même ?

En sécurité, la plupart des attaques sont dues à ce couple « faille-erreur ». Une faille est une ouverture et l’attaquant profite de votre erreur pour exploiter la faille.

Identifier / Authentifier / Autoriser

L’autorisation est différente de l’identification. C’est en quelque sorte une alternative. Lorsque vous avez un système qui ne nécessite pas la divulgation de l’identité de la personne, vous n’avez besoin que de vérifier si la personne remplit les critères lui donnant l’autorisation d’exécuter une opération, peu importe qui elle est. Par exemple, lorsque vous voulez retirer de l’argent d’un guichet électronique, le guichet ne vous identifie pas au sens strict du terme, mais il vous autorise. L’autorisation est une forme d’identification. La différence est fine, mais cet exemple vous aidera à mieux comprendre.

M. Pierre détient une carte qui a un numéro : 1428 6983 0596 et un code 0978. Il décide d’aller retirer 100 euros dans un guichet électronique. Lorsqu’il insère la carte et tape le code de sécurité, le guichet « sait » que la transaction est demandée par M. Pierre, parce que c’est sa carte. On peut l’identifier par le numéro de la carte. Le code de sécurité permet de l’authentifier premièrement, ensuite de l’autoriser à faire une transaction.

L’autorisation doit toujours être précédée de l’authentification.

En résumé, lorsque M. Pierre insère la carte, le système du guichet identifie par le numéro de la carte que c’est M. Pierre qui essaie de faire une transaction. Le numéro de la carte permet de l’identifier. Mais qu’est ce qui nous prouve que c’est bien M. Pierre ? Il faut lui demander le code de sécurité, car c’est personnel, et lui seul doit le détenir. Ainsi nous lui disons « Prouve-moi que tu es bien M. Pierre. Prouve-moi que tu es celui que tu dis être en me donnant le code de sécurité ». Pierre entre alors le code 0978, le guichet l’authentifie, atteste que la personne essayant de faire la transaction est authentique, c’est bel et bien M. Pierre. Par la suite, il peut effectuer les transactions de son choix, car il a désormais l’autorisation.

Maintenant un jour, il envoie son fils Matthieu. Ce dernier va retirer de l’argent étant en possession de la carte de son père et du code de sécurité. Le guichet lui donnera également accès, lui autorisera à faire la transaction, sans nécessairement identifier qu’ici, il s’agit de Matthieu et non de Pierre. Voyez-vous ?

Si ce n’est pas toujours clair, soyez tranquille, nous avons plusieurs autres exemples. Commençons d’abord par définir ces termes un à un avec un exemple à l’appui.

Identifier

C’est l’action d’évaluer l’identité d’une personne. Quand ce verbe est pronominal (s’identifier), c’est l’action de décliner son identité. Par exemple, si vous allez un jour au bureau d’une société, appelons-la ZesteCorp, rencontrer la secrétaire, vous allez vous présenter : « Bonjour, je m’appelle Pierre ». Vous vous identifiez. Si je veux rencontrer une personne que je n’ai jamais vue, je peux lui expliquer comment m’identifier, par mon habillement, par exemple : « Je serai vêtu d’un jean noir et d’une chemise blanche avec un chapeau de cowboy ». L’ensemble de ces descriptions servira à mon identification.

Authentifier

C’est l’exigence d’une preuve irréfutable qu’une personne est bel et bien celle qu’elle dit être. Pour reprendre l’exemple d’une visite à ZesteCorp, si la secrétaire vous demandait de prouver que vous êtes bel et bien Pierre, vous montrerez votre carte d’identité par exemple. La carte constitue donc une évidence, une preuve que vous êtes celui que vous prétendez être.

Dans une rencontre « face à face », l’identification et l’authentification se font très souvent au même moment, cependant dans des systèmes « distants » (où nous n’avons pas d’interaction face à face), ces deux étapes sont séparées.

Autoriser

L’autorisation consiste à vérifier qu’une personne identifiée a le droit de faire telle ou telle chose. Par exemple quand vous êtes majeur, vous avez le droit de voter, l’autorisation de voter. L’autorisation est la dernière étape dans un système de contrôle d’accès. Vous vous identifiez premièrement, vous donnez une preuve permettant de vous authentifier, et lorsque le système évalue cela, il vous donne l’accès, l’autorisation.

Si Pierre veut se connecter dans le réseau local de l’entreprise dans laquelle il travaille, il donnera son nom d’utilisateur (pour son identification), il donnera son mot de passe (pour son authentification), mais il faudra que le système détermine ses droits d’accès.

À votre avis, pourquoi lorsque vous vous connectez sur Zeste de Savoir, vous n’avez pas accès à l’interface de modération par exemple ? Parce que le système de sécurité vérifie vos privilèges dans le domaine, et vous autorise en fonction des droits que vous avez. Si vous êtes administrateur, vous avez le droit d’un membre, d’un modérateur, d’un validateur et d’un admin. Si vous n’êtes qu’un membre, vos actions (transactions) sur le site seront limitées en vertu de vos droits. C’est à ça que sert l’étape d’autorisation, limiter les possibilités de vos actions selon les privilèges que vous détenez.

Voilà, de manière simple, comment comprendre ces 3 notions fondamentales.

Les moyens de sécurité

Nous savons maintenant ce qu’est une faille, qu’est-ce qu’une attaque, une exploitation (locale ou distante), etc. Ok, tout cela c’est bien, mais maintenant quels sont les moyens à notre disposition pour sécuriser notre réseau ? Il existe deux façons de sécuriser un réseau. Ces deux façons sont liées l’une à l’autre et une bonne politique ou implémentation de sécurité résulterait d’un mélange de ces deux moyens de protection.

La sécurité physique

La sécurité physique est obligatoire. C’est d’ailleurs la première des choses à laquelle vous devez penser avant tout ce qui est high-tech. Parfois on se laisse tellement emporter par le prestige de la technologie qu’on oublie la base des bases. À quoi ça vous servira d’avoir sur votre serveur des logiciels hyper sécurisés si n’importe qui peut y accéder et débrancher les câbles ? ^^ La règle à retenir est la suivante :

La sécurité technologique dépend de la sécurité physique.

En fonction de vos besoins et de vos moyens, les solutions sont nombreuses. Cela peut aller d’un simple local fermé à clé, à un bâtiment vidéo-surveillé protégé par des barbelés, en passant par des gardiens et des portes blindées… Déjà, des machines sensibles sous clé, c’est pas mal. :-°

Les techniques de contrôle d’accès

Là où on a souvent davantage de latitude, c’est sur l’aspect technologique de la protection. Aujourd’hui, pour s’authentifier et obtenir l’accès à des services, on a recours aux mots de passe. Cette technique pose plusieurs soucis.

D’abord, il est facile pour un programme informatique de casser un mot de passe court ou simple. À l’aide de dictionnaires ou même par force brute, un code tel que « citron42 » ou « mzduv » ne résiste pas longtemps. Il est nécessaire de complexifier cela. Au lieu d’un mot, on peut créer une phrase de passe (avec quelques caractères spéciaux).

On ne peut toutefois pas garantir qu’un code, quel qu’il soit, ne soit pas un jour compromis. C’est pourquoi il ne faut pas utiliser le même mot de passe pour différents services. Sinon, un attaquant qui récupère vos identifiants peut accéder à tous vos comptes ! C’est là qu’est le deuxième souci. C’est pénible. On a tous plein de comptes différents pour plein de choses et retenir tous ces mots de passe relève du défi.

Fin 2018, une vague de spams a ciblé des entreprises et des internautes. Il s’agissait d’envois d’e-mails contenant, en objet, un supposé mot de passe du destinataire. Ces codes ont été retrouvés dans des bases de données piratées. Le message prétendait, en exposant ainsi un mot de passe qui aurait été utilisé par le destinataire, que des données compromettantes avaient été dérobées. Il demandait une rançon en l’échange du silence de l’attaquant.

Une solution consiste à utiliser un gestionnaire de mots de passe. Cet outil peut générer de longs mots de passe et les stocker de manière sécurisée. Pour les débloquer et les utiliser, on peut passer par les empreintes digitales ou une clé physique.

Une autre possibilité complémentaire est l’authentification par multiples facteurs. Cela consiste à fournir plusieurs preuves distinctes pour s’authentifier : un code unique envoyé par SMS, que seul le vrai propriétaire du compte doit pouvoir consulter, une carte à puce, etc. Cette technique est notamment employée par les banques pour empêcher l’utilisation frauduleuse de cartes bancaires.


Maintenant, vous savez en quoi consiste la sécurité. :)