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>
範例:美國社會安全規則
本節包含撰寫符合美國社會安全號碼之規則的簡介描述。 首先,從描述如何識別包含社會安全號碼的內容開始。 如果下列狀況,則會找到社會安全號碼:
- Regex 與格式化 SSN 相符(且在有效的 SSN 範圍內)
- 確切的辨識 必須在附近出現以下其中一個項目:
- 關鍵字比對 {社會安全、 Soc Sec、 SSN、SSNS、 SSN #、 SS#、 SSID}
- 代表美國地址的文字
- 代表日期的文字
- 代表姓名的文字
接下來,請將說明轉譯為規則架構呈現:
<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>