ポリシー ルールの構文について

 

適用対象: Office 365 Enterprise, Live@edu, Forefront Online Protection for Exchange

Forefront Online Protection for Exchange (FOPE) でポリシー ルールを作成するとき、ルールの構文を 2 つのオプションから選択できます。1 つ目のオプションでは、文字列とワイルドカードの構文を組み合わせたコンマ区切り値 (CSV) を使用できます。このオプションは、FOPE 管理センターのポリシー ルール エディターの一覧に [基本] と表示されます。2 つ目のオプションでは、正規表現の構文で指定された文字のサブセットを使用できます。このオプションは、FOPE 管理センターのポリシー ルール エディターの一覧に [RegEx] と表示され、より複雑なルールで使用します。

RegEx 構文に詳しくない場合は、[基本] オプションを選択します。このオプションでは、コンテンツ フィルター用の簡単な表現を作成でき、一致表現をその表現が定義されているコンテキストに基づいて評価することによって正確な一致表現を記述できます。たとえば、IP アドレス フィールドでは正しい IP アドレスのみが受け入れられます。数値のパターンや単語のパターンのマッチングなどを使用する複雑なルールを作成する必要がある場合は、[RegEx] オプションを選択して、RegEx 構文文字のサブセットを使用することができます。このオプションでは、コンテキストベースの検証を使用することはできず、構文固有の検証のみが適用されます。

基本構文

[ポリシー ルール] エディターで [基本] を選択すると、一致表現をコンマで区切る CSV 構文を使用して表現の一覧を表示できます。また、単純な文字列とワイルドカード メタ文字を使用して、一致表現を拡張することもできます。同じ構文を [フィルター] からアップロードされた辞書ファイルに適用します。

基本構文の定義

メタ文字 説明

,

コンマは選択を表すメタ文字であり、選択文字または区切り文字とも呼ばれます。これはコンマの前または後に表示された表現と一致します。

abc, def, xyz は、abcdefxyz などと一致します。

*

アスタリスクはワイルドカード メタ文字であり、0 文字以上の文字を表します。

注意

この文字は、RegEx 構文の (.*) に相当します。

ab* は、abaabaaabaaaab12345667 などと一致します。

?

疑問符は任意の 1 文字を表します。

注意

この文字は、RegEx 構文の (.) に相当します。

ab? は、abaabbabcab1ab2 などと一致します。

\

バックスラッシュはエスケープ演算子です。基本構文でリテラル (,)、(*)、(?)、または (\) と一致させ、これらの文字の特別な意味を使用しないようにするには、基本構文の演算子の前にエスケープ演算子を置く必要があります。

注意

この文字は、RegEx 構文の () に相当します。

\*a\\bc\? は、*a\bc? と一致します。

/0 ~ /32

スラッシュ記号は、クラスレス ドメイン間ルーティング (CIDR) の表記を示します。この表記は、IP アドレスの最後のオクテットの後に、スラッシュ記号 (/) と 0 ~ 32 までの数字を追加して表すことができます。

注意

CIDR 表記は IP アドレスを表す場合にのみ適用され、他のコンテキストでは使用できません。

99.99.98.0/23 は、99.99.98.099.99.99.255 の範囲の IP アドレスと一致します。

注意

[ポリシー ルール] フィールドまたは辞書に入力できる文字は合計で 9,000 文字以下である必要があります。辞書ファイルのサイズの上限は 2 MB です。

RegEx 構文

[ポリシー ルール] エディターで [RegEx] を選択すると、テキスト、数字、または特殊文字のパターンと一致する複雑な表現を指定できます。たとえば、RegEx の文字のサブセットを使用して、viagra、vi@gra、vlagra など、1 つの単語のさまざまなバリエーションと一致させることができます。これによって必要なルールの数を最小限に抑えることができます。また、クレジット カード番号、社会保障番号、電子メール アドレス、および取り扱いに注意を要する単語や番号を表す同様の文字列をスキャンするような強力な一致表現を作成できます。

RegEx 構文の定義

[ポリシー ルール] エディターの [RegEx] オプションは、次の表に示すように、POSIX の基本正規表現構文および拡張正規表現構文のサブセットです。

文字の種類 文字 説明

メタ

^

キャレット メタ文字は、文字列の開始位置と一致します。

注意

ドル記号文字と組み合わせて使用すると、完全一致オプションと同じ機能になります。

^abc は、abc1234 と一致しますが、1234abc とは一致しません。

メタ

$

ドル記号メタ文字は、文字列の終了位置または文字列末尾の改行の直前の位置と一致します。

注意

キャレット文字と組み合わせると、完全一致オプションと同じ機能になります。

abc$ は、1234abc と一致しますが、abc1234 とは一致しません。

メタ

*

アスタリスクは、その直前の要素と 0 回以上一致します。

重要

この文字の使用には注意が必要です。この文字を使用した一致表現では一致件数が意図したよりも多くなる場合があります。

ab*x は、abxabbxabbbxabbbbx などと一致します。

メタ

+

プラス記号メタ文字は、その直前の要素と 1 回以上一致します。

この文字の使用には注意が必要です。この文字を使用した一致表現では一致件数が意図したよりも多くなる場合があります。

ab+x は、abbxabbbxabbbbxabbbbbx などと一致します。

メタ

.

ピリオド メタ文字は、任意の 1 文字 (改行文字を除く) と一致します。

ab.x は、ab1xab2xab3xab4x などと一致します。

メタ

?

疑問符は、その直前の要素と 0 回または 1 回一致します。

ab? は、aab と一致します。

メタ

|

パイプ文字は、選択肢つまり選択文字であり、演算子の前または後のいずれかにある表現と一致します。この処理は最初の (左側の) 文字から開始し、一致が見つかった時点で停止します。

abc|def|xyz は、abcdefxyzabc12345 などと一致しますが、a123caxm とは一致しません。

メタ

\

バックスラッシュを使用すると、ルールのコンテキストにおいて RegEx メタ文字がリテラル文字として扱われます。

x\*1\.5\+9\\x=y は、x*1.5+9\x=y と一致します。

クラス

\w

小文字の w を付加したバックスラッシュは、任意の単語文字 ("_" の付いた英数字を含む) と一致します。

\w123 は、a123bbb123c_c123xxx などと一致しますが、@123 とは一致しません。

クラス

\d

小文字の d を付加したバックスラッシュは、任意の 10 進数の値と一致します。

\dabc は、123abc12345abcxxx1abc1 などと一致しますが、abc123@abc123 とは一致しません。

クラス

\s

小文字の s を付加したバックスラッシュは、任意の空白文字と一致します。

abc\sdef は、abc def と一致します。

重要

RegEx 構文に詳しくない場合は、[基本] オプションを使用するか、または [拒否]、[暗号化]、[リダイレクト] などのポリシー ルール アクションと共に使用する前に、[テスト] ポリシー ルール アクションを使用してルールをテストすることをお勧めします。管理センターのポリシー ルールでは、RegEx 文字のサブセットのみがサポートされます。
ポリシー ルール フィールドに入力できる RegEx 文字は合計で 9,000 文字以下である必要があります。

RegEx を使用した一致表現のその他の作成例

メッセージのさまざまな部分と一致する RegEx 表現の例を次に示します。

  • ファイル拡張子との一致に使用されるピリオド (.) は、一致表現の後の任意の 1 文字と一致します。たとえば、r. は、文字 r で始まり、その後に任意の 1 文字が付いたファイル名と一致します。たとえば、一致表現 r. は、r1 などの 2 文字の組み合わせになっている拡張子と一致します。

  • リテラルとして一致させるには、すべての RegEx メタ文字にエスケープ演算子を付加する必要があります。RegEx 以外のメタ文字は、リテラルとして一致するので、エスケープ演算子を追加する必要はありません。ドメイン名のピリオドを一致させる場合、このピリオドには \. のようにエスケープ文字を追加する必要があります。一致表現 contoso\.com は contoso.com と一致します。

  • [ドメイン] オプションの場合、ドメインの一致は、電子メール ヘッダーの送信者または受信者ドメインの存在に基づいて処理されます。たとえば、contoso.com に基づいて処理を行うルールは、サブドメイン 123.contoso.com のメッセージにも影響を及ぼします。サブドメインを除いてドメイン名のみと一致させる場合には、キャレット メタ文字 ^contoso.com を使用してルールを構成します。このように構成されたルールは、contoso.com に対して送受信された電子メールのみと一致し、123.contoso.com に対しては適用されません。

  • 電子メールの件名や、本文、添付ファイル名などで使用されている "ness" で終わる単語を検索する場合、アスタリスクとピリオドを組み合わせて一致を実行します。たとえば、.*ness という検索語は "wilderness" や "happiness" などの結果を返します。

  • ピリオド (.) の後に付けたアスタリスク (*) は、0 個以上の文字を表します。たとえば、一致表現 contoso\..* は "contoso.com" と一致しますが、"contoso.microsoft.com" や "contoso.mydomain.ca" などとも一致します。ドメインのトップレベル ドメイン (TLD) のみと一致させるには、一致表現をより具体的にする必要があります。contoso\.\w\w\w$ は、"contoso.com"、"contoso.org"、または "contoso.tv1" と一致しますが、ピリオドの後にある英数字が 3 文字を超えるか、3 文字未満であるドメインとは一致しません。

正規表現について

RegEx と略される正規表現は、多くのシステムおよびプログラミング言語で使用される標準の正式な言語です。正規表現は、適切な方法で使用すれば効果的に機能します。構文の定義、例、チュートリアルなどの詳細については、以下のようなさまざまな Web サイトを参照できます。

-
MSDN 正規表現の概説

-
Regular Expressions.Info の Web サイト

-
Regular Expression Library の Web サイト (英語の可能性あり)