ウェブアプリケーション認証

始める前に

  • Tenable Web App Scanning スキャンの認証情報の設定

Tenable Web App Scanning スキャンでは、追加 認証タイプ の [設定] セクションのドロップダウンリストで、以下の中からいずれかの認証方法を設定できます。

Tenable Web App Scanning の認証の概要については、次の動画をご覧ください。

ヒント: ログインプロセスによってヘッダーや Cookie が設定された場合、スキャナーはこれを認識し、後続のリクエストに含めます。想定どおりに動作しない場合は、Selenium 認証を使用して、ログインプロセスを .side ファイルに記録して、そのファイルをスキャンで使用します。問題が解決しない場合は、Tenable の担当者に連絡してサポートを依頼してください。

全般

オプション アクション
ユーザー名 ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するユーザー名を入力します。
パスワード ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するパスワードを入力します。

ログインフォーム認証

オプション アクション
Authentication Method (認証方法) ドロップダウンボックスで、[ログインフォーム] を選択します。
ログインページ スキャンするウェブアプリケーションのログインページの URL を入力します。
認証情報

ターゲットのログインフォームの各フィールド (ユーザー名、パスワード、ドメインなど) について、次のように認証情報エントリに入力します。

  1. 左側のドロップダウンボックスで、[テキスト] (デフォルト) または [パスワード]を選択します。

    注意: 保存後にパスワード値は非表示になります。変更するには、この値を再入力する必要があります。

  2. 真ん中のテキストボックスに、ログインフィールドの nameまたは id HTML DOM 属性の値を入力します。
  3. 行の右側のテキストボックスに、ログイン時にそのテキストフィールドに挿入するリテラル値を入力します。

典型的な設定の例

ヒント: テキストフィールドの名前または ID HTML DOM 属性を表示するには、テキストフィールドを右クリックし、Firefox または Chrome ブラウザで [検査] を選択します。

ヒント: 認証情報なしの [概要] スキャンを実行する場合、プラグイン 98033 ([ログインフォームが検出されました]) が、必要なログインボックスを自動的に検出してプラグインの出力にそれを表示することがあります。

正常な認証を検証するためのパターン

認証が成功した場合にのみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、ようこそ[ユーザー名] さん!)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

Cookie 認証

オプション アクション
Authentication Method (認証方法) ドロップダウンボックスで、[Cookie 認証] を選択します。
セッション Cookie

次を実行します。

  1. 最初のテキストボックスで、Cookie 認証の認証情報の名前を入力します。
  2. 2 番目のテキストボックスに、Cookie 認証の認証情報の値を入力します。
アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

Selenium 認証

オプション アクション
Authentication Method (認証方法) [Selenium 認証] を選択します。

Selenium Script (.side) (Selenium スクリプト (.side))

次を実行します。

  1. Selenium IDE 拡張機能で、認証の認証情報を記録します。

    注意: Tenable 提供の Selenium 拡張機能のサポートは終了しました。Selenium が直接提供する Edge および Firefox の拡張機能はサポートされています。ブラウザ外で実行される Selenium 提供のパッケージもサポートされています。
  2. [ファイルの追加] をクリックします。

    お使いのオペレーティングシステムのファイルマネージャーが表示されます。

  3. Selenium 認証情報 .side ファイルに移動して選択します。

    Tenable Web App Scanning によって認証情報ファイルがインポートされます。

アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

API キー認証

オプション アクション
認証方法 API キーを選択します。

ヘッダー

次を実行します。

  1. 最初のテキストボックスに、HTTP ヘッダーの名前を入力します。

  2. 2 番目のテキストボックスに、HTTP ヘッダーの値を入力します。

  3. (オプション) 追加 ボタンをクリックしてヘッダーを追加します。

アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

ベアラー認証

オプション アクション
認証方法 [ベアラー認証] を選択します。

ベアラートークン

ベアラートークンの値を入力します。

注意: ベアラートークン認証は、静的なベアラートークンが使用される場合に利用できます。別のログインプロセスの一部としてトークンが付与される場合は、Selenium、ログインフォーム、OAuth 認証情報のタイプの使用を検討してください。

アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

OAuth 認証

OAuth 認証には、使用しているアプリケーションのニーズに合わせて 3 つのフロータイプオプションがあります。すなわち、承認コード、クライアント認証情報、デバイスコードです。

承認コード

このフローを使用するのは、OAuth プロバイダーのブラウザベースのログインページからアプリケーションがインタラクティブにログインする必要がある場合です。スキャナーはアイデンティティプロバイダーにリダイレクトされ、そこでユーザーが認証されると、プロバイダーは承認コードを返します。スキャナーはこれをアクセストークンと交換します。ログインページでマルチステップインタラクション (MFA プロンプトやカスタムフォームフィールドなど) が必要な場合は、Selenium スクリプトを使用して自動化できます。プロバイダーが PKCE をサポートしている場合は、セキュリティを強化するために有効にしてください。

オプション アクション
クライアント ID アプリケーションが OAuth プロバイダーに登録されたときにアプリケーションに発行されるパブリック識別子。スキャナーの「ユーザー名」とも呼ばれます。どのアプリケーションがリクエストを行っているかをプロバイダーに伝えます。
クライアントシークレット クライアント ID とペアリングされた機密パスワード。コードをトークンと交換するときにスキャナーの ID を証明するために使用されます。
認証 URL プロバイダーのログインと承認ページ。ここにリダイレクトされたら、認証情報を入力し、スキャナーのアクセスを承認します。これは、認証プロバイダー経由でログインするときに表示されるページです。
リダイレクト URL スキャナーの承認が成功した後、OAuth プロバイダーからリダイレクトされた後の URL です。スキャナーがアクセストークンと交換する承認コードが入っています。プロバイダーに登録されているものと完全一致しなければなりません。クエリパラメーターを含めないでください。
ユーザー名 ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するユーザー名を入力します。
パスワード

ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するパスワードを入力します。

Selenium スクリプト (オプション)

次を実行します。

  1. Selenium IDE 拡張機能で、認証の認証情報を記録します。

    注意: Tenable 提供の Selenium 拡張機能のサポートは終了しました。Selenium が直接提供する Edge および Firefox の拡張機能はサポートされています。ブラウザ外で実行される Selenium 提供のパッケージもサポートされています。
  2. [ファイルの追加] をクリックします。

    お使いのオペレーティングシステムのファイルマネージャーが表示されます。

  3. Selenium 認証情報 .side ファイルに移動して選択します。

    Tenable Web App Scanning によって認証情報ファイルがインポートされます。

PKCE (Proof Key for Code Exchange)

デフォルトでは、無効になっています。承認コードフローの追加セキュリティレイヤー。スキャナーはワンタイムシークレットを生成し、トークン交換中にそのシークレットを所有していることを証明することで、承認コードを傍受した人が使用するのを防ぎます。承認プロバイダーによって有効化されている場合にのみ有効にします。

クライアントの範囲

スキャナーがリクエストしているアクセス許可のリスト (例: 読み取り、openid、プロファイルなど)。スキャナーが発行されたアクセストークンをアプリケーションに対して使用した後、そのアクセストークンで何をできるかを範囲で決めます。

トークン URL

スキャナーが承認コード、デバイスコード、クライアント認証情報を実際のアクセストークンと交換するプロバイダーのエンドポイント。

アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

ログインチェック戦略

スキャン中にスキャナーがまだログイン中であることを確認する方法です。応答本文に既知のパターンがないかをチェックする、特定のヘッダーをチェックする、HTTP 応答コードをチェックする、のいずれかを選択します。

ログインリクエスト方法

スキャナーがアプリケーションを定期的にチェックしてセッションがまだ有効であることを確認するときに使用される HTTP メソッド (GET、POST、PUT など、またはフルブラウザリクエスト)。

クライアント認証コード

このフローは、アプリケーションが、ユーザーログインではなく、クライアント ID とシークレットを使用して認証する API エンドポイントを公開する場合に使用します。スキャナーは認証情報を OAuth トークンエンドポイントに直接提示し、ブラウザとのやり取りやユーザーセッションなしでアクセストークンを受け取ります。このフローは、認証パスにユーザーが介在しない、マシン間またはサービスアカウントのシナリオに適しています。

オプション アクション
クライアント ID アプリケーションが OAuth プロバイダーに登録されたときにアプリケーションに発行されるパブリック識別子。スキャナーの「ユーザー名」とも呼ばれます。どのアプリケーションがリクエストを行っているかをプロバイダーに伝えます。
クライアントシークレット クライアント ID とペアリングされた機密パスワード。コードをトークンと交換するときにスキャナーの ID を証明するために使用されます。
クライアントの範囲 スキャナーがリクエストしているアクセス許可のリスト (例: 読み取り、openid、プロファイルなど)。スキャナーが発行されたアクセストークンをアプリケーションに対して使用した後、そのアクセストークンで何をできるかを範囲で決めます。
トークン URL スキャナーが承認コード、デバイスコード、クライアント認証情報を実際のアクセストークンと交換するプロバイダーのエンドポイント。
アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

ログインチェック戦略 スキャン中にスキャナーがまだログイン中であることを確認する方法です。応答本文に既知のパターンがないかをチェックする、特定のヘッダーをチェックする、HTTP 応答コードをチェックする、のいずれかを選択します。
ログインリクエスト方法

スキャナーがアプリケーションを定期的にチェックしてセッションがまだ有効であることを確認するときに使用される HTTP メソッド (GET、POST、PUT など、またはフルブラウザリクエスト)。

デバイスコード

このフローは、アプリケーションが OAuth デバイス承認パターンに従う場合に使用します。つまり、デバイスまたはヘッドレスクライアントがコードを表示し、別のデバイスで承認を待機します。スキャナーは、Selenium スクリプトを使用して、承認ユーザーインターフェースを処理します。スクリプトで $DEVICE_CODE 変数を使用して、デバイスコード値を該当するフォームフィールドに渡します。アプリケーションの OAuth ログインがブラウザを開けないデバイス用に設計されている場合は、このフローを選択します。

オプション アクション
クライアント ID アプリケーションが OAuth プロバイダーに登録されたときにアプリケーションに発行されるパブリック識別子。スキャナーの「ユーザー名」とも呼ばれます。どのアプリケーションがリクエストを行っているかをプロバイダーに伝えます。
クライアントシークレット (オプション) クライアント ID とペアリングされた機密パスワード。コードをトークンと交換するときにスキャナーの ID を証明するために使用されます。
デバイスコード URL デバイスコードフロー用の短いユーザーコードを発行する OAuth プロバイダーのエンドポイント。
ユーザー名

ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するユーザー名を入力します。

パスワード

ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するパスワードを入力します。

Selenium スクリプト (オプション)

次を実行します。

  1. Selenium IDE 拡張機能で、認証の認証情報を記録します。

    注意: Tenable 提供の Selenium 拡張機能のサポートは終了しました。Selenium が直接提供する Edge および Firefox の拡張機能はサポートされています。ブラウザ外で実行される Selenium 提供のパッケージもサポートされています。
  2. [ファイルの追加] をクリックします。

    お使いのオペレーティングシステムのファイルマネージャーが表示されます。

  3. Selenium 認証情報 .side ファイルに移動して選択します。

    Tenable Web App Scanning によって認証情報ファイルがインポートされます。

注: $DEVICE_CODE をこの初期コード値に置き換える必要があります。
クライアントの範囲 スキャナーがリクエストしているアクセス許可のリスト (例: 読み取り、openid、プロファイルなど)。スキャナーが発行されたアクセストークンをアプリケーションに対して使用した後、そのアクセストークンで何をできるかを範囲で決めます。
トークン URL スキャナーが承認コード、デバイスコード、クライアント認証情報を実際のアクセストークンと交換するプロバイダーのエンドポイント。
アクティブなセッションを確認するページ

Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。

アクティブなセッションを確認するパターン

セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。

ログインチェック戦略

スキャン中にスキャナーがまだログイン中であることを確認する方法です。応答本文に既知のパターンがないかをチェックする、特定のヘッダーをチェックする、HTTP 応答コードをチェックする、のいずれかを選択します。

ログインリクエスト方法

スキャナーがアプリケーションを定期的にチェックしてセッションがまだ有効であることを確認するときに使用される HTTP メソッド (GET、POST、PUT など、またはフルブラウザリクエスト)。