論文の概要: Fuzz Driver Synthesis for Rust Generic APIs
- arxiv url: http://arxiv.org/abs/2312.10676v2
- Date: Tue, 19 Dec 2023 12:14:52 GMT
- ステータス: 処理完了
- システム内更新日: 2023-12-20 12:19:43.655423
- Title: Fuzz Driver Synthesis for Rust Generic APIs
- Title(参考訳): RustジェネリックAPIのためのファズドライバ合成
- Authors: Yehong Zhang, Jun Wu, Hui Xu
- Abstract要約: 本稿では,汎用APIを用いたRustライブラリのファズドライバ自動合成問題について検討する。
このような依存関係と型制約を解決することで、候補となるモノモルフィックAPIのコレクションを生成することができる。
29の人気のあるオープンソースライブラリによる実験結果から,我々のアプローチは,無効なファズドライバを低い速度で,有望な汎用APIカバレッジを実現することができることが示された。
- 参考スコア(独自算出の注目度): 9.34200641681839
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Fuzzing is a popular bug detection technique achieved by testing software
executables with random inputs. This technique can also be extended to
libraries by constructing executables that call library APIs, known as fuzz
drivers. Automated fuzz driver synthesis has been an important research topic
in recent years since it can facilitate the library fuzzing process.
Nevertheless, existing approaches generally ignore generic APIs or simply treat
them as normal APIs. As a result, they cannot generate effective fuzz drivers
for generic APIs.
This paper studies the automated fuzz driver synthesis problem for Rust
libraries with generic APIs. The problem is essential because Rust emphasizes
security, and generic APIs are widely employed in Rust crates. Each generic API
can have numerous monomorphic versions as long as the type constraints are
satisfied. The critical challenge to this problem lies in prioritizing these
monomorphic versions and providing valid inputs for them. To address the
problem, we extend existing API-dependency graphs to support generic APIs. By
solving such dependencies and type constraints, we can generate a collection of
candidate monomorphic APIs. Further, we apply a similarity-based filter to
prune redundant versions, particularly if multiple monomorphic APIs adopt the
identical trait implementation. Experimental results with 29 popular
open-source libraries show that our approach can achieve promising generic API
coverage with a low rate of invalid fuzz drivers. Besides, we find 23 bugs
previously unknown in these libraries, with 18 bugs related to generic APIs.
- Abstract(参考訳): ファジィング(英: Fuzzing)は、ランダムな入力でソフトウェア実行ファイルをテストすることで、一般的なバグ検出手法である。
このテクニックは、ファズドライバとして知られるライブラリAPIを呼び出す実行ファイルを構築することで、ライブラリに拡張することもできる。
近年, ファジィドライバの自動合成は, 図書館ファジィ処理の促進に寄与し, 重要な研究課題となっている。
それにもかかわらず、既存のアプローチは一般的にジェネリックAPIを無視したり、単に通常のAPIとして扱う。
結果として、ジェネリックAPIのための効果的なファズドライバを生成することはできない。
本稿では,汎用APIを用いたRustライブラリの自動ファズドライバ合成問題について検討する。
Rustはセキュリティを重視しており、一般的なAPIはRustのクラッドに広く採用されている。
各ジェネリックAPIは、型制約を満たす限り、多数のモノモルフィックバージョンを持つことができる。
この問題に対する重要な課題は、これら単相バージョンを優先順位付けし、有効なインプットを提供することである。
この問題に対処するため、既存のAPI依存グラフを拡張して、ジェネリックAPIをサポートします。
このような依存関係と型制約を解決することで、候補の単相apiの集合を生成することができる。
さらに,複数のモノモルフィックAPIが同じ特性実装を採用する場合,類似度に基づくフィルタを用いて冗長なバージョンを創出する。
29のポピュラーなオープンソースライブラリによる実験結果から,本手法が有望な汎用APIカバレッジを実現できることを示す。
さらに、これらのライブラリには23のバグがあり、ジェネリックAPIに関連する18のバグがある。
関連論文リスト
- A Systematic Evaluation of Large Code Models in API Suggestion: When, Which, and How [53.65636914757381]
API提案は、現代のソフトウェア開発において重要なタスクである。
大規模コードモデル(LCM)の最近の進歩は、API提案タスクにおいて有望であることを示している。
論文 参考訳(メタデータ) (2024-09-20T03:12:35Z) - 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) - WorldAPIs: The World Is Worth How Many APIs? A Thought Experiment [49.00213183302225]
本稿では, wikiHow 命令をエージェントの配置ポリシーに基礎付けることで, 新たな API を創出するフレームワークを提案する。
大規模言語モデル (LLM) の具体化計画における近年の成功に触発されて, GPT-4 のステアリングを目的とした数発のプロンプトを提案する。
論文 参考訳(メタデータ) (2024-07-10T15:52:44Z) - Exception-aware Lifecycle Model Construction for Framework APIs [4.333061751230906]
本稿では,フレームワークAPIコードから例外要約情報を抽出するために静的解析手法を採用する。
フレームワーク/ライブラリプロジェクトの例外対応APIライフサイクルモデルを生成する。
60バージョンにおける例外無意識のAPIライフサイクルモデリングと比較して、JavaExpは18%以上のAPI変更を識別できる。
論文 参考訳(メタデータ) (2024-01-05T06:35:47Z) - Prompt Fuzzing for Fuzz Driver Generation [6.238058387665971]
本稿では,プロンプトファジングのためのカバーガイドファジングであるPromptFuzzを提案する。
未発見のライブラリコードを探索するためにファズドライバを反復的に生成する。
PromptFuzzはOSS-FuzzとHopperの2倍のブランチカバレッジを達成した。
論文 参考訳(メタデータ) (2023-12-29T16:43:51Z) - Extended Paper: API-driven Program Synthesis for Testing Static Typing
Implementations [11.300829269111627]
本稿では,API駆動型プログラム合成の概念に基づいて静的型付けの実装をテストする新しい手法を提案する。
このアイデアは、既存のソフトウェアライブラリから派生したアプリケーションプログラミングインタフェース(API)を活用して組み合わせることで、型集約型だが小さく、十分に型付けされたプログラムを合成することである。
論文 参考訳(メタデータ) (2023-11-08T08:32:40Z) - Advanced White-Box Heuristics for Search-Based Fuzzing of REST APIs [3.3714461095047743]
現在、EvoMasterはREST APIのホワイトボックスファジングをサポートする唯一のツールである。
私たちは、APIスキーマで不特定な制約に対処する方法など、一連の新しいホワイトボックスファズを提供します。
我々の新しい技術は、オープンソースの検索ベースのファズーEvoMasterの拡張として実装されている。
論文 参考訳(メタデータ) (2023-09-15T12:39:01Z) - HOPPER: Interpretative Fuzzing for Libraries [6.36596812288503]
HOPPERはドメイン知識を必要とせずにライブラリをファズできる。
ライブラリファジィングの問題をインタプリタファジィングの問題に変換する。
論文 参考訳(メタデータ) (2023-09-07T06:11:18Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z) - torchgfn: A PyTorch GFlowNet library [56.071033896777784]
torchgfnはPyTorchライブラリで、このニーズに対処することを目指している。
環境のためのシンプルなAPIと、サンプルと損失のための有用な抽象化を提供する。
論文 参考訳(メタデータ) (2023-05-24T00:20:59Z) - Binding Language Models in Symbolic Languages [146.3027328556881]
Binderはトレーニング不要のニューラルシンボリックフレームワークで、タスク入力をプログラムにマッピングする。
解析の段階では、Codexは元のプログラミング言語では答えられないタスク入力の一部を特定することができる。
実行段階では、CodexはAPI呼び出しで適切なプロンプトを与えられた万能機能を実行することができる。
論文 参考訳(メタデータ) (2022-10-06T12:55:17Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。