論文の概要: A unit-based symbolic execution method for detecting memory corruption vulnerabilities in executable codes
- arxiv url: http://arxiv.org/abs/2210.04258v3
- Date: Sun, 14 Sep 2025 21:54:42 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-09-16 17:26:22.553477
- Title: A unit-based symbolic execution method for detecting memory corruption vulnerabilities in executable codes
- Title(参考訳): 実行可能コードにおけるメモリ破損脆弱性検出のための単位ベースシンボリック実行法
- Authors: Sara Baradaran, Mahdi Heidari, Ali Kamali, Maryam Mouzarani,
- Abstract要約: 本稿では,実行可能コードにおけるシンボル実行効率の向上と,メモリ破損の脆弱性の4つのクラスを検出する方法を提案する。
プログラム全体ではなく,テストユニット上でのみシンボリック実行を行い,パスの爆発確率を下げる。
この方法は、Angrフレームワークのプラグインとして実装され、ベンチマークプログラムのグループを用いて評価される。
- 参考スコア(独自算出の注目度): 0.019488837457688733
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Memory corruption is a serious class of software vulnerabilities, which requires careful attention to be detected and removed from applications before getting exploited and harming the system users. Symbolic execution is a well-known method for analyzing programs and detecting various vulnerabilities, e.g., memory corruption. Although this method is sound and complete in theory, it faces some challenges, such as path explosion, when applied to real-world complex programs. In this paper, we present a method for improving the efficiency of symbolic execution and detecting four classes of memory corruption vulnerabilities in executable codes, i.e., heap-based buffer overflow, stack-based buffer overflow, use-after-free, and double-free. We perform symbolic execution only on test units rather than the whole program to lower the chance of path explosion. In our method, test units are considered parts of the program's code, which might contain vulnerable statements and are statically identified based on the specifications of memory corruption vulnerabilities. Then, each test unit is symbolically executed to calculate path and vulnerability constraints of each statement of the unit, which determine the conditions on unit input data for executing that statement or activating vulnerabilities in it, respectively. Solving these constraints gives us input values for the test unit, which execute the desired statements and reveal vulnerabilities in them. Finally, we use machine learning to approximate the correlation between system and unit input data. Thereby, we generate system inputs that enter the program, reach vulnerable instructions in the desired test unit, and reveal vulnerabilities in them. This method is implemented as a plugin for angr framework and evaluated using a group of benchmark programs. The experiments show its superiority over similar tools in accuracy and performance.
- Abstract(参考訳): メモリ破損は深刻なソフトウェアの脆弱性のクラスであり、システムのユーザを悪用し傷つける前に、アプリケーションから注意を払って検出し、削除する必要があります。
シンボリック実行は、プログラムを分析し、メモリ破損などの様々な脆弱性を検出するためのよく知られた方法である。
この手法は理論上は健全で完全なものであるが、実世界の複雑なプログラムに適用した場合、経路の爆発などいくつかの課題に直面している。
本稿では,実行可能コード,すなわちヒープベースのバッファオーバーフロー,スタックベースのバッファオーバーフロー,使用後フリー,ダブルフリーの4つのクラスにおいて,シンボル実行の効率を改善し,メモリ破損の脆弱性を検出する方法を提案する。
プログラム全体ではなく,テストユニット上でのみシンボリック実行を行い,パスの爆発確率を下げる。
本手法では,テストユニットをプログラムのコードの一部とみなし,脆弱性のある文を格納し,メモリ破損の脆弱性の仕様に基づいて静的に識別する。
そして、各テストユニットを象徴的に実行して、各ステートメントのパス制約と脆弱性制約を計算し、そのステートメントを実行するためのユニット入力データの条件をそれぞれ決定する。
これらの制約を解決することで、テストユニットの入力値が得られます。
最後に,機械学習を用いてシステムと単位入力データの相関関係を近似する。
これにより、プログラムを入力し、所望のテストユニットで脆弱な命令に到達し、その脆弱性を明らかにするシステム入力を生成する。
この方法は、Angrフレームワークのプラグインとして実装され、ベンチマークプログラムのグループを用いて評価される。
この実験は、類似のツールよりも精度と性能が優れていることを示している。
関連論文リスト
- Weakly Supervised Vulnerability Localization via Multiple Instance Learning [46.980136742826836]
WeAkly によるマルチプルインスタンス学習による脆弱性ローカライゼーションのための WAVES という新しい手法を提案する。
WAVESは、ある関数が脆弱かどうか(すなわち脆弱性検出)を判定し、脆弱なステートメントをピンポイントする機能を持っている。
提案手法は,文レベルの脆弱性ローカライゼーションにおいて,脆弱性検出と最先端のパフォーマンスにおいて同等のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2025-09-14T15:11:39Z) - Reactive Bottom-Up Testing [15.280664862119565]
リアクティブボトムアップテスト(Reactive Bottom-Up Testing)と呼ばれる新しいパラダイムを導入します。
私たちの洞察では、機能レベルのテストは必要だが、機能内の脆弱性の検証には不十分である。
本研究では,潜在的な機能を特定し,型とコンテキストを意識したハーネスを生成する3段階のボトムアップテスト手法を開発した。
論文 参考訳(メタデータ) (2025-09-03T20:54:43Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - Divide and Conquer based Symbolic Vulnerability Detection [0.16385815610837165]
本稿では,シンボル実行と制御フローグラフ解析に基づく脆弱性検出手法を提案する。
提案手法では,無関係なプログラム情報を除去するために,分割・分散アルゴリズムを用いる。
論文 参考訳(メタデータ) (2024-09-20T13:09:07Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [51.898805184427545]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
まず、自然言語における暗号関数のセマンティクスを要約するために、バイナリ大言語モデル(FoC-BinLLM)を構築した。
次に、FoC-BinLLM上にバイナリコード類似モデル(FoC-Sim)を構築し、変更に敏感な表現を作成し、データベース内の未知の暗号関数の類似実装を検索する。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - SliceLocator: Locating Vulnerable Statements with Graph-based Detectors [33.395068754566935]
SliceLocatorは、すべての潜在的な脆弱性トリガリングステートメントから、最も重み付けされたフローパスを選択することで、最も関連性の高いテントフローを特定する。
SliceLocatorは、最先端の4つのGNNベースの脆弱性検知器で一貫して動作することを示す。
論文 参考訳(メタデータ) (2024-01-05T10:15:04Z) - Statement-Level Vulnerability Detection: Learning Vulnerability Patterns Through Information Theory and Contrastive Learning [31.15123852246431]
本稿では,特定の関数の脆弱性関連コード文を特定するために,エンドツーエンドのディープラーニングに基づく新しいアプローチを提案する。
実世界の脆弱なコードで観測される構造にインスパイアされ、私たちはまず、潜伏変数の集合を学習するために相互情報を活用する。
そこで我々は,表現学習をさらに改善するために,新しいクラスタ型空間コントラスト学習を提案する。
論文 参考訳(メタデータ) (2022-09-20T00:46:20Z) - Adversarial EXEmples: A Survey and Experimental Evaluation of Practical
Attacks on Machine Learning for Windows Malware Detection [67.53296659361598]
EXEmplesは、比較的少ない入力バイトを摂動することで、機械学習に基づく検出をバイパスすることができる。
我々は、機械学習モデルに対する過去の攻撃を包含し、一般化するだけでなく、3つの新たな攻撃を含む統一フレームワークを開発する。
これらの攻撃はFull DOS、Extended、Shiftと呼ばれ、DOSヘッダをそれぞれ操作し、拡張し、第1セクションの内容を変更することで、敵のペイロードを注入する。
論文 参考訳(メタデータ) (2020-08-17T07:16:57Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。