트램폴린 코드 기반의 난독화 기법을 위한역난독화 시스템
De-Obfuscated Scheme for Obfuscation Techniques Based on Trampoline Code
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
악성코드 분석가들은 다양한 경로로 배포되는 악성코드를 분석하고 대응하기 위해 많은 노력을 기울이고 있다. 그러나 악성코드 개발자들은 분석을 회피하기 위해 다양한 시도를 하고 있다. 대표적인 방법으로는 패킹과 난독화 기법 등이 있다. 기존 연구들은 일반적인 프로그램 언패킹 방법을 제안했으나, 최근의 패커들이 사용하는 OEP 난독화나 API 난독화 기법 등에 대한 대응이 부족하여, 언패킹 과정에서 실패하는 경우가 있다. 본 논문에서는 다양한 패커들이 사용하는 OEP 및 API 난독화 기법을 분석하고, 이를 자동으로 역난독화하는 시스템을 제안한다. 제안 시스템은 패킹된 프로그램의 메모리를 덤프하여 OEP와 API 난독화에 사용되는 트램폴린 코드를 탐지한다. 이후 트램폴린 코드의 패턴을 분석하여 난독화된 정보를 탐지하고, 언패킹된 프로그램으로 재구성한다. 실험 결과, 제안 시스템이 다양한 패커에 의해 OEP와 API 난독화 기법이 적용된 프로그램을 효과적으로 역난독화할 수 있음을 확인하였다.
Abstract
Malware analysts work diligently to analyze and counteract malware, while developers persistently devise evasion tactics, notably through packing and obfuscation techniques. Although previous works have proposed general unpacking approaches, they inadequately address techniques like OEP obfuscation and API obfuscation employed by modern packers, leading to occasional failures during the unpacking process. This paper examines the OEP and API obfuscation techniques utilized by various packers and introduces a system designed to automatically de-obfuscate them. The system analyzes the memory of packed programs, detects trampoline codes, and identifies obfuscated information, for program reconstruction. Experimental results demonstrate the effectiveness of our system in de-obfuscating programs that have undergone OEP and API obfuscation techniques.
참고문헌 (19)
- "Malware Statistics"[URL]
- "M-Trends 2020"[URL]
- Binlin Cheng, "Obfuscation-resilient executable payload extraction from packed malware", Proceeding of the 30th USENIX Security Symposium, pp.3451~3468 (2021)
- 방철호, "VMProtect 동작원리 분석 및 자동 역난독화 구현", 정보보호학회논문지, 30(4), pp.605~616 (2020), 한국정보보호학회[DOI]
- Kevin A. Roundy, "Binary-code obfuscations in prevalent packer tools", ACM Computing Surveys, 46(1), pp.1~32 (2013)
- Jae Hyuk Suk, "Unthemida: commercial obfuscation technique analysis with a fully obfuscated program", Software: Practice and Experience, 48(12), pp.2331~2349 (2018)
- Ryoichi Isawa, "An original entry point detection method with candidate-sorting for more effective generic unpacking", IEICE TRANSACTIONS on Information and Systems, 98(4), pp.883~893 (2015)
- Min Gyung Kang, "Renovo : a hidden code extractor for packed executables", Proceedings of the 2007 ACM workshop on Recurring malcode, pp.46~53 (2007)
- Seokwoo Choi, "X64unpack: hybrid emulation unpacker for 64-bit windows environments and detailed analysis results on vmprotect 3.4", IEEE Access, 8, pp.127939~127953 (2020)
- "Themida: Advanced Windows Software Protection System"[URL]
- "VMProtect Software"[URL]
- "ASProtect 32 - packer for 32bit software with protection functions"[URL]
- 김경민, "PinDemonium 기반 Original Entry Point 탐지 방법 개선", 정보처리학회논문지. 컴퓨터 및 통신시스템, 7(6), pp.155~164 (2018), 한국정보처리학회[DOI]
- "Pin - A Dynamic Binary Instrumentation Tool"[URL]
- "Unicorn – The Ultimate CPU emulator"[URL]
- "Juliet C/C++ 1.3 - NIST Software Assurance Reference Dataset"[URL]
- Sebastiano Mariani, "Pindemonium: a dbi-based generic unpacker for windows executables" (2016)
- Binlin Cheng, "Towards paving the way for large-scale windows malware analysis : generic binary unpacking with orders-of-magnitude performance boost", Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, pp.395~411 (2018)
- Binlin Cheng, "On the feasibility of malware unpacking via hardware-assisted loop profiling", Proceeding of the 32nd USENIX Security Symposium, pp.7481~7498 (2023)
