SLIDE 24 2 3 1 4 verify property input program analyze flow extract procedures disassemble
database database database database certificate
Visual index for possible research directions.
Knowledge could be helpful in other processing steps also. The disassembler of Kruegel et. al [11] can be viewed as an
- example. In their disassembler, a decision needs to be made
at the byte interpretation stage as to which bytes to consider as code or not. They used a probabilistic decision procedure based on what could be called (in Bayesian probability terms) the prior probabilities of single and paired bytes. These prior probabilities were measured by counting occurrences in what was presumed to be a representative samples of real
- programs. Thus a knowledge base or historical information
might usefully be added to any of the phases. This is reflected in the bidirectional arrows in Figure 2. In the diagram the links to the database are also bidirectional, to indicate the possibility that the analyzers may learn over time based on the stimuli they receive. In the general case some types of machine learning or case-based reasoning might be employed.
- C. Inexact methods and confidence tracking
Our model-checking model detector needed to perform flow analysis so that potential executions of malicious behavior patterns could be found. We used conservative flow analysis, which might entirely miss possible flow edges in the presence
One potential way forward is to add speculative flow edges to the flow graph. This would remove a vulnerability that allows the hiding of malicious code by ensuring all flow edges to it are impossible to determine statically. However since there is more uncertainty as to the true possibility of the speculated flow occurring, it should perhaps be accorded less weight in the later pattern matching phases. Generalizing this suggestion, one future research direction is in exploring ways
- f representing inexact or fuzzy information, and of tracking
confidence to various working representations. This possibility is reflected in the dashed flow lines between the processing components of Figure 2.
- D. Human-computer cooperation
A clear avenue for future research involves smoothly inte- grating human cooperation so that automated analysis limita- tions are overcome. This is indicated in Figure 2 by the lines indicating interaction with an operator.
Current research in analyzing malware appears to fall into an area of reverse engineering and program analysis in which the hardening of the analysis techniques is the primary concern. If true, then the defining issues, theories, and evaluation criteria will concern vulnerabilities, failures, reliability, and hardening
- techniques. Our brief review of emerging research appears
to match such a viewpoint; hopefully the ASA view can help crystallize a common understanding, and to direct future attention. REFERENCES
[1] M. Christodorescu and S. Jha, “ Static analysis of executables to de- tect malicious patterns,” in Proceedings of the 12th USENIX Security Symposium, 2003, pp. 169–186. [2] M. G. Schultz, E. Eskin, E. Zadok, and S. J. Stolfo, “ Data mining meth-
- ds for detection of new malicious executables,” in IEEE Symposium on
Security and Privacy, 2001, pp. 38–49. [3] P. K. Singh and A. Lakhotia, “ Static verifi cation of worm and virus behavior in binary executables using model checking,” in Proc. of the 2003 IEEE Workshop on Information Assurance, 2003, pp. 298–300. [4] J. Bergeron, M. Debbabi, J. Desharnais, M. Erhioui, Y. Lavoie, and
Static detection of malicious code in executable programs,” in Proceedings of the International Symposium on Requirements Engi- neering for Information Security SREIS’01, 2001, pp. 1–8. [5] C. Kruegel, E. Kirda, D. Mutz, W. Robertson, and G. Vigna, “ Poly- morphic worm detection using structural information of executables,” in Proceedings of the 8th Symposium on Recent Advances in Intru- sion Detection (RAID’2005), ser. Lecture Notes in Computer Science. Springer-Verlag, 2005, (to appear). [6] A. Abd-Allah, “ Extending reliability block diagrams to sofware ar- chitectures,” Department of Computer Science, University of Southern California, Tech. Rep. USC-CSE-97-501, 1997. [7] C. Linn and S. Debray, “ Obfuscation of executable code to improve resistance to static disassembly,” in Proceedings of the 10th ACM Conference on Computer and Communications Security (CCS), 2003,
[8] P. Sz¨
Attacks on Win32,”in Proceedings of Virus Bulletin Conference 1998. Virus Bulletin Ltd., 1998, pp. 57–84. [9] B. Moore, “ Bugger the debugger: Pre interaction debugger code execution,” Security-Assessment.com, Ltd., Apr. 2005, last accessed June 2005. [Online]. Available: http://www.security- assessment.com/Whitepapers/PreDebug.pdf [10] C. Collberg, C. Thomborson, and D. Low, “ A taxonomy of obfuscat- ing transformations,” Department of Computer Science, University of Auckland, Tech. Rep. TR 148, July 1997. [11] C. Kruegel, W. Robertson, F. Valeur, and G. Vigna, “ Static disassembly
- f obfuscated binaries,” in Proceedings of the 13th USENIX Security
Symposium, 2004, pp. 255–270. [12] A. Lakhotia and M. Mohammed, “ Imposing order on program statements to assist anti-virus scanners,” in Proceedings of the 11th Working Conference on Reverse Engineering, 2004, pp. 161–170. [13] L. D. Erman, F. Hayes-Roth, V. R. Lesser, and D. R. Reddy, “ The Hearsay-II speech-understanding system: Integrating knowledge to re- solve uncertainty,” ACM Computer Surveys, vol. 12, no. 2, pp. 213–253, 1980. Proceedings of the First International Workshop on Code Based Software Security Assessments CoBaSSA 2005 Page 20