Skip to main content
QUICK REVIEW

[論文レビュー] Asteria-Pro: Enhancing Deep-Learning Based Binary Code Similarity Detection by Incorporating Domain Knowledge

Shouguo Yang, Chaopeng Dong|arXiv (Cornell University)|Jan 2, 2023
Software Engineering Research被引用数 6
ひとこと要約

Asteria-Pro は、事前フィルタリングおよび再ランク付けモジュールを通じてドメイン知識を統合することで、深層学習ベースのバイナリコード類似度検出を強化し、計算時間を 96.9% 減少させ、MRR と Recall をそれぞれ 23.71% および 36.4% 向上させ、実世界のファームウェare における 1,482 個の脆弱関数を 91.65% の正確性で検出した。

ABSTRACT

The widespread code reuse allows vulnerabilities to proliferate among a vast variety of firmware. There is an urgent need to detect these vulnerable code effectively and efficiently. By measuring code similarities, AI-based binary code similarity detection is applied to detecting vulnerable code at scale. Existing studies have proposed various function features to capture the commonality for similarity detection. Nevertheless, the significant code syntactic variability induced by the diversity of IoT hardware architectures diminishes the accuracy of binary code similarity detection. In our earlier study and the tool Asteria, we adopt a Tree-LSTM network to summarize function semantics as function commonality and the evaluation result indicates an advanced performance. However, it still has utility concerns due to excessive time costs and inadequate precision while searching for large-scale firmware bugs. To this end, we propose a novel deep learning enhancement architecture by incorporating domain knowledge-based pre-filtration and re-ranking modules, and we develop a prototype based on Asteria called Asteria-Pro. Pre-filtration module seeks to eliminates dissimilar functions to boost subsequent deep learning model calculations, while re-ranking module aims to raises the rankings of vulnerable functions among candidates generated by deep learning model. Our evaluation indicates that pre-filtration module cuts the calculation time by 96.9% and re-ranking improves MRR and Recall by 23.71% and 36.4%. By incorporating the pre-filtration and re-ranking modules, Asteria-Pro outperforms existing state-of-the-art approaches in bug search task, by a significant large margin. We conduct a large-scale real-world firmware bug search and Asteria-Pro manages to detect 1,482 vulnerable functions with a high precision 91.65%.

研究の動機と目的

  • IoT ファームウェare における深層学習ベースのバイナリコード類似度検出(BCSD)の低精度および高コストの課題に対処する。これは、アーキテクチャの多様性と構文的ばらつきに起因する。
  • エミュレーションや記号実行に大きく依存する既存の BCSD ツールの限界を克服する。これらは大規模なファームウェア解析には現実的ではない。
  • ドメイン固有の知識を深層学習パイプラインに統合することで、実世界のファームウェアにおける脆弱性検出のスケーラビリティと正確性を向上させる。
  • ソースコードや関数名が存在しない状況でも、多様な IoT ハードウェアアーキテクチャにわたる類似した脆弱関数を、効率的かつ正確に検出可能にする。

提案手法

  • 関数名のヒューリスティクスとドメイン固有のルールを活用して、深層学習エンコーディングの前段階で類似しない関数を除外する事前フィルタリングモジュールを導入し、候補数を大幅に削減する。
  • Tree-LSTM を用いた深層学習モデルを適用して、関数の意味を密な埋め込み表現に変換し、命令セットアーキテクチャに依存しない機能的共通性を捉える。
  • 関数コール構造と制御フローパatters を使用して、深層学習モデルからの類似度スコアを再キャリブレーションする再ランク付けモジュールを設計し、真陽性を向上させる。
  • 事前フィルタリングおよび再ランク付けモジュールを統合したパイプラインを構築し、BCSD プロセスの効率性と正確性を両立させる。
  • リフトされた中間表現から得られる抽象構文木(AST)を活用して、アーキテクチャに依存しない意味的特徴を抽出し、モデルの入力に用いる。
  • グラフニューラルネットワーク(GNN)を用いてバイナリ関数内の制御およびデータ依存関係をモデル化し、単純なシーケンスベースのモデルを上回る意味的表現を向上させる。

実験結果

リサーチクエスチョン

  • RQ1ドメイン知識に基づく事前フィルタリングは、大規模なファームウェア解析における深層学習ベースのバイナリコード類似度検出の計算コストを顕著に低減できるか?
  • RQ2関数コール構造に基づく後処理の再ランク付けモジュールは、類似度スコアの再スコアリングを通じて、脆弱性検出の正確性をどの程度向上できるか?
  • RQ3実世界のファームウェアにおける N-day 脆弱性検出において、Asteria-Pro は最先端の BCSD ツールと比較して、正確性、速度、スケーラビリティの観点で優れているか?
  • RQ4事前フィルタリングおよび再ランク付けモジュールの統合は、Asteria-Pro を超えて他の埋め込みベースの BCSD メソッドにも一般化可能か?

主な発見

  • 事前フィルタリングモジュールにより、深層学習推論の前段階で 96.9% の類似しない関数ペアが除外され、類似度検出の合計計算時間が 96.9% 減少した。
  • 再ランク付けモジュールにより、ベースラインの深層学習モデルに比べ、平均逆順位(MRR)が 23.71% 向上し、Recall が 36.4% 向上した。
  • 大規模な実世界のファームウェア解析において、Asteria-Pro は 1,482 個の脆弱関数を高い正確性 91.65% で正常に検出した。
  • CVE-2017-13001 におけるインライン化された脆弱なコードを同定したことで、多様なファームウェアバイナリにわたる複雑で隠ぺいされた脆弱性の検出能力を示した。
  • 他のベースライン埋め込み手法に事前フィルタリングおよび再ランク付けモジュールを統合することで、その正確性が顕著に向上した。これは広範な一般化可能性を示している。
  • Asteria-Pro は、特にクロスアーキテクチャ脆弱性検出において、既存の最先端の BCSD アプローチを速度および正確性の両面で上回った。

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

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

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

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