Exploring Multiple Execution Paths for Malware Analysis
Top Cited Papers
- 1 May 2007
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10816011,p. 231-245
- https://doi.org/10.1109/sp.2007.17
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 searchPublished by Association for Computing Machinery (ACM) ,2006
- Cobra: fine-grained malware analysis using stealth localized-executionsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2006
- DARTPublished by Association for Computing Machinery (ACM) ,2005
- Detecting Kernel-Level Rootkits Through Binary AnalysisPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Obfuscation of executable code to improve resistance to static disassemblyPublished by Association for Computing Machinery (ACM) ,2003
- Bandera: extracting finite-state models from Java source codePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Automated test data generation using an iterative relaxation methodPublished by Association for Computing Machinery (ACM) ,1998
- Automatic test data generation using constraint solving techniquesPublished by Association for Computing Machinery (ACM) ,1998
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Symbolic execution and program testingCommunications of the ACM, 1976