February 22-24, 2013
Hilton Los Angeles International Airport
Started as a braindead fuzz-testing tool for calling system calls with random garbage, trinity has grown into a tool that (at time of writing) seems to be finding bugs in areas all over the kernel, from network protocols to filesystems, from virtual memory to virtualisation, and many more. While the idea of system call fuzzing has been around for a long time (dating back to days even pre-dating Linux), this tool now uses a number of interesting techniques to find corner-case bugs, and increase overall coverage testing. On startup, Trinity creates a lot of random metadata (sockets, file handles, memory mappings, etc), and passes them to syscalls as they request them. Results are stored, and passed on to other future syscalls (possibly made by different threads). All sorts of mayhem ensues. Will include a demo runthrough, and discussion of some of the more interesting bugs that have been found so far.