Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1243

シンボリック実行

監修Cybersecurity entrepreneur & security researcher

シンボリック実行 とは何ですか?

シンボリック実行具体的な値ではなく記号値を入力としてプログラムを実行し、各パスの制約を SMT ソルバで解いて欠陥を発見するプログラム解析手法。


シンボリック実行エンジンは、プログラム入力を数学的変数として扱い、条件分岐ごとにパスを分けて探索します。各パスは一階論理の制約を蓄積し、Z3 などの SMT ソルバが充足可能性を判定し、可能ならそのパスに到達する具体的な入力を生成します。これにより、オーバーフロー、ゼロ除算、汚染がシンクに到達するなどのバグ条件の到達可能性を形式的に証明できますが、パス爆発と制約の複雑さに悩まされます。KLEE、angr、Manticore などのツールがファザー支援、深い脆弱性の発見、バイナリの安全性検証に用いられます。

  1. 01

    C 言語ライブラリに対して KLEE を用い、各分岐に到達してアサートを発火させる入力を生成する。

  2. 02

    angr と AFL++ を組み合わせ、ファジングだけでは越えられない制約を解く。

よくある質問

シンボリック実行 とは何ですか?

具体的な値ではなく記号値を入力としてプログラムを実行し、各パスの制約を SMT ソルバで解いて欠陥を発見するプログラム解析手法。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。

シンボリック実行 とはどういう意味ですか?

具体的な値ではなく記号値を入力としてプログラムを実行し、各パスの制約を SMT ソルバで解いて欠陥を発見するプログラム解析手法。

シンボリック実行 からどのように防御しますか?

シンボリック実行 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

シンボリック実行 の別名は何ですか?

一般的な別名: シンボリック解析, コンコリック実行。

関連用語