Dear LLVM Community,
My name is Zhengyang Liu, I am a graduate student at the Beijing University of Posts and Telecommunications. Thanks for approving my proposal for SAFECode Memory Policy Hardening. Dr. John Criswell will be mentoring me for this project.
Techniques like memory segmentation, address space layout randomization, etc., prevent a process from accessing memory that has not been allocated to it. However, monolithic kernels, like linux and freebsd, did not provide a validation mechanism on the kernel module memory accesses. Arbitrary write or read from kernel modules may cause system crashes, information leaks or even rootkit injections. Inspired by BBC  and BBAC , by adding related information to the memory object’s padding area, various memory checks can be performed efficiently and compactly. Therefore, I will mainly focus on creating compiler transforms and runtime supports to enable runtime memory access policy hardening. This work will prevent most of memory accesses on unowned addresses efficiently.
During this summer, I plan to do the following:
- Test the existing BBAC  implementation on larger and more realistic applications. Study and try to improve the performance and robustness of the implementation.
- Add SAFECode compiler passes to transform the original memory initialization and access functions to make target programs automatically maintain a memory access policy table on the padding area of each memory object.
- Create runtime support to perform runtime checks on each memory access.
- Run this scheme on malicious kernel modules and SPEC benchmark to evaluate the performance and accuracy.
I will report weekly at the llvm-dev and sva-dev lists.
For more details and plans about this project, please have a look at my project proposal . Any kind of comments, suggestions and advices would be appreciated!
 Akritidis, Periklis, et al. “Baggy Bounds Checking: An Efficient and Backwards-Compatible Defense against Out-of-Bounds Errors.” USENIX Security Symposium. 2009.
 Ding, Baozeng, et al. “Baggy bounds with accurate checking.” Software Reliability Engineering Workshops (ISSREW), 2012 IEEE 23rd International Symposium on. IEEE, 2012.