This thesis investigates how runtime code integrity of a modern operating systems (OSs) can be achieved. Existing mechanisms assume, that kernel code, once loaded into memory is static. We show, that this assumption is not true and that OSs perform benign self-optimization during runtime. We also investigate how to improve on kernel data integrity validation. We introduce an approach to identifying and classifying code pointers in memory. Additionally, we present a framework, that is able to both validate the integrity of self-modifying kernel code and to detect kernel-based code-reuse malware in memory in an efficient manner.
«
This thesis investigates how runtime code integrity of a modern operating systems (OSs) can be achieved. Existing mechanisms assume, that kernel code, once loaded into memory is static. We show, that this assumption is not true and that OSs perform benign self-optimization during runtime. We also investigate how to improve on kernel data integrity validation. We introduce an approach to identifying and classifying code pointers in memory. Additionally, we present a framework, that is able to bot...
»