このセクションの内容:
はじめに
このパッケージを利用すると、Burp Suite セキュリティ診断ツールを使って、SOAtest のテスト シナリオでAPI およびブラウザーベースの Web アプリケーションのセキュリティ テストと侵入テストを実行できます。このパッケージには、Burp Suite にインストールする Burp Extender に加えて、SOAtest で使用する以下の 2 つのツールを含みます。
- Burp Suite Analysis Tool: セキュリティ解析のために Burp Suite にデータを送り、SOAtest ユーザー インターフェイスで Burp Suite の指摘事項をレポートします。
- Burp Suite Reporter: セキュリティ解析の指摘事項についての Burp Suite レポートを生成します。
前提条件
- SOAtest 9.10 以降
- SOAtest の .tst ファイル。少なくとも 1 つのテスト クライアントを含むこと (例:SOAP、REST、EDI、Messaging Client)
- Burp Suite Professional 1.6 以降
SOAtest ツールのインストール
SOAtest ツールは soatestburpsuitetools.jar ファイルで提供します。UI またはコマンドラインからインストールできます。
UI からのインストール
- [Parasoft ] > [設定] を選択し、[システム プロパティ] をクリックします。
- [JAR の追加] をクリックし、soatestburpsuitetools.jar ファイルを選択します。
- [適用] をクリックします。
- SOAtest/Virtualize を再起動します。
コマンドラインからのインストール
設定プロパティ ファイルの system.properties.classpath
プロパティに soatestburpsuitetools.jar ファイルを追加します。例:
system.properties.classpath=<PATH_TO_JAR>/soatestburpsuitetools.jar
Burp Suite への Parasoft SOAtest Burp Extender のインストール
Parasoft SOAtest Burp Extender (burpsuiteextender.jar) は、Burp Extenders をインストールする標準的な方法でインストールします。
- Burp Suite UI を起動します。
- [Extender] > [Extensions] タブで [Add] をクリックします。
- [Extension Details] で、[Extension type] が Java に設定されていることを確認し、[Extension file (.jar)] フィールドで burpextender.jar ファイルを指定します。
- [次へ] をクリックします。[Output] タブに “Parasoft SOAtest Burp Extender” というメッセージが表示されるはずです。
- [Errors] タブにエラーがレポートされていないことを確認し、[Close] をクリックします。
使い方の概要
Burp Suite 側では、HTTP サーバーを使って Burp Suite を拡張した Parasoft SOAtest Burp Extender が SOAtest Burp Suite Analysis Tool とのやり取りを可能にします。SOAtest 側には、Burp Suite でテストするAPI のテスト シナリオに Burp Suite Analysis Tool を追加します。
テスト実行時には、Burp Suite Analysis Tool を連結した各テストは、通常通りにテスト対象アプリケーションとやり取りします(以下の #1 を参照)。そしてセキュリティ解析のためにデータを Burp Suite に送ります (以下の #2 を参照)。Burp Suite は、解析を実行するためにテスト対象アプリケーションとやり取りします。
テストの実行ごとにその結果を SOAtest の [品質タスク] ビューに送ります (以下の #3 を参照)。テスト結果を XML レポートとして保存し、Parasoft DTP にアップロードできます(「DTP への接続」を参照)。
Burp Suite Reporter ツールの実行時に詳細なセキュリティ情報を持った Burp Suite HTML レポートを生成します (以下の #4 を参照)。
Burp Suite の解析は通常のテスト シナリオよりも時間がかかるため、2 種類のテスト シナリオを管理することを強く推奨します(1つは機能テストの実行用、もう1つはセキュリティテストの実行用)。セキュリティ テストを実行する場合は、必ず最新の機能テスト シナリオをコピーし、このコピーにBurp Suite ツールを追加してください。そうすると、動作やパフォーマンスに影響を与えることなく元の機能テストを使い続けられます。
この操作のための一般的なワークフローは以下のとおりです。
- セキュリティ テストに使用するテスト シナリオを特定し、コピーします。通常と同じように、オリジナルのテスト シナリオを使って機能テストを実行し続けることができます。
- コピーしたテスト シナリオに Burp Suite ツールを追加し、セキュリティ テストとして実行します。
- アプリケーションが変更されたら、機能テスト シナリオだけを更新します。対応するセキュリティ テスト シナリオの実行準備ができたら、そのたびに上記のステップを繰り返して最新の機能テストのコピーを作成し、コピーに対してセキュリティ テストを構成します。
Burp Suite テスト用のテスト シナリオの構成
テスト シナリオの各々のテスト クライアント (例:SOAP Client、REST Client、EDI Client、Messaging Client) の出力ツールとして Burp Suite Analysis Tool を連結します。必ずテスト クライアントの[トラフィック オブジェクト] に連結してください (「テスト出力の追加」を参照)。
複数の出力の追加
テスト シナリオのすべてのツールに出力を追加する最も簡単な方法は、テスト シナリオの先頭ノードを右クリックし、[複数の出力を追加] を選択して以下の操作を行うことです。
- テスト クライアントの場合、左側で [両方] > [トラフィック オブジェクト] を選択し、右側で [Burp Suite Analysis Tool] を選択します。
- Browser Playback ツールの場合、左側で [ブラウザー コンテンツ] を選択し、右側で [Burp Suite Analysis Tool] を選択します。
- テスト クライアントの場合、左側で [両方] > [トラフィック オブジェクト] を選択し、右側で [Burp Suite Analysis Tool] を選択します。
- シナリオでレポートを生成したいポイントに(出力ツールではなく)標準テストとして BurpSuite Reporter ツールを1つ追加します。このツールを実行すると、Burp Suite レポートを生成します。このレポートは、実行の開始時からレポートされたセキュリティ解析結果 (これが最初のBurp Suite Reporter ツールの場合)、または前のBurp Suite Reporter ツールが実行されたときからレポートされたセキュリティ解析結果を含みます。
たとえば、3 つのテスト シナリオを持つ .tst ファイルがあるものとします。3 つのテスト シナリオすべてのセキュリティ解析結果を含むレポートを 1 つ生成したい場合、3 番目のテスト シナリオの最後に Burp Suite Reporter ツールを1 つ追加します。テスト シナリオごとに個別にレポートを作成したい場合であれば、各テスト シナリオの最後に Burp Suite Reporter ツールを 1 つ追加します (合計で Burp Suite Reporter ツールを 3 つ追加します)。
プロジェクトまたはディレクトリ内のすべての .tst を実行した後にレポートを1つ生成したい場合、Burp Suite Reporter だけを含む .tst ファイルを作成し、最後に実行される .tst ファイルであることが分かるような名前を付けると良いでしょう (.tst ファイルはアルファベット順に実行されるため、たとえば、“zzz_reporting.tst” のような名前を付けます)。
- Burp Suite Reporter ツールの Report Location オプションを設定し、Burp Suite HTML レポートの保存先を指定します。このオプションを指定しない場合、レポートは
[${BurpSuiteWorkingDirectory}/SOAtestBurpExtender/report_YYYY-MM-DD_HH-MMSS.html]
に保存されます。
テストの実行
Burp Suite テスト用のテスト シナリオの構成が完了したら、以下の操作を行ってセキュリティ テストを実行できます。
- Burp Suite を起動します。
- Burp Suite の [Target] > [Scope] 設定ページで URL パターンを入力してターゲット スコープを定義します。この定義を行わない場合、SOAtest の解析リクエストが無視されます。
- Burp Suite のテストとレポート用に構成された SOAtest テスト シナリオを実行します。
テストの実行が完了すると、指定のレポート ディレクトリに、関連する Burp Suite レポートが保存されます。
SOAtest の [品質タスク] ビューと SOAtest で生成したレポートには、Burp Reporter を使って 直接 Burp Suite から生成したレポートよりも多くの問題が表示されることがあります。その理由は、SOAtest はフィルタリングされていない発見された課題のリストを表示するため、一部の課題が重複することがあるからです。一方、Burp Suite は固有とみなす課題だけを表示し、重複とみなす課題は ひとつにまとめます。
デフォルト以外のポートによる Burp Suite への接続
デフォルトでは、Burp Suite Analysis Tool は Burp Suite Extension の HTTP サーバーが localhost のポート 9898 で公開していることを想定します。Burp Suite と SOAtest は同じマシン上にあると想定されます。異なるポートを使用している場合、Burp Suite Extension とSOAtest 内で実行される Burp Suite Analysis Tool の両方について、ホストとポートを再設定する必要があります。
Burp Suite Extension のポートの設定
Burp Suite 起動時に以下の引数を渡します。
java -Dburpsuite.extension.port=<NEW_VALUE> -jar burpsuite_pro_v-1.7.03
SOAtest Burp Suite Analysis Tools が使用するポートの設定
SOAtest 起動時に以下の引数を渡します。
soatest.exe -J-Dburpsuite.extension.port=<NEW_VALUE>
タイムアウトの設定
テストを自動化する場合、Burp Suite が解析を完了するまで時間がかかったり応答不能になったりするケースに対処するため、タイムアウトを設定する必要があるかもしれません。タイムアウトを設定すると、たとえ Burp Suite が解析を完了していなくても、SOAtest テスト シナリオは実行を継続できます。タイムアウトを設定しない場合、Burp Suite からすべての結果を取得するまで、Burp Suite Analysis Too ツールは処理を完了しません。
タイムアウトを設定するには、SOAtest 起動時に以下の引数を渡します。
soatest.exe -J-Dburpsuite.extension.timeout=<VALUE>
なお、この値の単位は分です。値 -1
はタイムアウトを適用しないことを意味します。
ログ レベルの変更
デフォルトでは、Burp Suite Analysis Tool と Burp Suite Reporter のログ レベルはどちらも "warn" です。コンソールと Event Monitor ビューに表示されるログの詳細レベルを変更したい場合、ツールのログ レベル設定を変更できます。
重要度レベルの設定
Burp Suite Analysis Tool がレポートする最低限の重要度レベルを設定できます。デフォルトでは、レポートされる最小限の重要度レベルは "low" です。したがって、"low"、"medium"、"high" のすべての違反がレポートされます。SOAtest 起動時に以下の引数を渡すことで、デフォルトの設定を変更できます。
-J-Dburpsuite.extension.severity.filter=<SEVERITY>
以下のセキュリティ レベルを設定できます。
high
medium
low
information
高いレベルの重要度を設定すると、それよりも重要度が低いエラーは無視されます。なお、重要度レベルの設定では大文字と小文字を区別しません。
サード パーティのコンテンツ
この拡張機能は、以下のサード パーティのコンテンツを含みます。
- commons-httpclient (Apache ライセンス)
- restlet (Apache ライセンス)
- jackson (Apache ライセンス)
その他のライセンスの詳細については、Parasoft Burp Suite Extensions の licenses フォルダーを参照してください。