檢視次數:
OSSEC 日誌檢查引擎集成到代理中,賦予 Server & Workload Security保護 檢查作業系統和電腦上運行的應用程式所生成的日誌和事件的能力。Server & Workload Security保護 附帶一套標準的 OSSEC 日誌檢查規則,您可以將其指派給電腦或政策。如果沒有符合您需求的現有規則,您也可以創建自定義規則。
趨勢科技發佈的日誌檢查規則不可編輯(但您可以複製它們,然後進行編輯)
注意
注意
分配給一台或多台電腦或屬於某個政策的日誌檢查規則無法刪除。
若要建立日誌檢查規則,請執行以下基本步驟:
如需查看日誌檢查模組的防護總覽,請參閱 分析日誌

建立新的日誌檢查規則

  1. Server & Workload Security保護 主控台中,依次選擇 Policies Common Objects Rules Log Inspection Rules
  2. 點選 New New Log Inspection Rule
  3. General標籤上,輸入規則的名稱和可選的描述。
  4. Content 標籤是您定義規則的地方。定義規則的最簡單方法是選擇 Basic Rule 並使用提供的選項來定義規則。如果您需要進一步自訂,可以選擇 Custom (XML) 切換到您正在定義的規則的 XML 視圖。
    注意
    注意
    如果您切換回基本規則視圖,您在自訂(XML)視圖中所做的任何更改都將丟失。
    如需進一步協助撰寫使用基於 XML 語言的日誌檢查規則,請參閱 OSSEC 文件或聯繫您的技術支援中心。
這些選項適用於基本規則範本:
  • 規則 ID:規則 ID 是規則的唯一標識符。OSSEC 將 100000 - 109999 定義為用戶自定義規則的範圍。Server & Workload Security保護 將預填充該字段為新的唯一規則 ID。
  • Level:指派一個等級給該規則。零 (0) 表示該規則永遠不會記錄事件,儘管監視此規則的其他規則可能會觸發。
  • Groups:將規則指派給一個或多個以逗號分隔的群組。這在使用依賴性時很有用,因為您可以創建在規則觸發時觸發的規則,或屬於特定群組的規則。
  • Rule Description:規則描述。
  • Pattern Matching:這是規則在日誌中尋找的模式。規則在匹配時會被觸發。模式匹配支持正則表達式或簡單的字串模式。「字串模式」病毒碼類型比正則表達式更快,但它只支持三種特殊操作:
    • ^ (caret):指定文本的開始
    • $ (dollar sign):指定文本結束
    • | (pipe):在多個模式之間創建 "OR"。有關日誌檢查模組使用的正則表達式語法的資訊,請參閱 https://www.ossec.net/docs/syntax/regex.html
  • Dependency:設定對另一個規則的依賴將導致您的規則僅在此區域中指定的規則也已觸發時才記錄事件。
  • Frequency:在規則被觸發之前,規則必須在特定時間範圍內匹配的次數。
  • Time Frame:在此秒數內,規則必須觸發一定次數(如上所述的頻率)才能記錄事件。
注意
注意
Content 標籤僅顯示在您自行建立的日誌檢查規則中。趨勢科技發佈的日誌檢查規則則會顯示 Configuration 標籤,該標籤顯示日誌檢查規則的配置選項(如果有的話)。
  1. Files標籤上,輸入您想要規則監控的檔案的完整路徑,並指定檔案類型。
  2. 選項標籤的警訊部分,選擇此規則是否在Server & Workload Security保護中觸發警報。警報最低嚴重性等級設置將觸發使用基本規則或自訂(XML)模板製作的規則的警報的最低嚴重性等級。
    注意
    注意
    基本規則範本一次創建一個規則。要在單個範本中編寫多個規則,您可以使用自訂 (XML) 範本。如果您在自訂 (XML) 範本中創建具有不同級別的多個規則,您可以使用 Alert Minimum Severity 設定來選擇觸發該範本中所有規則警報的最低嚴重性。
  3. Assigned To 標籤列出使用此日誌檢查規則的政策和電腦。由於您正在創建一個新規則,因此尚未分配。
  4. 點選確定。規則已準備好分配給政策和電腦。

解碼器

日誌檢查規則包括要監控變更的文件列表和觸發規則所需滿足的一組條件。當日誌檢查引擎檢測到受監控的日誌文件發生變更時,變更將由解碼器解析。解碼器將原始日誌條目解析為以下字段:
  • log:事件的訊息部分
  • full_log:整個事件
  • location:日誌來源
  • hostname:事件來源的主機名
  • program_name:事件的 syslog 標頭中的程式名稱
  • srcip:事件中的來源 IP 地址
  • dstip:事件中的目標 IP 位址
  • srcport:事件中的來源通訊埠號碼
  • dstport:事件中的目標通訊埠號碼
  • protocol:事件中的通訊協定
  • action:事件中的中毒處理行動
  • srcuser:事件中的原始使用者
  • dstuser:事件中的目標用戶
  • id:任何被解碼為事件ID的ID
  • status:事件中的解碼狀態
  • command:事件中被調用的命令
  • url:事件中的 URL
  • data:從事件中提取的任何其他資料
  • systemname:事件中的系統名稱
規則會檢查這些解碼後的資料防護,尋找符合規則中定義條件的資訊。
如果符合項目達到足夠高的嚴重性等級,可以採取以下任何行動:
  • 可以發出警報。(可在日誌檢查規則的Properties視窗的選項標籤中進行配置。)
  • 該事件可以寫入 syslog。(可在 Administration System Settings Event Forwarding 標籤的 SIEM 區域中配置。)
  • 事件可以發送到 Server & Workload Security保護。(可在 Policy or Computer Editor Settings Event Forwarding 標籤的 Log Inspection Syslog Configuration 設定中配置。)

子規則

單一日誌檢查規則可以包含多個子規則。這些子規則可以是兩種類型:原子規則或複合規則。原子規則評估單一事件,而複合規則檢查多個事件,並可以評估事件之間的頻率、重複性和關聯性。

群組

每個規則或規則組合必須在 <group></group> 元素中定義。屬性名稱必須包含您想要成為此群組一部分的規則。在以下範例中,我們已指示我們的群組包含 syslog 和 sshd 規則:
<group name="syslog,sshd,">
</group>
注意
注意
請注意群組名稱中的逗號。如果您打算使用 <if_group></if_group> 標籤來有條件地附加另一個子規則,則需要使用逗號。
注意
注意
當一組日誌檢查規則被發送到代理程式時,代理程式上的日誌檢查引擎會從每個指派的規則中提取 XML 資料,並將其組合成一個實質上是單一的長日誌檢查規則。一些群組定義是所有由趨勢科技編寫的日誌檢查規則所共有的。因此,趨勢科技包含了一個名為「預設規則配置」的規則,該規則定義了這些群組,並且總是與任何其他趨勢科技規則一起被指派。(如果您選擇了一個規則進行指派,但沒有同時選擇「預設規則配置」規則,則會出現通知,告知您該規則將自動被指派。)*如果您創建了自己的日誌檢查規則並將其指派給電腦防護,而未指派任何趨勢科技編寫的規則,您必須將「預設規則配置」規則的內容複製到您的新規則中,或者也選擇「預設規則配置」規則進行指派給電腦防護。*

規則、ID 和等級

一個群組可以包含您所需的任意數量規則。這些規則是使用 <rule></rule> 元素定義的,並且必須至少具有兩個屬性,即 idlevelid 是該簽章的唯一標識符,而 level 是警報的嚴重性。在以下範例中,我們創建了兩個規則,每個規則都有不同的規則 ID 和級別:
<group name="syslog,sshd,">
    <rule id="100120" level="5">
    </rule>
    <rule id="100121" level="6">
    </rule>
</group>
注意
注意
自訂規則的 ID 值必須為 100,000 或更大。
您可以使用 <group></group> 標籤在父群組內定義其他子群組。此子群組可以參考下表中列出的任何群組:
群組類型
群組名稱
說明
偵察
連線嘗試 網頁掃描 偵察
連線嘗試 網頁掃瞄 一般掃瞄
驗證控制
authentication_success 認證成功 authentication_failed 認證失敗 invalid_login 登入無效 login_denied 登入被拒絕 authentication_failures 認證失敗次數 adduser 新增使用者 account_changed 帳戶已更改
成功 失敗 無效的登入 拒絕 多次失敗 使用者帳號已新增 使用者帳號已變更或移除
攻擊/濫用
自動攻擊 利用嘗試 無效訪問 垃圾郵件 多重垃圾郵件 SQL注入 攻擊 病毒
蠕蟲(非針對性攻擊)利用模式 無效訪問 垃圾郵件 多個垃圾郵件訊息 SQL 注入 通用攻擊 偵測到病毒
存取控制
拒絕存取 允許存取 未知資源 防火牆丟棄 多次丟棄 用戶端配置錯誤 用戶端錯誤
拒絕存取 允許存取 存取不存在的資源 防火牆丟棄 多次防火牆丟棄 用戶端配置錯誤 用戶端錯誤
網路控制
new_host ip_spoof
偵測到新電腦防護 可能的ARP欺騙
系統監視器
服務啟動 系統錯誤 系統關閉 日誌已清除 無效請求 混雜 政策已更改 配置已更改 磁碟空間不足 時間已更改
服務啟動 系統錯誤 關機 日誌已清除 無效請求 介面切換到混雜模式 政策已更改 配置已更改 磁碟空間不足 時間已更改
注意
注意
如果事件自動標記已啟動,事件將會被標記為群組名稱。趨勢科技提供的日誌檢查規則使用一個轉換表,將群組名稱更改為更易於理解的版本。因此,例如 "login_denied" 會顯示為 "Login Denied"。自訂規則將按其在規則中顯示的群組名稱列出。

說明

包括一個 <description></description> 標籤。如果規則被觸發,描述文字將會出現在事件中。
<group name="syslog,sshd,">
    <rule id="100120" level="5">
        <group>authentication_success</group>
        <description>SSHD testing authentication success</description>
    </rule>
    <rule id="100121" level="6">
        <description>SSHD rule testing 2</description>
    </rule>
</group>

解碼為

<decoded_as></decoded_as> 標籤指示日誌檢查引擎僅在指定的解碼器已解碼日誌時應用規則。
<rule id="100123" level="5">
    <decoded_as>sshd</decoded_as>
    <description>Logging every decoded sshd message</description>
</rule>
注意
注意
要查看可用的解碼器,請前往Log Inspection Rule頁面並點選Decoders.。右鍵點選1002791-Default Log Decoders並選擇Properties。前往Configuration標籤並點選View Decoders

匹配

要在日誌中查找特定字串,請使用<match></match>。以下是一個 Linux sshd 密碼驗證失敗的日誌:
Jan 1 12:34:56 linux_server sshd[1231]: Failed password for invalid user jsmith from 192.168.1.123 port 1799 ssh2
使用 <match></match> 標籤來搜尋 "password failed" 字串。
<rule id="100124" level="5">
    <decoded_as>sshd</decoded_as>
    <match>^Failed password</match>
    <description>Failed SSHD password attempt</description>
</rule>
注意
注意
請注意正則表達式的插入符號("^")表示字串的開頭。雖然 "Failed password" 並未出現在日誌的開頭,但日誌檢查解碼器會將日誌分成多個部分。請參閱 解碼器 以獲取詳細資訊。其中一個部分是 "log",即日誌的訊息部分,而 "full_log" 則是整個日誌。
下表列出了支援的正則表達式語法:
正則表達式語法
說明
\w
A-Z, a-z, 0-9 單個字母和數字
\d
0-9 單個數字
\s
單一空格
\t
單一標籤
\p
()\*+,-.:;<=>?[]
\W
not \w
\D
not \d
\S
not \s
\.
任何東西
+
匹配上述任意一個或多個(例如,\w+,\d+)
\*
匹配零個或多個上述的任意字符(例如,\w\*,\d\*)
^
表示字串的開始 (^somestring)
$
指定字串的結尾 (somestring$)
|
在多個字串之間表示 "或"

條件語句

規則評估可以根據其他規則已被評估為真來進行條件判斷。<if_sid></if_sid> 標籤指示日誌檢查引擎僅在標籤中識別的規則已被評估為真時才評估此子規則。以下範例顯示了三個規則:100123、100124 和 100125。規則 100124 和 100125 已使用 <if_sid></if_sid> 標籤修改為 100123 規則的子規則:
<group name="syslog,sshd,">
    <rule id="100123" level="2">
        <decoded_as>sshd</decoded_as>
        <description>Logging every decoded sshd message</description>
    </rule>
    <rule id="100124" level="7">
        <if_sid>100123</if_sid>
        <match>^Failed password</match>
        <group>authentication_failure</group>
        <description>Failed SSHD password attempt</description>
    </rule>
    <rule id="100125" level="3">
        <if_sid>100123</if_sid>
        <match>^Accepted password</match>
        <group>authentication_success</group>
        <description>Successful SSHD password attempt</description>
    </rule>
</group>

評估層級

<if_sid></if_sid> 標籤本質上創建了一組分層規則。也就是說,通過在規則中包含 <if_sid></if_sid> 標籤,該規則成為 <if_sid></if_sid> 標籤引用的規則的子規則。在將任何規則應用於日誌之前,日誌檢查引擎會評估 <if_sid></if_sid> 標籤並構建父規則和子規則的層次結構。
注意
注意
層次化的父子結構可用於提高您規則的效率。如果父規則未評估為真,日誌檢查引擎將暫不處理該父規則的子規則。
注意
注意
儘管 <if_sid></if_sid> 標籤可以用來引用完全不同的日誌檢查規則中的子規則,但您應避免這樣做,因為這會使規則在日後非常難以審查。
可用的原子規則條件選項列表如下表所示:
標籤
說明
筆記
匹配
一個模式
任何字串以匹配事件(記錄)。
正則表達式
正規表示式
任何正則表達式以匹配事件(日志)。
解碼為
字串
任何預先匹配的字串。
srcip
來源 IP 位址
任何解碼為來源 IP 位址的 IP 位址。使用 "!" 來否定 IP 位址。
目標IP
一個目標 IP 位址
任何被解碼為目標 IP 位址的 IP 位址。使用 "!" 來否定該 IP 位址。
srcport
來源通訊埠號碼
任何來源通訊埠(匹配格式)。
目標埠
目標通訊埠號碼
任何目標通訊埠(匹配格式)。
使用者
使用者名稱
任何解碼為使用者名稱的使用者名稱。
程式名稱
程式名稱
從 syslog 程式名稱解碼的任何程式名稱。
主機名稱
系統主機名稱
任何解碼為 syslog 主機名的主機名。
時間
時間範圍格式為 hh:mm - hh:mm 或 hh:mm am - hh:mm pm
事件必須在規則觸發的時間範圍內。
平日
一個平日(Sunday、星期一、星期二等)
事件必須發生在規則觸發的星期幾。
id
ID
從事件解碼的任何 ID。
網址
URL
從事件解碼的任何 URL。
使用 <if_sid>100125</if_sid> 標籤使此規則依賴於 100125 規則。此規則僅針對已匹配成功登錄規則的 sshd 訊息進行檢查。
<rule id="100127" level="10">
    <if_sid>100125</if_sid>
    <time>6 pm - 8:30 am</time>
    <description>Login outside business hours.</description>
    <group>policy_violation</group>
</rule>

日誌條目大小限制

以下範例採用前一個範例並添加maxsize屬性,該屬性告訴日誌檢查引擎僅評估小於最大字元數的規則:
<rule id="100127" level="10" maxsize="2000">
    <if_sid>100125</if_sid>
    <time>6 pm - 8:30 am</time> 
    <description>Login outside business hours.</description>
    <group>policy_violation</group>
</rule>
下表列出了可能的原子規則樹選項:
標籤
說明
筆記
if_sid
一個規則 ID
將此規則新增為符合指定簽章 ID 的規則的子規則。
if_group
群組 ID
將此規則新增為符合指定群組的規則的子規則。
if_level
規則層級
將此規則新增為符合指定嚴重性等級的規則的子規則。
說明
字串
規則描述。
資訊
字串
有關規則的額外資訊。
cve
CVE 編號
您希望與該規則關聯的任何常見弱點和暴露(CVE)編號。
選項
透過電子郵件警報 無電子郵件警報 無日誌
其他規則選項以指示警報是否應生成電子郵件,alert_by_email,不應生成電子郵件,no_email_alert,或不應記錄任何內容,no_log。

複合規則

原子規則檢查單個日誌條目。要關聯多個條目,您必須使用複合規則。複合規則應該將當前日誌與已接收的日誌匹配。複合規則需要兩個附加選項:frequency 選項指定在規則生成警報之前事件或模式必須發生的次數,timeframe 選項告訴日誌檢查引擎應該回溯多少秒來查找以前的日誌。所有複合規則都具有以下結構:
<rule id="100130" level="10" frequency="x" timeframe="y">
</rule>
例如,您可以創建一個複合規則,在10分鐘內出現五次密碼錯誤後創建一個更高嚴重性的警報。使用 <if_matched_sid></if_matched_sid> 標籤,您可以指示在所需的頻率和時間範圍內需要查看哪個規則,以便您的新規則創建警報。在以下示例中,frequency 屬性設置為在看到事件的五個實例時觸發,timeframe 屬性設置為將時間窗口指定為600秒。
<if_matched_sid></if_matched_sid> 標籤用於定義複合規則將監視的其他規則:
<rule id="100130" level="10" frequency="5" timeframe="600">
    <if_matched_sid>100124</if_matched_sid>
    <description>5 Failed passwords within 10 minutes</description>
</rule>
您可以使用幾個額外的標籤來創建更細化的複合規則。這些規則,如下表所示,允許您指定事件的某些部分必須相同。這使您能夠調整您的複合規則並減少誤報:
標籤
說明
相同來源IP
指定來源 IP 地址必須相同。
same_dest_ip
指定目標 IP 位址必須相同。
相同目標埠
指定目標通訊埠必須相同。
相同位置
指定位置資訊(主機名或代理名稱)必須相同。
相同使用者
指定解碼後的使用者名稱必須相同。
相同ID
指定解碼後的 ID 必須相同。
如果您希望您的複合規則在每次驗證失敗時發出警報,而不是針對特定的規則 ID,您可以將 <if_matched_sid></if_matched_sid> 標籤替換為 <if_matched_group></if_matched_group> 標籤。這允許您指定一個類別,例如 authentication_ failure,以便在您的整個基礎設施中搜索驗證失敗。
<rule id="100130" level="10" frequency="5" timeframe="600">
    <if_matched_group>authentication_failure</if_matched_group>
    <same_source_ip />
    <description>5 Failed passwords within 10 minutes</description>
</rule>
除了 <if_matched_sid></if_matched_sid><if_matched_group></if_matched_group> 標籤外,您還可以使用 <if_matched_regex></if_matched_regex> 標籤來指定正則表達式以在接收日誌時進行搜索。
<rule id="100130" level="10" frequency="5" timeframe="600">
    <if_matched_regex>^Failed password</if_matched_regex>
    <same_source_ip />
    <description>5 Failed passwords within 10 minutes</description>
</rule>

真實世界範例

Server & Workload Security保護 包含許多針對數十種常見和流行應用程式的預設日誌檢查規則。通過安全更新,會定期新增新規則。儘管日誌檢查規則支持的應用程式清單不斷增加,您可能仍需要為不受支持或自訂的應用程式創建自訂規則。
在本節中,我們將介紹如何在 Microsoft Windows Server 上使用 IIS 和 .Net 平台建立自訂 CMS(內容管理系統),並使用 Microsoft SQL Server 資料庫作為資料儲存庫。
第一步是識別以下應用程式日誌屬性:
  1. 應用程式記錄到哪裡?
  2. 哪個日誌檢查解碼器可用於解碼日誌文件?
  3. 日誌檔案訊息的一般格式是什麼?
對於我們的自訂 CMS 範例,答案如下:
  1. Windows 事件檢視器
  2. Windows 事件日誌 (eventlog)
  3. 具有以下核心屬性的 Windows 事件日誌格式:
    • 來源:CMS
    • 類別:無
    • 事件: <應用程式事件 ID>
第二步是按應用程式功能識別日誌事件的類別,然後將這些類別組織成層疊的群組層次以供檢查。並非所有檢查的群組都需要引發事件;匹配可以用作條件語句。對於每個群組,識別規則可以用作匹配標準的日誌格式屬性。這也可以通過檢查所有應用程式日誌中的模式和邏輯分組來完成。
例如,CMS 應用程式支援以下功能特性,我們將為其建立日誌檢查規則:
  • CMS 應用程式日誌 (來源: CMS)
    • 驗證(事件:100 至 119)
      • 用戶登入成功(事件:100)
      • 用戶登入失敗(事件:101)
      • 管理員登入成功(事件:105)
      • 管理員登入失敗(事件:106)
    • 一般錯誤(類型:錯誤)
      • 資料庫錯誤(事件:200 至 205)
      • 執行時錯誤(事件:206-249)
    • 應用程式稽核(類型:資訊)
      • 內容
        • 新增內容(事件:450 至 459)
        • 現有內容已修改(事件:460 至 469)
        • 現有內容已刪除(事件:470 至 479)
      • 管理
        • 使用者
          • 已建立新使用者(事件:445 至 446)
          • 現有使用者已刪除(事件:447 至 449)
此結構將為您提供創建規則的良好基礎。現在在Server & Workload Security保護中創建一個新的日誌檢查規則。
To create the new CMS Log Inspection Rule
  1. Server & Workload Security保護 主控台中,前往 Policies Common Objects Rules Log Inspection Rules,然後點選 New 以顯示 New Log Inspection Rule Properties 視窗。
  2. 給新規則命名並添加描述,然後點選Content標籤。
  3. 最快速建立新自訂規則的方法是從基本規則範本開始。選擇Basic Rule單選按鈕。
  4. 規則 ID 欄位將自動填入 100,000 或更大的未使用 ID 號碼,這些 ID 是為自訂規則保留的。
  5. Level 設定為 Low (0)
  6. 給這個規則一個適當的群組名稱。在這種情況下,為 "cms"。
  7. 提供簡短的規則描述。
    2016-07-06_000083_DS10=3727c959-a494-4a50-8be7-e4d54b3898a9.png
  8. 現在選擇Custom (XML)選項。您為「基本」規則選擇的選項將被轉換為XML。
    2016-07-06_000084_DS10=3917b9ab-c06f-4f29-98ce-b6f068a2e986.png
  9. 點選Files標籤,然後點選Add File按鈕,以新增規則將應用於的任何應用程式日誌檔案和日誌類型。在此情況下,檔案類型為「Application」和「eventlog」。
    2016-07-06_000085_DS10=c40815a5-cfe7-4f65-a562-aa1495576c18.png
    注意
    注意
    EventlogServer & Workload Security保護 中的一種獨特檔案類型,因為日誌檔案的 位置資訊 和檔案名稱不需要被指定。相反地,只需輸入在 Windows 事件檢視器中顯示的日誌名稱即可。eventlog 檔案類型的其他日誌名稱可能是 "Security"、"System"、"Internet Explorer" 或 Windows 事件檢視器中列出的任何其他部分。其他檔案類型則需要指定日誌檔案的 位置資訊 和檔案名稱。(C/C++ strftime() 轉換規範可用於匹配檔案名稱。請參閱下表以獲取一些更有用的規範。)
  10. 點選確定以儲存基本規則。
  11. 使用已建立的基本規則自訂 (XML),我們可以開始根據先前識別的日誌分組向群組添加新規則。我們將基本規則條件設置為初始規則。在以下示例中,CMS 基本規則已識別出具有 "CMS" 來源屬性的 Windows 事件日誌:
    <group name="cms">
        <rule id="100000" level="0">
        <category>windows</category>
        <extra_data>^CMS</extra_data>
        <description>Windows events from source 'CMS' group messages.</description>
    </rule>
  12. 現在我們從已識別的日誌組建立後續規則。以下範例通過事件 ID 識別驗證和登錄成功與失敗並記錄。
    <rule id="100001" level="0">
        <if_sid>100000</if_sid>
        <id>^100|^101|^102|^103|^104|^105|^106|^107|^108|^109|^110</id>
        <group>authentication</group>
        <description>CMS Authentication event.</description>
    </rule>
    
    <rule id="100002" level="0">
        <if_group>authentication</if_group>
        <id>100</id>
        <description>CMS User Login success event.</description>
    </rule>
    
    <rule id="100003" level="4">
        <if_group>authentication</if_group>
        <id>101</id> <group>authentication_failure</group>
        <description>CMS User Login failure event.</description>
    </rule>
    
    <rule id="100004" level="0">
        <if_group>authentication</if_group>
        <id>105</id>
        <description>CMS Administrator Login success event.</description>
    </rule>
    
    <rule id="100005" level="4">
        <if_group>authentication</if_group>
        <id>106</id>
        <group>authentication_failure</group>
        <description>CMS Administrator Login failure event.</description>
    </rule>
  13. 現在我們使用已建立的規則添加任何複合或關聯規則。以下示例顯示了一個高嚴重性複合規則,該規則適用於在10秒的時間範圍內重複登錄失敗5次的情況:
    <rule id="100006" level="10" frequency="5" timeframe="10">
        <if_matched_group>authentication_failure</if_matched_group>
        <description>CMS Repeated Authentication Login failure event.</description>
    </rule>
  14. 檢查所有規則的適當嚴重性級別。例如,錯誤記錄檔應具有5級或更高的嚴重性。資訊性規則則會有較低的嚴重性。
  15. 最後,打開新創建的規則,點選Configuration標籤,並將您的自訂規則 XML 複製到規則欄位中。點選Apply確定以保存更改。
一旦規則被分配到策略或電腦防護,日誌檢查引擎應立即開始檢查指定的日誌文件。
The complete Custom CMS Log Inspection Rule
<group name="cms">
    <rule id="100000" level="0">
        <category>windows</category>
        <extra_data>^CMS</extra_data>
        <description>Windows events from source 'CMS' group messages.</description>
    </rule>
    <rule id="100001" level="0">
        <if_sid>100000</if_sid>
        <id>^100|^101|^102|^103|^104|^105|^106|^107|^108|^109|^110</id>
        <group>authentication</group>
        <description>CMS Authentication event.</description>
    </rule>
    <rule id="100002" level="0">
        <if_group>authentication</if_group>
        <id>100</id>
        <description>CMS User Login success event.</description>
    </rule>
    <rule id="100003" level="4">
        <if_group>authentication</if_group>
        <id>101</id>
        <group>authentication_failure</group>
        <description>CMS User Login failure event.</description>
    </rule>
    <rule id="100004" level="0">
        <if_group>authentication</if_group>
        <id>105</id>
        <description>CMS Administrator Login success event.</description>
    </rule>
    <rule id="100005" level="4">
        <if_group>authentication</if_group>
        <id>106</id>
        <group>authentication_failure</group>
        <description>CMS Administrator Login failure event.</description>
    </rule>
    <rule id="100006" level="10" frequency="5" timeframe="10">
        <if_matched_group>authentication_failure</if_matched_group>
        <description>CMS Repeated Authentication Login failure event.</description>
    </rule>
    <rule id="100007" level="5">
        <if_sid>100000</if_sid>
        <status>^ERROR</status>
        <description>CMS General error event.</description>
        <group>cms_error</group>
    </rule>
    <rule id="100008" level="10">
        <if_group>cms_error</if_group>
        <id>^200|^201|^202|^203|^204|^205</id>
        <description>CMS Database error event.</description>
    </rule>
    <rule id="100009" level="10">
        <if_group>cms_error</if_group>
        <id>^206|^207|^208|^209|^230|^231|^232|^233|^234|^235|^236|^237|^238|
        ^239^|240|^241|^242|^243|^244|^245|^246|^247|^248|^249</id>
        <description>CMS Runtime error event.</description>
    </rule>
    <rule id="100010" level="0">
        <if_sid>100000</if_sid>
        <status>^INFORMATION</status>
        <description>CMS General informational event.</description>
        <group>cms_information</group>
    </rule>
    <rule id="100011" level="5">
        <if_group>cms_information</if_group> 
        <id>^450|^451|^452|^453|^454|^455|^456|^457|^458|^459</id>
        <description>CMS New Content added event.</description>
    </rule>
    <rule id="100012" level="5">
        <if_group>cms_information</if_group>
        <id>^460|^461|^462|^463|^464|^465|^466|^467|^468|^469</id>
        <description>CMS Existing Content modified event.</description>
    </rule>
    <rule id="100013" level="5">
        <if_group>cms_information</if_group>
        <id>^470|^471|^472|^473|^474|^475|^476|^477|^478|^479</id>
        <description>CMS Existing Content deleted event.</description>
    </rule>
    <rule id="100014" level="5">
        <if_group>cms_information</if_group>
        <id>^445|^446</id>
        <description>CMS User created event.</description>
    </rule>
    <rule id="100015" level="5">
        <if_group>cms_information</if_group>
        <id>^447|449</id>
        <description>CMS User deleted event.</description>
    </rule>
</group>
等級
說明
筆記
等級 0
已忽略,未採取中毒處理行動
主要用於避免誤報。這些規則會在所有其他規則之前掃描,並包含無安全相關性的事件。
等級 1
無預定用途
等級 2
系統低優先級通知
沒有安全相關性的系統通知或狀態訊息。
第 3 級
成功或授權的事件
成功的登入嘗試、防火牆允許事件等。
第 4 級
系統低優先級錯誤
與錯誤配置或未使用的設備或應用程式相關的錯誤。它們沒有安全相關性,通常是由預設安裝或軟體測試引起的。
等級 5
使用者產生的錯誤
遺漏的密碼、被拒絕的操作等。這些訊息通常沒有安全相關性。
第 6 級
低相關性攻擊
指示對系統無威脅的蠕蟲或病毒,例如攻擊 Linux 伺服器的 Windows 蠕蟲。它們還包括經常觸發的 IDS 事件和常見的錯誤事件。
第 7 級
無預定用途
等級 8
無預定用途
等級 9
來自無效來源的錯誤
包括嘗試以未知用戶或無效來源登入的情況。此訊息可能具有安全相關性,特別是如果重複出現的話。它們還包括有關adminroot帳戶的錯誤。
等級 10
多個使用者生成的錯誤
包括多個錯誤密碼、多次登錄失敗等。這些可能表明一次攻擊,或者可能只是用戶忘記了他的憑證。
等級 11
無預定用途
第 12 級
高重要性事件
包括來自系統、核心等的錯誤或警告訊息。它們可能表示針對特定應用程式的攻擊。
第 13 級
異常錯誤(高度重要)
常見的攻擊模式包括緩衝區溢位嘗試、比正常情況大的 syslog 訊息或比正常情況大的 URL 字串。
第 14 級
高重要性安全事件
通常是多個攻擊規則相關聯的結果,並且表明一次攻擊。
等級 15
攻擊成功
極小的誤報機率。需要立即注意。

strftime() 轉換規範

指定符
說明
%a
縮寫的星期名稱(例如,週四)
%A
完整的星期名稱(例如,星期四)
%b
縮寫的月份名稱(例如,八月)
%B
完整月份名稱(例如:八月)
%c
日期和時間表示(例如,週四 九月 22 12:23:45 2007)
%d
月份中的日期 (01 - 31) (例如,20)
%H
24 小時制的時間 (00 - 23) (例如:13)
%I
12 小時制的時 (01 - 12) (例如,02)
%j
一年中的第幾天 (001 - 366) (例如,235)
%m
月份作為十進位數字 (01 - 12) (例如,02)
%M
分鐘 (00 - 59) (例如,12)
%p
上午或下午的標示(例如:上午)
%S
秒 (00 - 61) (例如,55)
%U
以第一個Sunday作為第一週的第一天的週數 (00 - 53) (例如,52)
%w
星期幾作為十進位數字,其中Sunday為0(0 - 6)(例如:2)
%W
以第一個星期一為第一週的週數 (00 - 53) (例如:21)
%x
日期表示法(例如,02/24/79)
%X
時間表示(例如,04:12:51)
%y
年份,最後兩位數字(00 - 99)(例如,76)
%Y
年份(例如,2008)
%Z
時區名稱或縮寫(例如,EST)
%%
一個 % 符號(例如,%)
詳細資訊可以在以下網站找到:

檢查日誌檢查規則

日誌檢查規則可在 Server & Workload Security保護 主控台的 Policies Common Objects Rules Log Inspection Rules 中找到。

日誌檢查規則結構和事件匹配過程

此螢幕截圖顯示了 "Microsoft Exchange" 日誌檢查規則屬性視窗中 Configuration 標籤的內容:
ref-li-exchange=3ce52bf8-4859-4e46-84a5-5b30ca6ce60b.png
以下是規則的結構:
  • 3800 - 匯率規則分組 - 暫不處理
    • 3801 - 電子郵件收件人無效(無效帳戶)- 中 (4)
      • 3851 - 多次嘗試向無效帳戶發送電子郵件 - 高 (9)
        • 頻率 - 10
        • 時間範圍 - 120
        • 暫不處理 - 120
    • 3802 - 電子郵件 500 錯誤碼 - 中 (4)
      • 3852 - 電子郵件 500 錯誤碼 (垃圾郵件) - 高 (9)
        • 頻率 - 12
        • 時間範圍 - 120
        • 暫不處理 - 240
日誌檢查引擎將把日誌事件應用到此結構中,並查看是否發生匹配。例如,如果發生 Exchange 事件,且該事件是發送到無效帳戶的電子郵件接收,則該事件將匹配第 3800 行(因為它是 Exchange 事件)。然後,該事件將應用到第 3800 行的子規則:3801 和 3802。
如果沒有進一步的匹配,這種“級聯”匹配將在 3800 停止。由於 3800 的嚴重性等級為“暫不處理”,不會記錄任何日誌檢查事件。
然而,發送至無效帳戶的電子郵件收據符合 3800 的子規則之一:子規則 3801。子規則 3801 的嚴重性等級為「中(4)」。如果匹配在此停止,將記錄一個嚴重性等級為「中(4)」的日誌檢查事件。
但該事件仍需應用另一個子規則:子規則 3851。子規則 3851 具有三個屬性,如果相同事件在過去 120 秒內發生了 10 次,則會匹配。如果是這樣,則會記錄一個嚴重性為「高(9)」的日誌檢查事件。(「暫不處理」屬性告訴子規則 3851 在接下來的 120 秒內暫不處理匹配子規則 3801 的個別事件。這對於減少「噪音」很有用。)
假設子規則 3851 的參數已匹配,現在記錄一個嚴重性為「高(9)」的日誌檢查事件。
查看 Microsoft Exchange 規則的選項標籤,我們看到 Server & Workload Security保護 如果任何子規則符合嚴重性等級為「中(4)」,將會觸發警報。由於在我們的範例中是這種情況,因此將會觸發警報(如果選擇了「當此規則記錄事件時警報」)。

重複的子規則

某些日誌檢查規則有重複的子規則。要查看範例,請打開「Microsoft Windows 事件」規則並點選Configuration標籤。請注意,子規則 18125(遠端存取登入失敗)出現在子規則 18102 和 18103 下方。還要注意,在這兩種情況下,子規則 18125 都沒有嚴重性值,只顯示「見下文」。
規則 18125 並未重複列出,而是僅在 Configuration 頁面的底部列出一次:
ref-li-windows=6b762a27-933b-43f3-8cf6-1a2c478bd5d9.png