Nexposeではウェブサイトをスパイダー巡回して、ディレクトリ構造、デフォルトディレクトリ、サーバー上のファイルとアプリケーション、切れたリンク、アクセス不能なリンク、およびその他の情報を検出することが可能です。
本アプリケーションはその後、SQLインジェクション、クロスサイトスクリプティング(CSS/XSS)、バックアップスクリプトファイル、読み込み可能CGIスクリプト、非セキュアなパスワード使用、およびソフトウェア欠陥や設定エラーから生じるその他の問題といった、セキュリティの不具合の証拠を分析します。
一部の内蔵スキャンテンプレートは、デフォルトでウェブスパイダーを利用しています:
これらのテンプレートの設定を調整可能です。また、ウェブスパイダー設定をカスタムテンプレート内で設定可能です。スパイダーは、各ウェブページ内のリンクを調べて、どのページがスキャンされたかを判定します。多くのウェブサイトにおいて、まだスキャンが行われていないページではアドレスバー内にベースURLが表示され、その後パラメータ介在性のリンクが表示されます。
例えばアドレス、www.exampleinc.com/index.html?id=6では、?id=6パラメータはおそらくブラウザに配信されるべきコンテンツを指しています。クエリストリングを含める設定を有効化する場合、スパイダーはフルストリングwww.exampleinc.com/index.html?id=6を、すでに検索されたすべてのURLページに対してチェックして、このページが分析されたかどうかを確認します。
設定を有効化しない場合、スパイダーは?id=6パラメータなしでベースURLのみをチェックします。
スキャンするウェブサイトへのアクセスを得るため、本アプリケーションは広く利用されているウェブブラウザとしてウェブサーバーアプリケーションに表示されます。ブラウザが行うのと同様に、ウェブページリクエストを送信してこれを行います。このリクエストには、ヘッダと呼ばれる情報項目が含まれます。ヘッダの1つであるユーザーエージェントは、ユーザーのブラウザの特徴を定義します。具体的には、バージョン番号やサポートされるウェブアプリケーション技術などです。ユーザーエージェントはウェブサイトに対して、本アプリケーションを特定のブラウザとして表現します。なぜなら、一部のウェブサイトはHTTPリクエストをサポートしておらず拒否するからです。デフォルトのユーザーエージェントストリングは、ターゲットウェブサイトに向けて本アプリケーションをInternet Explorer 7として表現します。
一般のウェブスパイダー設定を設定するには:
注意: ウェブスパイダーチェックボックスを利用してクエリストリングを含めると、スパイダーはより多くのリクエストをウェブサーバー宛てに送ります。これにより全体的なスキャン時間が増大し、正規ユーザーのためのウェブサーバーのパフォーマンスに影響が出る可能性があります。
本テストは、ウェブサーバーに保存された犯意のあるコード経由で起こる、危険な攻撃のリスク削減に役立ちます。これを有効化すると、ウェブスパイダーのスキャン回数が増える場合があります。
注意: デフォルトのユーザーエージェント設定を変更すると、本アプリケーションがウェブサイトから受け取るコンテンツが修正される場合があります。
どのユーザーエージェントストリングを入力すべきか分からない場合、ウェブサイトデベロッパーまでお問い合わせください。
(任意)ウェブスパイダーを有効化して弱い認証資格情報(credentials)の利用をチェックすることが可能です。
ウェブスパイダーはスキャン中にログオンフォームを発見しますので、これらのフォームがよく利用されているユーザー名やパスワードを受け入れるかどうかを判定できます。受け入れる場合、この慣行をエクスプロイトする自動攻撃に対しては脆弱となります。ウェブスパイダーは、チェックを実行するためよく利用されている認証資格情報(credentials)でこれらのフォームからのログオンを試行します。試行が成功すると、脆弱であると認識されます。
注意: 本チェックにより、特定のセキュリティポリシーを持つ認証サービスで、これらのよくある認証資格情報(credentials)を利用するアカウントのロックアウトが起こるかもしれません。
本オプションは、スパイダーが解決可能な固有のホスト名の最大数を設定します。この機能により、特に大規模なウェブサイトの場合、スパイダープロセスにかなり時間がかかるようになります。なぜなら、クロスリンクチェックが頻繁に行われるからです。許容可能なホストの範囲は1~500です。
ディレクトリ深さを制限すると、特に大規模なサイトの場合、時間を大幅に節約できます。ディレクトリトラバーサルを制限しない場合は、当該フィールドに0と入力します。デフォルト値は6です。
注意: 時間制限のある反復スケジュール化スキャンを実行する場合、ターゲットサイトの一部が制限時間の終わりにスキャンされないまま残る可能性があります。後続のスキャンはウェブスパイダーが中断したところから再開されませんので、ターゲットウェブサイトの全スキャンが完了されないという場合もあり得ます。
時間制限により、特に大規模なターゲットウェブサイトの場合、スキャンが割り当て時間枠より長くかかることを防止できます。デフォルト値0のままにすると、制限時間なしとなります。許容可能な範囲は1~500です。
これは、大規模サイトにとって時間節約となる措置です。許容可能な範囲は1~1,000,000ページです。
注意: 時間制限とページ制限の両方を設定する場合、ウェブスパイダーは、最初の制限に達したときにターゲットウェブサイトのスキャンを停止します。
本アプリケーションは脆弱性として慎重に扱うべきと指定されたフィールド名をレポートします:フォーム作業によりクリアの慎重に扱うべきデータが送信されます。正規表現に一致すると、慎重に扱うべきデータフィールド名であると認識されます。
ディレクトリパスに関連するウェブスパイダー設定を設定するには:
Robots.txtは、一般に公開されていないウェブサイトの全部/一部にスパイダーやその他のウェブロボットがアクセスすることを防止する、表記法です。
注意: 含まれるブートストラップパスのスキャン範囲は、ウェブスパイダー設定で設定した時間制限およびページ制限により変わります。ブートストラップパスをスキャンする前にスキャンが指定時間またはページ制限に達した場合、これらのパスはスキャンされません。
例:/myapp.複数のエントリをカンマで区切ります。当該フィールドを空欄にすると、スパイダーはブートストラップパスをスキャンに含めません。
除外パスを指定すると、本アプリケーションはこれらのURLをスパイダーすることも、脆弱性またはそれらに関連するファイルを発見することも試みません。当該フィールドを空欄にすると、スパイダーはいかなるパスもスキャンから除外しません。
希望に応じて、その他のスキャンテンプレート設定を設定します。スキャンテンプレートの設定が終了したら、保存をクリックします。
ウェブスパイダーはウェブサーバーを巡回して、ウェブサイトの完全なレイアウトを判定します。これは徹底したプロセスであり、ウェブサイト保護の威力が高まります。ほとんどのウェブアプリケーション脆弱性テストは、ウェブスパイダーに依存しています。
Nexposeはスパイダーデータを利用して、SQLインジェクション、クロスサイトスクリプティング(CSS/XSS)、バックアップスクリプトファイル、読み込み可能CGIスクリプト、セキュアでないパスワードの利用、その他カスタムソフトウェアの欠陥や誤った設定から生じる多くの問題といった、よくある問題のカスタムウェブアプリケーションを評価します。
デフォルトでは、ウェブスパイダーは3つのスレッドと20ミリ秒のパーリクエストディレイを使用して、サイトを巡回します。これにより生成されるトラフィック量は、発見されたリンク済みサイトコンテンツの量により異なります。複数プロセッサ・システム上でアプリケーションを実行中である場合、スパイダースレッドの数はプロセッサあたり3つに増加します。
完全なウェブスパイダースキャンを、500ページをホストする応答型サーバーに対して行う場合、ターゲットアセットにより平均150ミリ秒あたり1ページが提供されると仮定すると、かかる時間は90秒にやや満たないという計算になります。10,000ページをホストする同一サーバーに対するスキャンには、約28分かかります。
ウェブスパイダー用のスキャンテンプレートを設定する場合、ディレクトリ最大数または深さ、さらにはウェブサイト当たりの巡回ページ最大数を入力します。これらの値により、ウェブスパイダーにかかる時間を制限可能です。デフォルトでは、スパイダーはクロスサイトリンクを無視し、スキャン中のエンドポイントのみに留まります。
アセット目録にウェブサイトが含まれていない場合、必ずこの機能をオフにしてください。オンになっていると非常に時間がかかる場合があります。