論文の概要: 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使用法を探索可能であることが示唆された。
関連論文リスト
- 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) - ExploraCoder: Advancing code generation for multiple unseen APIs via planning and chained exploration [70.26807758443675]
ExploraCoderはトレーニング不要のフレームワークで、大規模な言語モデルにコードソリューションで見えないAPIを呼び出す権限を与える。
ExploraCoderは,事前のAPI知識を欠いたモデルのパフォーマンスを著しく向上させ,NAGアプローチの11.24%,pass@10の事前トレーニングメソッドの14.07%を絶対的に向上させることを示す。
論文 参考訳(メタデータ) (2024-12-06T19:00:15Z) - CKGFuzzer: LLM-Based Fuzz Driver Generation Enhanced By Code Knowledge Graph [29.490817477791357]
本稿では,コード知識グラフによって駆動され,インテリジェントエージェントシステムによって駆動されるファズテスト手法を提案する。
コードナレッジグラフは、そのグラフの各ノードがコードエンティティを表す、プログラム間解析によって構築される。
CKGFuzzerは最先端技術と比較してコードカバレッジが平均8.73%向上した。
論文 参考訳(メタデータ) (2024-11-18T12:41:16Z) - 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) - Fuzz Driver Synthesis for Rust Generic APIs [9.34200641681839]
本稿では,汎用APIを用いたRustライブラリのファズドライバ自動合成問題について検討する。
このような依存関係と型制約を解決することで、候補となるモノモルフィックAPIのコレクションを生成することができる。
29の人気のあるオープンソースライブラリによる実験結果から,我々のアプローチは,無効なファズドライバを低い速度で,有望な汎用APIカバレッジを実現することができることが示された。
論文 参考訳(メタデータ) (2023-12-17T10:24:34Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。