가상화 기법으로 난독화된 실행 파일의 구조 및 가상화 코드 역분석A reverse engineering approach to identify structure and virtualized code of virtualization-obfuscated binary executables

Cited 0 time in webofscience Cited 0 time in scopus
  • Hit : 1629
  • Download : 0
최근에 등장하는 대부분의 악성 프로그램은 임의의 가상 머신과 해당 머신에서 실행할 수 있는 가상 명령어를 프로그램 내부에 삽입하는 가상화 기법을 이용하여 난독화 되어 있다. 악성 프로그램 공격에 대처하기 위한 비용이 급격히 증가하고 있기 때문에, 가상화로 난독화된 코드를 분석하는 일은 필수적이다. 과거에는 상용 난독화 도구가 사용하는 임의의 가상 머신의 구조 기반으로 연구가 진행됐다. 그러나 프로그램에 여러 난독화 기법이 적용되어 분석이 어렵기 때문에 가상화 바이트코드 의미 복구에 대한 기존 연구를 개선해야 한다. 그뿐만 아니라 난독화된 프로그램의 의미를 알아내기 위해서는 많은 노력과 시간이 필요하다. 따라서 우리는 정적 및 동적 분석 방법을 사용하여 가상화로 난독화된 실행 파일의 구조와 가상화 코드를 정확하게 알아내는 방법을 제안하고자 한다. 난독화된 실행 파일을 역분석 하려는 방법은 다음과 같다. 먼저, 가상 머신의 구조 정보를 추출한다. 구조 정보는 초기화 루틴, 핸들러 매핑 테이블, 그리고 바이트코드 인터프리터 4개의 메모리 주소 값을 가진다. 둘째, 인터프리터와 바이트코드 핸들러의 명령어를 컴파일러 최적화 기법을 반복 적용하여 간략화한다. 다음으로, 바이트코드는 자동으로 간단한 가상 머신 에뮬레이터에 의해 실행된다. 에뮬레이터는 가상 레지스터의 값을 포함하는 실행 흐름을 기록한다. 마지막으로, 실제 실행되는 바이트코드의 조합이 변환 규칙에 의해 중간 언어 명령어로 변환된다. 우리는 가상화 기법을 이용하여 난독화된 실행 파일에 대한 난독화 해제 방법을 소개한다. 우리는 상용 난독화 도구인 Code Virtualizer에 의해서 난독화된 실행 파일을 역분석하기 위해서 올리디버거 플러그인을 구현하였다. 결과적으로, 개발한 플러그인은 원본 프로그램의 의미와 비슷한 중간 언어 코드를 생성하였다. 또한, 플러그인은 가상화로 난독화된 실행 파일에 대한 역공학 과정을 줄였다. 하지만 제안한 해결 방법은 가상 머신의 구조와 명령어 집합 구조가 특정 조건을 만족할 때 효과적이다. 예를 들어, 가상화로 난독화된 실행 파일은 하나의 스택 기반 CISC 가상 머신을 가지고 있어야 한다. 추후 연구로는 중간 언어 코드의 최적화와 x86 어셈블리 코드로 변환하는 일이 남아 있다.
Advisors
한태숙researcherHan, Tai Sookresearcher
Description
한국과학기술원 :전산학과,
Publisher
한국과학기술원
Issue Date
2015
Identifier
325007
Language
kor
Description

학위논문(석사) - 한국과학기술원 : 전산학과, 2015.2 ,[v, 39 p. :]

Keywords

프로그램 분석; 난독화; 소프트웨어 보안; 역공학; Program Analysis; Obfuscation; Software Security; Reverse Engineering

URI
http://hdl.handle.net/10203/206668
Link
http://library.kaist.ac.kr/search/detail/view.do?bibCtrlNo=608603&flag=dissertation
Appears in Collection
CS-Theses_Master(석사논문)
Files in This Item
There are no files associated with this item.

qr_code

  • mendeley

    citeulike


rss_1.0 rss_2.0 atom_1.0