Aller au contenu

Modélisation des attaques

Ce sujet méritait une page dédiée tant il est important et, semble-t-il, à la mode. Nous avons vu que dans certains cas il peut être intéressant, voir souhaitable, de modéliser les attaques qui ont un certain niveau de complexité pour en évaluer les risques. D'abord nous déconseillons de modéliser les attaques par défaut et de manière détaillée dans une analyse de risque pour la raison simple que plus le nombre de variables est grand dans une évaluation, moins la certitude est élevée. On va devoir gérer de multiples combinaisons et étapes possibles dont la seule garantie de pertinence est l'expertise que l'on s'attribue soi-même ou qui nous a été naïvement attribuée par la direction. Nous lisons et entendons souvent le contraire, et les analystes tentent en vain de fournir un niveau de détail le plus élevé possible en pensant être plus précis, et avec la précision obtenir une plus grande prédictibilité des événements étudiés. Il n'en est rien, l'art d'analyser correctement les risques revient souvent à définir un périmètre d'étude gérable et à émettre des hypothèses qui soient les plus pertinentes et factuelles possible. Attention, par modélisation de menaces on ne parle pas d'un outil de modélisation comme celui conçu par Microsoft qui, sur la base d'un schéma des différents composants avec les liens de communication existants, énumère toutes les combinaisons possibles des menaces basiques STRIDE. Ces événements de menace simples (parfois appelés impacts techniques ou conséquences de sécurité de l'information), font partie des outils basiques lors d'une analyse de risque traditionnelle qui étudie ces événements de menace un par un avec un focus sur l'actif étudié. Chaque scénario est unique et son seul point commun est l'actif étudié. Dans ce type d'approche, on obtint pour chaque scénario unitaire son propre niveau de risque inhérent et résiduel. Le choix des événements de menace ne suit pas une logique d'attaque complexe par un seul acteur mais des événements isolés possiblement déclenchés par des acteurs distincts et si on voulait les associer artificiellement il faudrait les agréger de manière superficielle et probablement erronée. Dans la modélisation des attaques, on évalue le risque relatif à chaque technique d'attaque d'abord prise isolément puis on les agrège pour constituer un unique macro-scénario logique qui articule bien toutes les tactiques, techniques et procédures (TTP) pouvant être utilisées ensemble par un seul acteur dans le but de porter atteinte à l'organisation.

On l'a vu, modéliser les menaces pour décrire une attaque ne nécessite pas tant l'exhaustivité que la pertinence des phases, tactiques et techniques sélectionnées utilisables par un certain type d'adversaire. On construit des scénarios relativement complexes qui ont été bien documentés afin d'identifier les risques dont la vraisemblance est souvent plutôt faible mais l'impact serait très élevé, ceux qui représenteraient les fameux 20% du ratio 80/20 symbolique qui aide à faire comprendre le rapport entre le nombre élevé d'attaques opportunistes, dont la fréquence est élevée (ramenée à 80%) mais dont l'impact serait la plupart du temps faible à modéré, et le nombre plutôt faible d'attaques ciblées, dont la fréquence est donc faible, (ramenée à 20%), mais dont l'impact serait la plupart du temps élevé à très élevé. Dans notre métier, on passe le plus clair de notre temps à évaluer les 80% d'impact plus faible plutôt que de nous concentrer sur les 20% dont l'impact est plus important. Ce qui ne veut pas dire qu'il faut arrêter de le faire, mais il faut le faire sur des périmètres plus restreints et sur les actifs qui méritent d'y passer un certain temps. En toute logique, on devrait utiliser une méthode outillée pour rendre le processus traditionnel le plus reproductible et rapide possible pour nous laisser le temps nécessaire au travail d'analyse des scénarios plus complexes.

Lorsqu'on travaille sur la modélisation des attaques, on se rend vite compte que nous faisons un travail similaire qu'un pentester, mais de manière fonctionnelle et théorique plutôt que technique, sur la base des renseignements obtenus sur les attaques passées par les grands groupes de pirates. Une fois modélisé une attaque, ses vecteurs et ses techniques, on est mieux armé pour en discuter avec les équipes de gestion des incidents qui devra probablement définir des cas d'usage spécifiques s'il s'avère que le risque évalué est élevé. C'est un exercice indispensable pour créer des ponts souvent inexistants entre la gestion des incidents ou les testeurs de sécurité et la gestion des risques en parlant un langage compris par tous; et pour démontrer à la haute direction que l'organisation est parée face aux attaques rares mais complexes qu'on appelle les APT (Advanced Persistent Threats) ou Menaces Persistantes Avancées.

L'objectif de cet exercice est de détailler les étapes couramment utilisées par un groupe d'attaquants, d'identifier les mesures de sécurité qui permettraient de contrer l'attaque et vérifier non seulement qu'elles sont en place dans l'organisation mais surtout qu'elles sont efficaces.
Pour ce faire, nous avons des référentiels de tactiques et de techniques qui peuvent nous aider, le plus connu et utilisé étant MITRE Att&ck. La base proposée est faiblement séquentielle, si bien qu'il est parfois difficile de naviguer pour recréer le cheminement d'une attaque de manière un peu normée. On peut aussi emprunter les "cheminements ou enchaînements d'attaques cyber", dont le plus connu est le Cybersecurity Kill Chain (CKC) décrit par Lockheed Martin. Celui-ci a l'avantage d'être séquentiel, mais il a l'inconvénient d'être très simpliste et focalisé sur les attaques périmétriques à base de maliciels qui peuvent être considérées comme de portée limitée et un peu désuètes.

Le CKC comporte 7 étapes pour décrire les attaques avec un focus périmétrie et code malveillant :

  1. Reconnaissance (découverte de l'organisation cible et de sa surface d'attaque externe)
  2. Militarisation (création de code malveillant et acquisition de toute ressource utile)
  3. Distribution (du code malveillant créé ou personnalisé à la cible)
  4. Exploitation (des faiblesses du système d'information cible)
  5. Installation (du programme malveillant notamment pour le propager plus profondément dans le système d'information, mais aussi pour s'y maintenir en toute discrétion)
  6. Commande et Contrôle (C2, pour établir un canal de communication dissimulé permettant de télécharger des outils additionnels et d'exfiltrer toute donnée ayant pu être rassemblée)
  7. Actions sur les objectifs (l'impact sur le système d'information et l'organisation, qui est la finalité de l'attaque)

Outre les inconvénients cités plus tôt, le modèle identifie la militarisation (weaponization) comme une étape sans que celle-ci ne soit réellement structurante pour la défense qui est le point de vue qu'un analyste devrait toujours prendre (c'est la différence notable avec un pentester). L'autre défaut de ce modèle simpliste est qu'il identifie l'exploitation de vulnérabilités comme une étape distincte alors qu'on la retrouve à différentes phases et tactiques d'une attaque. Cela obligerait à répéter l'étape d'exploitation autant de fis que nécessaire, ce qui est d'ailleurs le parti pris du deuxième modèle que nous allons présenter après.

Unified Kill Chain (UKC, "Enchaînement d'Attaques Unifié")

Il existe peu d'alternatives au CKC, mais on peut saluer la tentative appelée Unified Kill Chain (UKC), proposé par Paul Pols, qui prend en charge les attaques plus complexes, spécialement par rançongiciel. Le modèle reconnaît que des techniques sont utilisées à des moments et pour des objectifs différents et elle est donc conçue comme 3 boucles : Entrer - Traverser - Sortir.

On passe maintenant à 18 étapes (entre parenthèses se trouvent mes remarques et non la description qui en est faite par l'auteur) :

  1. Reconnaissance
  2. Développement de ressources (équivalent à la Militarisation du CKC, n'a que peu d'intérêt en termes de défense)
  3. Distribution (identique au CKC, valable surtout pour une pénétration par maliciel qui est certes très fréquente, mais elle n'est pas incontournable)
  4. Ingénierie sociale (c'est une technique, utilisable lors de phases différentes comme la reconnaissance et la découverte)
  5. Exploitation (identique au CKC, la plupart des phases contiennent une exploitation de failles et certaines techniques sont clairement décrites comme une exploitation particulière de failles spécifiques)
  6. Persistance (une fois qu'une première "tête de pont", emprise a été établie, il est possible de gérer les communications (C2) et la progression dans le système d'information)
  7. Évasion des défenses (comprend des techniques d'évitement, de contournement et de dissimulation)
  8. Commande et Contrôle (identique au CKC, établir un canal de communication permettant de transférer données et outils dans un sens comme dans l'autre)
  9. Pivot (ici différencié du mouvement latéral, mis ils représentent la progression consécutive à une première brèche et à l'établissement d'un premier point d'ancrage à partir desquels l'attaquant progresse)
  10. Découverte (interne)
  11. Élévation de privilège (c'est un moyen et pas un but recherché dans tous les cas. L'étape suivante d'exécution peut donner lieu à une élévation de privilèges, à une persistance ou à un contournement de défenses)
  12. Exécution
  13. Accès aux authentifiants (c'est à la fois un moyen et un but en soi, et selon le cas mérite d'être mentionné comme une tactique ou non)
  14. Mouvement latéral (cf. Pivot. Le mouvement latéral ne permet pas de penser que l'attaquant soit capable de pénétrer plus profondément dans le système d'information. Cette progression n'est pas linéaire, elle est une suite incessante de pivot et de progression à travers les points de moindre résistance, bref l'attaquant est capable de gagner du terrain dans toutes les directions possibles)
  15. Collecte (rassembler les données avant exfiltration)
  16. Exfiltration (non seulement l'exfiltration est typique d'une attaque par rançongiciel, mais elle fait partie, en affectant directement la confidentialité des données, un des impacts qui viennent ensuite)
  17. Impact
  18. Objectifs (identique au CKC, mais ma vision est que l'impact et les objectifs sont une seule et même chose. On pourrait décrire la phase d'Impacts comme affectant surtout le système d'information tandis que les Objectifs sont de nature plus stratégique pour l'attaquant)

Ce modèle est bien plus intéressant (et plus complexe) que le précédent et intègre la plupart des techniques contenues dans MITRE Att&ck et en ajoute d'autres parfois discutables. Il a le défaut de tout modèle séquentiel qui, pour rattraper la réalité, est obligé de créer des boucles dans un sens déterminé qui ne respecte pas toujours la réalité de tous les types d'attaque. Mais il est de loin le plus utile dont on dispose actuellement.

Ce modèle a néanmoins un certain nombre de problèmes :

Cheminement des attaques de EBIOS RM

On en profite de souligner l'existence du cheminement des attaques dans la méthode de l'ANSSI appelée EBIOS RM (pour les français principalement) qui propose 4 grandes étapes : Connaître - Rentrer - Trouver - Exploiter. Pour les mêmes raisons que les autres modèles, une étape "Exploiter" (des failles) me paraît bien trop générique et bien trop fréquente dans chaque phase pour la retenir comme tactique ou phase. Un cheminement avec ces 4 étapes et se terminant par Exploiter laisse penser à une boucle censée se répéter au fur et à mesure de la progression dans le système d'information. Mais une fois identifiée la cible ou la faille, il existe de nombreux objectifs pour l'attaquant, c'est ce que l'étape dite "Impacts" (Att&ck, UKC) ou "Actions sur Objectifs" (CKC) apporte d'intéressant. Par ailleurs, les attaques par déni de service sont fréquentes et ne nécessitent pas de pénétrer dans le système d'information et l'exploitation de vulnérabilités n'est pas un passage obligé. C'est la raison pour laquelle dans des exemples d'usage, l'étape Exploiter est utilisée pour les impacts sur les propriétés de la sécurité de l'information. Pourquoi ne pas avoir nommé cette étape Impacts comme tant d'autres modèles ?

Aucun modèle n'est parfait, il est le fruit de biais cognitifs des auteurs qui souhaitent se concentrer sur les attaques de maliciels ou celles plus complexes de rançongiciels. Je doute qu'il soit possible de trouver un modèle universel, peut-être qu'il faudra recourir à une catégorisation plus fine des attaques pour définir et y appliquer un modèle spécifique. Mais pour la beauté de l'exercice, nous nous sommes amusés à proposer le notre qui intègre pas mal de bonnes idées et corrige quelques failles. Nous l'avons appelé "Modélisation Uniforme des Attaques Cyber" (ou Combined Cyber Attack Modeling).

Modélisation Uniforme des Attaques Cyber (MUAC)

Nous avons décidé de sélectionner 6 grandes phases ou étapes comportant une ou plusieurs tactiques de Att&ck, parfois renommées de manière plus détaillée pour être plus explicatives. Les techniques associées à chacune de ces étapes sont presque identiques à celles de MITRE Att&ck. Au lieu de boucles, nous avons remarqué, en étudiant des attaques, que certaines d'entre elles pouvaient être réalisées dans un ordre différent mais que certaines autres restent logiquement identiques et en plus séquentielles. La distribution linéaire désigne les techniques séquentielles, la distribution groupée désigne les techniques dont l'ordre peut varier mais de finalité similaire. Des flèches connectent les techniques pertinentes pour décrire chaque attaque et permettent aussi de sauter celles qui ne sont pas utilisées qui sont d'ailleurs grisées.

Le modèle que nous proposons n'est pas parfait non plus, mais il a certains avantages que les autres n'ont pas forcément :

Pour plus de clarté, Nous avons essayé de regrouper des techniques similaires à l'intérieur d'une catégorie plus générique qui sera plus facile à manipuler et ne surchargera pas la représentation graphique. Par ailleurs, la catégorie intermédiaire reste utilisable lorsqu'une modélisation d'attaque se base sur une documentation insuffisante manquant de détails, rendant difficile l'association avec une technique Att&ck.

Ci-dessous la liste des grandes étapes logiques qui paraissent souvent séquentielles avec les tactiques et techniques associées :

La liste des tactiques du référentiel Att&ck a été réarrangé et certaines tactiques ont été soit supprimées, soit déplacée au niveau supérieur. Les techniques suivies d'une étoile ou astérisque ont été soit déplacées de tactique, soit j'ai arbitré sur une tactique alors qu'elle faisait originellement partie de plusieurs. Par exemple, la tactique Exécution de code ou de commandes (TA0002) contient des techniques qui sont utilisées dans des phases variées comme c'est le cas de l'exploitation de vulnérabilités. On peut exécuter du code pour la compromission initiale, pour maintenir une emprise, pour explorer le réseau ou voler des données. On retrouve donc les techniques sous-jacentes dans chacune des phases existantes. De la même manière, la technique d'utilisation des comptes valides précédemment compromis peut être utilisée dans des phases très variées. La technique Outils de déploiement logiciel (T1072) faisait partie de la tactique Exécution, elle a été déplacée dans la phase Parcourir car elle permet un déplacement latéral ou une propagation de code plus qu'une exécution.

Les objectifs tactiques sont arrangés selon que les techniques affectent un des objectifs de la sécurité de l'information (C, I, D). Les objectifs stratégiques n'ont que peu de correspondances avec le référentiel Att&ck.

La modélisation des attaques est utilisé dans le cadre d'une analyse de risque formelle plus technique axée autour d'un seul scénario. Le processus correspondant ressemble à qui suit :

Voici une vue complémentaire du référentiel MUAC/CCAM (les techniques ne sont pas complètes, elles ont été choisies pour illustration)

Modélisation Uniforme des Attaques Cyber (Combined Cyber Attack Modeling)© 2023-2025 by Igor Scerbois licensed under CC BY-NC-SA 4.0