論文の概要: A Comparative Study of Fuzzers and Static Analysis Tools for Finding Memory Unsafety in C and C++
- arxiv url: http://arxiv.org/abs/2505.22052v1
- Date: Wed, 28 May 2025 07:22:29 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-05-29 17:35:50.467147
- Title: A Comparative Study of Fuzzers and Static Analysis Tools for Finding Memory Unsafety in C and C++
- Title(参考訳): CとC++におけるメモリ不安全検出のためのファズーと静的解析ツールの比較検討
- Authors: Keno Hassler, Philipp Görz, Stephan Lipp, Thorsten Holz, Marcel Böhme,
- Abstract要約: C/C++プログラムにおける100以上の既知のセキュリティ脆弱性に適用した5つの静的アナライザと13個のファザの実証分析を行った。
どちらのテクニックもさまざまなタイプのバグを発見していますが、それぞれに明確な勝者があります。
- 参考スコア(独自算出の注目度): 24.60320701097142
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Even today, over 70% of security vulnerabilities in critical software systems result from memory safety violations. To address this challenge, fuzzing and static analysis are widely used automated methods to discover such vulnerabilities. Fuzzing generates random program inputs to identify faults, while static analysis examines source code to detect potential vulnerabilities. Although these techniques share a common goal, they take fundamentally different approaches and have evolved largely independently. In this paper, we present an empirical analysis of five static analyzers and 13 fuzzers, applied to over 100 known security vulnerabilities in C/C++ programs. We measure the number of bug reports generated for each vulnerability to evaluate how the approaches differ and complement each other. Moreover, we randomly sample eight bug-containing functions, manually analyze all bug reports therein, and quantify false-positive rates. We also assess limits to bug discovery, ease of use, resource requirements, and integration into the development process. We find that both techniques discover different types of bugs, but there are clear winners for each. Developers should consider these tools depending on their specific workflow and usability requirements. Based on our findings, we propose future directions to foster collaboration between these research domains.
- Abstract(参考訳): 今日でも、重要なソフトウェアシステムのセキュリティ上の脆弱性の70%以上が、メモリの安全性に違反している。
この課題に対処するため、ファジィングと静的解析は、そのような脆弱性を発見するために広く使われている。
ファジィングは障害を特定するためにランダムなプログラム入力を生成し、静的解析は潜在的な脆弱性を検出するためにソースコードを調べる。
これらの技術は共通の目標を共有しているが、基本的に異なるアプローチをとり、主に独立して進化してきた。
本稿では,C/C++プログラムにおける100以上の既知のセキュリティ脆弱性に適用した5つの静的アナライザと13個のファズーを実証分析する。
各脆弱性に対して生成されたバグレポートの数を測定し、アプローチの違いを評価し、相互に補完する。
さらに、8つのバグを含む関数をランダムにサンプリングし、バグレポートを手動で分析し、偽陽性率を定量化する。
また、バグ発見、使いやすさ、リソース要件、開発プロセスへの統合の限界を評価します。
どちらのテクニックもさまざまなタイプのバグを発見していますが、それぞれに明確な勝者があります。
開発者はこれらのツールをワークフローやユーザビリティの要求に応じて検討する必要がある。
そこで本研究では,これらの研究領域間の連携を促進するための今後の方向性を提案する。
関連論文リスト
- Fixseeker: An Empirical Driven Graph-based Approach for Detecting Silent Vulnerability Fixes in Open Source Software [12.706661324384319]
オープンソースソフトウェアの脆弱性は、ダウンストリームアプリケーションに重大なセキュリティリスクをもたらす。
多くのセキュリティパッチは、セキュリティへの影響を明確に示すことなく、OSSリポジトリの新しいコミットで静かにリリースされている。
グラフベースのアプローチであるFixseekerを提案し、ハンクレベルでのコード変更間の様々な相関関係を抽出し、無声脆弱性の修正を検出する。
論文 参考訳(メタデータ) (2025-03-26T06:16:58Z) - Divide and Conquer based Symbolic Vulnerability Detection [0.16385815610837165]
本稿では,シンボル実行と制御フローグラフ解析に基づく脆弱性検出手法を提案する。
提案手法では,無関係なプログラム情報を除去するために,分割・分散アルゴリズムを用いる。
論文 参考訳(メタデータ) (2024-09-20T13:09:07Z) - Assaying on the Robustness of Zero-Shot Machine-Generated Text Detectors [57.7003399760813]
先進的なLarge Language Models (LLMs) とその特殊な変種を探索し、いくつかの方法でこの分野に寄与する。
トピックと検出性能の間に有意な相関関係が発見された。
これらの調査は、様々なトピックにまたがるこれらの検出手法の適応性と堅牢性に光を当てた。
論文 参考訳(メタデータ) (2023-12-20T10:53:53Z) - ASSERT: Automated Safety Scenario Red Teaming for Evaluating the
Robustness of Large Language Models [65.79770974145983]
ASSERT、Automated Safety Scenario Red Teamingは、セマンティックなアグリゲーション、ターゲットブートストラップ、敵の知識注入という3つの方法で構成されている。
このプロンプトを4つの安全領域に分割し、ドメインがモデルの性能にどのように影響するかを詳細に分析する。
統計的に有意な性能差は, 意味的関連シナリオにおける絶対分類精度が最大11%, ゼロショット逆数設定では最大19%の絶対誤差率であることがわかった。
論文 参考訳(メタデータ) (2023-10-14T17:10:28Z) - The Hitchhiker's Guide to Program Analysis: A Journey with Large
Language Models [18.026567399243]
大規模言語モデル(LLM)は静的解析に代わる有望な選択肢を提供する。
本稿では,LLM支援静的解析のオープン空間を深く掘り下げる。
LLiftは,静的解析ツールとLLMの両方を併用した,完全に自動化されたフレームワークである。
論文 参考訳(メタデータ) (2023-08-01T02:57:43Z) - CodeLMSec Benchmark: Systematically Evaluating and Finding Security
Vulnerabilities in Black-Box Code Language Models [58.27254444280376]
自動コード生成のための大規模言語モデル(LLM)は、いくつかのプログラミングタスクにおいてブレークスルーを達成した。
これらのモデルのトレーニングデータは、通常、インターネット(例えばオープンソースのリポジトリから)から収集され、障害やセキュリティ上の脆弱性を含む可能性がある。
この不衛生なトレーニングデータは、言語モデルにこれらの脆弱性を学習させ、コード生成手順中にそれを伝播させる可能性がある。
論文 参考訳(メタデータ) (2023-02-08T11:54:07Z) - An Empirical Study on Bug Severity Estimation using Source Code Metrics and Static Analysis [0.8621608193534838]
我々は、19のJavaオープンソースプロジェクトと異なる重度ラベルを持つ3,358のバグギーメソッドを調査した。
結果は、コードメトリクスがバグの多いコードを予測するのに有用であることを示しているが、バグの深刻度レベルを見積もることはできない。
当社の分類では、セキュリティバグがほとんどのケースで高い重大性を持っているのに対して、エッジ/バウンダリ障害は低い重大性を持っていることが示されています。
論文 参考訳(メタデータ) (2022-06-26T17:07:23Z) - Learning to Reduce False Positives in Analytic Bug Detectors [12.733531603080674]
偽陽性のバグ警告を識別するためのトランスフォーマーに基づく学習手法を提案する。
我々は,静的解析の精度を17.5%向上させることができることを示した。
論文 参考訳(メタデータ) (2022-03-08T04:26:26Z) - VELVET: a noVel Ensemble Learning approach to automatically locate
VulnErable sTatements [62.93814803258067]
本稿では,ソースコード中の脆弱な文を見つけるための新しいアンサンブル学習手法であるVELVETを提案する。
我々のモデルは、グラフベースとシーケンスベースニューラルネットワークを組み合わせて、プログラムグラフの局所的およびグローバル的コンテキストを捕捉する。
VELVETは、合成データと実世界のデータに対して、それぞれ99.6%と43.6%の精度を達成している。
論文 参考訳(メタデータ) (2021-12-20T22:45:27Z) - D2A: A Dataset Built for AI-Based Vulnerability Detection Methods Using
Differential Analysis [55.15995704119158]
静的解析ツールによって報告されたラベル問題に対する差分解析に基づくアプローチであるD2Aを提案する。
D2Aを使用して大きなラベル付きデータセットを生成し、脆弱性識別のためのモデルをトレーニングします。
論文 参考訳(メタデータ) (2021-02-16T07:46:53Z) - Estimating Structural Target Functions using Machine Learning and
Influence Functions [103.47897241856603]
統計モデルから特定可能な関数として生じる対象関数の統計的機械学習のための新しい枠組みを提案する。
このフレームワークは問題とモデルに依存しないものであり、応用統計学における幅広い対象パラメータを推定するのに使用できる。
我々は、部分的に観測されていない情報を持つランダム/二重ロバストな問題において、いわゆる粗大化に特に焦点をあてた。
論文 参考訳(メタデータ) (2020-08-14T16:48:29Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。