Tenable Web App Scanning を使い始める
ウェブアプリケーションの脆弱性のスキャンと、Tenable Nessus、Tenable Nessus Agents または Tenable Nessus Network Monitor の従来の脆弱性のスキャンの間には、大きな違いがあります。その結果、Tenable Web App Scanning では、脆弱性の評価と管理に対して異なるアプローチが必要です。
Tenable Web App Scanning アプリケーショントポロジー
Tenable Web App Scanning は、従来の Tenable Nessus ベースのウェブアプリケーションスキャンポリシーよりも大幅に改善されています。
-
Tenable Nessus のレガシースキャンテンプレートは、Javascript、HTML 5、AJAX、シングルページアプリケーション (SPA) などの最新のウェブアプリケーションフレームワークと互換性がないので、ウェブアプリケーションのセキュリティ状況を完全には理解できない可能性があります。
-
Tenable Web App Scanning は、最新のウェブアプリケーションに対応した、包括的な脆弱性スキャンを提供します。その正確な脆弱性カバレッジによって誤検出や検出漏れが最小限に抑えられ、セキュリティチームはウェブアプリケーションの真のセキュリティリスクを把握できます。本番環境のウェブアプリケーションで中断や遅延が発生しないように、安全な外部スキャンを提供します。
-
Tenable Web App Scanning は、リージョン固有のクラウドスキャナーを使用します。ウェブアプリケーションの分析範囲に公開されている資産のみが含まれている場合は、それ以上のスキャナーは必要はありません。ウェブアプリケーションが公開されていない場合、インストール計画は、ウェブアプリケーションを実行する場所や自社のデータストレージのニーズによって異なります。
準備
開始する前に、Tenable Web App Scanning の基本をよく理解し、実装と設定のデプロイメント計画と分析ワークフローを作成します。
動的アプリケーションセキュリティテスト (DAST) 技術に基づいて、ウェブアプリケーションスキャンプログラムを操作する実行可能な方法がいくつかあります。ほとんどのプログラムは、各アプローチをいくつか組み合わせて使用し、各サイトの異なるニーズに対応しています。次のリストは、Tenable がサポートするスキャンテンプレートを示しています。
-
スキャン: 利用可能なチェックの完全なセット。これには、API スキャンを除く、事前に構築された他のすべてのテンプレートが含まれます。
- 概要: 影響を低減しスキャンを高速化するためにいくつかのアクティブなテストを省いた、「スキャン」テンプレートの簡易バージョン。
- PCI: Tenable がクレジットカード業界 (PCI) セキュリティ標準用に提供する、認証提供の一部として使用される特別なテンプレート。認証への提出のみに PCI ライセンスを使用します。それ以外の場合、このテンプレートは「スキャン」テンプレートの簡易バージョンです。
-
SSL/TLS: ウェブサーバーの暗号化設定の現在の状態と証明書の状態 (証明書の残り時間など) に焦点を当てたヘルスチェックスキャン。
-
設定監査: セキュリティプログラムの状態を評価するために外部監査プロバイダーが通常レビューする、外部から閲覧可能なウェブサーバー設定を検出するコンプライアンス監査。
- API スキャン: スキャナーが関連する脆弱性を正常に検出できるように、アプリケーションプログラミングインターフェース (API) を説明するための追加の設定を必要とする特別なテンプレート。これには、「スキャン」テンプレートにあるいくつかの類似したテストが含まれますが、その他の API エンドポイントに固有のテストも追加されます。
「SSL_TLS」または「設定監査」スキャンテンプレートは、通常、詳細なスキャンではなく、数分程度で完了する迅速なテストを定期的に実行する際に使用します。これにより、ベストプラクティスではない特定のサイトまたは一般に公開されている設定パラメーターの証明書タイプおよび暗号化タイプの問題など、表面レベルの概要を確認できます。
-
未調整の詳細スキャン: このアプローチは、調整や微調整を必要とせずに、「スキャン」テンプレートを使用してほとんどの脆弱性の検出を最適化し、サイトが一般的に経験するドライブバイスタイルの攻撃をシミュレートします。これらのスキャンは迅速にデプロイされ、基本的な検証を使用して明らかなスキャンエラーを回避しながら、スキャンターゲットから貴重な増分可視性を返します。ただし、このアプローチではタイムアウト (Tenable Vulnerability Management のデフォルトの 8 時間など) が発生したり、正しいスキャンのために認証や微調整を必要とするサイトのより複雑なセクションを見逃したりする可能性があります。これらの欠陥は、フォーラム、ブログ、大量の製品、複数の言語、または多数のページがあるサイトに共通して発生します。
-
認証済みの詳細スキャン: 未調整の詳細スキャンと同様ですが、このアプローチは認証を使用します。これは、スキャン設定ページまたは Tenable の Chrome 拡張で行うことができます。未調整スキャンの利点に加えて、認証スキャンはユーザーとしてログオンし、潜在的な問題をテストします。Tenable は、特に本番環境では、管理ユーザーとしてログオンしないことを推奨しています (「重要な考慮事項」セクションを参照)。認証では、テストユーザーアカウントを作成して管理し、一意のサイト設定を更新する必要があります。
-
調整済みの詳細スキャン: 認証に加えて、速度を求めたり複雑さに対応したりするためにスキャンを最適化する他の方法を使用できます (「重要な考慮事項」を参照)。これらの改良には、デプロイ前の初期段階に費やした時間が含まれており、サイトの更新頻度によっては準定期的な調整が必要になる場合があります。
本番環境サイトへのスキャナーの影響を制限し 100% の稼働時間を維持するには、Tenable Vulnerability Management API を使用してスキャンを統合し、週次または月次のビルドに基づいてスキャンをトリガーするか、定期的なスケジュールで本番環境前でスキャンを検討できます。これにより、内部ビルドとは異なる可能性がある、公開度の高い本番環境のサイトを保護できます。このスキャンのアプローチは、ほとんどの成熟した企業でそれぞれ異なるレベルで機能しますが、多くの場合、オンサイトの重要度とリソースの可用性に依存します。
企業は、ウェブアプリケーション、B2B トランザクション、モバイルアプリケーション、自動化シナリオを強化するために、API をますます採用しています。Tenable Web App Scanning 内の API スキャンテンプレートを使用してこれらの潜在的な危険性を評価することで、より多くの重大なサイバーリスクを可視化できます。一般に、リスクが高くサイバーエクスポージャーも大きい場合、成熟したプログラムや企業は API をより頻繁にスキャンすることになります。最終的に、セキュリティプログラムが開発されると、多くの企業がすべての脆弱な場所を事前に特定し、それらを完全にカバーできるようになります。このタイプのスキャンでは、スキャナーが API 自体と通信するためのエンドポイント定義を提供するために、開発スタッフからのより多くの入力を必要とし、OpenAPI ファイルに依存する可能性があります。
ほとんどのプログラムは、「SSL_TLS」または「設定監査」テンプレートに基づいたいくつかのスキャンから始まります。それにより、脆弱性マネージャーはスキャンを確立し結果をレビューする方法を学ぶことができます。その後、Tenable Web App Scanning スキャンテンプレートを使用して未調整のスキャンを実行します。
タイムアウトは、プログラムを最初に構築するときに一般的に発生するものです。Tenable Vulnerability Management のデフォルトのスキャン完了タイムアウトは 8 時間で、これを延長してもスキャンが「完了」しない可能性があります。スキャンの完了は、速度を上げるための調整でのみ実現可能です。
未調整のスキャンに基づいてプログラムを実行し、タイムアウトを受け入れることも可能です。多くのウェブアプリケーションの脆弱性は、同じ脆弱性が複数のページにまたがって存在しているため、数時間かかる最初のスキャンでかなりの割合の脆弱性を自動的に検出できることがあります。Tenable の独自の監視でこれを確認できます。通常、スキャンを調整してもスキャンの効率性と精度はほんのわずかしか改善せず、スキャン設定の調整にはより多くの時間を要します。
ほとんどの成熟した企業は、最も重要なサイトでスキャンを調整しています。これには、サイトごとの 10〜20 分の作業が含まれますが、オペレーターに経験があると短縮できます。企業の知識レベルと利用できるリソースにより、詳細な調整を行えるサイトのパーセンテージが決定されます。特に多くのウェブサイトを持つ企業では、すべてのサイトが調整されていることは稀です。ウェブサイトの動的な性質が、この理由の一部になっています。ウェブサイトは数年ごとに大幅に拡張または変更されることが多く、テストサイトの開発ペースに合わせてスキャン設定を見直す必要があります。
-
最初にプロセスに焦点を当てる: まず、Tenable Web App Scanning「スキャン」(完全な検査のセット) または「概要」スキャン (検査は少ないが影響も少ない) テンプレートで開始します。スキャナーの出力をよく理解し、チームと協力して検出結果をワークフローに組み込み、緩和および解決プログラムを開発します。
-
重要な領域について詳しく調べる: 基本となる手順をいくつか確立し、スキャナーからの出力を企業内の適切な人物に決定したら、より高度に調整されたスキャンに時間をかけ、最も重要なサイトの可視性を向上させます。
-
アクションを実行する: スキャンは、企業のアクションを促すために大量のデータを返します。データの潜在的な消費者を考慮してください。開発者は、必要な修正を特定し、時間とともに改善するための詳細な情報を求めています。経営者は、どのサイトがビジネスに最大のリスクを与えるかを把握し、それに従ってリソースを割り当てる必要があります。セキュリティリーダーが特定の脆弱性分類に焦点を当てるには、すべてのサイトの OWASP 脆弱性カテゴリなどの一般的なカテゴリ情報が必要です。
注意: Tenable Professional Services は、Tenable Web App Scanning スキャンの新規ユーザーに強く推奨されるクイックスタートプログラムを提供し、新しいプログラムを開発するメカニズムの確立を支援します。また、ProServe チームは、より広範な脆弱性管理プログラムを開発する内部プロセスと初期目標を確立するためのワークショップを実施します。これらのサービスは、企業が効果的なサイバーセキュリティプログラムの確かな基礎と理解を得て、製品に慣れるのに役立ちます。詳しくは、Tenable の営業担当者 ([email protected]) にお尋ねください。
-
ウェブアプリケーションの場所を特定します。
-
公開ウェブサイト
インターネットベースの Tenable Web App Scanning またはオンプレミススキャナーを使用して、Tenable Vulnerability Management から外部ウェブサイトをスキャンできます。
-
プライベートウェブサイト
オンプレミス Tenable Web App Scanning スキャナーを使用して、Tenable Vulnerability Management から内部またはイントラネットのウェブアプリケーションをスキャンできます。
-
-
スキャナーにターゲットへのネットワークルートがあることを確認します。
スキャナーがウェブアプリケーションに到達できない場合や、入力の提供や結果の取得ができない場合、スキャンは失敗します。遅延などのネットワークの制約は、スキャンやネットワークコントロールに影響を与える可能性があります (たとえば、ホストベースのファイヤーウォール、ネットワークファイヤーウォール、ネットワーク分離など)。内部ウェブアプリケーションスキャナーを「許可」リストに常に含めます。
-
スキャナーの場所が遅延またはサーバーの応答時間に影響を与える可能性があります。
スキャン中にタイムアウトが多すぎると、セッションが終了します。ターゲットにできる限り近いスキャナーを選択してください。サイトマッププラグインの添付ファイルを確認し、ページ読み込み時間が長くなっていたりタイムアウトしたりしていないかチェックします。これは、低速のサーバーでの同時テストが多すぎるか、ウェブアプリケーションに十分接近していないスキャナー (US スキャナーからのオーストラリアのスキャンなど)、または読み込み時間が長くなるサイト設定で発生する可能性があります。スキャナーの場所を変更することで、スキャナーの速度を低下させる詳細設定の再調整をせずに済むようになります。一見矛盾するように見えますが、スキャン速度の設定を遅くすることで、クエリのレートが低下し返されるクエリの変動が少なくなり、応答が遅いサイトで結果が高速化することがあります。
-
スキャナーは 1 人のユーザーとして動作します。
スキャナーは、リンクをたどり、ボタンを押し、アクセスできるものに基づいてユーザーのアクションをシミュレートできます。サイト検出フェーズの結果として、サイト上で望ましくないやり取りが発生する可能性があります。たとえば、ユーザーがメールを送信できる場合、スキャナーがフォームに入力し、[メール送信] ボタンを 2 回以上押す可能性があります。スキャナーに特定のボタンアクションの文脈はないものの、ページ全体またはページ要素のいずれかを教えたり除外したりしない限り、意図せずボタンが押されることはありません(詳細については、スコープ設定に関するドキュメントを参照してください)。このようなアクションを防ぐためにページ要素を除外するとスキャンの精度が低下します。そのため、本番稼働前にこのようなサイトを定期的にスキャンする計画を立てるようにしてください。
-
スキャナーは複数のユーザーとして動作します。
デフォルト設定では、スキャナーは同時にウェブサイトをナビゲートする複数のユーザーとして動作します。処理能力の高いサーバーでは、通常このアクティビティによる影響は最小限に抑えられます。ただし、サーバーの状態が不明な場合は、(少なくとも最初のテストでは) スキャンの速度をデチューンして、同時セッションによるサイトへの潜在的な影響に注意することができます。このようなテストの設定の詳細については、詳細設定を参照してください。
-
各サイトのチューニングをカスタマイズします。これは手間がかかる作業ですが、オプションです。
ウェブアプリケーションはそれぞれ異なるため、通常、ほとんどのウェブサイトで調整はカスタマイズされて適用されます。それぞれのウェブサイトでは、独自の構造、サイトマップ、サードパーティのライブラリ、コンポーネント、カスタムコードが連動しています。調整済みスキャンへどれだけ投資するかは、リソースの可用性、サイトの重要度、ビジネスへの影響によって異なります。
-
認証を調整するとき、本番環境で Tenable Web App Scanning スキャンをウェブサイト管理者として実行しないでください。テスト環境または本番前の環境でのみ実行します。
管理者の認証情報でウェブアプリケーションスキャンを実行すると、ユーザーが作成されたり削除されたり、その他の望ましくない管理機能が実行される可能性があります。
-
速度を調整する場合、サイトの基本部分だけを把握するようにすることで、DAST スキャンを高速化できます。
- サイトマッププラグインおよび関連する添付ファイルを確認します。
-
設定を変更します。ページタイムアウトが大量に発生する場合は、「ネットワークタイムアウト」を増やすか、「最大同時リクエスト」および「1 秒あたりのリクエスト」を減らします。または、サイトマップ添付ファイルで 5 秒を超える平均ページ応答時間を見つけます。
-
1 秒未満の応答が得られウェブサーバーへの影響が最小限になるよう、スキャン設定の高速化を検討してください。
-
サイトコンテンツの重複を排除します。スキャナーはサイトテキスト、画像、動画コンテンツをテストせず、入力フィールドとインタラクションのみをテストします複数の言語を使用するものの根底にあるコードが同じサイトなどの冗長ページがある場合は、サイトの 1 つの言語バージョンをテストするだけで済みます。
-
バイナリ除外をさらに追加します。Tenable Web App Scanning は、テキスト、画像、動画を「テスト」せず、除外するファイル拡張子を決定します。スキャン範囲 セクションでは、特定のサイトに適応できるデフォルトセットを説明します。
-
重要な URL に優先順位を付けます。機密データを返す可能性があるフォームなど、アプリケーションの重要な部分を特定します。スキャン範囲 セクションの「包める」または手動のクロールスクリプトを使用して、これらの URL をテストの範囲に追加します。また、これらのサイトで本番前のテストが必要かどうかを検討することもできます。
-
複雑さを調整する際は、セッション記録を使用してスキャナーをトレーニングします。
これを行うには、Tenable Chrome 拡張機能または Selenium IDE を使用し、スキャン設定のスキャン範囲内で追加します。このプロセスでは、手動クロールを実行して、スキャナーがサイト内の非常に複雑な場所をテストできるようにすることができます。たとえば、サイトでは、他の方法では利用できないページに到達するために、特定の一連のボタンを押し、特定の正しい値のセットを入力することが必要な場合があります。スキャナーが再度テストできるように、この手順を記録できます。
-
スキャナーとターゲットの間にウェブアプリケーションファイヤーウォール (WAF)、ウェブプロキシ、またはロードバランサーがあるかどうかを確認します。
一部のネットワークデバイスでは、スキャンが妨害されたり結果が完全に無効になったりする可能性があります。ファイヤーウォールでフィルター処理された結果の「リモート」ビューのみを受信すれば十分だと考えるかもしれません。しかし、WAF のビルトイン保護は、欠陥を実行する 1 つまたは 2 つの方法しか防止しない可能性があります。リスクベースの決定を行うには、サイトの真の状態の全体像を把握することが必須です。バイパス機能をサポートするように WAF を設定し、特定の IP または IP とエージェントヘッダー文字列の組み合わせで着信スキャンを証明および承認できるようにします。Tenable スキャナー IP 範囲のリストは、ここから入手できます。
-
一部のサイトでは、特定のブラウザ ID が必要な場合があります。
アプリケーションがデフォルトのユーザーエージェント (デフォルトでは「WAS/%v」として設定) と互換性があるかどうかを確認します。互換性がない場合は、Mozilla/5.0 などの標準ブラウザからの特定のヘッダーまたは一般に利用可能なヘッダーが必要な場合があります。一部のサーバー側の保護またはウェブアプリケーションのファイヤーウォールでは、特定の結果セットが必要になる場合があります。この場合、サイトに正常にアクセスできる既知のブラウザからユーザーエージェント文字列をコピーできます。
-
重要なサイトを最初に注意深くターゲットにします。
ターゲットサイトは本番環境に接続していますか、それ以外の点で重要なサイトですか。ウェブアプリケーションスキャナーがサービスの中断を引き起こす場合、ビジネスにどのような影響がありますか。サイトの最初のスキャンは常に、スタッフの手元にある環境または本番前の環境で制御された方法で実行します。サイトの性質を理解したら、完全な自動化を開始できます。
詳細およびガイド付き製品ウォークスルーについては、弊社の Tenable 製品教育の YouTube チャネルを参照してください。これらの短い説明ビデオでは、脆弱なウェブアプリケーションを保護するための上記の認証手順および調整手順を含む、Tenable Web App Scanning を最大限に活用する方法を説明しています。
インストール
-
デプロイメントの準備
-
Tenable Vulnerability Management プラットフォームおよび Tenable Web App Scanning アプリケーションへの必要なアクセス権を確認します。結果をスキャンおよび表示するための Tenable Web App Scanning への適切なアクセス権を持つユーザーを作成します。ロールベースアクセスコントロール (RBAC) を設定すると、ユーザーアクセスを許可できるようになります。設定には管理者の認証情報が必要です。
-
ローカルスキャナーが必要かどうかを判断します。ローカルまたはクラウドベースのスキャナーをデプロイすると、それらを Tenable Vulnerability Management に接続できます。これらのスキャナーは、インターネットに接続するウェブアプリケーション、開発環境、または本番前の環境で使用できます (適切なファイヤーウォールルールが適用される場合)。
Tenable Core + Tenable Web App Scanning スキャナーは、VMware (.ova)、Hyper-V (.zip)、または物理マシン (.ISO) へのインストールをサポートしています。これをローカルのオンプレミスまたはクラウドベースの開発環境にデプロイして、インターネットに直接接続されていないウェブアプリケーションをスキャンできます。VMware/vCenter の詳細については、VMware 統合ドキュメントを参照してください。
ローカルスキャナーはここからダウンロードできます。次のアクセスが揃っていることを確認してください。
- Tenable Vulnerability Management と通信するためのポート 443 経由の https://cloud.tenable.com への送信アクセス
- 管理インターフェースへのブラウザアクセス用のポート 8000 での HTTPS 経由の着信アクセス
-
-
特定と計画
-
セキュリティ目標を定義します。なぜスキャンしているのか、何を達成したいのか、何をもって成功とするかを定義します。
-
スキャンの優先度を決定します。クイックスキャンの範囲内にあるより詳細なスキャンが必要なターゲットウェブアプリケーションを特定します。
-
完全なカバレッジを確保します。スキャンする必要がある他の (特定されていない可能性がある) ウェブサーバー、サービス、アプリケーションがあるかどうかと、それらを見つける方法を決定します。
-
-
ドキュメンテーション
- すべてのデータを記録します。デプロイメント要件の完全な詳細、デプロイされたスキャナーリソース (該当する場合)、スキャン用に特定されたウェブアプリケーション、スキャンに適用した調整と関連する根拠をキャプチャするドキュメントを作成および管理します。
-
検出結果を伝達します。受信者、詳細レベル、レポート配布の頻度を特定するためのレポート要件を確立します。チケットシステムが脆弱性の詳細を必要とする一方で、開発者は PDF を必要とする場合があります。経営者は、全体的なエクスポージャーとリスク低減のより高いレベルのサマリーを好むことがよくあります。
スキャンの設定
分析ワークフローを準備し、ウェブアプリケーション資産の範囲を決定した後で、それらの資産のスキャンを設定して実行することができます。
Tenable では、より詳細なスキャン用の設定を判断できるように、最初に大まかな概要スキャンを実行することを推奨しています。
-
次のいずれかを行います。
-
概要スキャンを設定して実行する方法
-
次のいずれかを行います。
- 概要スキャンを実行して、どのウェブアプリケーションを Tenable Web App Scanning がデフォルトでスキャンすべきか判断するには、[概要] スキャンテンプレートを使用してスキャンを作成します。
- 概要スキャンを実行してウェブアプリケーションが一般的なセキュリティの業界標準と互換性があるかどうかを判断するには、[設定監査] スキャンテンプレートを使用してスキャンを作成します。
注意: Tenable が提供する概要スキャンのスキャンテンプレートでは認証は必要ありません。ただし、これらのスキャンから得られたプラグイン結果は、より詳細なスキャンを実行する際にウェブアプリケーションで必要になる認証情報のタイプを特定するのに役立ちます。
- スキャン結果とスキャン戦略を確認し、標準のウェブアプリケーションスキャンで使うときに調整が必要な設定を判断します。
-
-
標準スキャンを設定して実行する方法
- 評価のニーズに最も適したテンプレートを使用してスキャンを作成します。
- 包括的な脆弱性スキャンを実行するには、[スキャン] テンプレートを選択します。
- スキャンを実行して、ウェブアプリケーションが SSL/TLS 公開鍵暗号化を適切に実装しているかどうかを判断するには、[SSL TLS] テンプレートを選択します。
-
(オプション) ユーザーアクセス許可とプラグインの設定を含むスキャン設定をします。
注意: 標準スキャンに認証情報オプションを設定することもできます。ただし、認証情報が必要になるのは、ウェブアプリケーションの認証で必要とされる場合のみです。
- スキャンのステータスを監視します。
- 評価のニーズに最も適したテンプレートを使用してスキャンを作成します。
-
- スキャンを起動します。
- スキャン結果を表示して分析します。
検出結果を分析します。
詳細なスキャン、調整と最適化、ページタイムアウトの確認、ページにアクセスする時間の長さ、エラー、または反復的なコンテンツを削除する機会への入力として、クロールされたサイトマップを使用します。
より高い優先度の問題がないか「スキャンノート」を確認します。これにより、スキャン改善の提案が提供される可能性があります。
- ビジネスニーズに基づいてスキャンをさらに調整します。
詳細設定を試します。前の手順で収集したデータに基づいて、いくつかの場所でスキャン調整を実行します。これで、対象のウェブアプリケーション用にスキャンを更新してデプロイできます。詳細は、
を参照してください。
Tenable Web App Scanning のスキャン調整のデモについては、次の動画をご覧ください。
追加の設定
必要に応じて他の機能を設定し、既存の設定を調整します。
- スキャンに認証情報を追加します。
- サーバーの HTTP プロトコルに必要な方法を使用してスキャンでウェブアプリケーションに認証する必要がある場合は、HTTP サーバーベースの認証を追加します。
- ウェブアプリケーションに必要な方法を使用してスキャンでウェブアプリケーションに認証する必要がある場合は、ウェブアプリケーションの認証を追加します。
-
スキャン設定、ユーザーアクセス許可、プラグイン設定などのカスタム調整をさらに検討します。
ヒント: 各アプリケーションは固有なものです。スキャンを実行し結果を分析すると、スキャンを最も効率的に実行し、アプリケーションのすべての領域をカバーするのに役立つ手法が明らかになります。ウェブアプリケーションのサイズまたは複雑さによっては、スキャンが完了しても、結果を分析してさらに最適化することができます。Tenable では、スキャンが完了した後の「スキャンノート」とサイトマッププラグインへの添付ファイルを定期的に確認することを強く推奨しています。