Markus Maybaum - Trusted Control Flow Integrity

14. Deutscher IT‐Sicherheitskongress
Trusted Control Flow Integrity
(TCFI)
Markus Maybaum
19. Mai 2015
Trusted Computing (TC)
• Trusted Computing Group
• Vertrauenskette
BIOS
KERNEL
• Krypto‐basierte Hardware‐Assistenz
für Systemintegrität
 Digitale Signaturen
Application
• Trusted Platform Module
(TPM)
Vertrauenskette: Beispiel Windows
Application
Environment Subsystem (kernel32.dll, user32.dll, …)
Windows API (several DLLs)
ntdll.dll
User Mode
Kernel Mode
Windows Executive Service (ntoskrnl.exe)
I/O
IPC
Kernel
GDI
VMM
...
Kernel Drivers
Hardware Abstraction Layer (hal.dll)
Das Problem:
Die Vertrauenskette endet ...
BIOS
HAL
KERNEL
APP
PROCESS
• Digitale Signaturen auf • Gefahr: EXPLOITATION
ROM / Dateiebene, NICHT auf Prozessebene
Control Flow Integrity (CFI)
• Überwachung von Programmabläufen
Kontrolle von
Kontrollflussübergängen
EXPLOITATION bricht
die Integrität von
Programmabläufen
TCFI ‐ Idee
• Trusted Computing
+
• Control Flow Integrity
Trusted Branch Tables (TBT)
• Programmsemantik
vollständig bekannt – Übersetzung
– Bindung
• Kontrollflussübergänge
– statisch
– dynamisch
003010
003100
00313d
004010
003143
…
003740
…
• Speicherung als Metadaten (Overhead) Beispiel ‐ Statische Sprünge
• Active Branch Table
003d
004f
0043
004f
004f
0059
if (pass == number)
{
printf("Correct\n");
}
else
{
printf("Invalid\n");
}
• Passive Branch Table
=
0030 8B45F8
0033 F30F2AC0
0037 0F2E45FC
003b 7A12
003d 0F2E45FC
0041 750C
0043 BF000000
0048 E8000000
004d EB0A
004f BF000000
0054 E8000000
0059 …
004f
003d
004f
0043
0059
004f
.L1:
.L2:
movl
vtsi2ss
ucomiss
jp
ucomiss
jne
movl
call
jmp
movl
call puts
-8(%rbp), %eax
%eax, %xmm0
-4(%rbp), %xmm0
.L1
-4(%rbp), %xmm0
.L1
$.LC3, %edi
puts
.L2
$.LC4, %edi
Dynamische Sprünge
• Mehrfachverzweigung
• Rücksprünge aus Funktionen
• Integritätskontrolle:
– Aufruf TPM Funktion
– Prozessterminierung
bei Integritätsverletzung
Trusted Checkpointing
• Kontrollpunkte im Programmablauf
– Reihenfolge
– Zeitabstände
–…
• Integritätskontrolle:
– Aufruf TPM Funktion
– Prozessterminierung
bei Integritätsverletzung
Ausblick
• Weiterentwicklung:  Attack Recognition Module
Technologiebasis für „Trusted Integrity Networks“ Projekte
• Responsive
Cyber Defence

Joint Cyber Defence
Networks (JCDNs)
• Rüstungskontrolle
im Cyberraum

Verifikationsnetzwerke
zur Frühwarnung /
zum Erkennen von
Cyberwaffen und
Cyberangriffen
HABEN
SIE
FRAGEN
?
Markus Maybaum
Technology Branch
NATO CCD COE Tallinn (EE)
[email protected]
Markus Maybaum
Cyber Analysis & Defense
Fraunhofer FKIE Wachtberg (DE)
[email protected]