正規表現を使用する

正規表現はregexとも呼ばれるテキストストリングで、任意の状況でアプリケーションに表示される情報またはメッセージの検索に使用されます。Regex表記法パターンには、文字、数字、特殊文字ドット、クエスチョンマーク、プラス記号、括弧、アスタリスクなどが含まれます。これらのパターンが、どのストリングを検索するかに加え、どのように検索するかという指示を、検索アプリケーションに出します。

正規表現はスキャン操作の設定に有用です

regex作成についての一般注意事項

regexは、直接マッチを見つけるための、文字からなるシンプルなパターンです。例えばパターンnapは、na、およびpの文字が連続してその順序通りに起こっている、ストリング内の文字の組み合わせにのみマッチします。このパターンに基づく検索により、snapおよびsynapseといったストリングへのマッチが返されます。どちらのケースもサブストリングnapにマッチしています。ストリングan aperture内にはマッチはありません。なぜなら、サブストリングnapが含まれていないからです。

1つ以上のnまたは空白スペースを含むといった、直接マッチ以外の結果を検索が必要としている場合、パターンに特殊文字が必要となります。例えばパターンab*cは、単一のaの後ろに0個以上のbが続き、そのすぐ後にcが続く文字の組み合わせにマッチします。アスタリスクは、直前の文字の0以上のオカレンスを示します。ストリングcbbabbbbcdebc内で、当該パターンはサブストリングabbbbcにマッチします。

アスタリスクは、特殊文字をどのように利用して検索を修正できるかの一例です。その他の単一または複数の特殊文字を使用して、さまざまな検索パラメータのタイプを作成可能です。

regexによるファイル名検索の仕組み

Nexposeは、検索ストリングをディレクトリパス全体およびファイル名と比較して、マッチするファイルを検索します。ターゲットシステム上でファイル検索を設定するをご参照ください。検索パターンに対して最長マッチを行うと、結果テーブルにファイルおよびディレクトリが現れます。^および$といったregexアンカーを含めない場合、検索に複数のマッチが生じる可能性があります。以下の例を参照して、正規表現を利用した検索アルゴリズムの仕組みをより良く理解してください。検索マッチはボールド体であることに留意してください。

検索パターン.*xlsにより

C$/Documents and Settings/user/My Documents/patientData.xls

結果は1マッチ

C$/Documents and Settings/user/My Documents/patientData.xls

C$/Documents and Settings/user/My Documents/patientData.doc

結果はゼロマッチ

C$/Documents and Settings/user/My Documents/xls/patientData.xls

結果は1マッチ

C$/Documents and Settings/user/My Documents/xls/patientData.xls

C$/Documents and Settings/user/My Documents/xls/patientData.doc

結果は1マッチ

C$/Documents and Settings/user/My Documents/xls/patientData.doc

検索パターン^.*xls$により

C$/Documents and Settings/user/My Documents/patientData.xls

結果は1マッチ

C$/Documents and Settings/user/My Documents/patientData.xls

C$/Documents and Settings/user/My Documents/patientData.doc結果はゼロマッチ

ウェブサイトログオン時の正規表現の利用方法

Nexposeがウェブアプリケーションへのログオン試行に成功すると、ウェブサーバーはログオン成功後にユーザーが通常目にするHTMLページを返します。ログオン試行に失敗すると、ウェブサーバーは無効なパスワードといった失敗メッセージが記載されたHTMLページを返します。

HTMLフォームまたはHTTPヘッダを持つウェブアプリケーションへとログオンするよう本アプリケーションを設定するには、失敗メッセージについてregexを指定する必要があります。ログオンプロセス中に、失敗メッセージが記載されたHTMLページに対するregexのマッチが試行されます。マッチがある場合、本アプリケーションは試行が失敗したと認識します。その後、スキャンログおよびセキュリティ・コンソール・ウェブ・インターフェースに失敗通知が表示されます。マッチがない場合、本アプリケーションは試行が成功したと認識し、スキャンを進めます。