
OpenAPIドキュメントをBurp Suiteにパースし、OpenAPIベースのAPIセキュリティ評価を自動化する(PortSwiggerによって公式BAppストアへの収録が承認済み)。
[!UPDATE] この拡張機能は、最新の Burp Montoya Java API を使用するように更新されました。
UI/UXとパフォーマンスの両方を向上させるために、拡張機能は完全に再構築されました。これらの変更により、拡張機能は最新かつ最適化された状態で使用できるようになります。
OpenAPI ベースの API テスト向けに設計された Burp Suite 拡張機能です
OpenAPI仕様 (OAS) は、プログラミング言語に依存しないRESTAPIの標準的なインターフェース記述を定義します。これにより、人間とコンピュータの両方が、ソースコード、追加のドキュメント、ネットワークトラフィックの検査にアクセスすることなく、サービスの機能を発見し理解できるようになります。OpenAPIで適切に定義されると、消費者は最小限の実装ロジックでリモートサービスと対話できます。低レベルのプログラミングにおいてインターフェース記述が果たしてきた役割と同様に、OpenAPI仕様はサービス呼び出しにおける推測を排除します。機械可読な
API定義ドキュメントのユースケースには、インタラクティブなドキュメント、ドキュメント・クライアント・サーバー向けのコード生成、テストケースの自動化などが含まれます(ただしこれらに限定されません)。OpenAPIドキュメントはAPIのサービスを記述し、YAMLまたはJSON形式で表現されます。これらのドキュメントは、静的に生成・提供される場合もあれば、アプリケーションから動的に生成される場合もあります。
OpenAPI ベースの API のセキュリティ評価は、Burp Suite(業界標準)にネイティブな OpenAPI パース機能が不足しているため、面倒な作業になる可能性があります。この状況に対する解決策として、サードパーティツール(例:SOAP-UI)を使用するか、カスタムスクリプト(多くの場合、エンゲージメントごとに)を実装して OpenAPI ドキュメントのパースを処理し、その結果を Burp Suite に統合/連携して、その第一級のスキャン機能を利用することが挙げられます。
openapi-parser は、セキュリティ専門家が Burp Suite をスタンドアロンツールとして OpenAPI ベースの API のセキュリティ評価に使用できるようにすることで、このプロセス全体を合理化することを目的とした OpenAPI パーサーです。
OpenAPI ドキュメントは、提供されたファイルまたは URL から解析できます。Target -> Site map コンテキストメニューの Send to Swagger Parser 機能を使用して、URL から直接 OpenAPI ドキュメントを取得できます。OpenAPI 2.0/3.0 仕様 (OAS) に完全準拠した OpenAPI ドキュメント(旧称 Swagger specification)を解析します。Comparer、Intruder、Organizer、Repeater、Scanner、Site map、Scope の Burp ツールに送信できます。オペレーティングシステム: Linux、macOS、Windows オペレーティングシステムと互換性があります。
Java Development Kit (JDK): バージョン 11 以降。
Burp Suite Professional または Community Edition: バージョン 2023.11.1.3 以降。
[!IMPORTANT]
2023.3.2より前のバージョンを使用すると、java.lang.NoSuchMethodError が発生する可能性があることに注意してください。この問題を回避するには、指定されたバージョンまたはそれ以降を使用することが重要です。
バージョン 8.5 以降(推奨)。プロジェクトリポジトリに build.gradle ファイルが用意されています。JAVA_HOME 環境変数を JDK のインストールディレクトリを指すように設定します。プロジェクトのビルドと実行を開始する前に、互換性のある Burp Suite のバージョンを含むすべてのシステム要件が満たされていることを確認してください。プロジェクトの外部依存関係は、ビルドプロセス中に Gradle によって自動的に管理・インストールされることに注意してください。要件を遵守することで、潜在的な問題を回避し、プロジェクトリポジトリで新しい問題を開く必要性を減らすことができます。
Gradle がインストールおよび設定されていることを確認します。
openapi-parser リポジトリをダウンロードします:
git clone https://github.com/aress31/openapi-parser
cd .\openapi-parser\
スタンドアロン jar をビルドします:
./gradlew fatJar
Burp Suite に openapi-parser をインストールするには、まず Extensions タブに移動し、Add ボタンをクリックします。次に、. \build\libs フォルダにある openapi-parser-all jar ファイルを選択して拡張機能を読み込みます。
または、コンパイル の手順を完全にスキップして、BApp Store から拡張機能を直接ダウンロードすることもできます。
注: BApp Store で配布されているバージョンは、このリポジトリで入手可能なバージョンより遅れている可能性があります。
OpenAPI スキーマの深い解析を行い、すべてのネストされたパラメータとその例/型を収集する。RequestWithMetadata の代わりに MyHttpRequest を使用する。GUI から直接 API 呼び出しを変更できるようにする。API キーを介した) 認証されたテストのサポートを実装する。inquery、)を追加して、 列を改善する。その他の未完了タスクについては TODO を参照してください。
2016年7月、PortSwigger サポートフォーラム に改善依頼を投稿した後、私は自ら率先してソリューションを実装することにしました。
拡張機能は現在も開発中であり、フィードバック、コメント、コントリビューションを大歓迎します。
この拡張機能がセキュリティ評価の時間と手間を節約してくれたなら、開発者にコーヒー一杯 ☕ をスポンサーして愛を示すことを検討してみてください。結局のところ、それは開発を動かす燃料です。ページ上部の Sponsor ボタンをクリックするか、ここをクリック して貢献し、カフェインを流し続けてください。💸
バグを見つけましたか? さあ、放っておかないでください! まるでバグささやき手のように力を合わせて潰しましょう! 🐛💪
問題は GitHub issues tracker に報告してください。一緒に、この拡張機能を核戦争を生き延びるゴキブリのように信頼性の高いものにしましょう! 🚀
あなたの凄腕コーディングスキルで一石を投じたいですか? 💻
素晴らしい! コントリビューションを歓迎し、大いに感謝します。すべてのプルリクエストは GitHub pull requests tracker に提出してください。一緒にこの拡張機能をさらに素晴らしいものにしましょう! 🚀
LICENSE を参照してください。
OpenAPI Parser)' タブで表示できます。API 呼び出しを強調表示したり、レポート作成のために色分けしたりできます。CSV エクスポート機能が含まれており、選択した API リクエストを CSV 形式で簡単にエクスポートして、さらなる分析やレポート作成に利用できます。JSON と YAML の両方の形式をサポートしています。inbodyParam