This seminar will consist of two closely related talks. The first 10 minutes will be a dry run for an invited panel at the Workshop on Future Directions for Compiler Research and Education. My goal is to discuss the role compilers can and should play in enhancing system security of software systems. The remainder of the seminar will give a broad overview of a project that addresses some of these security issues.
This project is developing a "Secure Virtual Architecture": a safe, compiler-based virtual machine for *all* system software. This virtual machine can host a complete operating system (OS) kernel, device drivers, libraries, daemons, and, in fact, any other software that ordinarily runs directly on the underlying processor hardware. One goal of this work is to enforce *memory safety* for the OS kernel and all system software, building on principles developed in our group's SAFECode project. The broader goal is to develop new solutions to security problems in current systems. In this talk, I will give an overview of the virtual machine design, the memory safety strategy, and a brief discussion of a list of open problems that could be tackled using our system.
Vikram Adve is an Associate Professor of Computer Science at the University of Illinois at Urbana-Champaign. His research interests include compilers, security, and performance evaluation. His research group has developed the LLVM Compiler Infrastructure, a widely distributed and novel compiler framework for 'lifelong' optimization of programs. The group is using LLVM for several broad research projects, including "whole data structure" transformations, the SAFECode system for sound analysis and memory safety, and a compiler-based virtual-machine for operating system kernels. Adve received a B.Tech. from I.I.T. Bombay in 1987 and a Ph.D. in Computer Science from the University of Wisconsin-Madison in 1993, and was a Research Scientist at Rice University before joining the University of Illinois. He has received the NSF CAREER award, Best Paper Awards at PLDI 2005 and PADS 2001, and the UIUC Computer Science Department's Outstanding Junior Faculty Award. He is an Associate Editor of the ACM Transactions on Programming Languages and Systems (TOPLAS).