Skip to main content
QUICK REVIEW

[論文レビュー] Neuro-Symbolic Execution: The Feasibility of an Inductive Approach to Symbolic Execution

Shiqi Shen, Soundarya Ramesh|arXiv (Cornell University)|Jul 2, 2018
Software Testing and Debugging Techniques参考文献 79被引用数 4
ひとこと要約

この論文は、制約の表現力とスケーラビリティの限界を克服するため、シンボリック実行とニューラルネットワークを組み合わせた新しい手法であるNeuro-Symbolic Execution (NeuEx) を提案する。微分可能ニューラル制約を通じて複雑な変数関係を学習し、SMTと勾配最適化を用いて混合シンボリック・ニューラル制約を解くことで、複雑な制約を伴う14のバッファオーバーフロープログラムのうち13つでエクスプロイトの生成に成功し、73のベンチマークプログラムにおけるニューロ・シンボリック制約の100%を解消した。

ABSTRACT

Symbolic execution is a powerful technique for program analysis. However, it has many limitations in practical applicability: the path explosion problem encumbers scalability, the need for language-specific implementation, the inability to handle complex dependencies, and the limited expressiveness of theories supported by underlying satisfiability checkers. Often, relationships between variables of interest are not expressible directly as purely symbolic constraints. To this end, we present a new approach -- neuro-symbolic execution -- which learns an approximation of the relationship as a neural net. It features a constraint solver that can solve mixed constraints, involving both symbolic expressions and neural network representation. To do so, we envision such constraint solving as procedure combining SMT solving and gradient-based optimization. We demonstrate the utility of neuro-symbolic execution in constructing exploits for buffer overflows. We report success on 13/14 programs which have difficult constraints, known to require specialized extensions to symbolic execution. In addition, our technique solves $100$\% of the given neuro-symbolic constraints in $73$ programs from standard verification and invariant synthesis benchmarks.

研究の動機と目的

  • プログラム変数間の複雑で表現不能な関係を扱う際のシンボリック実行の限界を解消すること。
  • 特に非線形または文字列処理が多用される操作において、SMTソルバのスケーラビリティと表現力の制約を克服すること。
  • シンボリック実行がネイティブにサポートしないコードコンponents、例えばブラックボックスまたは特許取得済み関数の解析を可能にすること。
  • 誘導的学習と演繹的推論を統合した一般化可能な制約解決フレームワークを構築すること。
  • 事前に定義された制約テンプレートが不要な状態で、ニューラルネットワークを用いて複雑なプログラム動作を近似可能にするという可能性を実証すること。

提案手法

  • Neuro-Symbolic Executionは、学習インターフェースを用いて、実行時のテスト実行から変数関係のニューラルネットワーク表現を学習する。
  • 制約は、SMT由来のシンボリック式と、学習モデルからのニューラルネットワーク出力の論理積として定式化される。
  • SMTソルビングと勾配ベース最適化を組み合わせたハイブリッド制約ソルバが、混合シンボリック・ニューラル制約の充足可能性を検証する。
  • 微分可能ニューラルネットワークを用いることで、制約充足と入力最適化のためのバックプロパゲーションと勾配計算が可能になる。
  • ソースコードや言語固有のルールが不要な状態で、観察されたプログラム動作から学習することで、ホワイトボックスおよびブラックボックス解析をサポートする。
  • ニューラルネットワークの普遍近似性を活用し、標準SMT理論では表現不可能な非線形的または文字列ベースの関係をモデル化できる。

実験結果

リサーチクエスチョン

  • RQ1ニューラルネットワークは、シンボリック制約として表現できない複雑な非線形的関係を効果的に学習し、表現できるか?
  • RQ2SMTと勾配ベース最適化を組み合わせたハイブリッド制約ソルバは、混合シンボリック・ニューラル制約を効率的に解けるか?
  • RQ3神経的シンボリック実行は、複雑な制約を伴うバッファオーバーフロー脆弱性のエクスプロイト生成において、従来のシンボリック実行を上回る性能を示せるか?
  • RQ4このフレームワークは、標準的な検証および不変式合成ベンチマークにどの程度一般化可能か?
  • RQ5事前に定義された制約テンプレートが存在しないことで、プログラム解析における制約推論の柔軟性と適用範囲が向上するか?

主な発見

  • Neuro-Symbolic Executionは、複雑な制約により従来のシンボリック実行で困難とされる14のバッファオーバーフロープログラムのうち、13つで動作するエクスプロイトを成功裏に生成した。
  • 検証および不変式合成の標準ベンチマーク73個におけるニューロ・シンボリック制約の100%を解消し、高い信頼性とカバレッジを示した。
  • ハイブリッドソルバはSMTソルビングと勾配ベース最適化を効果的に統合し、複雑な制約を伴う高次元入力空間における効率的探索を可能にした。
  • 非線形的または文字列ベースの関数のように、標準SMT理論では表現不可能な関係を学習することで、従来のシンボリック実行よりも高い表現力を達成した。
  • 事前に定義された制約テンプレートが不要なため、テストデータから任意の関数的関係を学習可能となり、柔軟性と適用範囲が向上した。
  • 微分可能ニューラルネットワークの使用により、勾配計算が可能となり、複雑な制約組み合わせを満たす入力の効率的最適化が実現された。

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

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

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

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