동적 기호 실행을 이용한 그래프 기반 바이너리 코드 실행 경로 탐색 플랫폼
Graph based Binary Code Execution Path Exploration Platform for Dynamic Symbolic Execution
0
조회
0
다운로드
1
인용
0
참고문헌
키워드
초록
본 논문에서는 그래프 기반의 바이너리 코드 동적 실행 경로 탐색 플랫폼을 제안한다. 바이너리 코드의 조건 분기 명령어를 노드(Node), 그 외의 명령어를 에지(Edge)로 구성된 그래프를 정의하며, 이 그래프를 기반으로 하여 실행 경로 탐색을 수행하는 방안을 제안한다. 실험을 통해 제안하는 그래프 기반 바이너리 코드 실행 경로 탐색 플랫폼의 프로토타입이 실행 경로 탐색을 올바르게 수행함을 확인하였으며, 본 논문에서 제안하는 방안을 통해 소프트웨어 테스팅을보다 효과적으로 수행하여 소프트웨어 보증, 시큐어 프로그래밍 및 악성 프로그램 분석 등을 보다 효과적으로 수행할수 있을 것으로 기대한다.
Abstract
In this paper, we introduce a Graph based Binary Code Execution Path Exploration Platform. In the graph, a node is definedas a conditional branch instruction, and an edge is defined as the other instructions. We implemented prototype of the proposedmethod and works well on real binary code. Experimental results show proposed method correctly explores execution path oftarget binary code. We expect our method can help Software Assurance, Secure Programming, and Malware Analysis morecorrect and efficient.
참고문헌 (19)
- A. Bessey, "A Few Billion Lines of Code Later: using Static Analysis to Find Bugs in the Real World", Communications of the ACM, 53(2), pp.66~75 (2010)
- A. Moser, "Limits of Static Analysis for Malware Detection", Proceedings of the 23th Computer Security Applications Conference, pp.421~430 (2007)
- D. Song, "BitBlaze: A New Approach to Computer Security via Binary Analysis", Proceedings of the 4th International Conference on Information Systems Security (2008)
- V. Chipounov, "S2E: A Platform for In-Vivo Multi-Path Analysis of Software Systems", ACM SIGARCH Computer Architecture News, 39(1), pp.265~278 (2011)
- M. Maurer, "TACHYON:Tandem Execution for Efficient Live Patch Testing", Proceedings of the 21st USENIX Security Symposium, pp.617~ (2012)
- T. Wang, "TaintScope: A Checksum-Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection", Proceedings of the 31st IEEE Symposium on Security and Privacy, pp.497~512 (2010)
- C. Cadar, "KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs", Proceedings of OSDI, 8, pp.209~224 (2008)
- K. Sen, "CUTE:A Concolic Unit Testing Engine for C", Proceedings of the 5th Joint meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (2005)
- C. Cadar, "EXE: Automatically Generating Inputs of Death", ACM Transactions on Information and System Security, 12(2), pp.10~ (2008)
- R. Majumdar, "Hybrid Concolic Testing", Proceedings of IEEE 29th International Conference on Software Engineering, pp.416~426 (2007)
- P. Godefroid, "Sage: Whitebox Fuzzing for Security Testing", Queue, 10(1), pp.20~ (2012)
- V. Ganesh, "Taint-Based Directed Whitebox Fuzzing", Proceedings of IEEE 31st International Conference on Software Engineering, pp.474~484 (2009)
- J. Bau, "State of the Art: Automated Black-Box Web Application Vulnerability Testing", IEEE Symposium on Security and Privacy, pp.332~345 (2010)
- K. Jayaraman, "NASA Formal Methods", pp.121~125 (2009), NASA Formal Methods
- C.Y. Cho, "MACE:Model-Inference-Assisted Concolic Exploration for Protocol and Vulnerability Discovery", USENIX Security Symposium (2011)
- C.K. Luk, "Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation", ACM SIGPLAN Notices, 40(6), pp.190~200 (2005)
- "The Yices Smt Solver" (2006)[URL]
- F. Bellard, "QEMU, A Fast and Portable Dynamic Translator", USENIX Annual Technical Conference, pp.41~46 (2005)
- S. Bucur, "Parallel Symbolic Execution for Automated Real-World Software Testing", EuroSys 2011, pp.183~198 (2011)
