Softwaredesign für Dynamische Integritätsmessungen bei Linux

Abstract

Die meisten Sicherheitstools versuchen schädliche Programme anhand ihrer Signatur oder anhand ihres Verhaltens zu erkennen. Dies hat allerdings einen entscheidenden Nachteil, denn damit diese Erkennung funktionieren kann, muss das Schadprogramm oder Verhalten bereits bekannt sein. Ein anderer Ansatz ist es, die ausführbaren Programme direkt auf Änderungen im Programmcode zu überwachen. Dies macht z.B. die Integrity Measurement Architecture (IMA) im Linux-Kernel. Diese misst Userspace- und/oder Kernelspace-Programme bevor diese ausgeführt werden. Aber viele Systeme werden nur einmal gestartet und laufen dann lange Zeit, ohne dass sie neugestartet werden. Das bedeutet, dass während der Laufzeit auftretende Programmcode-Änderungen nicht erkannt werden können. Daher verfolgte dieses Kooperationsprojekt den Ansatz der Dynamic Runtime Attestation (DRA), basierend auf dem Vergleich zwischen geladenem Programmcode und bekannten Referenzwerten.

DRA ist ein komplexer Ansatz, der verschiedene Komponenten und komplexe Attestierungsverfahren beinhaltet. Daher ist eine flexible und erweiterbare Architektur erforderlich. In dem Kooperationsprojekt wurde eine Architektur entwickelt und erfolgreich in einem Prototyp umgesetzt. Um die nötige Flexibilität und Erweiterbarkeit zu erreichen, ist in den beteiligten Komponenten die Attestierungsstrategie (Guideline) zentral umgesetzt. Die Guidelines definieren die nötigen Schritte für alle Attestierungsoperationen, wie z.B. Messungen, Referenzwert-Generierung und Verifikation.

Publication
D•A•CH Security 2017