Computer systems have become increasingly subject to errors and security attacks,
underscoring the need for techniques to ensure their correct operation. Existing
techniques for reliability and security take an "all-or-nothing" approach,
in which everything needs to be protected in order to provide guarantees to
the application. These techniques incur high performance overheads or hardware
resource costs. In contrast to these approaches, we propose an approach called
"application-aware checking", which selectively protects data that
is important to the application from a reliability or security point of view.
The advantage of the application-aware approach is that it is possible to achieve
high coverage at a fraction of the cost of conventional techniques. Further,
by focusing on errors and attacks that impact the application, the approach
is able to ensure minimum disruption to the end-user.
We propose a unified compiler framework to derive application-aware detectors
for critical data in applications. The detectors are derived using a combination
of static and dynamic analysis, and are converted into efficient runtime checks.
The checks are programmed in a reconfigurable hardware platform implemented
on a Field-programmable Gate Array (FPGA), and are executed in conjunction with
the application. This ensures that the errors and attacks are detected before
system failure or compromise, which is necessary for fast recovery. We have
also validated the derived detectors using a formal model-checking framework.
The integrated approach for providing error and attack detection has been prototyped
in the Trusted Illiac project at the University of Illinois.
.
BIOGRAPHY
Karthik Pattabiraman is a PhD candidate in Computer Science at the University
of Illinois at Urbana-Champaign (UIUC). His research focuses on the design of
reliable and secure applications using compilers and reconfigurable hardware
systems. His dissertation (in progress) introduced the notion of application-aware
checking which forms an important part of the Trusted Illiac project at the
University of Illinois. Karthik has a MS in Computer Science from UIUC and a
B.Tech in Information Technology from Madras University, India. He has interned
at Microsoft Research, IBM Research and Los Alamos National Labs and has been
a consulting researcher at Microsoft Research. More broadly, Karthik is interested
in dependable runtime systems, memory management techniques, and performance
modeling. He has been actively involved in the dependability community and is
co-organizing the CATARS workshop at the International Conference on Dependable
Systems and Networks, (DSN) 2008.