Exploring Multiple Execution Paths for Malware Analysis
Authors:
Top Cited Papers
- 1 May 2007
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10816011,p. 231-245
Abstract
Malicious code (or Malware) is defined as software that fulfills the deliberately harmful intent of an attacker. Malware analysis is the process of determining the behavior and purpose of a given Malware sample (such as a virus, worm, or Trojan horse). This process is a necessary step to be able to develop effective detection techniques and removal tools. Currently, Malware analysis is mostly a manual process that is tedious and time-intensive. To mitigate this problem, a number of analysis tools have been proposed that automatically extract the behavior of an unknown program by executing it in a restricted environment and recording the operating system calls that are invoked. The problem of dynamic analysis tools is that only a single program execution is observed. Unfortunately, however, it is possible that certain malicious actions are only triggered under specific circumstances (e.g., on a particular day, when a certain file is present, or when a certain command is received). In this paper, we propose a system that allows us to explore multiple execution paths and identify malicious actions that are executed only when certain conditions are met. This enables us to automatically extract a more complete view of the program under analysis and identify under which circumstances suspicious actions are carried out. Our experimental results demonstrate that many Malware samples show different behavior depending on input read from the environment. Thus, by exploring multiple execution paths, we can obtain a more complete picture of their actions.Keywords
This publication has 14 references indexed in Scilit:
- Temporal search2006
- Cobra: fine-grained malware analysis using stealth localized-executions2006
- DART2005
- Detecting Kernel-Level Rootkits Through Binary Analysis2005
- Obfuscation of executable code to improve resistance to static disassembly2003
- Bandera: extracting finite-state models from Java source code2002
- Automated test data generation using an iterative relaxation method1998
- Automatic test data generation using constraint solving techniques1998
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Symbolic execution and program testingCommunications of the ACM, 1976