論文の概要: 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のバグを含む)を正常に検出した。
関連論文リスト
- Your Fix Is My Exploit: Enabling Comprehensive DL Library API Fuzzing with Large Language Models [49.214291813478695]
AIアプリケーションで広く使用されているディープラーニング(DL)ライブラリは、オーバーフローやバッファフリーエラーなどの脆弱性を含むことが多い。
従来のファジィングはDLライブラリの複雑さとAPIの多様性に悩まされている。
DLライブラリのためのLLM駆動ファジィ手法であるDFUZZを提案する。
論文 参考訳(メタデータ) (2025-01-08T07:07:22Z) - FuzzDistill: Intelligent Fuzzing Target Selection using Compile-Time Analysis and Machine Learning [0.0]
FuzzDistillは、コンパイル時のデータと機械学習を利用してファジィングターゲットを洗練するアプローチです。
実世界のソフトウェアで実施した実験を通じて,私のアプローチの有効性を実証し,テスト時間の大幅な短縮を実証した。
論文 参考訳(メタデータ) (2024-12-11T04:55:58Z) - FuzzCoder: Byte-level Fuzzing Test via Large Language Model [46.18191648883695]
我々は,攻撃を成功させることで,入力ファイルのパターンを学習するために,微調整された大言語モデル(FuzzCoder)を採用することを提案する。
FuzzCoderは、プログラムの異常な動作を引き起こすために、入力ファイル内の突然変異位置と戦略位置を予測することができる。
論文 参考訳(メタデータ) (2024-09-03T14:40:31Z) - Prompt Fuzzing for Fuzz Driver Generation [6.238058387665971]
本稿では,プロンプトファジングのためのカバーガイドファジングであるPromptFuzzを提案する。
未発見のライブラリコードを探索するためにファズドライバを反復的に生成する。
PromptFuzzはOSS-FuzzとHopperの2倍のブランチカバレッジを達成した。
論文 参考訳(メタデータ) (2023-12-29T16:43:51Z) - Zero-Shot Detection of Machine-Generated Codes [83.0342513054389]
本研究は,LLMの生成したコードを検出するためのトレーニング不要な手法を提案する。
既存のトレーニングベースまたはゼロショットテキスト検出装置は、コード検出に効果がないことがわかった。
本手法は,リビジョン攻撃に対する堅牢性を示し,Javaコードによく適応する。
論文 参考訳(メタデータ) (2023-10-08T10:08:21Z) - HOPPER: Interpretative Fuzzing for Libraries [6.36596812288503]
HOPPERはドメイン知識を必要とせずにライブラリをファズできる。
ライブラリファジィングの問題をインタプリタファジィングの問題に変換する。
論文 参考訳(メタデータ) (2023-09-07T06:11:18Z) - 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) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - DAE : Discriminatory Auto-Encoder for multivariate time-series anomaly
detection in air transportation [68.8204255655161]
識別オートエンコーダ(DAE)と呼ばれる新しい異常検出モデルを提案する。
通常のLSTMベースのオートエンコーダのベースラインを使用するが、いくつかのデコーダがあり、それぞれ特定の飛行フェーズのデータを取得する。
その結果,DAEは精度と検出速度の両方で良好な結果が得られることがわかった。
論文 参考訳(メタデータ) (2021-09-08T14:07:55Z) - Break-It-Fix-It: Unsupervised Learning for Program Repair [90.55497679266442]
我々は2つの重要なアイデアを持つ新しいトレーニング手法であるBreak-It-Fix-It (BIFI)を提案する。
批判者は、実際の悪い入力でフィクスダーの出力をチェックし、トレーニングデータに良い(固定された)出力を追加する。
これらのアイデアに基づいて、よりペア化されたデータを生成するために、ブレーカとフィクスチャを同時に使用しながら、繰り返し更新する。
BIFIは既存のメソッドより優れており、GitHub-Pythonで90.5%、DeepFixで71.7%の修正精度がある。
論文 参考訳(メタデータ) (2021-06-11T20:31:04Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。