ISR News Story
Barua wins NSF grant for new binary rewriter
Associate Professor Rajeev Barua is the principal investigator for a three-year, $349,059 National Science Foundation Computer Systems Research award, “Binary rewriting without relocation information.”
Binary executables and binary rewriters
Traditionally, the binary executable is not transformed any further; rather it is simply run on the computer. Barua’s research observes that there is an opportunity to do better. The binary executable can be rewritten and improved in various ways, for example, to have a faster run-time speed, lower energy or memory use, better reliability or more secure execution. Programs that do this are called binary rewriters.
As an example, a binary rewriter can insert security checks into the program that would thwart malicious software attacks. A denial-of-service attack may run a legitimate program with inputs that cause it to allocate too much memory, thereby crashing the system. A binary rewriter Barua has developed can rewrite programs automatically to ensure that they obey memory quotas. If a rewritten program then tries to allocate too much memory, it will be gracefully terminated, rather than crashing the whole system with it.
Other security applications could involve rewriting programs to prevent sensitive information such as personal or financial information from being accessed on one's computer without permission. Barua’s rewriter inserts code that simultaneously protects against all such attacks.
Barua’s new research
The NSF funding will allow Barua to develop a binary rewriter that can be used to statically transform binary code that lacks relocation information and to do so without the overhead of dynamic binary rewriting.
One of the most challenging problems in trying to rewrite binaries without relocation information is that it becomes hard to distinguish code from data; it would break the program to mistake data as code and rewrite it. Barua’s method will use a combination of better analysis to distinguish code from data, and a speculative scheme which allows recovery from incorrect disassembly, and nevertheless ensure correctness.
This research will allow any binary to be rewritten, unleashing innovation and engendering a new class of commercial applications that would boost the productivity and security of computer programs.
August 31, 2009