論文の概要: Program Repair by Fuzzing over Patch and Input Space
- arxiv url: http://arxiv.org/abs/2308.00666v1
- Date: Tue, 1 Aug 2023 17:02:45 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-23 15:42:47.231821
- Title: Program Repair by Fuzzing over Patch and Input Space
- Title(参考訳): パッチと入力空間の融合によるプログラムの修復
- Authors: Yuntong Zhang, Ridwan Shariffdeen, Gregory J. Duck, Jiaqi Tan, Abhik
Roychoudhury
- Abstract要約: 本稿では,パッチレベルのファジリングとして検索に基づくプログラム修復を提案する。
従来の入力レベルのファザを使って、パッチ候補を除外しながら、パッチスペースの探索にパッチスペースファザを使用します。
両空間の共探索において,パッチレベルのファジィングと入力レベルのファジィングを組み合わせることができることを示す。
- 参考スコア(独自算出の注目度): 8.887795868777985
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Fuzz testing (fuzzing) is a well-known method for exposing
bugs/vulnerabilities in software systems. Popular fuzzers, such as AFL, use a
biased random search over the domain of program inputs, where 100s or 1000s of
inputs (test cases) are executed per second in order to expose bugs. If a bug
is discovered, it can either be fixed manually by the developer or fixed
automatically using an Automated Program Repair (APR) tool. Like fuzzing, many
existing APR tools are search-based, but over the domain of patches rather than
inputs.
In this paper, we propose search-based program repair as patch-level fuzzing.
The basic idea is to adapt a fuzzer (AFL) to fuzz over the patch space rather
than the input space. Thus we use a patch-space fuzzer to explore a patch
space, while using a traditional input level fuzzer to rule out patch
candidates and help in patch selection. To improve the throughput, we propose a
compilation-free patch validation methodology, where we execute the original
(unpatched) program natively, then selectively interpret only the specific
patched statements and expressions. Since this avoids (re)compilation, we show
that compilation-free patch validation can achieve a similar throughput as
input-level fuzzing (100s or 1000s of execs/sec). We show that patch-level
fuzzing and input-level fuzzing can be combined, for a co-exploration of both
spaces in order to find better quality patches. Such a collaboration between
input-level fuzzing and patch-level fuzzing is then employed to search over
candidate fix locations, as well as patch candidates in each fix location.
- Abstract(参考訳): fuzz testing (fuzzing) は、ソフトウェアシステムにおけるバグ/脆弱性を暴露するためのよく知られた方法である。
aflのような一般的なファザーは、プログラム入力の領域を偏りのあるランダムな検索を使用しており、そこではバグを公開するために毎秒100から1000の入力(テストケース)が実行される。
バグが見つかったら、開発者は手動で修正するか、自動プログラム修正(APR)ツールを使って自動的に修正できる。
ファジィングと同様に、既存のAPRツールは検索ベースだが、入力ではなくパッチのドメイン上にある。
本稿では,パッチレベルのファジングとして検索に基づくプログラム修復を提案する。
基本的な考え方は、入力空間ではなくパッチ空間上のファザー(AFL)に適応させることである。
したがって、パッチスペースファザーを使用してパッチスペースを探索し、従来の入力レベルのファザーを使用してパッチ候補を除外し、パッチ選択を支援する。
スループットを向上させるため,我々はオリジナルの(パッチされていない)プログラムをネイティブに実行し,特定のパッチ文と式のみを選択的に解釈するコンパイルフリーパッチ検証手法を提案する。
これは(再)コンパイルを避けるため、コンパイル不要なパッチ検証は入力レベルのファジング(100から1000のexecs/sec)と同等のスループットを達成できることを示します。
パッチレベルのファジングと入力レベルのファジングを組み合わせることで、より高品質なパッチを見つけるために、両方の空間を共同で探索できることを示す。
入力レベルのファジングとパッチレベルのファジングのコラボレーションは、候補の修正位置の検索や、各修正位置のパッチ候補の検索に使用される。
関連論文リスト
- HuntFUZZ: Enhancing Error Handling Testing through Clustering Based Fuzzing [19.31537246674011]
本稿では,SFIベースのファジィフレームワークであるHuntFUZZを紹介する。
我々はHuntFUZZを42のアプリケーションで評価し、HuntFUZZは162の既知のバグを明らかにし、そのうち62のバグはエラー処理に関連している。
論文 参考訳(メタデータ) (2024-07-05T06:58:30Z) - A Novel Approach for Automatic Program Repair using Round-Trip
Translation with Large Language Models [50.86686630756207]
研究によると、ある文の文法的誤りは、それを他の言語に翻訳し、その語を返せば修正できる。
現在の自動プログラム修復(APR)生成モデルは、ソースコードで事前訓練され、修正のために微調整されている。
本稿では,あるプログラミング言語から別のプログラミング言語,あるいは自然言語へのコード変換,そして,その逆といった,微調整ステップをバイパスし,ラウンド・トリップ変換(RTT)を用いる手法を提案する。
論文 参考訳(メタデータ) (2024-01-15T22:36:31Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - Identifying Defect-Inducing Changes in Visual Code [54.20154707138088]
SZZ-VC (SZZ Visual Code) は, ラインの違いではなくグラフィカル要素の違いに基づいて, 視覚的コードの変化を検知するアルゴリズムである。
業界製AAAビデオゲームのアルゴリズムを検証し、12のオープンソースプロジェクトで20の音楽ヴィジュアルプログラミングの欠陥を検証した。
論文 参考訳(メタデータ) (2023-09-07T00:12:28Z) - Patch Space Exploration using Static Analysis Feedback [8.13782364161157]
静的解析を利用して、メモリの安全性問題を自動的に修復する方法を示す。
提案したアプローチは、バグを修正するためのパッチの近さを検査することで、望ましいパッチが何であるかを学習する。
我々は,印字ヒープに対する影響に応じて等価パッチのクラスを作成し,そのクラスのパッチ等価度に対してのみ検証オラクルを呼び出すことにより,修復をスケーラブルにする。
論文 参考訳(メタデータ) (2023-08-01T05:22:10Z) - Fuzzing with Quantitative and Adaptive Hot-Bytes Identification [6.442499249981947]
アメリカのファジィ・ロック(fuzzy lop)はファジィ・ロック(fuzzy lop)と呼ばれるファジィ・ロック(fuzzy lop)と呼ばれるファジィ・ロック(fuzzy lop)と呼ばれるファジィ・ロック(fuzzy lop)と呼ばれるファジィ・ロック(fuzzy lop)ツールだ。
以下の原則に基づいて設計したツールという手法を提案する。
実世界の10のプログラムとLAVA-Mデータセットによる評価結果から,ツールキーブが分岐カバレッジを持続的に増加させ,他のファザよりも多くのバグを発見できた。
論文 参考訳(メタデータ) (2023-07-05T13:41:35Z) - Keep the Conversation Going: Fixing 162 out of 337 bugs for $0.42 each
using ChatGPT [10.071615423169902]
自動プログラム修復(APR)は、バグギープログラムのパッチを自動的に生成することを目的としている。
最近のAPRの研究は、最新のLarge Language Models(LLM)を活用して、APRのパッチを直接生成することに重点を置いている。
最初に完全に自動化された会話駆動型APRアプローチであるChatRepairを提案する。
論文 参考訳(メタデータ) (2023-04-01T20:57:33Z) - Segment and Complete: Defending Object Detectors against Adversarial
Patch Attacks with Robust Patch Detection [142.24869736769432]
敵のパッチ攻撃は最先端の物体検出器に深刻な脅威をもたらす。
パッチ攻撃に対して物体検出器を防御するフレームワークであるSegment and Complete Defense (SAC)を提案する。
SACは、物理的パッチ攻撃の標的攻撃成功率を著しく低減できることを示す。
論文 参考訳(メタデータ) (2021-12-08T19:18:48Z) - DPT: Deformable Patch-based Transformer for Visual Recognition [57.548916081146814]
本稿では,デフォルマブルパッチ (Deformable Patch) モジュールを提案する。デフォルマブルパッチ(Deformable Patch, DePatch)モジュールは,画像を異なる位置とスケールのパッチに適応的に分割し,データ駆動方式でスケールする。
DePatchモジュールはプラグイン・アンド・プレイモジュールとして動作し、異なるトランスフォーマーに簡単に組み込んでエンドツーエンドのトレーニングを実現することができる。
論文 参考訳(メタデータ) (2021-07-30T07:33:17Z) - 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) - Exploring Plausible Patches Using Source Code Embeddings in JavaScript [1.3327130030147563]
オープンソースJavaScriptプロジェクトでDoc2Vecモデルをトレーニングし、10のバグに対して465のパッチを生成しました。
これらの正当なパッチと開発者修正は、元のプログラムとの類似性に基づいてランク付けされる。
これらの類似性リストを分析し、プレーンな文書埋め込みが誤分類につながる可能性があることを発見した。
論文 参考訳(メタデータ) (2021-03-31T06:57:10Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。