スキャンパフォーマンスを向上させたいとお考えかもしれません。スキャンの速度を上げたい、またはより正確にしたいでしょうか。または、スキャンに使用するネットワークリソースを少なくしたいとお考えかもしれません。以下のセクションでは、スキャンテンプレートでの作業に関するスキャンの調整および指示の、ベストプラクティスを提供します。
スキャンの調整は慎重に扱うべきプロセスです。1つの設定を変更して特定のパフォーマンスを向上させる場合、パフォーマンスの別の面の落ち込みが見られるかもしれません。スキャンテンプレートに手を加える前に、以下の2つの事項を把握しておくことが重要です:
目標および、それらがパフォーマンス「トライアングル」にどのように関連しているかを特定します。 調整時には「トライアングル」を忘れずにをご参照ください。上記を行うことで、より意義のある環境コンテキストにおいて、スキャンテンプレート設定を考察するために役立ちます。設定を変更する前に、スキャンテンプレートの要素に必ず精通しておくようにします。
また、スキャンパフォーマンスの調整にはある種の試行錯誤、技巧、およびアプリケーションの仕組みについての熟知が必要であることに留意してください。最も重要なことは、固有のネットワーク環境を理解しなければならないということです。
この入門セクションでは、スキャンの性能をどのように調整するか、および異なる内蔵スキャン・テンプレートが異なるスキャニング・ニーズにどのように対処しているかについて説明します:
また、すべての内蔵スキャンテンプレートおよびそれらの使用ケースを比較する付録もご参照ください:
内蔵テンプレートに精通することは、固有のテンプレートをカスタマイズするために役立ちます。ビルトインテンプレートの多くの好ましい設定を組み込み、いくつかの設定をカスタマイズして、カスタム・テンプレートを作成可能です。または、ゼロから新しいテンプレートを作成可能です。
カスタム・スキャンテンプレートを作成するには、以下のセクションに移動します:
スキャンパフォーマンスを調整する前に、なぜ調整を行うのかを必ず把握しておきます。何を変更するか?何を向上させる必要があるか?スキャン実行速度を上げる必要があるか?スキャン精度を上げる必要があるか?リソース・オーバーヘッドを削減したいか?
以下のセクションでは、これらの質問に具体的に対処します。
以下のシナリオに見られるように、全般的なスキャン速度を上げることが目標である場合があります:
注意: スキャン完了に例外的に時間が長くかかっている場合、当該スキャンを終了して技術サポートに連絡してください。
以下のシナリオに見られるように、リソースへの負担を軽減することが目標である場合があります:
以下のシナリオに見られるように、スキャンから十分な情報が得られていないかもしれません:
スキャン設定を調整すると、1つまたは複数のパフォーマンスカテゴリに影響が出ます。
これらのカテゴリには、前述セクションで説明した調整に関する一般的な目標が反映されています:
これらの3つのパフォーマンスカテゴリは相互に依存しています。これらをトライアングルとして視覚化することが有用です。
トライアングルの1辺を長くすると、すなわち1つのパフォーマンスカテゴリーを優先すると、その他の2辺のうち少なくとも1つが短くなります。調整によりトライアングルの3つの辺すべてが長くなることを期待するのは、非現実的です。しかし3辺のうち2つを長くすることは、多くの場合可能です。
通常、スキャン実行により多くの時間をかけると、スキャン速度が上がります。利用ケースの1つとして、世界のさまざまなロケーションでオークションを行っている会社が挙げられます。アセット目録は1,000を少し超えています。この会社はオークション進行中はスキャンを実行できません。なぜならこれらの期間はネットワークにおいて、時間に敏感なデータを一時の中断もなく行き来させなければならないからです。オークションをさまざまなタイムゾーンで開催しているため、スキャンのスケジュール化は一筋縄ではいきません。スキャンの時間枠は非常に限られています。この会社にとっての最良のソリューションは、スキャンをできる限り速く終了できるよう帯域幅を大量に使用することです。
このケースにおいて、精度を犠牲にせずスキャン時間を減らすことは可能です。しかし作業負荷が高いため、スキャン・メカニズムが不安定になり得るレベルまでリソースが酷使される可能性があります。このケースでは、例えば認証スキャンをオフにするなど、精度レベルを下げる必要があると思われます。
スキャン速度を上げるには、以下を含めさまざまな方法があります:
注意: 追加のスキャン・エンジンを配備すると、帯域幅可用性が低下する場合があります。
スキャンの精度を上げるということは、セキュリティに関連する情報をより多く見つけるということです。
これを行う方法は多くありますが、どれにも、パフォーマンストライアングルに従い代償が伴います:
発見されたアセット、サービス、または脆弱性のチェックの数を増やす。これは、時間がより長くかかります。
ポリシー・コンプライアンスおよびホットフィックスのチェックによりスキャンを「深く」する。この種のチェックには認証資格情報(credentials)が必要であり、時間がかなり長くかかります。
アセットをより頻繁にスキャンする。例えば、ウェブサーバーまたは仮想プライベート・ネットワーク(VPN)集信装置といった周辺ネットワークアセットはインターネットへと露出しているため、攻撃の影響をより受けやすくなっています。これらを頻繁にスキャンすることが推奨されます。上記を行うには、より多くの帯域幅またはより長い時間が必要です。時間の問題は特に、深いファイル構造を持つウェブサイトに当てはまります。
ネットワークサービスをスキャンする場合は、ライセンス制限に注意してください。本アプリケーションがサービスへの接続を試行すると、そのサービスは「クライアント」またはユーザーとして現れます。当該サービスには、サポート可能な同時クライアント接続の数に制限が定義されている場合がります。本アプリケーションによる接続試行時に当該サービスがそのクライアント限度量に達している場合、サービスはこの試行を否認します。これは、telnetベースのサービスに多く見られるケースです。本アプリケーションがサービスに接続してスキャンできない場合、そのサービスはスキャンデータには含まれません。すなわち、スキャン精度は低下します。
より多くのリソースを利用可能とするということは、主に、スキャンが消費する帯域幅をどれだけ減らせるかということを意味します。また、特に32ビットのオペレーティング・システム上でのRAM使用量を減らすことも含まれます。
環境の4つの主要エリアでの帯域幅可用性を検討する。これらの1つまたは複数がボトルネックとなる可能性があります:
特に懸念されるのは、ターゲットアセットが実行されているネットワークです。なぜなら、全帯域幅の一部が常にビジネス目的で使用されているからです。これは、ワークステーションが稼働中でラップトップがネットワークに接続されている営業時間中にスキャンを実行するよう、スケジュール化する場合に特に当てはまります。また帯域幅共有も、バックアッププロセスが進行中であると、営業時間外中の問題となり得ます。
注目すべき関連する2つの帯域幅評価基準は、スキャン中に交換されるデータパケットの数と、相関付けするファイアウォールの状態です。本アプリケーションが1秒あたりに送信するパケット(pps)が多すぎる場合(特にスキャンのサービス発見フェーズおよび脆弱性のチェックフェーズ中)、接続状態を追跡するファイアウォールの容量を超える場合があります。ここでの危険性は、ファイアウォールがターゲットアセットからのリクエストパケットまたは応答パケットを除外し始めるということであり、偽陰性に繋がる可能性があります。つまり、帯域幅に負担をかけると精度低下が引き起こされ得るということです。
どの程度の帯域幅を使用すべきか判定するための式は、存在しません。貴社が平均的に使用してる帯域幅の量、および扱うことができる帯域幅の量を知ることが必要です。また、本アプリケーションが帯域幅をどの程度消費しているかをモニタリングして、そのレベルを適宜調整する必要があります。
例えば、貴社のネットワークがサービス中断なしに最大10,000 ppsを扱うことができ、かつ任意時間の通常業務のプロセスに平均3,000 ppsかかる場合、本アプリケーションを7,000 ppsの枠内で動作させることが目標となります。
帯域幅を制御するメインのスキャンテンプレート設定は、スキャンスレッドおよびスキャンされる最大同時ポート数です。
通常、帯域幅を節約することの代償は時間です。
例えば、ある会社が米国内の一地域に止まるフルサービスのトラックを運営しているとします。セキュリティチームは、複数の遠隔ロケーションを中央オフィスからスキャンしています。帯域幅はネットワーク接続のタイプが原因で、かなり低くなっています。各ロケーションのアセットの数が25未満であるため、遠隔スキャン・エンジンの追加はあまり効率的なソリューションではありません。この状況で実行可能なソリューションは、スキャンスレッドの数を2~5の間に減らすことです。これは、デフォルト値10よりかなり低い値です。
リソース可用性を向上させるには、以下を含め、さまざまな他の方法があります:
スキャンテンプレートには、アセットのスキャン方法を定義するさまざまなパラメータが含まれています。ほとんどの調整手順に、スキャンテンプレート設定の編集が必要とされます。
内蔵スキャンテンプレートは、PCIコンプライアンス、Microsoft Hotfixパッチ検証、監視制御とデータ収集(SCADA)設備監査、およびウェブサイト・スキャンといった、異なる利用ケース向けに設計されています。スキャンテンプレートの詳細については、 スキャンテンプレートとタイトルが付けられたセクションをご参照ください。本セクションには、各スキャンテンプレートの利用ケースおよび設定が含まれています。
注意: ポート発見およびパケットディレイといった、スキャンに関連する技術的コンセプトに精通するまでは、内蔵テンプレートを使用することが推奨されます。
内蔵テンプレートは、変更を行うことなく使用可能です。または、内蔵テンプレートに基づきカスタム・テンプレートを作成可能です。また、新規のカスタム・テンプレートも作成可能です。カスタマイズを選択する場合、内蔵スキャンテンプレートはそれ自体がベストプラクティスであることを忘れないでください。内蔵テンプレートは、特定の使用ケースに対応しているばかりでなく、パフォーマンストライアングル内の各要素(時間、リソース、精度)の微妙なバランスを反映しています。
新規テンプレートを作成するオプションを選択した場合、多くの基本設定が内蔵の値に設定されていることに気付かれることでしょう。これらの値は、その目的についての精緻な実用的知識がある場合を除き、変更しないことをお薦めします。これらの内蔵値を変更する場合は、特に注意を払ってください。
内蔵テンプレートに基づきテンプレートをカスタマイズする場合、すべてのスキャン設定を変更する必要はありません。例えば、スレッドの数またはポートの範囲だけを変更して、その他のすべての設定をそのままにすることが可能です。
これらの理由により、あらゆるカスタマイズを内蔵テンプレートを基に行うことが良策であるといえます。内蔵スキャンテンプレートに精通すること、および共通する内容や異なる度合いを理解することから始めてください。以下のセクションは、4つのサンプルテンプレートの比較です。
スキャンのフェーズを理解することは、スキャンテンプレートの構造を理解するために役立ちます。
各スキャンには3つのフェーズがあります:
注意: スキャンの発見フェーズの概念は、アセットの発見とは異なっており、同概念は環境内で潜在的なスキャン対象を見つける方法を指します。
アセットの発見フェーズ中、スキャン・エンジンはネットワークアセットがLIVEであることを確認するため、シンプルなパケットをターゲットIPアドレスへと高速で送信します。スキャンテンプレート設定パネルのアセットの発見ページおよび発見パフォーマンスページで、これらの交信試行の時間間隔およびその他のパラメータを設定可能です。
アセットが特定されるとスキャン・エンジンはサービスの発見フェーズを開始し、さまざまなポートの接続を試行してサービスが有効な接続を確立していることを確認ます。本アプリケーションはウェブアプリケーション、データベース、オペレーティング・システム、およびネットワークハードウェアをスキャンしますので、アクセスを試行する機会が多くなります。スキャンテンプレート設定パネルのサービスの発見ページおよび発見パフォーマンスページで、このフェーズに関連する属性を設定可能です。
脆弱性のチェックフェーズとして知られる第3のフェーズ中に、本アプリケーションはスキャンテンプレートにリストされている脆弱性の確認を試行します。スキャンテンプレート設定パネルの脆弱性のチェックページで、どの脆弱性についてスキャンするかを選択可能です。
その他の設定オプションには、スキャンされるサービスのタイプの制限、特定の脆弱性の検索、およびネットワーク帯域幅使用量の調整などがあります。
スキャンの各フェーズにおいて、本アプリケーションはフィンガープリントと呼ばれる方法を通じて、アセットに関する詳細をできる限り多く特定します。バッファのリザーブされた領域内の特定のビット設定、応答のタイミング、または固有の確認応答交換といったプロパティを検査して、本アプリケーションはアセットのハードウェア、オペレーティング・システム、およびおそらく、当該システム下で実行中のアプリケーションについてのインジケータを特定します。周到に保護されたアセットは、その存在、そのコンポーネントをネットワーク・スキャナから隠します。
内蔵スキャンテンプレートに精通したら、異なる時に異なるパフォーマンス・ニーズを満たしていることに気付くかもしれません。
ヒント: さまざまなレポート・テンプレートを利用して、多くの有用な方法でスキャン結果を解析できます。スキャンは、特に「深い」スキャンは、リソース投資であるといえます。レポートは、その投資から可能な限り最大の利益を得る助けとなります。
例えば、ウェブ監査を毎週またはより頻繁に実行するようスケジュール化し、インターネット対応のアセットをモニタリングすることが可能です。これはより高速なスキャンでありリソースの消費が少ないです。パッチ検証のためのMicrosoftホットフィックス・スキャンを、毎月行うようスケジュール化可能です。このスキャンには認証資格情報(credentials)が必要ですので、時間が長くかかります。その代わり、頻繁に行う必要はありません。最後に、網羅的スキャンを四半期に1度実行するようスケジュール化して、環境の詳細かつ包括的な見解を得ることが可能です。時間と帯域幅はかかりますが、この場合も、スキャンを行う頻度は少なくなりますので事前に計画可能です。
注意: テンプレートを定期的に変更する場合、同一テンプレートを利用して自動間隔で実行するようスキャンをスケジュール化する利便性が犠牲になります。
精度を妥協せず時間およびリソースを最大化する別の方法は、ターゲットアセットを入れ変えることです。例えば、すべてのワークステーションを毎晩スキャンするのではなく、3分の1をスキャンし、その後残りの3分の2を次の48時間以内にスキャンします。または、ターゲットポートを同様のやり方で入れ替えます。
スキャンパフォーマンスの調整は、テンプレート内の設定を1つか2つオフにするという、シンプルな調整で済むことがあります。チェックする事項が少なければ、スキャン完了に必要な時間または帯域幅は少なくなります。しかしスキャンがやや包括的でなくなり、すなわち精度は落ちます。
注意: 認証資格情報(credentials)チェックは精度に必要不可欠です。なぜならそれにより、「深い」システムスキャンの実行が可能となるからです。認証資格情報(credentials)チェックは絶対に必要ないと確信してから、オフにしてください。
スキャンの範囲にウェブアセットが含まれていない場合、ウェブスパイダーをオフにし、ウェブ関連の脆弱性のチェックを無効化します。ホットフィックス・パッチを検証する必要がない場合、ホットフィックス・チェックを無効化します。認証資格情報(credentials)チェックの実行に興味がない場合、オフにします。認証資格情報(credentials)チェックを実行しない場合、必要なものだけを確実に実行するようにします。
ここでの重要注意事項は、何をオフにすべきかを知るにはネットワーク上で何を実行中であるかを正確に把握しておく必要があるということです。ここで、発見スキャンが非常に価値を持つようになります。発見スキャンにより、信頼できる動的アセット目録が提供されます。例えば、発見スキャンからLotus Notes/Dominoを実行しているサーバーがないという事実が分かった場合、これらのポリシーチェックをスキャンから除外できます。