SBIR-STTR Award

Preventing Program Hijacking via Static and Dynamic Analyses
Award last edited on: 6/12/2015

Sponsored Program
SBIR
Awarding Agency
DOD : OSD
Total Award Amount
$994,839
Award Phase
2
Solicitation Topic Code
OSD11-IA5
Principal Investigator
Clark L Coleman

Company Information

Zephyr Software LLC

4826 Stony Point Road
Barboursville, VA 22923
   (434) 242-4280
   jwd@zephyr-software.com
   www.zephyr-software.com
Location: Single
Congr. District: 07
County: Greene

Phase I

Contract Number: ----------
Start Date: ----    Completed: ----
Phase I year
2012
Phase I Amount
$131,237
Control flow hijacking occurs when an attacker overwrites a control-flow data item (e.g. return address or function pointer) to take control of the execution of a program. We propose to detect and prevent hijacking by using a low-overhead per-process dynamic run-time virtualization monitor, called an SDT (software dynamic translator) to make shadow copies of control-flow data items each time they are initialized or updated, and detect overwriting changes that occur between initialization and use. A static analyzer that operates on program binaries will help identify all control-data items, and reduce run-time overhead by identifying control-data items that are provably safe (not susceptible to overwriting between initialization and use). Remedial actions to be taken when attempted hijacking is detected will not be limited to program termination; program recovery techniques will be studied and designed.

Keywords:
Control Flow Hijacking, Software Dynamic Translation, Static Analysis, Dynamic Analysis, Virtualization.

Phase II

Contract Number: ----------
Start Date: ----    Completed: ----
Phase II year
2014
Phase II Amount
$863,602
To hijack the execution of a program, an attacker must overwrite the value of a return address or a function pointer (broadly defined). To prevent program hijacking, our product will provide a layered defense of these two targets, including deterministic and randomization defenses, with the ability in many cases to continue execution after a hijacking attempt is prevented. Our product toolkit includes static analysis of the program binary to be protected (no source code required) and dynamic monitoring using virtual machine technology after deployment. The randomization defense can be used to provide artificial software diversity.

Keywords:
program hijacking, program binaries, static analysis, process virtualization, software diversity