
OpenAIのGPTを統合したBurp Suite拡張機能で、高度に特化した脆弱性を発見するための追加のパッシブスキャンを実行し、あらゆる種類のトラフィックベースの分析を可能にします。
[!IMPORTANT] BurpGPT Pro のローンチを発表します。このエディションは、プロフェッショナルおよびサイバー・ブティックのニーズに特化して作られています。強力な機能とユーザーフレンドリーなインターフェースにより、能力を強化し、最適なユーザー体験を保証します。これらの利点にアクセスするには、ウェブサイト にアクセスし、詳細についてはドキュメンテーション をお読みください。
[!WARNING] Community エディションはもはや保守されておらず、機能していないことにご注意ください。アップデート、新機能、バグ修正、改善を引き続き受け取るには、Pro エディション へのアップグレードをご検討ください。Community エディションに対して「Issues」を記録しても意味がありません。
burpgpt は、従来のスキャナーが見逃す可能性のあるセキュリティ脆弱性を検出するために AI の力を活用します。Web トラフィックをユーザーが指定した OpenAI の model に送信し、パッシブスキャナー内で高度な分析を可能にします。この拡張機能はカスタマイズ可能な prompt を提供し、各ユーザーの特定のニーズに合わせた Web トラフィック分析を可能にします。インスピレーションについては、使用例 のセクションをご覧ください。
この拡張機能は、ユーザーの prompt と Burp から発行されたリクエストのリアルタイムデータに基づいて、潜在的なセキュリティ問題を要約した自動セキュリティレポートを生成します。AI と自然言語処理を活用することで、セキュリティ評価プロセスを合理化し、セキュリティ専門家に対してスキャンされたアプリケーションまたはエンドポイントのより高レベルの概要を提供します。これにより、潜在的なセキュリティ問題をより簡単に特定し、分析の優先順位を付けながら、より広範な潜在的な攻撃対象領域をカバーできます。
[!WARNING] データトラフィックは分析のために
OpenAIに送信されます。これについて懸念がある場合、またはセキュリティ重視のアプリケーションで拡張機能を使用している場合は、これを慎重に検討し、詳細については OpenAI のプライバシーポリシー を確認することが重要です。
[!WARNING] レポートは自動化されていますが、誤検出が含まれる可能性があるため、セキュリティ専門家によるトリアージと後処理が依然として必要です。
[!WARNING] この拡張機能の有効性は、選択した
GPTモデルに対してユーザーが作成するプロンプトの品質と精度に大きく依存します。このターゲットを絞ったアプローチにより、GPT modelがセキュリティ分析に正確で価値のある結果を生成するのに役立ちます。
passive scan check を追加し、ユーザーが HTTP データを OpenAI 制御の GPT model に placeholder システムを介して分析用に送信できるようにします。OpenAI の GPT モデル の力を活用して包括的なトラフィック分析を実施し、スキャンされたアプリケーションのセキュリティ脆弱性だけでなく、さまざまな問題の検出を可能にします。maximum prompt length の正確な調整を可能にすることで、分析で使用される GPT トークン の数を細かく制御できます。OpenAI モデル から選択するオプションを提供し、ニーズに最適なものを選択できるようにします。prompt をカスタマイズし、OpenAI モデル と対話する無限の可能性を解き放つことを可能にします。インスピレーションについては、使用例 をご覧ください。Burp Suite と統合し、分析結果を Burp UI 内に直接表示するなど、前処理と後処理のためのすべてのネイティブ機能を提供します。Burp Event Log を介したトラブルシューティング機能を提供し、ユーザーが との通信問題を迅速に解決できるようにします。オペレーティングシステム:Linux、macOS、Windows オペレーティングシステムと互換性があります。
Java Development Kit (JDK):バージョン 11 以降。
Burp Suite Professional または Community エディション:バージョン 2023.3.2 以降。
[!IMPORTANT]
2023.3.2より低いバージョンを使用すると、java.lang.NoSuchMethodError が発生する可能性があることに注意してください。この問題を回避するには、指定されたバージョンまたはそれ以降を使用することが重要です。
バージョン 6.9 以降(推奨)。build.gradle ファイルがプロジェクトリポジトリに用意されています。JAVA_HOME 環境変数を JDK インストールディレクトリを指すように設定します。プロジェクトをビルドして実行する前に、互換性のあるバージョンの Burp Suite を含むすべてのシステム要件が満たされていることを確認してください。プロジェクトの外部依存関係は、ビルドプロセス中に Gradle によって自動的に管理およびインストールされることに注意してください。要件に従うことで、潜在的な問題を回避し、プロジェクトリポジトリに新しい問題を開く必要性を減らすことができます。
Gradle がインストールおよび設定されていることを確認します。
burpgpt リポジトリをダウンロードします:
git clone https://github.com/aress31/burpgpt
cd .\burpgpt\
スタンドアロンの jar をビルドします:
./gradlew shadowJar
Burp Suite への拡張機能の読み込みBurp Suite に burpgpt をインストールするには、まず Extensions タブに移動し、Add ボタンをクリックします。次に、.\lib\build\libs フォルダにある burpgpt-all jar ファイルを選択して拡張機能を読み込みます。
burpgpt の使用を開始するには、ユーザーは Burp Suite のメニューバーからアクセスできる設定パネルで以下の手順を完了する必要があります:
OpenAI API キー を入力します。model を選択します。max prompt size を定義します。このフィールドは、GPT モデルの maxTokens(通常 GPT-3 では約 2048)を超えないように、OpenAI に送信される最大 prompt 長を制御します。
上記のように設定すると、Burp パッシブスキャナー は各リクエストを OpenAI API を介して選択した OpenAI モデル に送信して分析し、結果に基づいて Informational レベルの重大度の所見を生成します。
burpgpt は、placeholder システムを使用してトラフィック分析の prompt をカスタマイズできるようにします。関連情報を含めるには、これらの placeholder を使用することをお勧めします。これらは拡張機能が直接処理し、prompt に特定の値を動的に挿入できます:
これらの placeholder はカスタム prompt で使用して、スキャンされたリクエストに固有のリクエスト/レスポンス分析 prompt を動的に生成できます。
[!NOTE]
Burp Suiteは、セッション処理ルール や Custom Parameter Handler などの拡張機能を使用して任意のplaceholderをサポートする機能を提供しており、promptのカスタマイズ性をさらに高めることができます。
以下の使用例のリストは、burpgpt の特注かつ高度にカスタマイズ可能な性質を示しており、ユーザーは特定のニーズに合わせて Web トラフィック分析を調整できます。
特定の CVE の影響を受ける暗号ライブラリを使用する Web アプリケーションの潜在的な脆弱性を特定する:
リクエストとレスポンスデータを分析し、CVE-{CVE_NUMBER} の影響を受ける {CRYPTO_LIBRARY_NAME} 暗号ライブラリに関連する潜在的なセキュリティ脆弱性を特定します:
Web アプリケーション URL: {URL}
暗号ライブラリ名: {CRYPTO_LIBRARY_NAME}
CVE 番号: CVE-{CVE_NUMBER}
リクエストヘッダー: {REQUEST_HEADERS}
レスポンスヘッダー: {RESPONSE_HEADERS}
リクエストボディ: {REQUEST_BODY}
レスポンスボディ: {RESPONSE_BODY}
リクエストとレスポンスデータにおいて、CVE-{CVE_NUMBER} の影響を受ける {CRYPTO_LIBRARY_NAME} 暗号ライブラリに関連する潜在的な脆弱性を特定し、報告してください。
生体認証を使用する Web アプリケーションの脆弱性をスキャンするために、認証プロセスに関連するリクエストとレスポンスデータを分析する:
リクエストとレスポンスデータを分析し、生体認証プロセスに関連する潜在的なセキュリティ脆弱性を特定します:
Web アプリケーション URL: {URL}
生体認証リクエストヘッダー: {REQUEST_HEADERS}
生体認証レスポンスヘッダー: {RESPONSE_HEADERS}
生体認証リクエストボディ: {REQUEST_BODY}
生体認証レスポンスボディ: {RESPONSE_BODY}
リクエストとレスポンスデータにおいて、生体認証プロセスに関連する潜在的な脆弱性を特定し、報告してください。
サーバーレス関数間で交換されるリクエストとレスポンスデータを分析し、潜在的なセキュリティ脆弱性を特定する:
サーバーレス関数間で交換されるリクエストとレスポンスデータを分析し、潜在的なセキュリティ脆弱性を特定します:
サーバーレス関数 A URL: {URL}
サーバーレス関数 B URL: {URL}
サーバーレス関数 A リクエストヘッダー: {REQUEST_HEADERS}
サーバーレス関数 B レスポンスヘッダー: {RESPONSE_HEADERS}
サーバーレス関数 A リクエストボディ: {REQUEST_BODY}
サーバーレス関数 B レスポンスボディ: {RESPONSE_BODY}
2 つのサーバーレス関数間で交換されるデータの潜在的な脆弱性を特定し、報告してください。
シングルページアプリケーション (SPA) フレームワークに固有の潜在的なセキュリティ脆弱性についてリクエストとレスポンスデータを分析する:
リクエストとレスポンスデータを分析し、{SPA_FRAMEWORK_NAME} SPA フレームワークに固有の潜在的なセキュリティ脆弱性を特定します:
Web アプリケーション URL: {URL}
SPA フレームワーク名: {SPA_FRAMEWORK_NAME}
リクエストヘッダー: {REQUEST_HEADERS}
レスポンスヘッダー: {RESPONSE_HEADERS}
リクエストボディ: {REQUEST_BODY}
レスポンスボディ: {RESPONSE_BODY}
リクエストとレスポンスデータにおいて、{SPA_FRAMEWORK_NAME} SPA フレームワークに関連する潜在的な脆弱性を特定し、報告してください。
maxTokens 制限をユーザーが設定できる新しいフィールドを Settings パネルに追加し、リクエストサイズを制限します。 <- BurpGPT Pro エディション 限定。AI model のローカルインスタンスへの接続をサポートし、ユーザーがローカルマシンでモデルを実行および対話できるようにし、応答時間とデータプライバシーを改善する可能性があります。 <- BurpGPT Pro エディション 限定。model の正確な maxTokens 値を取得して、最大許容データを送信し、可能な限り広範な GPT 応答を取得します。Burp Suite の再起動間で設定を保持するための永続的な設定ストレージを実装します。 <- BurpGPT Pro エディション 限定。GPT 応答を Vulnerability model に正確に解析してレポートを改善するためのコードを強化します。 <- 限定。この拡張機能は現在開発中であり、フィードバック、コメント、および貢献を歓迎します。
この拡張機能がセキュリティ評価の時間と手間を節約したなら、開発者にコーヒー ☕ を一杯ご馳走して愛情を示すことを検討してください。結局のところ、それが開発の燃料です。ページ上部の輝く Sponsor ボタンをクリックするか、こちらをクリック して貢献し、カフェインを流し続けてください。 💸
バグを見つけましたか?では、ただ這い回らせないでください!まるでバグのささやき屋のように一緒に潰しましょう! 🐛💪
問題は GitHub イシュートラッカー に報告してください。一緒に、この拡張機能を核戦争を生き残るゴキブリのように信頼性の高いものにしましょう! 🚀
あなたの狂ったようなコーディングスキルで印象づけたいですか? 💻
素晴らしい!貢献は歓迎され、大いに感謝されます。すべての PR は GitHub プルリクエストトラッカー に提出してください。一緒にこの拡張機能をさらに素晴らしいものにしましょう! 🚀
LICENSE を参照してください。
OpenAI API| プレースホルダー | 説明 |
|---|
{REQUEST} | スキャンされたリクエスト。 |
{URL} | スキャンされたリクエストの URL。 |
{METHOD} | スキャンされたリクエストで使用された HTTP リクエストメソッド。 |
{REQUEST_HEADERS} | スキャンされたリクエストのヘッダー。 |
{REQUEST_BODY} | スキャンされたリクエストのボディ。 |
{RESPONSE} | スキャンされたレスポンス。 |
{RESPONSE_HEADERS} | スキャンされたレスポンスのヘッダー。 |
{RESPONSE_BODY} | スキャンされたレスポンスのボディ。 |
{IS_TRUNCATED_PROMPT} | 設定で定義された 最大プロンプトサイズ に prompt が切り詰められたかどうかを示すためにプログラムで true または false に設定される boolean 値。 |