• 제목/요약/키워드: 가상화를 이용한 난독화

검색결과 6건 처리시간 0.026초

가상화를 이용하여 난독화된 바이너리의 제어 흐름 재건 (Control Flow Reconstruction from Virtualization-Obfuscated Binaries)

  • 황준형;한태숙
    • 정보과학회 논문지
    • /
    • 제42권1호
    • /
    • pp.44-53
    • /
    • 2015
  • 제어 흐름 정보는 프로그램이 실행되는 구조를 담고 있어 소프트웨어를 분석할 때 기준이 되고 소프트웨어를 서로 비교할 때에도 유용하게 쓰인다. 가상화를 이용한 난독화는 실제 기계의 명령을 구조가 숨겨진 가상 기계의 명령으로 바꾸어 프로그램의 제어 흐름 정보를 감춘다. 난독화가 적용된 바이너리에서는 가상 기계의 명령을 실행하는 인터프리터의 구조만 직접 드러난다. 이 논문에서는 가상화로 난독화된 바이너리를 실행해서 수행되는 명령들을 기록한 트레이스를 이용해 숨겨져 있는 프로그램의 본질적인 제어 흐름을 다시 만들어내는 방법을 제안한다. 트레이스를 기계 명령으로 이루어진 문자열로 보고 생성되는 트레이스들을 모두 받아들일 수 있는 오토마톤을 찾은 다음, 해당되는 제어 흐름 그래프를 만든다. 기계 명령의 수행은 오토마톤의 상태 전이에 대응하며, 이는 제어 흐름 그래프의 간선에 대응한다. 제안한 방법을 상용 가상화 도구로 난독화된 바이너리에 적용해 보았으며, 원본 바이너리와 유사한 제어 흐름 그래프가 생성되는 것을 확인하였다.

가상 머신 기반으로 난독화된 실행파일의 구조 및 원본의미 추출 동적 방법 (A Dynamic Approach to Extract the Original Semantics and Structure of VM-based Obfuscated Binary Executables)

  • 이성호;한태숙
    • 정보과학회 논문지
    • /
    • 제41권10호
    • /
    • pp.859-869
    • /
    • 2014
  • 최근 몇 년 동안, 난독화 기술은 악성 코드를 보호하기 위해 악용되어 큰 위협이 되고 있다. 특히, 가상 머신 기반으로 난독화된 악성 코드의 경우, 원본 프로그램이 직접적으로 드러나지 않고 가상머신의 의미와 원본 프로그램의 의미가 함께 수행되므로 분석하기 어렵다. 이러한 위협에 대응하기 위하여, 가상 머신 기반으로 난독화된 프로그램을 분석하는 동적 분석 기반의 프레임워크를 제안한다. 첫째, 난독화된 실행파일의 동적 실행 트레이스를 추출한다. 둘째, 동적 실행 트레이스를 중간언어로 변환하고 동적 제어 흐름 그래프를 이용하여 가상 머신의 구조를 추출한다. 결과적으로, 추출된 가상 머신 구조를 이용하여 원본 프로그램의 의미를 추출한다. 본 논문은 최신 상용 난독화 도구로 난독화된 실행파일에서 원본 프로그램을 추측할 수 있는 방안을 제시한다. 개발된 도구는 가상 머신 기반으로 난독화된 프로그램을 이해하고 프로그램 분석 기법을 적용하는 데 활용될 수 있으며 추출된 원본 프로그램의 요약 의미를 이용하여 추가적인 분석을 적용할 수 있을 것으로 기대한다.

대입문 병합을 이용한 효율적인 자바 난독화 기법 (An Effective Java Obfuscation Technique Using Assignment Statements Merging)

  • 이경호;박희완
    • 한국컴퓨터정보학회논문지
    • /
    • 제18권10호
    • /
    • pp.129-139
    • /
    • 2013
  • 자바 바이트코드는 타겟 머신이 아닌 자바 가상머신 상에서 동작된다. 이러한 자바 바이트코드는 바이너리 코드보다 고수준 표현을 사용하고 있어서 대부분의 자바 바이트 코드는 다시 자바 소스 파일로 바꿀 수도 있다. 난독화란 기본적으로 코드를 이해하기 어렵게 만드는 기술을 의미한다. 자바 코드의 보호를 위해서는 난독화가 사용될 수 있다. 그러나 프로그램을 복잡하게 만드는 난독화 기법은 대부분 프로그램의 크기를 증가시키고 실행 속도 또한 느려지게 만드는 원인이 된다. 본 논문에서는 대입문 병합 기법을 이용한 효율적인 자바 난독화 기법을 새롭게 제안한다. 대입문 병합 기법이 적용되면 대입문에 부작용(side effects)이 추가되어 대입문을 이해하기 어렵게 된다. 추가적으로 바이트코드의 크기가 줄어드는 장점도 있다.

난독화 알고리즘을 이용한 자바 역컴파일 방지기법에 관한 연구 (A Study on the Java Decompilation-Preventive Method by Obfuscating Algorithm)

  • 안화수
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 춘계학술발표대회
    • /
    • pp.1457-1458
    • /
    • 2007
  • 자바 언어의 중요한 특징 중의 하나는 어떤 기계에서든지 실행될 수 있다는 점이다. 이러한 플랫폼에 대한 독립성은 자바 프로그램이 바이트 코드 형태로 배포되기 때문에 가능한 일이다. 바이트 코드는 특정 기계에 종속되지 않고 자바 가상 머신(Java Virtual Machine:JVM)를 지원하는 곳이면 어디에서든지 실행 가능하다. 그런데 바이트 코드로 번역된 코드에는 자바 소스 코드의 정보가 그대로 포함되어 있는데, 이로 인해서 바이트 코드에서 자바 소스코드로의 역컴파일(Decompilation)이 쉽게 이루어진다는 취약점이 있다. 본 논문에서는 자바 바이트 코드의 난독화 기법을 살펴보고, Code Encryption Algorithm을 이용해서 역컴파일 하기 어려운 형태로 만드는 기술인 코드 난독처리(Code Obfuscation) 기법을 제안하였다.

  • PDF

VMProtect의 역공학 방해 기능 분석 및 Pin을 이용한 우회 방안 (Analysis of Anti-Reversing Functionalities of VMProtect and Bypass Method Using Pin)

  • 박성우;박용수
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제10권11호
    • /
    • pp.297-304
    • /
    • 2021
  • 상용 난독화 도구(프로텍터)들은 소프트웨어 역공학 과정에서 프로그램의 분석을 지연시키고 방해하는 난독화 기술 및 역공학 방해(안티리버싱) 기법을 적용시킴으로써 소프트웨어의 동작 과정을 분석하는데 어려움을 발생시키는데 목적이 있다. 특히, 가상화 탐지와 안티디버깅 기능 같은 경우 분석 도구가 발견되면 정상적인 실행 흐름을 벗어나 프로그램을 종료시킨다. 본 논문에서는 상용 난독화 도구(프로텍터) 중 하나인 VMProtect 3.5.0을 통해 Debugger Detection, Virualization Tools Detection 옵션을 적용시킨 실행 파일의 안티리버싱 기법을 분석하고 Pin을 이용한 우회 방안을 제안한다. 또한, 적용된 안티리버싱 기법을 분석하는 과정에서 Amti-VM 기술과 Anti-DBI 기술에 의해 프로그램이 종료되는 문제가 발생하기 때문에 API 분석을 통해 특정 프로그램 종료 루틴을 알아내어 적용된 안티리버싱 기법의 위치를 예상하고 위치를 바탕으로 안티리버싱 기법 우회 방안 알고리즘 순서도를 작성하였다. 실험에 사용된 소프트웨어들의 버전의 차이로부터 발생하는 호환성 문제, 기법의 변화 등을 고려하여 최신 버전의 소프트웨어(VMProtect, Windows, Pin)에서 Pin 자동화 우회 코드를 작성하고 실험을 진행하여 성공적으로 우회됨을 확인하였다. 제안된 분석 방안을 개선하여 기법이 제시되지 않은 난독화 도구의 안티리버싱 기법을 분석하고 우회 방안을 찾아낼 수 있다.

실행파일 헤더내 문서화되지 않은 정보의 비교를 통한 실행파일 분류 방법 (A Classification Method for Executable Files based on Comparison of Undocumented Information in the PE Header)

  • 김정순;강정민;김강산;신욱
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제2권1호
    • /
    • pp.43-50
    • /
    • 2013
  • 파일 식별과 분석은 컴퓨터 포렌식 수사과정에서 디지털증거 획득 및 증거분석에 중요한 요소이며 지금까지 많은 연구가 진행되었다. 그러나 실행파일의 식별과 분석은 주로 악성코드에 대해 연구되어 왔기 때문에, 저작권침해 사고와 같은 일반적인 실행파일을 세부적으로 분류하고 탐지해야 할 경우에는 기존의 악성코드 분류 방법은 적용되기 어렵다. 따라서, 본 논문에서는 실행파일 헤더내 문서화되지 않은 정보의 유사도 측정에 근거한 비교를 통해 실행파일을 세부적으로 분류할 수 있는 방법을 제시한다. 제안한 방법은 실행파일의 헤더에 포함된 정보를 이용하기 때문에 일반적인 실행파일뿐만 아니라 기존의 악성코드 및 새로운 악성코드와 변종 그리고 실행압축, 코드변형, 가상화 및 난독화된 실행파일 분류에도 활용이 가능하다.