Skip to main content
QUICK REVIEW

[論文レビュー] Sphinx: A Secure Architecture Based on Binary Code Diversification and Execution Obfuscation

Michel A. Kinsy, Donato Kava|arXiv (Cornell University)|Feb 12, 2018
Advanced Malware Detection Techniques参考文献 8被引用数 4
ひとこと要約

Sphinxは、バイナリコードの多様化とランタイム実行の難読化を組み合わせたハードウェア・ソフトウェア共同設計アーキテクチャを提案する。このアーキテクチャにより、リバースエンジニアリングやサイドチャnel攻撃に対して強力な防御が可能となり、パフォーマンスおよび消費電力のオーバーヘッドを最小限に抑える。自己再構成可能プロセッシング素子とPUF保護バイナリマスクを用いて、実行プロファイルを動的に変化させることで、機能的動作と観測可能なサイドチャnel信号(電力、タイミング、メモリアクセス)を分離する。

ABSTRACT

Sphinx, a hardware-software co-design architecture for binary code and runtime obfuscation. The Sphinx architecture uses binary code diversification and self-reconfigurable processing elements to maintain application functionality while obfuscating the binary code and architecture states to attackers. This approach dramatically reduces an attacker's ability to exploit information gained from one deployment to attack another deployment. Our results show that the Sphinx is able to decouple the program's execution time, power and memory and I/O activities from its functionality. It is also practical in the sense that the system (both software and hardware) overheads are minimal.

研究の動機と目的

  • バイナリコードおよびシステム状態に対するリバースエンジニアリングとサイドチャネル攻撃の持続的脅威に対処すること。
  • プログラム実行間で一貫した電力、タイミング、メモリアクセスパターンを悪用する攻撃者の効果性を低下させること。
  • ハードウェア・ソフトウェア共同設計により、強いセキュリティを維持しながらパフォーマンスおよび消費電力のオーバーヘッドを最小限に抑えること。
  • 同じプログラムのデプロイ毎に独自の実行動作を示すことで、ムービングターゲット防御を実現すること。
  • 高価または遅い暗号メカニズムや完全なハードウェア隔離に依存せずに、実用的なセキュリティを提供すること。

提案手法

  • コンパイル時にソフトウェアレベルの難読化を適用し、バイナリにランダムで偽装された命令を挿入し、本物の命令と偽物の命令を示すバイナリマスクを生成する。
  • 物理的にクローン不能な関数(PUF)を用いて、バイナリマスクの復号鍵を安全に保管・取得し、鍵の機密性を保証する。
  • プロセッサに自己認識可能な再構成可能アーキテクチャ(SARA)を導入し、同じ命令に対してタイミング、電力、メモリアクセスが異なる複数の実行プロファイルをサポートする。
  • 復号済みバイナリマスクに基づいて、実行時において実行ユニットを動的に再構成することで、デプロイ毎に実行動作を変化させる。
  • エンタロピー制御された命令多様化を導入することで、観測可能なサイドチャネル信号(電力、タイミング、メモリI/O)と機能的動作を分離する。
  • エミュレーテッドVerilogハードウェアプロトタイプを用いて、SPLASH-2、PARSEC、SPEC CINT2006のベンチマークスイートを用いて、パフォーマンス、消費電力、サイドチャネル耐性を評価する。

実験結果

リサーチクエスチョン

  • RQ1バイナリコードの多様化とランタイムハードウェア再構成を組み合わせることで、許容できないパフォーマンスまたは消費電力コストを伴わずに、サイドチャネル漏洩を効果的に隠蔽できるか?
  • RQ2同じアプリケーションが、実行ごとに異なる実行プロファイル(タイミング、電力、メモリ)を示せる範囲はどの程度か?(機能的正しさを維持した上で)
  • RQ3提案手法は、従来のアプローチと比較して、リバースエンジニアリングおよびサイドチャネル攻撃の防止においてどの程度有効か?
  • RQ4PUF保護バイナリマスクとランタイム再構成を用いることで、最小限のハードウェアおよびソフトウェアオーバーヘッドで実用的なセキュリティを提供できるか?
  • RQ5標準コンパイラおよび既存のソフトウェアスタックとの互換性を維持しながら、強力な難読化を実現できるか?

主な発見

  • Sphinxアーキテクチャは、実行時間、電力消費、メモリアクセスパターンといった観測可能なサイドチャネル信号と、プログラムの機能的動作との間を明確に分離することに成功した。
  • 同じバイナリの実行毎に、難読化されたバイナリマスクに基づくランタイム再構成により、タイミング、電力、メモリI/Oプロファイルが異なる。
  • 動的多様化により、攻撃者が1回のデプロイで得た情報を別のデプロイに応用することは不可能となり、強力なセキュリティを実現した。
  • SPLASH-2、PARSEC、SPEC CINT2006といった標準ベンチマークスイートを用いた評価により、パフォーマンスおよび消費電力のオーバーヘッドが最小限に抑えられていることが実証された。
  • PUFベースの鍵保存により、バイナリマスクが保護され、不正な復号やリバースエンジニアリングが防止された。
  • 自己再構成可能SARAプロセッサにより、1命令あたり複数の実行プロファイルが可能となり、サイドチャネル漏洩に対する細かな制御が可能になった。

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

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

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

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