Year of Graduation
Tool for Static Verification of Memory Access Correctness Preconditions in Linux Kernel
Applied Mathematics and Information Science
This work implements a static analysis method for verifying memory access correctness within Linux kernel modules. Analyzing the entire Linux kernel is computationally expensive due to its sheer size. Instead, a module and the core Linux kernel functions it uses are analyzed separately using existing software verification tools. Developed system for analyzing Linux kernel functions extracts simple summaries of function behaviour with regards to memory safety. During analysis of a Linux module, these summaries are used for instrumentation of the module source code, inserting simplified versions of the kernel functions it uses. An existing static analyzer verifies the instrumented code, thus detecting memory safety issues both within the module itself and in the boundaries between the module and the core of the Linux kernel.