Modélisation des menaces dans une voiture

Des livres entiers ont été écrits sur la modélisation des menaces, mais je vais vous en donner un aperçu rapide afin que vous puissiez construire vos propres modèles de menaces. (Si vous avez d’autres questions ou si cette section vous passionne, n’hésitez pas à vous procurer d’autres ressources sur le sujet).

Lorsque vous modélisez une voiture, vous recueillez des informations sur l’architecture de votre cible et créez un diagramme pour illustrer la façon dont les parties de la voiture communiquent. Vous utilisez ensuite ces cartes pour identifier les entrées à plus haut risque et pour tenir une liste de contrôle des éléments à vérifier ; cela vous aidera à prioriser les points d’entrée qui pourraient rapporter le plus.

Les modèles de menace sont généralement réalisés au cours du processus de développement et de conception du produit. Si l’entreprise qui fabrique un produit particulier a un bon cycle de vie de développement, elle crée le modèle de menace au début du développement du produit et le met continuellement à jour à mesure que le produit avance dans le cycle de vie de développement. Les modèles de menace sont des documents vivants qui évoluent au fur et à mesure que la cible change et que vous en apprenez davantage sur elle ; vous devez donc mettre à jour votre modèle de menace fréquemment.

Votre modèle de menace peut comporter différents niveaux ; si un processus de votre modèle est compliqué, vous devez envisager de le décomposer davantage en ajoutant des niveaux à vos diagrammes. Au début, toutefois, le niveau 2 est à peu près le niveau le plus élevé que vous puissiez atteindre. Nous allons aborder les différents niveaux dans les sections suivantes, en commençant par le niveau de menace 0.

Niveau 0 : Vue d’ensemble

À ce niveau, nous utilisons la liste de contrôle que nous avons établie lors de l’examen des surfaces d’attaque. Réfléchissez à la manière dont les données peuvent pénétrer dans le véhicule. Dessinez le véhicule au centre, puis étiquetez les espaces externes et internes. La figure 1-1 illustre un diagramme possible de niveau 0.

Les boîtes rectangulaires sont les entrées, et le cercle au centre représente l’ensemble du véhicule. Sur leur chemin vers le véhicule, les entrées croisent deux lignes en pointillé, qui représentent les menaces externes et internes.

Le cercle du véhicule ne représente pas une entrée mais plutôt un processus complexe, c’est-à-dire une série de tâches qui pourraient être décomposées davantage. Les processus sont numérotés, et comme vous pouvez le voir, celui-ci porte le numéro 1.0. Si vous avez plus d’un élément complexe dans votre modèle de menace, vous les numéroterez successivement. Par exemple, vous nommeriez un deuxième processus 2.0 ; un troisième, 3.0 ; et ainsi de suite. Au fur et à mesure que vous apprenez à connaître les caractéristiques de votre véhicule, vous mettez à jour le diagramme. Ce n’est pas grave si vous ne reconnaissez pas encore tous les acronymes du diagramme ; vous le ferez bientôt.


Figure 1-1 : Entrées de niveau 0

Niveau 1 : Récepteurs

Pour passer au diagramme de niveau 1, choisissez un processus à explorer. Comme nous n’avons qu’un seul processus dans notre diagramme, creusons le processus du véhicule et concentrons-nous sur ce à quoi chaque entrée correspond.

Le diagramme de niveau 1 présenté à la figure 1-2 est presque identique à celui du niveau 0. La seule différence est qu’ici nous spécifions les connexions du véhicule qui reçoivent l’entrée de niveau 0. Nous n’allons pas encore examiner les récepteurs en profondeur ; nous nous contentons de regarder le dispositif ou la zone de base à laquelle l’entrée s’adresse.

Figure 1-2 : Carte de niveau 1 des entrées et des connexions du véhicule

Remarquez dans la figure 1-2 que nous numérotons chaque récepteur. Le premier chiffre représente l’étiquette du processus du diagramme de niveau 0 de la figure 1-1, et le deuxième chiffre est le numéro du récepteur.

L’unité d’infotainment étant à la fois un processus complexe et une entrée, nous lui avons attribué un cercle de processus. Nous avons maintenant trois autres processus : l’immobilisateur, le calculateur et le récepteur TPMS. Les lignes en pointillé dans la carte de niveau 1 représentent les divisions entre les frontières de confiance. Les entrées situées en haut du diagramme sont les moins fiables, et celles situées en bas sont les plus fiables. Plus un canal de communication franchit de frontières de confiance, plus ce canal est risqué.

Niveau 2 : Panne du récepteur

Au niveau 2, nous examinons la communication qui a lieu à l’intérieur du véhicule. Notre exemple de diagramme (Figure 1-3) porte sur une console d’infodivertissement basée sur Linux, le récepteur 1.1. Il s’agit de l’un des récepteurs les plus complexes et il est souvent directement connecté au réseau interne du véhicule.

Dans la figure 1-3, nous regroupons les canaux de communication dans des boîtes avec des lignes en pointillés pour représenter une fois de plus les limites de confiance. Il existe désormais une nouvelle frontière de confiance à l’intérieur de la console d’infodivertissement, appelée espace noyau. Les systèmes qui communiquent directement avec le noyau présentent un risque plus élevé que ceux qui communiquent avec les applications système, car ils peuvent contourner les mécanismes de contrôle d’accès de l’unité d’infodivertissement. Par conséquent, le canal cellulaire présente un risque plus élevé que le canal Wi-Fi car il traverse une frontière de confiance dans l’espace du noyau ; le canal Wi-Fi, quant à lui, communique avec le processus du supplicant WPA dans l’espace utilisateur.

Figure 1-3 : Carte de niveau 2 de la console d’infotainment

Ce système est un système d’info-divertissement embarqué (IVI) basé sur Linux, et il utilise des éléments communs à un environnement Linux. Dans l’espace du noyau, vous voyez des références aux modules du noyau udev, HSI et Kvaser, qui reçoivent des entrées de notre modèle de menace. Le module udev charge les périphériques USB, HSI est un pilote série qui gère la communication cellulaire, et Kvaser est le pilote réseau du véhicule.

Le modèle de numérotation pour le niveau 2 est maintenant X.X.X, et le système d’identification est le même que précédemment. Au niveau 0, nous avons pris le processus du véhicule qui était 1.0 et l’avons approfondi. Nous avons ensuite marqué tous les processus du niveau 1 comme étant 1.1, 1.2, et ainsi de suite. Ensuite, nous avons sélectionné le processus d’infotainment marqué 1.1 et l’avons décomposé davantage pour le diagramme de niveau 2. Au niveau 2, nous avons donc étiqueté tous les processus complexes comme 1.1.1, 1.1.2, et ainsi de suite. (Vous pouvez continuer à utiliser le même schéma de numérotation lorsque vous vous plongez encore plus profondément dans les processus. Le schéma de numérotation est destiné à la documentation ; il vous permet de faire référence au processus exact au niveau approprié).

Remarque : Idéalement, à ce stade, vous devriez déterminer quels processus traitent quelles entrées, mais nous devons nous contenter de deviner pour l’instant. Dans le monde réel, il faudrait faire de l’ingénierie inverse sur le système d’infodivertissement pour trouver ces informations.

Lorsque vous construisez ou concevez un système automobile, vous devez continuer à explorer le plus grand nombre possible de processus complexes. Faites appel à l’équipe de développement et commencez à discuter des méthodes et des bibliothèques utilisées par chaque application afin de les intégrer dans leurs propres diagrammes de menaces. Vous constaterez probablement que les frontières de confiance au niveau de l’application se situent généralement entre l’application et le noyau, entre l’application et les bibliothèques, entre l’application et les autres applications, et même entre les fonctions. En explorant ces connexions, marquez les méthodes qui ont des privilèges plus élevés ou qui traitent des informations plus sensibles.

LEAVE A COMMENT

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *