Refactoring the FreeBSD Kernel with Checked C | IEEE Conference Publication | IEEE Xplore

Refactoring the FreeBSD Kernel with Checked C


Abstract:

Most modern operating system kernels are written in C, making them vulnerable to buffer overflow and buffer over-read attacks. Microsoft has developed an extension to the...Show More

Abstract:

Most modern operating system kernels are written in C, making them vulnerable to buffer overflow and buffer over-read attacks. Microsoft has developed an extension to the C language named Checked C which provides new source language constructs that allow the compiler to prevent NULL pointer dereferences and spatial memory safety errors through static analysis and run-time check insertion. We evaluate the use of Checked C on operating system kernel code by refactoring parts of the FreeBSD kernel to use Checked C extensions. We describe our experience refactoring the code that implements system calls and UDP and IP networking. We then evaluate the refactoring effort and the performance of the refactored kernel. It took two undergraduate students approximately three months to refactor the system calls, the network packet (mbuf) utility routines, and parts of the IP and UDP processing code. Our experiments show that using Checked C incurred no performance or code size overheads.
Date of Conference: 28-30 September 2020
Date Added to IEEE Xplore: 21 October 2020
ISBN Information:
Conference Location: Atlanta, GA, USA

Contact IEEE to Subscribe

References

References is not available for this document.