Detecting Malicious Code in Firmware
Agency / Branch:
DOD / USAF
The problem of detecting malicious code has focused until now on techniques that search a program's surface structure representations to find locations where suspicious constructs occur. Such techniques are fundamentally weaker than methods that operateon representations that capture a program's deep semantics. We propose to study the feasibility and plan the development of tools for detecting malicious code that operate on a program's dependence graph. This representation captures a program's essentialsemantics and enables sophisticated semantics-based queries to be posed. Our plan is targeted at semi-automatic solutions for finding occurrences of malicious code in firmware. This work will build on our own dependence-graph based COTS product forprogram understanding named CodeSurfer. We will address the problem of generating dependence graphs from multiple machine languages using generic disassembly and decompilation techniques. We will plan the integration of these tools with CodeSurfer. Wewill develop queries for tell-tale signs of malicious code in firmware, and design a user-interface to help security analysts make the final determination of maliciousness. We will investigate methods for firmware editing to permit implementation ofdamage mitigation strategies. Finally we will develop a set of metrics that can be used to measure the success of our techniques.The proposed system will be of use in the semi-automatic detection of malicious code in firmware and other machine-coderepresentations of programs. This system will be of benefit to companies wishing to show that their firmware implementations are secure, and to others wishing to understand machine-code level programs.
Small Business Information at Submission:
317 N. Aurora Street Ithaca, NY 14850
Number of Employees: