APIRL: Deep Reinforcement Learning for REST API Fuzzing

要約

REST API は Web サービスの主要なコンポーネントになっています。
ただし、多くの場合、サーバー側のエラーやセキュリティの脆弱性を引き起こす論理的な欠陥が含まれています。
HTTP リクエストは、そのような問題を見つけて軽減するためのテスト ケースとして使用されます。
深層学習を使用するものなど、リクエストを変更する既存の方法では、無向検索に依存したり、コンテキスト情報の使用が制限されたりするため、パフォーマンスと精度が制限されています。
この論文では、REST API をテストするための完全に自動化された深層強化学習ツールである APIRL を提案します。
私たちのアプローチの主な新しさは、API 応答で使用されるものと同様の、JSON 構造化データで事前トレーニングされたトランスフォーマー モジュールからのフィードバックを使用することです。
これにより、APIRL はテスト結果に関連する微妙な点を学習し、目に見えない API エンドポイントに一般化することができます。
APIRL は、必要なテスト ケースの数を最小限に抑えながら、現実世界の最先端の REST API よりもはるかに多くのバグを検出できることを示します。
また、徹底的なアブレーション研究において、報酬関数やその他の重要な設計上の選択が学習されたポリシーにどのような影響を与えるかについても研究しています。

要約(オリジナル)

REST APIs have become key components of web services. However, they often contain logic flaws resulting in server side errors or security vulnerabilities. HTTP requests are used as test cases to find and mitigate such issues. Existing methods to modify requests, including those using deep learning, suffer from limited performance and precision, relying on undirected search or making limited usage of the contextual information. In this paper we propose APIRL, a fully automated deep reinforcement learning tool for testing REST APIs. A key novelty of our approach is the use of feedback from a transformer module pre-trained on JSON-structured data, akin to that used in API responses. This allows APIRL to learn the subtleties relating to test outcomes, and generalise to unseen API endpoints. We show APIRL can find significantly more bugs than the state-of-the-art in real world REST APIs while minimising the number of required test cases. We also study how reward functions, and other key design choices, affect learnt policies in a thorough ablation study.

arxiv情報

著者 Myles Foley,Sergio Maffeis
発行日 2024-12-20 15:40:51+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.NI, cs.SE パーマリンク