Project name

Project description

Nowadays fuzzing has become a state of the art technique in finding vulnerabilities. The procedure has evolved and now includes instrumenting the source code in order to improve the code coverage. Another set of tools that improve fuzzing is the sanitizers. Sanitizers are programming tools that detect bugs in the programs. There are a few types of sanitizers: Address Sanitizers (ASan), Undefined Behavior Sanitizers (UBSan), Thread Sanitizers (TSan) and Memory Sanitizers (MSan). There are sanitizers that are kernel specific: KASan, KUBSan, KTSan, KMSan. The use of sanitizers would reveal more vulnerabilities related to memory corruption (buffer overflows, access to a dangling pointer, disclose kernel memory to user space).

FreeBSD includes support for the kernel coverage sanitizer and undefined behaviour sanitizer, however support for the other sanitizers is missing. These are useful to find bugs while fuzzing the kernel.

Port one or more of KASAN, KMSAN, and KTSAN to work in the FreeBSD kernel. Use the ported sanitizers with fuzzers (syzkaller or triforce) in order to find more memory vulnerabilities.

Deliverables

Port one or more of KASAN, KMSAN, and KTSAN to work in the FreeBSD kernel.

Use the ported sanitizers with fuzzers (syzkaller or triforce) in order to find more memory vulnerabilities.

The Code

https://github.com/CostinCarabas/freebsd/commits/kasan_amd64

Work Done

TODO

LONG TERM

SummerOfCode2019Projects/KernelSanitizers (last edited 2019-08-26T17:41:45+0000 by CostinCarabas)