AppScan機能解説コラム -- 第1回:AppScan Standardのログイン管理
本シリーズコラムでは、脆弱性診断ツールAppScan Standard(以降AppScan)の機能について紹介します。
<目次>
ログイン管理とは
ログイン機能のあるWebアプリケーションの脆弱性診断を行うときにログインしていない状態(セッション切れ)でテストを実施すると、正常にWebアプリケーションが動作せず正しく診断できないため、ログインしている状態を維持してテストを行う必要があります。
脆弱性診断ツールではテスト中にログインしている状態かどうかを確認し、ログインしていないと判断した場合には、ログインに必要な手順を再生することでログインしている状態を維持する「ログイン管理」という機能があります。
OWASP ZAPやBurp Suiteなどの他の脆弱性診断ツールでは、ログインIDとパスワードを送信するURL、ログインしている状態を確認するURL、ログイン状態の判定を行う文字列などの項目をそれぞれ手動で指定する必要がありますが、AppScanではGUIにて記録ブラウザからログイン手順を記録するだけで各項目を自動設定することが可能です。
ログイン管理の設定
ログイン管理の設定は、スキャン構成ウィザードのログイン管理画面(※)で設定します。
※スキャン構成画面のログイン管理でも設定可能です。
記録ブラウザからログインを行うことで、AppScanが自動認識してログイン管理に必要な設定を行います。
ログイン管理の設定確認は、記録を再生することが可能です。
「再生」ボタンを押すとブラウザが起動し、自動的にログインできることが確認できます。
ログイン管理の設定内容について説明します。
アクションベース再生と要求ベース再生
ログイン管理に記録したログイン手順の再生方法について紹介します。
再生方法は2種類あります。違いは以下の通りです。
アクションベース |
要求ベース |
|
方式 |
取得したHTMLのDOM構造を把握し、DOMに対してどのような操作を行ったのかを記録する |
巡回時のリクエストを記録する |
動作 |
ログイン実行時にブラウザプロセスをバックグラウンドで起動し、記録された通りの操作を再実行する |
ログイン実行時に記録されたリクエストを記録した順番通りに送信する |
JavaScript |
実行可能 |
実行不可 |
処理時間 |
長い |
短い |
ログイン手順の再生方法の変更箇所以下の部分です。
AppScanは自動的に有効な再生方法を使用するため、どちらかだけでも「ログインが正常に構成されました」と表示されていればログイン管理は正常に動作します。
テスト中の動作
AppScanはテスト中にセッションの死活確認を行います。
ログイン管理の「セッション内検出要求」で指定しているURLにリクエストを送信し、レスポンス中に「セッション内検出パターン」の文字列が存在する場合(①)はセッション切れではないと判断し、テスト中は5秒に一回死活確認を行います。
レスポンス中に「セッション内検出パターン」の文字列が存在しない場合(②)は、セッション切れと判断し、ログイン手順に戻ります。
このような方法で、テスト中は常にログインしている状態を維持します。
今回のコラムではログイン管理の機能について説明しました。次回はマルチステップ操作の機能について説明します。
脆弱性コラム「サイト脆弱性をチェックしよう!」についてはこちらからご確認ください。