Skip to main content
QUICK REVIEW

[論文レビュー] jTrans: Jump-Aware Transformer for Binary Code Similarity

Hao Wang, Wenjie Qu|arXiv (Cornell University)|May 25, 2022
Software Engineering Research被引用数 7
ひとこと要約

jTransは、ジャンプに配慮したアーキテクチャを導入することで、制御フロー情報をバイナリコード表現に統合する、新しいTransformerベースのモデルである。このアプローチにより、バイナリコードの類似度検出がより正確に行えるようになった。jTransは新たにリリースされたBinaryCorpデータセットにおいて62.5%のF1スコアを達成し、以前の最先端手法(SOTA)よりも30.5%高い性能を示し、実世界の脆弱性検出において2倍の再現率を達成した。

ABSTRACT

Binary code similarity detection (BCSD) has important applications in various fields such as vulnerability detection, software component analysis, and reverse engineering. Recent studies have shown that deep neural networks (DNNs) can comprehend instructions or control-flow graphs (CFG) of binary code and support BCSD. In this study, we propose a novel Transformer-based approach, namely jTrans, to learn representations of binary code. It is the first solution that embeds control flow information of binary code into Transformer-based language models, by using a novel jump-aware representation of the analyzed binaries and a newly-designed pre-training task. Additionally, we release to the community a newly-created large dataset of binaries, BinaryCorp, which is the most diverse to date. Evaluation results show that jTrans outperforms state-of-the-art (SOTA) approaches on this more challenging dataset by 30.5% (i.e., from 32.0% to 62.5%). In a real-world task of known vulnerability searching, jTrans achieves a recall that is 2X higher than existing SOTA baselines.

研究の動機と目的

  • 既存のNLPベースのモデルがバイナリコードにおける制御フローセマンティクスを捉えることの限界を解決すること。
  • 現在のバイナリコード類似度解決手法に依存しているグラフニューラルネットワーク(GNNs)や手作業で設計された特徴量の問題を克服すること。
  • コンパイラの最適化やコード変換に対しても、バイナリコード類似度検出の堅牢性と正確性を向上させること。
  • BinaryCorpをリリースすることで、将来の研究のためのスケーラブルで高品質なベンチマークを提供すること。これは、これまでで最大かつ最も多様なバイナリデータセットである。
  • 大規模なプールにおける関数間の関係を捉える統一されたモデルアーキテクチャにより、2つのバイナリ関数を直接比較可能にする

提案手法

  • バイナリ関数内の制御フロージャンプ(例:条件分岐/無条件分岐)を明示的にモデル化するジャンプに配慮した表現を導入する。
  • ジャンプに配慮した位置エンコーディングを用いてアテンション計算を変更することで、制御フロージャンプの意味的影響を保持する、新しい自己注意メカニズムを設計する。
  • 制御フローサブセットに重点を置いた事前学習タスクを採用し、バイナリコードの意味的な表現を学習する能力を強化する。
  • GNNベースのCFG処理を完全にTransformerベースのアーキテクチャに置き換えることで、学習効率とスケーラビリティを向上させる。
  • 学習された表現を用いて、ベクトル空間におけるコサイン類似度を計算することで、バイナリ関数間の類似度を算出する。
  • SVD分解と理論的分析を適用し、アテンション重みがジャンプ接続されたトークンに正のバイアスを示すことを証明することで、設計の妥当性を裏付ける。

実験結果

リサーチクエスチョン

  • RQ1GNNに依存せずに、Transformerベースのモデルがバイナリコードにおける制御フローセマンティクスを効果的に学習できるか?
  • RQ2ジャンプに配慮した表現を組み込むことで、標準的なNLPモデルと比較して、バイナリコード類似度検出の正確性がどの程度向上するか?
  • RQ3提案された事前学習タスクが、多様なバイナリコードにおけるモデルの一般化能力をどの程度向上させるか?
  • RQ4数千個の候補バイナリを含む大規模な類似度検索シナリオにおいて、jTransはどの程度の性能を示すか?
  • RQ5実世界の脆弱性検出タスクにおいて、jTransは既存のSOTA手法を上回る性能を示せるか?

主な発見

  • jTransはBinaryCorpデータセットにおいて62.5%のF1スコアを達成し、以前のSOTA(32.0%)よりも30.5%高い性能を示した。
  • 実世界の既知の脆弱性検索タスクにおいて、jTransは既存のSOTAベースラインよりも2倍の再現率を達成した。
  • 候補プールのサイズが10,000関数に拡大しても、jTransは高い性能を維持したが、過去の手法は20%未満の正確性に低下した。
  • 理論的分析により、アテンション重みがジャンプ接続されたトークンに正のバイアスを示すことが確認され、設計の妥当性が裏付けられた。
  • 新たにリリースされたBinaryCorpは、これまでで最大かつ最も多様なバイナリコレクションを含んでおり、堅牢なベンチマークを可能にした。
  • 単に順序付き命令モデルに依存するモデルやCFGベースのGNNに依存するモデルと比較して、jTransは統合された制御フローセマンティクスの重要性を示した。

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

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

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

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