Linux-Kernel-Sicherheitskarte

Der Schutz des Linux-Kernels ist ein sehr komplexes Thema. Es enthält eine große Anzahl komplex miteinander verbundener Konzepte, und es wäre nützlich, eine grafische Darstellung zu haben. Aus diesem Grund habe ich eine Linux-Kernel-Protector-Map entwickelt . Hier ist die Legende:



Die Karte enthält also die folgenden Objekte:

  • Schwachstellenklassen
  • Techniken für ihre Operation zur Durchführung von Angriffen;
  • Fehlererkennungsmechanismen;
  • Schutztechnik.

Kernschutztechnologien sind wiederum heterogen. Einige sind Teil des Linux-Vanille-Kernels, andere werden aus verschiedenen Gründen separat ausgeliefert (z. B. gibt es kommerzielle Sicherheitsfunktionen). Es gibt Kernelschutzmechanismen, die Hardwareunterstützung erfordern.

Daher ist das Thema Sicherheit im Linux-Kernel ziemlich umfangreich, und die entwickelte Karte hilft bei der Untersuchung und Analyse. Jede Linie, die die Objekte auf der Karte verbindet, zeigt ihre gegenseitige Beeinflussung an, deren Wesen in der Dokumentation geklärt werden sollte. Dieses Prinzip kann auf einem Fragment der Übersichtskarte dargestellt werden. Abbildung 1 zeigt die Sicherheitsmerkmale der STACKLEAK-Technologie.



Abbildung 1. Sicherheitsmerkmale der STACKLEAK-Technologie

PAX_MEMORY_STACKLEAK ist eine kommerzielle Linux-Kernelschutztechnologie, die der Ausnutzung der folgenden Arten von Sicherheitslücken entgegenwirkt: Stapelüberlauf in der Tiefe, Verwendung nicht initialisierter Variablen und Informationsverlust in den Benutzerraum. Die Karte enthält Bezeichner für diese Schwachstellenklassen (CWE, Common Weakness Enumeration).

Die STACKLEAK- Technologie wurde in den Linux-Vanillekern eingeführt, was sich im Diagramm widerspiegelt. Es gibt auch einen KMSAN-Debugging-Mechanismus, mit dem Sie beim Testen des Kernels feststellen können, ob nicht initialisierte Variablen verwendet werden und Informationen in den Benutzerbereich gelangen.

Es ist erwähnenswert, dass diese Karte nicht das Problem der Reduzierung des Angriffsumfangs für den Kern behandelt. Tatsächlich deaktiviert das Deaktivieren fast aller Funktionen, die die Größe der ausführbaren Datei verringern, auch den Angriffsumfang. In diesem Projekt liegt der Schwerpunkt auf Sicherheitstools, die eine Selbstverteidigung des Linux-Kernels gegen die Ausnutzung von Sicherheitslücken ermöglichen.

Abbildung 2 zeigt die vollständige Karte für die Kernel-Version 5.1 (durch Klicken auf das Bild wird die vollständige Größe geöffnet).


Abbildung 2. Zuordnung der Sicherheitsfunktionen des Linux v5.1-Kernels

Die Map wird ständig weiterentwickelt und muss mindestens bei jeder Kernel-Version aktualisiert werden. Daher ist es zweckmäßig, die Quelle in Textform zu haben und im Versionskontrollsystem zu verwalten. Um Objekte mit einer Mindestanzahl von Schnittpunkten von Verbindungen nicht manuell anordnen zu müssen, wurde zum Erstellen der Karte die DOT-Sprache ausgewählt, und das Schema wird vom GraphViz-Paket automatisch mit dem folgenden Befehl generiert:

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

Die Linux Kernel Security Card ist ein Open Source-Projekt, das unter der GPL v3.0 lizenziert ist. Das Repository befindet sich auf GitHub . Dieses Projekt ist äußerst nützlich für:

  • Überwachen des aktuellen Status der Kernelsicherheit,
  • Entwicklung von Bedrohungsmodellen für IP basierend auf GNU / Linux,
  • Auswahl geeigneter Mittel.

Darüber hinaus soll Ihnen die Karte der Sicherheitsfunktionen des Linux-Kernels helfen, sich mit Quellcode, Dokumentation und anderen Informationsquellen zu diesem Thema vertraut zu machen:


Um die Überprüfung der Sicherheitsoptionen in der Linux-Kernel-Konfigurationsdatei zu automatisieren, habe ich das Projekt kconfig-hardened-check erstellt , das dank offener Teamarbeit aktiv weiterentwickelt wird. Das Dienstprogramm unterstützt x86_64-, arm64-, x86_32- und arm-Architekturen.

Ich lade Sie ein, an der Entwicklung der Sicherheitsfunktionen für Linux-Kernel und des Dienstprogramms kconfig-hardened-check teilzunehmen .

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


All Articles