Exchange 2013 中規則套件的比對方法和技術

適用於:Exchange Server 2013

本主題描述在數據外洩防護 (DLP) XML 檔案中比對模式和辨識項的技巧,其設計目的是要包含您自己的自定義敏感性資訊類型規則套件。 建立格式正確的 XML 檔案之後,您可以使用 Exchange 系統管理中心 (EAC) 或 Exchange 管理命令介面匯入檔案,以協助建立 Microsoft Exchange Server 2013 DLP 解決方案。 在您可以使用此處所述的比對方法之前,您應該已經啟動 DLP XML 檔案。 如需定義您自己的 DLP 範本和 XML 檔案的詳細資訊,請參閱 定義您自己的 DLP 範本和資訊類型

比對元素

專案Match會在 和 Evidence 元素內Pattern使用,以表示要比對的基礎關鍵詞、regex 或函式。 比對本身的定義會儲存在 專案外部, Rule 並透過 idRef 必要的 屬性參考。 多個 Match 元素可以包含在 Pattern 定義中,而 Pattern 定義可以直接包含在 專案中, Pattern 或是使用 Any 元素來定義相符語意的組合。

<?xml version="1.0" encoding="utf-8"?>
<Rules packageId="...">
        ...
<Entity id="...">
  <Pattern confidenceLevel="85">
             <IdMatch idRef="FormattedSSN" />
             <Match idRef="USDate" />
             <Match idRef="USAddress" />
  </Pattern>
</Entity>
        ...
         <Keyword id="FormattedSSN "> ... </Keyword>
         <Regex id=" USDate "> ... </Regex>
         <Regex id="USAddress"> ... </Regex>
        ...
</Rules>

定義關鍵字比對

常見的規則需求是根據已知的關鍵詞字串表達式進行比對。 這是使用 Keyword 專案來完成。 Keyword 元素具有屬性 id ,可做為對應實體或親和性規則中的參考。 單一關鍵詞元素可以在多個實體和親和性規則中參考。

比對可以使用完全相符或以字組比對為基礎的演算法來執行。 完全相符使用區分大小寫的演算法,以指定的語言搜尋文字。 Word 比對會根據文字界限套用比對演算法。 要比對的字詞可以使用 Term 子元素內嵌在關鍵詞定義中。

提示

在 regex 上使用常數式比對樣式,以提升效率和效能。 只有在常數式相符專案不足且需要正則表達式的彈性的情況下,才使用 regex 比對。

<Keyword id="Word_Example">
    <Group matchStyle="word">
       <Term>card verification</Term>
       <Term>cvn</Term>
       <Term>cid</Term>
       <Term>cvc2</Term>
       <Term>cvv2</Term>
       <Term>pin block</Term>
       <Term>security code</Term>
    </Group>
</Keyword>
...
<Keyword id="String_Example">
    <Group matchStyle="string">
       <Term>card</Term>
       <Term>pin</Term>
       <Term>security</Term>
    </Group>
</Keyword>

定義規則運算式的比對

另一個常見的比對方法是以正則表達式為基礎。 正則表達式比對的彈性,使得這是實作驅動程式授權號碼、位址等數據相符專案的常見選擇。 常見的正則表達式語法是用來定義 regex 模式。 下表提供一些最常見的正則表達式令牌範例。

提示

在 regex 上使用常數式比對樣式,以提升效率和效能。 只有在常數式相符專案不足且需要正則表達式的彈性的情況下,才使用 regex 比對。

符號 意義
c 比對常值字元 c 一次,除非它是其中一個特殊字元。
^ 比對一行的開頭。
. 比對任一非新行的字元。
$ 比對一行的結尾。
| 運算式之間的邏輯 OR。
() 群組子運算式。
[] 定義字元等級。
* 不比對上述運算式或比對更多次。
+ 比對一次或更多次上述運算式。
? 不比對上述運算式或比對一次。
{n} 比對 n 次上述運算式。
{n,} 至少比對 n 次上述運算式。
{n, m} 至少比對 n 次上述運算式,最多比對 m 次。
\D 比對一位數。
\D 比對不是數位的字元。
\w 比對字母字元,包含底線。
\W 比對不是Alpha字元的字元。
\s 比對一個空白字元(任何 \t、 \n、 \r 或 \f)。
\S 比對一個非空白字元。
\t 定位字元。
\n 新行。
\R 歸位字元。
\F 換頁字元。
\ m 逸出 m,其中 m 是上述其中一個中繼字元: ^, ., $, |, (), [, ], *, +, ?, \, /

Regex 元素具有屬性 id ,可做為對應實體或親和性規則中的參考。 單一 Regex 元素可以在多個實體和親和性規則中參考。 Regex 運算式會定義為 Regex 元素的值。

<Regex id="CCRegex">
     \bcc\#\s|\bcc\#\:\s
</Regex>
...
<Regex id="ItinFormatted">
    (?:^|[\s\,\:])(?:9\d{2})[- ](?:[78]\d[-
     ]\d{4})(?:$|[\s\,]|\.\s)
</Regex>
...
<Regex id="NorthCarolinaDriversLicenseNumber">
    (^|\s|\:)(\d{1,8})($|\s|\.\s)
</Regex>

結合多個比對元素

提高比對信賴度的常見技巧是定義多個 Match 元素之間的語意,例如必須發生一或多個相符專案。 Any 元素允許在多個相符項目之間定義邏輯。 Any 元素可以當做 Pattern 元素中的子元素使用。 它包含一或多個 Match 子專案,並定義其間相符項目的邏輯。 如需所有相符專案、「非」邏輯和完全相符計數的 XML 程式代碼範例,請參閱下文。

選擇性的 minMatches 屬性可以 (預設值 = 1) 來定義必須符合才能滿足相符專案的最小 Match 元素數目。 同樣地,您可以使用選擇性的 maxMatches 屬性 (預設值 = 子系 Match 元素的數目,) 定義必須符合才能滿足相符專案的最大 Match 元素數目。 這些條件會根據 minMatches 和 maxMatches 屬性的使用方式使用邏輯運算符來結合,允許下列語意:

  • 比對所有子比對元素

    不比對任何子比對元素

    比對任一子比對元素的精確子集

<Any minMatches="3" maxMatches="3">
    <Match idRef="USDate" />
    <Match idRef="USAddress" />
    <Match idRef="Name" />
</Any>
<Any maxMatches="0">
    <Match idRef="USDate" />
    <Match idRef="USAddress" />
    <Match idRef="Name" />
</Any>
<Any minMatches="1" maxMatches="1">
    <Match idRef="USDate" />
    <Match idRef="USAddress" />
    <Match idRef="Name" />
</Any>

以更多辨識來增加信賴等級

針對實體基底規則,提高信賴度的另一個選項是定義多個 Pattern 元素,每個元素都有增加的相互關聯辨識項數目。 這可藉由使用 minMatches 和 maxMatches for Any 元素來建立獨立模式,並根據增加的相互關聯辨識項數目來提高信賴等級。 例如:

  • 如果找到一個確認辨識項:信賴等級為 65%
  • 如果有兩個片段:信賴等級為 75%
  • 如果三個片段:信賴等級為85%則為
<Entity id="..." patternsProximity="300" >
    <Pattern confidenceLevel="65">
        <IdMatch idRef="UnformattedSSN" />
        <Any maxMatches="1">
            <Match idRef="USDate" />
            <Match idRef="USAddress" />
            <Match idRef="Name" />
        </Any>
    </Pattern>
    <Pattern confidenceLevel="75">
        <IdMatch idRef="UnformattedSSN" />
        <Any minMatches="2" maxMatches="2">
            <Match idRef="USDate" />
            <Match idRef="USAddress" />
            <Match idRef="Name" />
        </Any>
    </Pattern>
    <Pattern confidenceLevel="85">
        <IdMatch idRef="UnformattedSSN" />
        <Any minMatches="3">
            <Match idRef="USDate" />
            <Match idRef="USAddress" />
            <Match idRef="Name" />
        </Any>
    </Pattern>
</Entity>

範例:美國社會安全規則

本節包含撰寫符合美國社會安全號碼之規則的簡介描述。 首先,從描述如何識別包含社會安全號碼的內容開始。 如果下列狀況,則會找到社會安全號碼:

  1. Regex 與格式化 SSN 相符(且在有效的 SSN 範圍內)
  2. 確切的辨識 必須在附近出現以下其中一個項目:
    1. 關鍵字比對 {社會安全、 Soc Sec、 SSN、SSNS、 SSN #、 SS#、 SSID}
    2. 代表美國地址的文字
    3. 代表日期的文字
    4. 代表姓名的文字

接下來,請將說明轉譯為規則架構呈現:

<Entity id="a44669fe-0d48-453d-a9b1-2cc83f2cba77"
         patternsProximity="300" RecommendedConfidence="85">
    <Pattern confidenceLevel="85">
      <IdMatch idRef="FormattedSSN" />
      <Any minMatches="1">
          <Match idRef="SSNKeywords" />
          <Match idRef="USDate" />
          <Match idRef="USAddress" />
          <Match idRef="Name" />
      </Any>
    </Pattern>
</Entity>

相關資訊

資料外洩防護

定義自己的 DLP 範本和資訊類型

從檔案匯入自訂的 DLP 原則範本