Skip to main content
QUICK REVIEW

[論文レビュー] Malicious cryptography techniques for unreversable (malicious or not) binaries

Éric Filiol|arXiv (Cornell University)|Sep 21, 2010
Advanced Malware Detection Techniques参考文献 11被引用数 12
ひとこと要約

本論文は、悪意ある暗号技術とk-ary仮想マシンベースのオブスカリティ技術を組み合わせることで、バイナリが完全にリバースエンジニアリングに対して無敵となる、革新的なコード保護手法を提示している。決定的有限状態機械(dFSM)と偏りのある擬似乱数生成器(PRNG)を組み合わせ、マルウェアをk-aryコンポonentに分割することで、従来の復号器を必要とせず、最大 $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-aryコード配布を用いて、マルウェアや保護ソフトウェアにおける大規模な多様化と変異化を可能にすること。
  • 隠された分散型状態機械と偏りのあるPRNGを活用することで、静的および動的解析の両方が無効になるようにすること。
  • 保護されたバイナリが正当なコードと区別不能なエントロピーを持つTRANSECレベルのセキュリティを達成すること。

提案手法

  • 重要なコードを中間表現(IR)に変換し、カスタム仮想マシン上で実行可能なバイトコードにコンパイルする。
  • 決定的有限状態機械(dFSM)をコアオブスカリティエンジンとして採用し、59ビットの出力チャンクを生成してコードを暗号化する。
  • 非一様分布を持つ偏りのある擬似乱数生成器(PRNG)を用い、予測不能ではあるが決定的な出力シーケンスを生成する。
  • マルウェアをk-aryコンポonent(例:2つの部分V₁とV₂)に分割し、V₁がdFSMをホスティングし、V₂が入力鍵を供給することで再構築を不可能にする。
  • 共有メモリ(System V IPC)、名前付きパイプ、またはプロセスパイプを介してコンponent間通信を実装し、機密性とモジュラリティを維持する。
  • 暗号解析技術を用いてdFSMの入力を事前に計算することで、正しく実行されるようにしつつ、内部論理を分析から隠蔽する。

実験結果

リサーチクエスチョン

  • RQ1静的および動的リバースエンジニアリングが根本的に行えないようなコード保護が可能か?
  • RQ2従来の限界(例:$2^{140}$ 個のバージョン)を超えた多様化を、中央集権的な復号器に依存せずに実現できるか?
  • RQ3従来の復号器が存在しないことで、マルウェア検出における主要なシグネチャーベクトルが排除されるか?
  • RQ4k-aryコード配布によって、攻撃表面を断片化することで、リバースエンジニアリングがどの程度困難になるか?
  • RQ5非決定的有限状態機械を用いることで、現在の限界を超えてリバースエンジニアリングの複雑さをさらに高められるか?

主な発見

  • 提案手法により、400 KBのバイナリから59ビットの鍵ストリーム暗号方式を用いて最大 $2^{140}$ 個の異なる多様化バージョンを生成可能である。
  • 従来の復号器が存在しないことで、主要な検出ベクトルが排除され、シグネチャーベース解析に対する抵抗性が顕著に向上する。
  • dFSMベースのオブスカリティにより、保護されたバイナリのエントロピーが正当なソフトウェアと区別不能となり、TRANSECレベルのセキュリティを達成する。
  • 特にV₁とV₂のコンポonentに分かれたk-aryコード配布により、dFSMの論理と入力生成が別々のコンポonentに分散されることで、リバースエンジニアリングが不可能になる。
  • System V IPCおよび名前付きパイプを用いることで、効率的かつ安全なコンポonent間通信が実現され、検出および再構築が非現実的になる。
  • 偏りのあるPRNGと暗号解析による事前計算の活用により、決定的ではあるが予測不能なコード変異が実現され、静的および動的解析に対する耐性が強化される。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。