Qu’est ce que la défense en profondeur ?

I. Présentation

Dans cet article, nous allons introduire le concept de défense en profondeur dans le domaine de la cybersécurité. Nous allons voir qu'il s'agit d'un concept qui n'est pas nouveau et qui trouve ses sources dans l'histoire militaire française (entre autres). Cet article se base notamment sur le document La défense en profondeur appliquée aux systèmes d’information de l'ANSSI, paru en 2004.

Le concept de défense profondeur (Defense in Depth ou DiD) peut avoir de très nombreuses implications dans le domaine de la cybersécurité et ne s'applique pas seulement sur la topologie/ l'architecture réseau. Cet article vise à faire comprendre ce concept, sans le décrire de façon exhaustive. Les lecteurs aguerris y verront des raccourcis et des oublis, n'hésitez pas à partager vos remarques ou incompréhensions dans les commentaires :).

II. Histoire militaire de la défense en profondeur

A. L'exemple de Vauban et la baie de Saint-Malo

Pour mieux comprendre le principe de la défense en profondeur, nous allons parler de Vauban (1633-1707), expert en poliorcétique (l'art d'organiser l'attaque ou la défense lors du siège d'une ville, d'un lieu ou d'une place forte) pour le compte de Louis XIV. C'est dans les architectures mises en place par Vauban que l'on peut comprendre de manière très concrète le concept de défense en profondeur.

Il faut noter que vous pouvez physiquement vous rendre compte de ces architectures défensives en vous rendant dans les nombreuses fortifications de Vauban qui sont encore debout en France :).

Avant la création du canon et du boulet métalliques, une forteresse imprenable se définissait par d'épais murs dessinant une frontière nette entre le dehors et le dedans. Ce dernier contenant les biens à protéger (or, nourritures et autres princesses) : C'est la défense périmétrique.

Lorsque l'on regarde les places fortes construites par Vauban, il est aisé de comprendre l'aspect le plus important de la défense en profondeur : la succession de barrières défensives. Ces architectures se sont montrées nécessaires à la suite de la création du boulet à canon, capable de faire tomber n'importe quelle épaisseur de mur.

Un cas très intéressant est celui de la baie de Saint-Malo, autour de laquelle plusieurs fortifications ont été érigées aux XVI et XVII siècles pour se protéger des invasions de la ligue d’Ausbourg (alliance de 8 royaumes contre la France) ainsi que d'une potentielle invasion anglaise à la suite de la montée en prestige de la ville de Saint-Malo. La carte suivante expose les différents mécanismes de défense mis en place, commentés par la description du site www.petit-be.com :

La défense en profondeur de Vauban dans la baie de Saint-Malo
La défense en profondeur de Vauban dans la baie de Saint-Malo

Plutôt que compter sur un mur épais, Vauban va tirer parti de l'environnement géographique et de la complexité et la profondeur du terrain pour étaler sa défense. Ici, chaque ligne de défense est indépendante des autres, la chute d'une ligne de défense n'impacte pas l'efficacité des lignes suivantes. Un fort de défense reste un fort de défense, que le précédent soit tombé ou non.

On voit bien ici qu'avant d'atteindre Saint-Malo, l'attaquant aura plusieurs barrières défensives à passer, on peut rajouter à cela la ville même de Saint-Malo, qui comporte de hauts murs sur lesquels trônent des canons. Également, la baie de Saint-Malo est encore aujourd'hui réputée comme difficile à la navigation en raison des hauts-fonds et des marrées, ce qui rend une attaque réalisable qu'à certaines heures de la journée. Toutes ces barrières défensives visent à ralentir l'attaquant (pour préparer la défense, amener des renforts) ainsi qu'à l'affaiblir. On peut également imaginer que les défenses les plus lointaines visent à détecter au plus tôt l'attaquant.

B. L'exemple du château de Fougères

Si l'on remonte avant Vauban, le concept de défense en profondeur est aussi visible dans certaines forteresses moyenâgeuses. Prenons exemple sur le château de Fougères, place forte des marches de Bretagne :

Les différentes enceintes défensives du château de Fougères
Les différentes enceintes défensives du château de Fougères

Ici, on peut aisément distinguer trois zones à prendre dans le cadre d'une attaque :

  • La première enceinte, bornée par deux portes. Il faut remarquer que l'enceinte est très petite ce qui ne permet pas à l'ennemi d'y accumuler trop de troupes. D'épaisses tours permettent de contrôler et défendre les entrées. Également, l'entrée de la première enceinte ainsi que le passage entre la première enceinte et la deuxième sont protégés par des ponts-levis, ainsi que des portes munies de herses.
  • La deuxième enceinte: plus grande afin de pouvoir y recueillir hommes et bâtiments ainsi que des engins défensifs. Elle est également défendue par des tours et un chemin de ronde.
  • La troisième enceinte, séparée de la deuxième par un grand mur, elle surplombe l'ensemble des zones internes et externes. Elle contient les tours et donjons qui permettent de se protéger des tirs ennemis tout en ayant la portée suffisante pour se défendre et voir les mouvements de troupes. Tous les accès de la deuxième à la troisième zone ne sont que des portes dans lesquelles un seul homme ne peut passer à la fois.

La visite sur place du château de Fougères matérialise très concrètement ce principe de plusieurs lignes de défense successives. Si vous n'êtes pas trop loin, je vous encourage à vous y rendre ! 🙂

En complément, chacune de ces zones possède également des mécanismes de défense qui font parti de l'architecture de la forteresse :

  • des hauts murs, sur lesquels peuvent se positionner des archers et qui permettent de circuler pour surveiller les zones
  • des douves, remplies d'eau, empêchant l'ennemi de prendre une zone sans avoir conquis la première
  • des ponts-levis visant rendre plus difficile l’accès d'une zone
  • des herses visant à ralentir la progression
  • des meurtrières pour affaiblir les troupes adverses
  • la ville est entourée de collines escarpées qui rendent difficiles le positionnement d'engins de siège
  • etc.

C. Les grandes lignes de la défense en profondeur

Ces différents exemples nous permettent de donner une définition de la défense en profondeur et de nous rapprocher peu à peu de la cybersécurité :

  • les biens à protéger sont entourés de plusieurs lignes de défense ;
  • chaque ligne de défense participe à la défense globale ;
  • chaque ligne de défense à un rôle à jouer : affaiblir l'attaque, la gêner, la retarder (échange de terrain contre du temps par exemple) ;
  • chaque ligne de défense est autonome (la perte de la ligne précédente est prévue pour éviter un effet château de cartes) : la perte d'une ligne de défense affaiblit la suivante mais celle-ci dispose de ses propres moyens de défense face aux différentes attaques (chaque processus d'attaque possible entraîne une défense correspondante) ;
  • Tous les moyens sont mis en œuvre pour renforcer la défense des différentes lignes :
    • utilisation du terrain (la fortification est un aménagement du terrain) ;
    • cloisonnement pour limiter les effets d'une percée et les tirs par ricochet ;
    • renseignement pour éviter la surprise

J'espère que vous aurez compris à travers ses références historiques et matérielles, ce qu'est le principe de la défense en profondeur.

III. La défense en profondeur et la cybersécurité

A. Défense périmétrique : une vision obsolète

Dans le domaine de la cybersécurité, ce principe de multiples barrières est également valable. La vision de la défense périmétrique reste importante et non négligeable, mais elle apparaît comme lourdement insuffisante pour défendre un système d'information moderne :

Illustration de la défense périmétrique avec le château d'Auxerre
Illustration de la défense périmétrique avec le château d'Auxerre

La défense périmétrique se matérialise par les pare-feu externes, qui définissent ce qui peut entrer ou sortir. Cependant dans un système d'information, ces entrées sorties sont de plus en plus difficiles à contenir : les mails sont un vecteur privilégié d'infection, mais aussi l'outil principal de travail de bien des métiers. La majorité des applications lourdes ont laissé place à des applications web en HTTPS, flux utilisés aussi bien par les serveurs de contrôle et commande d'un malware que pour les réseaux sociaux ou les applications bancaires.

B. La défense en profondeur de l'architecture réseau

La défense en profondeur pour une architecture réseau d'un système d'information consiste donc à réfléchir à partir de la phrase suivante :

"Si un attaquant arrive à tel point de mon architecture, quelles sont les barrières qu'il lui reste à franchir pour arriver à <événement redouté> (compromission de l'AD, vol des plans du V2, modification de la valeur de son salaire, arrêt de la production, etc.)."

Il faut noter l'utilisation du si et non du comment. Lors de la mise en place d'une défense en profondeur, on se fiche de savoir comment l'attaquant est arrivé là. D'ailleurs en tant que pentester (je réalise des tests d'intrusion en utilisant des techniques de sécurité offensive) depuis plusieurs années, je parviens à arriver à des endroits du réseau audité par des vecteurs que les administrateurs système ne connaissaient ou n'envisageaient même pas. D’où l'importance du si et non du comment.

Si l'on regarde à nouveau le château de Fougères, nous pouvons faire le parallèle suivant :

Illustration de la défense en profondeur d'un SI avec le château de Fougères

Au Moyen-âge, l'assaillant ayant capturé l'enceinte 1 du château de Fougères n'était qu'au début de son périple, il lui reste à passer le pont-levis menant à l'enceinte 2, la porte protégée par une herse, traverser l'enceinte 2 sous le feu ennemi puis atteindre l'enceinte 3 par une petite porte bien gardée pour ensuite tenter de monter les différents étages du donjon. Il n'était donc qu'au début de son assaut. Aujourd'hui, un attaquant ayant compromis un serveur dans le DMZ (un site vitrine exposé sur Internet par exemple) doit également franchir plusieurs barrières défensives pour atteindre le contrôleur du domaine ou le serveur de fichier (quand la défense en profondeur est bien implémentée :)).

Ne vous y trompez pas, la mise en place de zones réseau et de pare-feu successifs est la version la plus simpliste et élémentaire de la défense en profondeur dans le domaine de la cybersécurité. La réalité est plus complexe et passe par de nombreuses barrières défensives différentes. Toujours sur une architecture réseau, voici les principes et évolutions les plus communes que l'on peut trouver pour mettre en place une défense en profondeur dans une architecture réseau :

  • DMZ/DMZ multiples par niveau de criticité ou type de service exposé
  • mise en place de zones réseau par type de population (stagiaire/alternants, développeurs, comptabilité, RH, administrateurs systèmes, DG)
  • mise en place de système de détection sur les principaux nœuds réseau (IDS, IPS, sondes)
  • mise en place d'un antivirus/EDR sur l'ensemble des systèmes
  • mise en place de bastion d'administration avec enregistrement des commandes
  • mécanismes d'authentification double facteur
  • VPN
  • application des guides de durcissements système et applicatif
  • création et application d'une politique de mot de passe, de mise à jour, de sauvegarde
  • sensibilisation des utilisateurs
  • etc.

Nous voyons donc bien ici qu'il ne s'agit pas seulement d'un aspect topologique et que les mécanismes de défense sont multiples en fonction de ce que l'on souhaite défendre. Il s'agit de la combinaison de lignes de défense multiformes (techniques, humaines, organisationnelles, etc.) visant à se protéger de menaces de natures très différentes.

C. La défense en profondeur d'un service réseau

Il est à noter que la défense en profondeur s'applique aussi bien à l’architecture réseau d'un SI qu'à une solution logicielle ou un système d'exploitation. À titre exemple, un service exposé sur le réseau tournant en tant que root sur un système d'exploitation est une défense périmétrique : on mise sur le fait que le service ne permettra pas d'exécution de commande. Cependant si c'est le cas, l'attaque obtient les droits root sur le système exécutant le service et le compromet intégralement.

Une approche de type défense en profondeur consistera par exemple à faire tourner le service en tant qu'un utilisateur non privilégié, dans un conteneur Docker. On positionnera en amont un pare-feu applicatif qui analysera les flux pour bloquer les requêtes suspectes et on isolera au niveau réseau l'hôte exécutant le conteneur Docker pour limiter la propagation d'une compromission au reste du réseau. En cas de compromission du service, l'attaquant devra encore :

  • contourner les règles de filtrage du pare-feu applicatif
  • passer de son compte de service non privilégié à l'utilisateur root du Docker
  • s’échapper du docker pour compromettre le compte du service Docker sur le système hôte
  • élever ses privilèges sur le système hôte
  • tenter de communiquer avec les autres hôtes du réseau, il s'apercevra alors qu'il est seul dans son réseau local.

Se faisant, il devra télécharger des outils/scripts, exécuter des commandes, monter une persistance sur le système, potentiellement contourner les droits SELinux mis en place ainsi que les restrictions des commandes/binaires présents sur le système, etc. Autant d'action pouvant lever des alertes sur les systèmes de détection et causer un ralentissement de son attaque, voir stopper l'attaque s'il ne parvient pas à franchir une de nos barrières.

​D. La défense en profondeur des attaques par mail

Autre exemple, le positionnement de 5 pare-feu successifs ne sera d'aucune utilité si votre objectif est de vous protéger d'une infection par mail (vecteur d'exploitation préféré des attaquants). Puisque vos utilisateurs ont besoin des mails pour travailler, les pare-feu seront configurés pour laisser passer ce flux et n’apparaîtront ici pas comme une ligne de défense. On peut tout de même positionner des lignes de défense :

  • Un anti-spam, chargé d'analyser le contenu du mail, des pièces jointes, la réputation du domaine de l'émetteur
  • Un anti-virus/EDR sur chaque poste pour que chaque point de terminaison puisse se débarrasser des pièces jointes malveillantes avant exécution
  • Une sensibilisation utilisateur, visant à élever le niveau d'alerte et de connaissance de nos utilisateurs sur les risques liés à la manipulation des mails.

À nouveau, la mise en place de la défense en profondeur peut prendre des formes très diverses en fonction de la menace dont on souhaite se protéger.

IV. Mise en œuvre de la défense en profondeur

La mise en œuvre de la défense en profondeur n'est pas une simple affaire lorsque l'on part d'un SI ou d'une architecture (logicielle, système) se basant uniquement sur la défense périmétrique. Nombreux sont mes retours d'expériences où, à la suite d'un audit de sécurité, la seule recommandation notée comment "difficile à mettre en œuvre" étant justement le passage d'un réseau "à plat" à un réseau mettant en œuvre la défense en profondeur, même dans sa version la plus simple (zone réseau, pare-feu).

Il faut avant tout noter que la définition des barrières de défense et leur positionnement doit être axé autour de deux éléments : la menace et les biens à protéger. Ceux-ci doivent donc être clairement définis avant toute démarche de sécurisation : c'est l'objectif de l'analyse de risque. Il ne s'agit pas d'accumuler des lignes de défense sans bien y réfléchir auparavant : le risque serait de passer à côté d'un vecteur d'attaque et de dépenser beaucoup trop de budget inefficacement. Le document de l'ANSSI cité en introduction oriente la mise en œuvre de la défense en profondeur selon les étapes suivantes : 

  • Première étape : détermination des biens et des objectifs de sécurité
  • Deuxième étape : architecture générale du système
  • Troisième étape : élaboration de la politique de défense
  •  Quatrième étape : qualification de la défense en profondeur
  • Cinquième étape : évaluation permanente et périodique  

Il serait inutile que je paraphrase l'intégralité du document de l'ANSSI dans cet article, je vous encourage à le consulter directement sur le site de l'ANSSI si vous désirez en savoir plus sur la mise en place de la défense en profondeur.

V. Pour aller plus loin

Bien que paraissant obsolète au vu de la naissance des architectures hybrides (SI classique + Cloud multiples/SaaS), j'ai pu constater au travers mes années d'expérience en tant qu'auditeur/pentester que le concept de défense en profondeur est encore trop souvent mal ou pas du tout implémenté dans les architectures réseau, système ou logicielle.

Je vous encourage à étudier ces quelques documents pour aller plus loin :

Enfin, il faut savoir que la défense en profondeur est un principe qui s'applique à de nombreux domaines : le militaire, la cybersécurité, mais aussi les milieux industriels comme le nucléaire ou le ferroviaire. Il est toujours intéressant de voir comment ce principe est appliqué dans d'autres milieux afin de s'en inspirer.

Et comme disait un ancien collègue, "la défense en profondeur c'est pas nouveau, c'est depuis Vauban", alors il est temps de s'y mettre 🙂

Petite question pour finir (répondez dans les commentaires) : La ligne Maginot, défense périmétrique ou défense en profondeur ?

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

mickael has 518 posts and counting.See all posts by mickael

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.