Skip to main content
QUICK REVIEW

[논문 리뷰] Malicious cryptography techniques for unreversable (malicious or not) binaries

Éric Filiol|arXiv (Cornell University)|2010. 09. 21.
Advanced Malware Detection Techniques참고 문헌 11인용 수 12
한 줄 요약

이 논문은 악성 암호화 기법과 k-진 가상 머신 기반의 추상화를 결합하여 바이너리가 완전히 역공학에 저항하도록 하는 혁신적인 접근법을 제시한다. 결정론적 유한 상태 기계(dFSM)와 편향된 가짜 난수 생성기, 악성코드를 k-진 구성요소로 분할함으로써 기존의 복호화기 없이도 최대 $2^{140}$개의 다형 변형을 생성할 수 있으며, 이는 완전한 코드 방어와 탐지 불가능한 변형을 보장한다.

ABSTRACT

Fighting against computer malware require a mandatory step of reverse engineering. As soon as the code has been disassemblied/decompiled (including a dynamic analysis step), there is a hope to understand what the malware actually does and to implement a detection mean. This also applies to protection of software whenever one wishes to analyze them. In this paper, we show how to amour code in such a way that reserse engineering techniques (static and dymanic) are absolutely impossible by combining malicious cryptography techniques developped in our laboratory and new types of programming (k-ary codes). Suitable encryption algorithms combined with new cryptanalytic approaches to ease the protection of (malicious or not) binaries, enable to provide both total code armouring and large scale polymorphic features at the same time. A simple 400 Kb of executable code enables to produce a binary code and around $2^{140}$ mutated forms natively while going far beyond the old concept of decryptor.

연구 동기 및 목표

  • 고도화된 암호화 기반 추상화 기법을 통해 바이너리의 역공학을 완전히 불가능하게 만드는 기술을 개발한다.
  • 고정된 복호화기의 필요성을 제거함으로써 기존 코드 방어 및 다형성의 한계를 극복한다.
  • k-진 코드 분포를 활용해 악성코드 또는 보호된 소프트웨어에서 고규모 다형성과 변형을 가능하게 한다.
  • 숨겨진 분산 상태 기계와 편향된 PRNG를 활용해 정적 및 동적 분석이 모두 무력화되도록 보장한다.
  • 보호된 바이너리가 정당한 소프트웨어와 구분 불가능한 엔트로피를 가지며, TRANSEC 수준의 보안을 달성한다.

제안 방법

  • 핵심 코드를 중간 표현식(IR)으로 변환한 후, 사용자 정의 가상 머신에서 실행 가능한 바이트코드로 컴iles한다.
  • 결정론적 유한 상태 기계(dFSM)를 핵심 추상화 엔진으로 활용하여, 코드를 암호화하는 데 사용되는 59비트 출력 조각을 생성한다.
  • 비균일 분포를 가지는 편향된 가짜 난수 생성기(PRNG)를 사용하여 예측 불가능하지만 결정론적인 출력 시퀀스를 생성한다.
  • 악성코드를 k-진 구성요소(예: 두 개의 부분 V₁과 V₂)로 분할하며, V₁은 dFSM을 담당하고 V₂는 입력 키를 공급함으로써 재구성 불가능성을 확보한다.
  • 공유 메모리(System V IPC), 이름이 지정된 파이프, 또는 프로세스 파이프를 통해 구성요소 간 통신을 구현하여 기밀성과 모듈성을 유지한다.
  • 암호 분석 기법을 활용해 dFSM의 입력을 사전 계산함으로써 실행 정확성을 확보하면서도 내부 논리를 분석에서 숨긴다.

실험 결과

연구 질문

  • RQ1정적 및 동적 역공학 분석이 본질적으로 불가능한 수준의 코드 보호가 달성될 수 있는가?
  • RQ2기존의 복호화기 의존 구조를 벗어나, 다형성의 스케일을 $2^{140}$개 이상으로 확장할 수 있는가?
  • RQ3기존의 복호화기 없이 악성코드 탐지의 주요 서명 벡터를 제거할 수 있는가?
  • RQ4k-진 코드 분포를 통해 공격 표면을 분할함으로써 역공학을 얼마나 효과적으로 방지할 수 있는가?
  • RQ5비결정론적 유한 상태 기계는 현재의 한계를 초월해 역공학의 복잡성을 더욱 증가시킬 수 있는가?

주요 결과

  • 제안된 방법은 단일 400 KB 바이너리에서 오직 59비트 키 스트림 암호화 기반으로 최대 $2^{140}$개의 서로 다른 다형 변형을 생성할 수 있다.
  • 기존의 복호화기의 부재는 주요 탐지 벡터를 제거하여 서명 기반 분석에 대한 저항력을 크게 향상시킨다.
  • dFSM 기반 추상화로 인해 보호된 바이너리의 엔트로피가 정당한 소프트웨어와 구분 불가능해지며, TRANSEC 수준의 보안을 달성한다.
  • 특히 V₁과 V₂로 구성된 k-진 코드 분포를 통해 dFSM 논리와 입력 생성을 별개의 구성요소에 분산시킴으로써 역공학을 방지한다.
  • System V IPC와 이름이 지정된 파이프는 효율적이고 안전한 구성요소 간 통신을 가능하게 하여 탐지 및 재구성의 비가능성을 확보한다.
  • 편향된 PRNG와 암호 분석 기반 사전 계산을 활용함으로써 결정론적이면서도 예측 불가능한 코드 변형을 가능하게 하여 정적 및 동적 분석에 대한 내성을 강화한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.