AppScan機能解説コラム -- 第3回:巡回
本シリーズのコラムでは、脆弱性診断ツールAppScan Standard(以下「AppScan」という)の機能について紹介します。今回は「巡回」について解説いたします。
<目次>
目次[非表示]
- 1.巡回が必要な理由
- 2.AppScanの巡回方法と使い分け
- 2.1.マニュアル探査とマルチステップ操作
- 2.1.1.テスト実施時の動作
- 2.1.2.テスト完了までの時間
- 2.1.3.記録作業を行う画面
- 2.2.自動探査
- 2.3.巡回方法の使い分け
- 3.巡回したデータの確認
- 4.記録ブラウザーについて
巡回が必要な理由
脆弱性診断を実施するときには以下の理由のため巡回作業が必要です。
- 診断対象のURL、パラメーター、Cookieの把握
- 診断範囲の確定
これはツールを使った脆弱性診断に限ったことではなく、手動で診断するときにも必要となります。
ツールを使った脆弱性診断では、巡回作業を行うことで以下の情報も取得します。
- 脆弱性判定のための正常系のリクエストとレスポンスデータ
- 画面遷移の順番(リクエストの順番)
「脆弱性判定のための正常系のリクエストとレスポンスデータ」は、ツールが正常な処理を行った時のレスポンスと攻撃リクエストを送信した時のレスポンスを比較して脆弱性の有無を判断するために使用します。
「画面遷移の順番」は、アプリケーションを画面から操作した時と同じように実行するために使用します。
AppScanの巡回方法と使い分け
AppScanでは巡回作業のことを「探査」と呼んでいます。
ユーザー自身が手動で行う「マニュアル探査」と「マルチステップ操作」、開始URLを起点に自動で巡回する「自動探査」という3つの巡回方法があります。
マニュアル探査とマルチステップ操作
マニュアル探査とマルチステップ操作はどちらも記録ブラウザーを使ってユーザーが手動で検査対象画面の遷移を記録する巡回方法です。まずはこの二つの巡回方法の違いについて説明します。
テスト実施時の動作
マニュアル探査で巡回した場合は記録した画面遷移の順序に関係なく、各画面に対して攻撃リクエストを送信してテストを行いますが、マルチステップ操作では記録した画面遷移の順序に従って、攻撃リクエストを送信してテストを行います。
記録ブラウザーから [画面1]→[画面2]→[画面3] の順番で画面遷移を記録した場合を例に説明します。
マニュアル探査で巡回すると以下のようにテストを実施します。
画面遷移の記録順序は関係なく、各画面に対して並列に攻撃リクエストを送信します。
マルチステップ操作で巡回すると以下のようにテストを実施します。
画面遷移の記録順序に従い画面を遷移してから攻撃リクエストを送信しますので、[画面2]のテストでは合計2リクエスト送信し、[画面3]のテストでは合計3リクエスト送信することになります。マニュアル探査と比較すると、テストに必要なリクエストの合計数が多くなります。
テスト完了までの時間
テスト完了までの時間はテストに必要なリクエスト数に比例します。
マニュアル探査で巡回してテストする場合は、1つのテストにつき1リクエストを送信してテストを実施しますが、マルチステップ操作では、シーケンスに記録するURLが増えれば増えるほどテストに必要なリクエスト数が増えていきます。
ここでは記録ブラウザーから [画面1]→[画面2]→[画面3] の順番で画面遷移を記録し、各画面に対して10パターンずつのテストを実施する場合のリクエスト数を例に計算します。
・マニュアル探査
マニュアル探査は1つのテストで1リクエスト送信するだけですので、
10パターン×1リクエスト×画面数(3)=30リクエスト
となります。
・マルチステップ操作
マルチステップ操作は各画面で必要なリクエスト数が変わります。
[画面1]のテストは、10パターン×1リクエスト=10リクエスト
必要です。
[画面2]のテストは、1つのパターンのテストを行う度に
のリクエストを送信する必要があるので、パターン1で[画面1]→[画面2]のリクエストを送信し、パターン2でも[画面1]→[画面2]のリクエストを送信し、パターン3でも[画面1]→[画面2]のリクエストを送信する・・・と動作するため、
10パターン×2リクエスト=20リクエスト
必要です。
[画面3]のテストは、1つのパターンのテストを行う度に
のリクエストを送信する必要があるので、画面2と同様に計算すると、
10パターン×3リクエスト=30リクエスト
必要です。
3つの画面のテストを合計すると、
10リクエスト+20リクエスト+30リクエスト=60リクエスト
となります。
このようにマニュアル探査のほうがマルチステップ操作よりも必要なリクエスト数が少ないため、テスト完了までの時間もマニュアル探査のほうが短くなります。
記録作業を行う画面
マニュアル探査はメイン画面上部の<マニュアル探査>ボタンをクリックして記録します。
マルチステップ操作は、スキャン構成の「マルチステップ操作」画面の<記録を開始>ボタンをクリックして記録します。
※マルチステップ操作の記録方法の詳細は第2回コラムの「マルチステップ操作でシーケンスを記録する」をご参照ください。
自動探査
自動探査は、ワンクリックで開始URLを起点にしてクローラーがサイト内のURLを巡回します。
入力フォームがある画面も自動で巡回できますが、入力値チェックがある場合に画面を遷移できず、巡回に失敗することがあります。
自動探査で巡回した時のテスト実施時の動作は、マニュアル探査と同じで、各画面に対して並列に攻撃リクエストを送信します。
自動探査ではクローラーが見つけたすべてのURLをテスト対象とします。開始URLからつながるURLのすべてをテストする場合に自動探査は有効です。ただし、テスト範囲が膨大となるため、テスト完了までの時間も長くなります。
巡回方法の使い分け
決められた順番で画面遷移を行う必要がある処理のテストを実施する場合は、マルチステップ操作で巡回する必要があります。
決められた順番で画面遷移を行う必要のない処理はマニュアル探査と自動探査のどちらの巡回方法でもテストを実施できますが、入力フォームが存在し、入力値チェックを行う処理ではマニュアル探査で巡回することで、巡回の失敗を回避できます。
また、マニュアル探査で巡回すれば、特定の画面のみを診断できますので、テスト時間を短くしたい場合はマニュアル探査の巡回がおすすめです。
探査方法 |
利用ケース |
マルチステップ操作 |
決められた順番で画面遷移を行う必要がある処理の診断 |
マニュアル探査 |
決められた順番で画面遷移を行う必要のない処理の診断 特定の画面のみを診断して時間を短縮したい |
自動探査 |
決められた順番で画面遷移を行う必要のない処理の診断 手動で巡回する時間がない |
巡回したデータの確認
巡回作業後に検査対象として記録されたデータを確認できます。
AppScanメイン画面の左側にあるナビゲーションメニューの[データ]を選択して[データ]ビューを表示します。
以下の[データ]ビューが表示されます。
[データ]ビューでは表示タブを切り替えることでURL以外の情報も表示されます。主な表示タブの説明は以下となります。
[要求]タブ:検査対象のURLを表示
[パラメーター]タブ:検査対象のパラメーターを表示
[Cookie]タブ:検査対象のCookieを表示
記録ブラウザーについて
ユーザー自身でブラウザーを使って巡回するマニュアル探査のときの記録ブラウザーですが、AppScanの内蔵ブラウザーだけでなく、ChromeやEdge、Firefoxなどのブラウザーを使って記録することも可能です。
記録時に利用するブラウザーを変更する方法をご紹介します。
1)AppScanの[ツール]メニューの[オプション]を選択します
2)オプション画面の「ブラウザーの記録と表示」にてブラウザーを選択しオプション画面を閉じます
3)マニュアル探査ボタンを押すとオプション画面で選択したブラウザー(今回はGoogle Chrome)が起動し開始URLに設定した画面を表示します
4)ブラウザーで検査対象の画面遷移を行ったら、ブラウザー右上の×ボタンを押して画面を閉じます
5)マニュアル探査シーケンス画面が表示されるので<OK>ボタンを押します
今回のコラムではAppScanの巡回について説明しました。
他にどのような機能があるのか知りたい、実際に操作して使用感を確かめたいなど、ご興味・ご関心をお持ちになられた方は、AppScan評価版のご提供やハンズオンセミナーも開催しておりますので、こちら【お問い合わせ】よりお気軽にお問合せください。
次回はAppScanの「検出ロジック」について解説いたします。
脆弱性コラム「サイト脆弱性をチェックしよう!」についてはこちらからご確認ください。