Skip to main content
QUICK REVIEW

[論文レビュー] DeepCheck: A Non-intrusive Control-flow Integrity Checking based on Deep Learning

Jiliang Zhang, Wuqiao Chen|arXiv (Cornell University)|May 6, 2019
Security and Verification in Computing参考文献 39被引用数 12
ひとこと要約

DeepCheckは、バイナリやアーキテクチャ仕様(ISA)の変更を伴わず、深層学習に基づく制御フローセキュリティ(CFI)メカニズムを提案する。制御フローダイアグラム(CFG)をチェーンに分割して深層ニューラルネットワーク(DNN)を学習させることで、コード再利用攻撃(CRA)をリアルタイムで検出可能であり、実行時オーバーヘッドはゼロ。平均98.9%の検出精度と、64件のROPエクスプロイトに対して100%の成功率を達成し、従来のCFI手法に比べて互換性と効率性に優れる。

ABSTRACT

Code reuse attack (CRA) is a powerful attack that reuses existing codes to hijack the program control flow. Control flow integrity (CFI) is one of the most popular mechanisms to prevent against CRAs. However, current CFI techniques are difficult to be deployed in real applications due to suffering several issues such as modifying binaries or compiler, extending instruction set architectures (ISA) and incurring unacceptable runtime overhead. To address these issues, we propose the first deep learning-based CFI technique, named DeepCheck, where the control flow graph (CFG) is split into chains for deep neural network (DNN) training. Then the integrity features of CFG can be learned by DNN to detect abnormal control flows. DeepCheck does not interrupt the application and hence incurs zero runtime overhead. Experimental results on Adobe Flash Player, Nginx, Proftpd and Firefox show that the average detection accuracy of DeepCheck is as high as 98.9%. In addition, 64 ROP exploits created by ROPGadget and Ropper are used to further test the effectiveness, which shows that the detection success rate reaches 100%.

研究の動機と目的

  • コンパイラやISAの変更、高い実行時オーバーヘッドといった、既存のCFI技術の限界を克服すること。
  • 既存のバイナリやシステムと互換性がある実用的で非侵襲的なCFIソリューションを開発すること。
  • 深層学習を活用して、高い精度と低い偽陽性・偽陰性率で異常な制御フローを検出すること。
  • コード再利用攻撃(CRA)、特にROPやJOPをリアルタイムでゼロオーバーヘッドで検出できること。
  • バイナリやコンパイラの変更なしに、商用ソフトウェアにスケーラブルかつ展開可能な防御メカニズムを提供すること。

提案手法

  • 制御フローダイアグラム(CFG)を、DNN学習用の制御フローエッジの連続的チェーンに分解する。
  • これらのCFGチェーン上で深層ニューラルネットワーク(DNN)を学習させ、正当な制御フローの整合性特徴を学習する。
  • 実行時、分岐情報がリアルタイムで収集され、事前に学習済みのDNNに供給され、異常検出が行われる。
  • 実行時インストルメンテーションやバイナリリライトを回避するため、命令ポインタトラッキング(IPT)を用いてバイナリやISAを変更せずに細粒度のCFGを抽出する。
  • DNNモデルは、健全なCFGパターンを学習させることで、正常と悪意ある制御フローパターンの区別が可能になる。
  • 実行時インストルメンテーションやバイナリの再書き換えを回避することで、ゼロのパフォーマンスオーバーヘッドを実現する。

実験結果

リサーチクエスチョン

  • RQ1バイナリ、コンパイラ、ISAの変更なしに、深層学習モデルがコード再利用攻撃を検出可能か?
  • RQ2非侵襲的かつ実行時オーバーヘッドゼロのCFIメカニズムが、多様なCRAに対して高い検出精度を達成できるか?
  • RQ3DNNベースのアプローチは、リアルタイムで異常な制御フローパターンを同定するのにどの程度有効か?
  • RQ4実世界のROPエクスプロイトに対して、モデルの検出性能はどの程度か?
  • RQ5異なるアプリケーション間で一般化可能であり、偽陽性・偽陰性率を低く維持できるか?

主な発見

  • DeepCheckは、Adobe Flash Player、Nginx、Proftpd、Firefoxの4つの商用アプリケーションにおいて、平均98.9%の検出精度を達成した。
  • 偽陽性率は0.15%、偽陰性率は0.60%であり、高い正確性と再現率を示している。
  • ROPGadgetおよびRopperで生成された64件のROPエクスプロイトすべてが正常に検出され、100%の検出成功率を達成した。
  • バイナリやコンパイラの変更がなく、ハードウェア拡張機能も不要なため、実行時オーバーヘッドはゼロである。
  • 既存のソフトウェアスタックと互換性があり、アプリケーションレベルの変更なしに展開可能である。
  • IPTを用いた細粒度のCFG抽出により、正当な制御フローパathの正確なモデリングが可能になった。

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

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

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

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