Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
restler-fuzzer — RESTlerは、クラウドサービスのREST APIを自動的にテストし、セキュリティや信頼性のバグを発見するための、初のステートフルREST APIファジングツールです。 | Kitploit
ツール/GitHubGitHub/microsoft/restler-fuzzer
脆弱性スキャナーAPIセキュリティテストウェブセキュリティファジングクラウドセキュリティ
GitHubmicrosoft/restler-fuzzer

restler-fuzzer

RESTlerは、クラウドサービスのREST APIを自動的にテストし、セキュリティや信頼性のバグを発見するための、初のステートフルREST APIファジングツールです。

リポジトリを見る
2.9k3316ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

RESTler

RESTlerとは?

RESTlerは、クラウドサービスのREST APIを介して自動的にテストを行い、セキュリティと信頼性のバグを発見するための、初のステートフルREST APIファジングツールです。OpenAPI(旧Swagger)仕様を持つクラウドサービスに対し、RESTlerはその仕様全体を解析し、REST APIを通じてサービスをテストするテストを生成・実行します。

RESTlerは、OpenAPI定義からリクエストタイプ間のプロデューサー・コンシューマー依存関係をインテリジェントに推論します。テスト中は、特定のクラスのバグをチェックし、以前のサービスレスポンスからサービスの動作を動的に学習します。このインテリジェンスにより、RESTlerは特定のリクエストシーケンスによってのみ到達可能な、より深いサービス状態を探索し、より多くのバグを発見できます。

RESTlerは、以下の査読付き研究論文で説明されています。

  1. RESTler: Stateful REST API Fuzzing (ICSE'2019)
  2. Checking Security Properties of Cloud Service REST APIs (ICST'2020)
  3. Differential Regression Testing for REST APIs​ (ISSTA'2020)
  4. Intelligent REST API Data Fuzzing​​ (FSE'2020)

研究でRESTlerを使用する場合は、(デフォルトの)ICSE'2019の論文(BibTeX)を引用してください。

RESTlerには複数のテスト生成戦略が含まれています。(i) 効率性(RESTlerがどのくらい迅速にクラッシュを発見できるか)と (ii) 有効性(一定時間内にRESTlerがいくつのクラッシュを発見できるか)に関して包括的な比較を行うためには、文書化されているすべてのfuzzing_mode(s)を比較することをお勧めします。それぞれが状態空間探索の幅と深さの間で異なるトレードオフを提供するためです。また、ファジングの前に、以下で説明するようにtestモードを実行して、セットアップの問題(例:必要な前提条件パラメータ値を辞書に追加するなど)を発見し修正することを推奨します。

RESTlerはMicrosoft Researchで作成され、現在も活発に開発が続けられています。

概要と開始方法のデモについては、Webinar - Fuzzing to Improve the Security and Reliability of Cloud Servicesを参照してください。

RESTlerアーキテクチャ

ビルドステータス

Build Status

RESTlerのセットアップ

RESTlerはWindowsまたはLinuxの64ビットマシンで実行するように設計されています。macOSの実験的サポートも有効になっています。

ビルド手順

Docker

このリポジトリのルートで、以下を実行します。

root@kitploit:~
docker build -t restler .

結果のDockerコンテナには、ディレクトリ/RESTler/restlerにメインバイナリRestlerとともにRESTlerが配置されます。

このDockerイメージをベースにして、テスト対象のアプリケーションを追加し、隔離されたDockerコンテナ内でファジングを実行できます。

ローカル

前提条件: 適切なOS用にPython 3.12.8と.NET 8.0をインストールします。

RESTlerバイナリを配置するディレクトリを作成します。

mkdir restler_bin

リポジトリのルートディレクトリに移動し、以下のPythonスクリプトを実行します。

python ./build-restler.py --dest_dir <上記のrestler_binへのフルパス>

注: ビルド中にnugetエラーNU1403が発生した場合、簡単な回避策は以下のコマンドでキャッシュをクリアすることです。

dotnet nuget locals all --clear

RESTlerの使用法

RESTlerは4つの主要モード(順番に)で実行されます。

  1. Compile: OpenAPIのJSONまたはYAML定義(およびオプションで例)から、RESTlerの文法を生成します。Compilingを参照してください。
  2. Test: コンパイルされたRESTler文法内のすべてのエンドポイント+メソッドを迅速に実行し、テスト設定のデバッグとOpenAPI定義のどの部分がカバーされているかを計算します。このモードはsmoketestとも呼ばれます。Testingを参照してください。カスタムテストエンジン設定を使用するには、Test Engine Settingsを参照してください。
  3. Fuzz-lean: コンパイルされたRESTler文法内のすべてのエンドポイント+メソッドを、デフォルトのチェッカーセットで1回実行し、バグを迅速に見つけられるかどうかを確認します。Fuzzingを参照してください。
  4. Fuzz: バグハンティング - スマートな幅優先探索モード(より深い探索モード)でRESTlerファジング文法を探索し、より多くのバグを発見します。 警告: このタイプのファジングはより積極的であり、テスト対象のサービスが不十分に実装されている場合(例:ファジングによりリソースリーク、パフォーマンス低下、バックエンドの破損などが発生する可能性があります)、サービスに障害を引き起こす可能性があります。Fuzzingを参照してください。

クイックスタート

簡単な例を使ったクイックイントロダクションについては、このTutorialを参照してください。

APIでRESTlerをすぐに試すには、Quick Startを参照してください。

RESTlerによって発見されたバグ

現在、RESTlerによって発見されたバグには2つのカテゴリがあります。

  • エラーコード: 現在のところ、ステータスコード500("Internal Server Error")のレスポンスが受信されるたびに、バグが報告されます。
  • チェッカー: 各チェッカーは、コンテキストによって決定されるファジング中の特定のポイントで、対象を絞った追加リクエストまたはリクエストシーケンスを実行することにより、特定のバグを引き起こそうとします。一部のチェッカーは追加の500を発見しようとし、他のチェッカーはリソースリークや階層違反などの特定のロジックバグを発見しようとします。チェッカーの完全な説明については、Checkersを参照してください。

バグが発見されると、RESTlerはバグバケットにトリアージされたバグを報告し、バグを再現するために使用できるリプレイログを提供します(Replayを参照)。

高度なトピック

RESTlerを効果的に使用するためのヒントについては、Best PracticesとImproving API Coverageを参照してください。

Frequently Asked Questionsも参照してください。

CI/CDパイプラインの一部としてRESTlerを大規模に使用することに興味がある場合は、REST API Fuzz Testing self-hosted serviceをチェックしてください。

質問

リクエスト/提案/質問がある場合は、issueを提出してください。 手順についてはContributing.mdを参照してください。

貢献

このプロジェクトでは、貢献と提案を歓迎します。ほとんどの貢献には、あなたが貢献を使用する権利を持ち、実際に私たちにその権利を付与することを宣言するContributor License Agreement(CLA)に同意する必要があります。詳細については、https://cla.microsoft.comをご覧ください。

プルリクエストを送信すると、CLAボットが自動的にCLAを提供する必要があるかどうかを判断し、PRに適切にラベルを付けたりコメントを追加したりします。ボットの指示に従ってください。この操作は、CLAを使用するすべてのリポジトリで一度だけ行う必要があります。

このプロジェクトはMicrosoft Open Source Code of Conductを採用しています。詳細については、Code of Conduct FAQを参照するか、追加の質問やコメントについては[email protected]までお問い合わせください。

詳細については、Contributing.mdを参照してください。

商標

このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。Microsoftの商標またはロゴの許可された使用は、Microsoftの商標およびブランドガイドラインに従う必要があります。このプロジェクトの修正バージョンでのMicrosoftの商標またはロゴの使用は、混乱を引き起こしたり、Microsoftの後援を暗示したりしてはなりません。第三者商標またはロゴの使用は、当該第三者のポリシーに従うものとします。

データ収集

本ソフトウェアは、お客様およびお客様の本ソフトウェアの使用に関する情報を収集し、Microsoftに送信する場合があります。Microsoftはこの情報を使用してサービスを提供し、製品およびサービスを改善することができます。リポジトリに記載されているように、テレメトリをオフにすることができます。また、本ソフトウェアには、お客様がアプリケーションのユーザーからデータを収集することを可能にする機能が含まれている場合があります。これらの機能を使用する場合は、適用される法律を遵守し、Microsoftのプライバシーに関する声明のコピーとともにアプリケーションのユーザーに適切な通知を提供する必要があります。Microsoftのプライバシーに関する声明は https://go.microsoft.com/fwlink/?LinkID=824704 にあります。データの収集と使用の詳細については、ヘルプドキュメントとプライバシーに関する声明をご覧ください。本ソフトウェアの使用は、これらの慣行に同意したものとみなされます。

詳細については、Telemetry.mdを参照してください。

セキュリティ問題の報告

セキュリティの問題とバグは、電子メールでMicrosoft Security Response Center (MSRC) に私的に報告してください。 [email protected]。24時間以内に返信が届くはずです。何らかの理由で返信がない場合は、元のメッセージが確実に届いたことを確認するために電子メールでフォローアップしてください。詳細情報(MSRC PGPキーを含む)は、Security TechCenterにあります。

詳細については、Security.mdを参照してください。

プライバシーとCookie

https://go.microsoft.com/fwlink/?LinkId=521839

ツールをダウンロード