論文の概要: CKGFuzzer: LLM-Based Fuzz Driver Generation Enhanced By Code Knowledge Graph
- arxiv url: http://arxiv.org/abs/2411.11532v2
- Date: Thu, 19 Dec 2024 06:19:43 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-12-20 13:28:38.050085
- Title: CKGFuzzer: LLM-Based Fuzz Driver Generation Enhanced By Code Knowledge Graph
- Title(参考訳): CKGFuzzer:コード知識グラフによるLLMベースのファズドライバ生成
- Authors: Hanxiang Xu, Wei Ma, Ting Zhou, Yanjie Zhao, Kai Chen, Qiang Hu, Yang Liu, Haoyu Wang,
- Abstract要約: 本稿では,コード知識グラフによって駆動され,インテリジェントエージェントシステムによって駆動されるファズテスト手法を提案する。
コードナレッジグラフは、そのグラフの各ノードがコードエンティティを表す、プログラム間解析によって構築される。
CKGFuzzerは最先端技術と比較してコードカバレッジが平均8.73%向上した。
- 参考スコア(独自算出の注目度): 29.490817477791357
- License:
- Abstract: In recent years, the programming capabilities of large language models (LLMs) have garnered significant attention. Fuzz testing, a highly effective technique, plays a key role in enhancing software reliability and detecting vulnerabilities. However, traditional fuzz testing tools rely on manually crafted fuzz drivers, which can limit both testing efficiency and effectiveness. To address this challenge, we propose an automated fuzz testing method driven by a code knowledge graph and powered by an LLM-based intelligent agent system, referred to as CKGFuzzer. We approach fuzz driver creation as a code generation task, leveraging the knowledge graph of the code repository to automate the generation process within the fuzzing loop, while continuously refining both the fuzz driver and input seeds. The code knowledge graph is constructed through interprocedural program analysis, where each node in the graph represents a code entity, such as a function or a file. The knowledge graph-enhanced CKGFuzzer not only effectively resolves compilation errors in fuzz drivers and generates input seeds tailored to specific API usage scenarios, but also analyzes fuzz driver crash reports, assisting developers in improving code quality. By querying the knowledge graph of the code repository and learning from API usage scenarios, we can better identify testing targets and understand the specific purpose of each fuzz driver. We evaluated our approach using eight open-source software projects. The experimental results indicate that CKGFuzzer achieved an average improvement of 8.73% in code coverage compared to state-of-the-art techniques. Additionally, CKGFuzzer reduced the manual review workload in crash case analysis by 84.4% and successfully detected 11 real bugs (including nine previously unreported bugs) across the tested libraries.
- Abstract(参考訳): 近年,大規模言語モデル (LLM) のプログラミング能力に大きな注目を集めている。
ファズテストは、非常に効果的なテクニックであり、ソフトウェアの信頼性を高め、脆弱性を検出する上で重要な役割を果たす。
しかし、従来のファズテストツールは手作りのファズドライバーに依存しており、テスト効率と有効性の両方を制限することができる。
この課題に対処するために、コード知識グラフによって駆動され、CKGFuzzerと呼ばれるLCMベースのインテリジェントエージェントシステムによって駆動される自動ファズテスト手法を提案する。
我々は,ファジドライバ生成をコード生成タスクとしてアプローチし,コードリポジトリの知識グラフを利用してファジリングループ内で生成プロセスを自動化するとともに,ファジドライバと入力シードの両方を連続的に精製する。
コードナレッジグラフは、関数やファイルなどのコードエンティティをグラフ内の各ノードで表現する、プログラム間解析によって構築される。
知識グラフで強化されたCKGFuzzerは、ファズドライバのコンパイルエラーを効果的に解決し、特定のAPI使用シナリオに合わせて入力シードを生成するだけでなく、ファズドライバのクラッシュレポートを分析し、コード品質の向上を支援する。
コードリポジトリのナレッジグラフをクエリし、API使用シナリオから学ぶことで、テストターゲットをよりよく識別し、各ファズドライバの特定の目的を理解することができます。
8つのオープンソースプロジェクトを用いて,我々のアプローチを評価した。
実験の結果,CKGFuzzerは最先端技術と比較してコードカバレッジが平均8.73%向上した。
さらに、CKGFuzzerは、クラッシュケース分析における手動レビューの負荷を84.4%削減し、テスト対象ライブラリの11の実際のバグ(報告されていない9のバグを含む)を正常に検出した。
関連論文リスト
- A Combined Feature Embedding Tools for Multi-Class Software Defect and Identification [2.2020053359163305]
本稿では,GraphCodeBERTとGraph Convolutional Networkを組み合わせた実験手法であるCodeGraphNetを提案する。
この方法は、機能間の複雑な関係船をキャプチャし、脆弱性のより正確な識別と分離を可能にする。
決定木とニューラルネットワークのハイブリッドであるDeepTreeモデルは、最先端のアプローチよりも優れています。
論文 参考訳(メタデータ) (2024-11-26T17:33:02Z) - KGym: A Platform and Dataset to Benchmark Large Language Models on Linux Kernel Crash Resolution [59.20933707301566]
大規模言語モデル(LLM)は、ますます現実的なソフトウェア工学(SE)タスクにおいて一貫して改善されている。
現実世界のソフトウェアスタックでは、Linuxカーネルのような基本的なシステムソフトウェアの開発にSEの取り組みが費やされています。
このような大規模システムレベルのソフトウェアを開発する際にMLモデルが有用かどうかを評価するため、kGymとkBenchを紹介する。
論文 参考訳(メタデータ) (2024-07-02T21:44:22Z) - Agent-Driven Automatic Software Improvement [55.2480439325792]
本提案は,Large Language Models (LLMs) を利用したエージェントの展開に着目して,革新的なソリューションの探求を目的とする。
継続的学習と適応を可能にするエージェントの反復的性質は、コード生成における一般的な課題を克服するのに役立ちます。
我々は,これらのシステムにおける反復的なフィードバックを用いて,エージェントの基盤となるLLMをさらに微調整し,自動化されたソフトウェア改善のタスクに整合性を持たせることを目指している。
論文 参考訳(メタデータ) (2024-06-24T15:45:22Z) - Chain of Targeted Verification Questions to Improve the Reliability of Code Generated by LLMs [10.510325069289324]
LLMが生成するコードの信頼性向上を目的とした自己補充手法を提案する。
当社のアプローチは,初期コード内の潜在的なバグを特定するために,対象とする検証質問(VQ)に基づいています。
本手法は,LLMをターゲットとするVQと初期コードで再プロンプトすることで,潜在的なバグの修復を試みる。
論文 参考訳(メタデータ) (2024-05-22T19:02:50Z) - Mining Action Rules for Defect Reduction Planning [14.40839500239476]
ブラックボックスモデルを使わずに欠陥低減計画を生成するための,非実効的アクティオンルールマイニング手法であるCounterACTを導入する。
我々は,9つのソフトウェアプロジェクトにおいて,CounterACTの有効性を,元のアクションルールマイニングアルゴリズムと6つの確立された欠陥低減手法と比較した。
その結果、競合するアプローチと比較して、CounterACTの説明可能なプランはリリースレベルで高いオーバーラップスコアを得ることができた。
論文 参考訳(メタデータ) (2024-05-22T15:31:09Z) - How Effective Are They? Exploring Large Language Model Based Fuzz Driver Generation [31.77886516971502]
本研究は,LLMを用いてファズドライバを効果的に生成する上で重要な課題を対象とした,最初の詳細な研究である。
我々の研究は、736,430個のファジィドライバの評価を行い、トークンコストは0.85億ドル(8000ドル以上)だった。
我々の洞察はOSS-Fuzz-Genプロジェクトを改善するために実装され、業界におけるファズドライバの実践的生成を促進しました。
論文 参考訳(メタデータ) (2023-07-24T01:49:05Z) - ALGO: Synthesizing Algorithmic Programs with LLM-Generated Oracle
Verifiers [60.6418431624873]
大きな言語モデル(LLM)は、機能記述からコードを実装するのに優れているが、アルゴリズムの問題に悩まされている。
我々は,アルゴリズムプログラムを LLM 生成 Oracle で合成するフレームワーク ALGO を提案し,その生成をガイドし,その正確性を検証する。
実験の結果,ALGOを装着すると,Codexモデルよりも8倍,CodeTよりも2.6倍の1サブミッションパス率が得られることがわかった。
論文 参考訳(メタデータ) (2023-05-24T00:10:15Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - GraphEye: A Novel Solution for Detecting Vulnerable Functions Based on
Graph Attention Network [8.420666984519826]
我々は、C/C++コードの関数に脆弱性があるかどうかを特定するために、GraphEyeという新しいソリューションを提案する。
VecCPGは、コードプロパティグラフのベクトル化であり、対応するソースコードの重要な構文と意味的特徴を特徴付けるために提案されている。
GcGATはグラフ注意グラフに基づくディープラーニングモデルであり,グラフ分類問題の解法を提案する。
論文 参考訳(メタデータ) (2022-02-05T07:03:15Z) - VELVET: a noVel Ensemble Learning approach to automatically locate
VulnErable sTatements [62.93814803258067]
本稿では,ソースコード中の脆弱な文を見つけるための新しいアンサンブル学習手法であるVELVETを提案する。
我々のモデルは、グラフベースとシーケンスベースニューラルネットワークを組み合わせて、プログラムグラフの局所的およびグローバル的コンテキストを捕捉する。
VELVETは、合成データと実世界のデータに対して、それぞれ99.6%と43.6%の精度を達成している。
論文 参考訳(メタデータ) (2021-12-20T22:45:27Z) - Software Vulnerability Detection via Deep Learning over Disaggregated
Code Graph Representation [57.92972327649165]
この研究は、コードコーパスから安全でないパターンを自動的に学習するためのディープラーニングアプローチを探求する。
コードには解析を伴うグラフ構造が自然に認められるため,プログラムの意味的文脈と構造的規則性の両方を利用する新しいグラフニューラルネットワーク(GNN)を開発する。
論文 参考訳(メタデータ) (2021-09-07T21:24:36Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。