Ensuring Operating System Kernel Integrity with OSck
Kernel rootkits that modify operating system state to avoid detection are a dangerous threat to system security. This paper presents OSck, a system that discovers kernel rootkits by detecting malicious modiﬁcations to operating system data. OSck integrates and extends existing techniques for detecting rootkits, and veriﬁes safety properties for large portions of the kernel heap with minimal overhead. We deduce type information for veriﬁcation by analyzing unmodiﬁed kernel source code and in-memory kernel data structures. High-performance integrity checks that execute concurrently with a running operating system create data races, and we demonstrate a deterministic solution for ensuring kernel memory is in a consistent state. We introduce two new classes of kernel rootkits that are undetectable by current systems, motivating the need for the OSck API that allows kernel developers to conveniently specify arbitrary integrity properties.