規則語法
快速連結: <definition> , <operations>, <description>, <actions>
規則是一組使用以 XML 為基礎的語言所定義的運算式。ESET PROTECT Web Console 包含一組預先定義的規則,但您也可以新增及編輯自己的規則。
規則的一般主體結構為:
<rule> <definition> |
Definition 標籤
ancestor—可以接受一個額外的屬性:
•distance—指定所比對的上層程序與目前程序之間的實際距離,例如:1 代表父程序、2 代表祖父程序,依此類推。若未指定,則此屬性會與所有祖系處理程序進行比對。
•unique—可讓祖系標籤移除祖系樹中的重複處理程序。例如,惡意軟體會建立同一程序的多個執行個體以規避偵測(explorer > cmd > cmd > cmd > malware),而此屬性會去除這些重複項目(explorer > cmd > malware)。
Process 與 parentprocess
process 這個部分讓資安工程師能將事件限制在特定的處理程序;因此,你可以撰寫像是「Outlook 建立 EXE 檔案」這樣的規則。若 process 元素為空,則會針對所有處理程序評估 parentprocess 與 operations。
這個 parentprocess 部分與程序類似,但允許安全工程師測試父程序的屬性。這讓「PowerShell 由 Word 啟動,並連線至網際網路」這類規則得以實現。
process、parentprocess、ancestor 與 operation 使用 expression 元素來描述邏輯運算式,該運算式會被評估以檢查是否應觸發偵測。運算式由條件與邏輯運算子組成。條件會檢查某個屬性的值,而邏輯運算子則將這些條件組合成邏輯運算式。
運算式範例:
<operator type="and"> |
Operations
operations 部分定義處理程序執行的哪些操作會觸發該指示器。若為空白,當該處理程序產生事件時,即會觸發此指示器。
操作是使用具有 type 屬性的 operation 元素與 expression 元素來定義的。
<operation type="WriteFile">Expression</operation>
如需支援的操作完整清單,請參閱 操作 主題。
Operator
支援的邏輯運算子為:AND、OR 和 NOT。邏輯運算子可以巢狀使用。因此,一個邏輯運算子可以是另一個邏輯運算子的引數。除了邏輯運算子之外,條件元素也可以作為邏輯運算子的引數使用。您可以如本範例所示使用運算子標籤:
<process> |
條件元素由三個部分組成:
•操作的引數或處理程序之屬性。
•由規則作者指定的值。
•值與屬性之間的關係。
屬性會以階層方式分組為「元件」。
嚴重程度分為三個層級:1–39 > Info、40–69 > Warning,以及 70–100 > Threat。
屬性類型及其關係(條件屬性)如下:
|
is(not)set |
is(not) |
is(not)empty |
(not)starts |
(not)contains |
(not)ends |
less, lessOrEqual, greater, greaterOrEqual |
|---|---|---|---|---|---|---|---|
String |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
Int |
✔ |
✔ |
|
|
✔ |
|
✔ |
Value |
✔ |
✔ |
✔ |
|
|
|
|
Bool |
✔ |
✔ |
|
|
|
|
|
Date |
✔ |
✔ |
|
|
|
|
✔ |
字串集合 |
✔ |
|
✔ |
|
✔ |
|
|
IPv4 位址 |
✔ |
✔ |
✔ |
|
|
|
|
IPv6 位址 |
✔ |
✔ |
✔ |
|
|
|
|
IPv4 位址集合 |
✔ |
|
✔ |
|
✔ |
|
|
IPv6 位址集合 |
✔ |
|
✔ |
|
✔ |
|
|
Description 標籤
描述為必填,且必須包含名稱與類別,其餘則為選填。定義以下列出的欄位會很有幫助,因為它們會出現在詳細資料中:
name – 規則名稱。它會顯示在規則清單中。
category—可讓您將規則分類。您可以指定自己的類別。
explanation—說明規則觸發的原因。
os—包含該規則適用的作業系統。可能的值為:Windows, Linux, OSX, ANY.
mitreattackid—包含 MITRE ATT&CK® 的識別碼。
maliciousCauses—描述事件的惡意原因或觸發規則的變更。
benignCauses—描述該事件的良性成因,或觸發規則的變更。
recommendedActions—描述資安工程師應採取的建議行動。
guid—用於內部規則。外部規則會自動產生 guid。它用於在匯出/匯入期間唯一識別規則。
maliciousTarget 標籤
您可以使用 maliciousTarget 標籤來指定預設會受到 自訂回應 動作影響的目標。例如,當您選取封鎖可執行檔時,變更會取決於 maliciousTarget。它不會改變 Actions 標籤的行為。可能的值為 current、module、none 和 parent。
maliciousProcess 標籤已由 maliciousTarget 標籤取代。它仍在舊版支援中,但我們建議使用 maliciousTarget 標籤。
Actions 標籤
Actions 標籤可讓您指定一組在規則觸發時執行的動作。
您可以將多個動作放入單一的 action 元素中:
<action name="BlockProcessExecutable"/>
或者將多個 action 元素堆疊成單一 actions 元素(如下列範例所示):
<actions> |
單一規則可觸發多個動作。