論文の概要: HOPPER: Interpretative Fuzzing for Libraries
- arxiv url: http://arxiv.org/abs/2309.03496v1
- Date: Thu, 7 Sep 2023 06:11:18 GMT
- ステータス: 処理完了
- システム内更新日: 2024-03-25 22:59:44.294796
- Title: HOPPER: Interpretative Fuzzing for Libraries
- Title(参考訳): HOPPER: ライブラリの解釈ファズリング
- Authors: Peng Chen, Yuxuan Xie, Yunlong Lyu, Yuxiao Wang, Hao Chen,
- Abstract要約: HOPPERはドメイン知識を必要とせずにライブラリをファズできる。
ライブラリファジィングの問題をインタプリタファジィングの問題に変換する。
- 参考スコア(独自算出の注目度): 6.36596812288503
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Despite the fact that the state-of-the-art fuzzers can generate inputs efficiently, existing fuzz drivers still cannot adequately cover entries in libraries. Most of these fuzz drivers are crafted manually by developers, and their quality depends on the developers' understanding of the code. Existing works have attempted to automate the generation of fuzz drivers by learning API usage from code and execution traces. However, the generated fuzz drivers are limited to a few specific call sequences by the code being learned. To address these challenges, we present HOPPER, which can fuzz libraries without requiring any domain knowledge to craft fuzz drivers. It transforms the problem of library fuzzing into the problem of interpreter fuzzing. The interpreters linked against libraries under test can interpret the inputs that describe arbitrary API usage. To generate semantically correct inputs for the interpreter, HOPPER learns the intra- and inter-API constraints in the libraries and mutates the program with grammar awareness. We implemented HOPPER and evaluated its effectiveness on 11 real-world libraries against manually crafted fuzzers and other automatic solutions. Our results show that HOPPER greatly outperformed the other fuzzers in both code coverage and bug finding, having uncovered 25 previously unknown bugs that other fuzzers couldn't. Moreover, we have demonstrated that the proposed intra- and inter-API constraint learning methods can correctly learn constraints implied by the library and, therefore, significantly improve the fuzzing efficiency. The experiment results indicate that HOPPER is able to explore a vast range of API usages for library fuzzing out of the box.
- Abstract(参考訳): 最先端のファジィドライバは入力を効率的に生成できるにもかかわらず、既存のファジィドライバはライブラリのエントリを適切にカバーすることはできない。
これらのファズドライバのほとんどは開発者によって手作業で作成されており、その品質は開発者のコード理解に依存します。
既存の作業は、コードと実行トレースからAPIの使用法を学ぶことによって、ファズドライバの自動生成を試みている。
しかし、生成されたファズドライバは、学習されるコードによって、いくつかの特定の呼び出しシーケンスに制限される。
これらの課題に対処するために,ファズドライバを構築するためにドメイン知識を必要とせずにライブラリをファズできるHOPPERを提案する。
ライブラリファジィングの問題をインタプリタファジィングの問題に変換する。
テスト中のライブラリにリンクされたインタプリタは、任意のAPI使用法を記述するインプットを解釈することができる。
インタプリタに対して意味論的に正しい入力を生成するため、HOPPERはライブラリ内のAPI内およびAPI間の制約を学習し、プログラムを文法的認識で変更する。
我々は,HOPPERを実装し,手作業によるファズーやその他の自動解法に対する実世界の11のライブラリの有効性を評価した。
我々の結果は、HOPPERがコードカバレッジとバグ発見の両方で他のファッザよりも大幅に優れており、他のファッザができなかった25の既知のバグが明らかになったことを示している。
さらに,提案手法は,ライブラリが入力する制約を正しく学習し,ファジリング効率を大幅に向上することを示した。
実験結果から,HOPPERは,ライブラリファジィを最初から回避するために,幅広いAPI使用法を探索可能であることが示唆された。
関連論文リスト
- $\mathbb{USCD}$: Improving Code Generation of LLMs by Uncertainty-Aware Selective Contrastive Decoding [64.00025564372095]
大規模言語モデル(LLM)は、コード生成において顕著な能力を示している。
幻覚の影響(例えば出力ノイズ)は、LLMが1パスで高品質なコードを生成するのを難しくする。
単純かつ効果的なtextbfuncertainty-aware textbf select textbfcontrastive textbfdecodingを提案する。
論文 参考訳(メタデータ) (2024-09-09T02:07:41Z) - FuzzCoder: Byte-level Fuzzing Test via Large Language Model [46.18191648883695]
我々は,攻撃を成功させることで,入力ファイルのパターンを学習するために,微調整された大言語モデル(FuzzCoder)を採用することを提案する。
FuzzCoderは、プログラムの異常な動作を引き起こすために、入力ファイル内の突然変異位置と戦略位置を予測することができる。
論文 参考訳(メタデータ) (2024-09-03T14:40:31Z) - FANTAstic SEquences and Where to Find Them: Faithful and Efficient API Call Generation through State-tracked Constrained Decoding and Reranking [57.53742155914176]
APIコール生成は、大規模言語モデルのツール使用能力の基盤となっている。
既存の教師付きおよびコンテキスト内学習アプローチは、高いトレーニングコスト、低いデータ効率、APIドキュメントとユーザの要求に反する生成APIコールに悩まされる。
本稿では,これらの制約に対処するため,FANTASEと呼ばれる出力側最適化手法を提案する。
論文 参考訳(メタデータ) (2024-07-18T23:44:02Z) - Prompt Fuzzing for Fuzz Driver Generation [6.238058387665971]
本稿では,プロンプトファジングのためのカバーガイドファジングであるPromptFuzzを提案する。
未発見のライブラリコードを探索するためにファズドライバを反復的に生成する。
PromptFuzzはOSS-FuzzとHopperの2倍のブランチカバレッジを達成した。
論文 参考訳(メタデータ) (2023-12-29T16:43:51Z) - Fuzz Driver Synthesis for Rust Generic APIs [9.34200641681839]
本稿では,汎用APIを用いたRustライブラリのファズドライバ自動合成問題について検討する。
このような依存関係と型制約を解決することで、候補となるモノモルフィックAPIのコレクションを生成することができる。
29の人気のあるオープンソースライブラリによる実験結果から,我々のアプローチは,無効なファズドライバを低い速度で,有望な汎用APIカバレッジを実現することができることが示された。
論文 参考訳(メタデータ) (2023-12-17T10:24:34Z) - Benchmarking Deep Learning Fuzzers [11.118370064698869]
ベンチマークでは、最先端の3つのDLファザ、FreeFuzz、DeepRel、DocTerを、その命令に従って実行します。
これらのファジィザは、ベンチマークデータセットで収集された多くの実際のバグを検出することができません。
我々の系統分析では、これらのファジッターが実際のバグを検知する能力に影響を及ぼす4つの主要な、広く、共通の要因を同定する。
論文 参考訳(メタデータ) (2023-10-10T18:09:16Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z) - 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) - LeTI: Learning to Generate from Textual Interactions [60.425769582343506]
本稿では,テキストインタラクション(LETI)から学習するLMの可能性を,バイナリラベルによる正当性をチェックするだけでなく,テキストフィードバックを通じて出力中のエラーをピンポイントし,説明する。
私たちの焦点はコード生成タスクであり、そこではモデルが自然言語命令に基づいてコードを生成する。
LETIは、目的のLMを用いて、自然言語命令、LM生成プログラム、テキストフィードバックの結合に基づいて、モデルを反復的に微調整する。
論文 参考訳(メタデータ) (2023-05-17T15:53:31Z) - Precise Zero-Shot Dense Retrieval without Relevance Labels [60.457378374671656]
仮説文書埋め込み(英: hypothetical Document Embeddings, HyDE)は、ゼロショット高密度検索システムである。
我々は,HyDEが最先端の非教師付き高密度検索器であるContrieverを著しく上回っていることを示す。
論文 参考訳(メタデータ) (2022-12-20T18:09:52Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。