[論文レビュー] Open Problems in Fuzzing RESTful APIs: A Comparison of Tools
本論文は、19の実世界のAPIに対してブラックボックスおよびホワイトボックステストを実施し、JaCoCoおよびc8を用いて実際のコードカバレッジを測定することで、RESTful API向けの最先端のファズァー7種類を評価している。その結果、どのファズァーも平均で60%を超えるラインカバレッジを達成できず、EvoMasterとSchemathesisが最も優れた性能を示した。また、スキーマの不完全な定義や外部サービスとの相互作用の処理といった、主な未解決問題が特定された。
RESTful APIs are a type of web services that are widely used in industry. In the last few years, a lot of effort in the research community has been spent in designing novel techniques to automatically fuzz those APIs to find faults in them. Many real faults were automatically found in a large variety of RESTful APIs. However, usually the analyzed fuzzers treat the APIs as black-box, and no analysis of what is actually covered in these systems is done. Therefore, although these fuzzers are clearly useful for practitioners, we do not know what are their current limitations and actual effectiveness. Solving this is a necessary step to be able to design better, more efficient and effective techniques. To address this issue, in this paper we compare seven state-of-the-art fuzzers on 18 open-source and one industrial RESTful APIs. We then analyzed the source code of which parts of these APIs the fuzzers fail to generate tests for. This analysis points to clear limitations of these current fuzzers, listing concrete challenges for the research community to follow up on.
研究の動機と目的
- 実世界のRESTful APIにおける最先端のファズァー・ツールの実際のコードカバレッジを評価し、ブラックボックス指標にとどまらない状況を明らかにすること。
- 実世界のAPIにおける未カバー領域を分析することで、現在のファージング技術の限界を特定すること。
- ブラックボックスおよびホワイトボックステスト戦略を用いた、ファズァーの包括的かつ実証的な比較を提供すること。
- 特にスキーマの曖昧さや外部サービスとの相互作用に関する、APIファズァーの有効性に関する未解決の研究課題を浮き彫りにすること。
提案手法
- 本研究では、7種類のファズァー(bBOXRT、EvoMaster、RESTest、RestCT、RESTler、RestTestGen、Schemathesis)を、13のJVMベース、6のNode.jsベースの19のRESTful APIに対して評価した。
- 各ファズァーは1回の実行を1時間に設定し、アルゴリズムのランダム性を考慮して10回繰り返した。
- ラインカバレッジは、JVM APIにはJaCoCo、Node.js APIにはc8を用いて測定し、客観的でソースコードレベルの指標を提供した。
- 解析には、外部システム(SUT)へのリモートアクセスを前提としたブラックボックステストと、ソースコードおよびカバレッジデータへのアクセスを許可したホワイトボックステストの両方を含めた。
- 未カバー領域の詳細なマニュアルインスペクションを実施し、ファズァーの挙動に共通する課題を特定した。
- すべての実験用スクリプトとデータはオープンソースとして公開され、再現性が保証された。
実験結果
リサーチクエスチョン
- RQ1現在の最先端のAPIファズァーは、実世界のRESTful APIに対してどの程度の実際のコードカバレッジを達成しているか?
- RQ2ブラックボックスとホワイトボックステスト戦略は、これらのファズァーにおいてカバレッジの観点でどのように比較できるか?
- RQ3ファズァーがより高いカバレッジを達成できない主なコードレベルの制限要因は何か?
- RQ4スキーマ設計や外部サービス依存性に関連する、ファズァーの挙動における繰り返し現れる課題は何か?
主な発見
- EvoMasterが19のAPI全体で最高の平均ラインカバレッジを達成したが、Schemathesisもそれに次いで高く、いずれも平均60%を上回らなかった。
- 平均すると、すべてのブラックボックスファズァーが60%未満のラインカバレッジにとどまり、コード探索の大きなギャップが存在することが示された。
- ホワイトボックステストはブラックボックステストを常に上回り、テスト生成における内部コード知識の価値を実証した。
- 大きな制限要因として、ファズァーが不完全または不十分に定義されたOpenAPIスキーマを処理できないことがあり、これによりテスト入力の生成が不完全になった。
- ファズァーは、データベースやサードパーティAPIなどの外部サービスに依存する複雑なロジックをトリガーする入力を生成することが困難である。
- マニュアルによるコード解析の結果、多くの未カバー領域は特定の入力構造や外部状態に依存する条件分岐を含んでおり、現行のファズァーはこれを探索できていないことが判明した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。