This project is aimed at developing scalable as well as highly efficient techniques for performing Dynamic Information Flow Tracking (DIFT) in multithreaded programs. The approach being developed is based upon dynamic instrumention of binaries to perform information flow tracking so that the application source code is not required and applications involving dynamically generated code can be handled. For achieving scalability, a novel strategy based upon the integration of checkpointing logging with fine-grained tracing is being used. Initially the program is executed with logging turned on. When DIFT needs to be performed, the execution of relevant execution intervals is replayed and fine-grained tracing is selectively performed. For achieving further efficiency, idle cores on a multicore processor are being used. Dynamically, a monitoring thread is generated by analyzing the application binary and the monitoring thread and the application execute concurrently on different cores. By achieving scalability and efficiency, the developed techniques can be applied to realistic programs such as server programs. The DIFT techniques are being evaluated in context of following applications: (debugging) bug location and avoidance; (security) software attack detection and location of vulnerability; and (data validation) maintaining lineage of scientific data.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Type
Standard Grant (Standard)
Application #
0751961
Program Officer
Mohamed G. Gouda
Project Start
Project End
Budget Start
2007-09-01
Budget End
2010-08-31
Support Year
Fiscal Year
2007
Total Cost
$180,000
Indirect Cost
Name
University of California Riverside
Department
Type
DUNS #
City
Riverside
State
CA
Country
United States
Zip Code
92521