Carte de sécurité du noyau Linux

La protection du noyau Linux est un sujet très complexe. Il comprend un grand nombre de concepts complexes et étroitement liés, et il serait utile d'avoir sa représentation graphique. Par conséquent, j'ai développé une carte de protection du noyau Linux . Voici la légende:



Ainsi, la carte contient les objets suivants:

  • Classes de vulnérabilité
  • les techniques de leur opération pour mener des attaques;
  • mécanismes de détection d'erreurs;
  • technologie de protection.

À leur tour, les technologies de protection de base sont hétérogènes. Certains font partie du noyau Linux vanilla, d'autres sont expédiés séparément pour diverses raisons (par exemple, il existe des fonctionnalités de sécurité commerciales). Il existe des mécanismes de protection du noyau qui nécessitent une prise en charge matérielle.

Ainsi, le sujet de la sécurité du noyau Linux est assez étendu, et la carte développée aide à son étude et à son analyse. Chaque ligne reliant les objets sur la carte indique leur influence mutuelle, dont l'essence doit être clarifiée dans la documentation. Ce principe peut être illustré sur un fragment de la carte générale. La figure 1 montre les fonctions de sécurité de la technologie STACKLEAK.



Diagramme 1. Caractéristiques de sécurité de la technologie STACKLEAK

PAX_MEMORY_STACKLEAK est une technologie commerciale de protection du noyau Linux qui contrecarre l'exploitation des types de vulnérabilités suivants: débordement de pile en profondeur, utilisation de variables non initialisées et fuite d'informations dans l'espace utilisateur. La carte contient des identifiants pour ces classes de vulnérabilité (CWE, Common Weakness Enumeration).

La technologie STACKLEAK a été introduite dans le noyau Linux vanilla, qui se reflète dans le diagramme. Il existe également un mécanisme de débogage KMSAN qui vous permet de détecter lors du test du noyau l'utilisation de variables non initialisées et les fuites d'informations dans l'espace utilisateur.

Il convient de noter que cette carte ne résout pas le problème de la réduction du périmètre d'attaque du cœur. En fait, la désactivation de presque toutes les fonctionnalités qui réduisent la taille de l'exécutable réduit également le périmètre d'attaque. Et dans ce projet, l'accent est mis sur les outils de sécurité qui assurent l'autodéfense du noyau Linux contre l'exploitation des vulnérabilités.

La figure 2 montre la carte complète de la version 5.1 du noyau (en cliquant sur l'image, la taille complète s'ouvrira).


Diagramme 2. Carte des fonctionnalités de sécurité du noyau Linux v5.1

La carte est en constante évolution, elle doit être mise à jour au moins à chaque version du noyau. Par conséquent, il est pratique d'avoir la source sous forme de texte et de la maintenir dans le système de contrôle de version. De plus, afin de ne pas avoir à organiser manuellement les objets avec un nombre minimal d'intersections de connexions, le langage DOT a été choisi pour créer la carte et le schéma est généré automatiquement par le package GraphViz à l'aide de la commande suivante:

dot -Tsvg linux-kernel-defence-map.dot -o linux-kernel-defence-map.svg 

La carte de sécurité du noyau Linux est un projet open source sous licence GPL v3.0. Le référentiel est situé sur GitHub . Ce projet est extrêmement utile pour:

  • surveiller l'état actuel de la sécurité du noyau,
  • développer des modèles de menace IP basés sur GNU / Linux,
  • sélection des remèdes appropriés.

En outre, la carte des fonctionnalités de sécurité du noyau Linux est conçue pour vous aider à en savoir plus sur le code source, la documentation et d'autres sources d'informations sur ce sujet:


Et pour automatiser la vérification des options de sécurité dans le fichier de configuration du noyau Linux, j'ai créé le projet kconfig-hardened-check , qui se développe activement grâce à un travail collaboratif ouvert. L'utilitaire prend en charge les architectures x86_64, arm64, x86_32 et arm.

Je vous invite à participer au développement de la carte des fonctionnalités de sécurité du noyau Linux et de l' utilitaire kconfig-hardened-check .

Source: https://habr.com/ru/post/fr457460/


All Articles