將 QRadar 偵測規則移轉至 Microsoft Sentinel
本文說明如何識別、比較和移轉 QRadar 偵測規則至 Microsoft Sentinel 內建規則。
識別和移轉規則
Microsoft Sentinel 會使用機器學習分析來建立高精確度且可採取動作的事件,而您的某些現有偵測可能會在 Microsoft Sentinel 中備援。 因此,請不要盲目地移轉所有偵測和分析規則。 當您識別現有的偵測規則時,請檢閱這些考量事項。
- 請務必選取可證明規則移轉的使用案例,考慮商務優先順序和效率。
- 確認您了解 Microsoft Sentinel 規則類型。
- 確認您了解規則術語。
- 檢閱過去 6-12 個月內未觸發任何警示的任何規則,並判斷其是否仍然相關。
- 消除您定期忽略的低階威脅或警示。
- 使用現有的功能,並檢查 Microsoft Sentinel 的內建分析規則是否可以處理您目前的使用案例。 因為 Microsoft Sentinel 使用機器學習分析來產生很逼真又可因應的事件,所以可能不再需要某些現有的偵測。
- 確認已連線的資料來源,並檢閱資料連線方法。 回顧覽資料收集交談,以確認您打算在使用案例上偵測的資料深度和廣度。
- 探索 SOC Prime Threat Detection Marketplace 之類社群資源,以檢查您的規則是否可用。
- 考慮線上查詢轉換器 (例如 Uncoder.io) 是否適用於您的規則。
- 如果規則不適用或無法轉換,則必須使用 KQL 查詢來手動建立規則。 檢閱規則對應以建立新的查詢。
深入了解移轉偵測規則的最佳做法。
若要將分析規則移轉至 Microsoft Sentinel:
請確認已備妥測試系統來處理您要移轉的每個規則。
針對已移轉的規則準備驗證程序,包括完整的測試案例和指令碼。
請確定您的小組有實用的資源來測試已移轉的規則。
確認您已連線任何必要的資料來源,並檢閱您的資料連線方法。
確認您的偵測是否可作為 Microsoft Sentinel 中的內建範本:
如果內建規則已足夠,請使用內建規則範本來為您自己的工作區建立規則。
在 Microsoft Sentinel 中,移至 [設定]> [分析] > [規則範本] 索引標籤,然後建立並更新每個相關的分析規則。
如需詳細資訊,請參閱 從範本建立排程的分析規則。
如果您有 Microsoft Sentinel 內建規則未涵蓋的偵測,請嘗試線上查詢轉換器 (例如 Uncoder.io),將您的查詢轉換成 KQL。
識別觸發條件和規則動作,然後建構並檢閱您的 KQL 查詢。
如果內建規則和線上規則轉換器都不夠,您必須手動建立規則。 在這種情況下,請使用下列步驟開始建立規則:
識別您想要在規則中使用的資料來源。 您想要在 Microsoft Sentinel 中的資料來源與資料表之間建立對應資料表,以識別您想要查詢的資料表。
在您想要用於規則的資料中,識別任何屬性、欄位或實體。
識別您的規則準則和邏輯。 在這個階段,您可能會想要使用規則範本作為如何建構 KQL 查詢的範例。
請考慮篩選、相互關聯規則、作用中清單、參考集、關注清單、偵測異常、彙總等等。 您可以使用舊版 SIEM 所提供的參考,以了解如何最正確對應查詢語法。
識別觸發條件和規則動作,然後建構並檢閱您的 KQL 查詢。 檢閱查詢時,請考慮 KQL 最佳化指引資源。
使用每個相關使用案例測試規則。 如果未提供預期的結果,您可以檢閱 KQL,然後再測試一次。
當您滿意時,可以考慮移轉的規則。 視需要為您的規則動作建立劇本。 如需詳細資訊,請參閱使用 Microsoft Sentinel 中的劇本將威脅回應自動化。
深入了解分析規則:
- Microsoft Sentinel 中的排程分析規則。 使用警示群組,藉由將在指定時間範圍內發生的警示分組,以減少警示疲勞。
- 將資料欄位對應至 Microsoft Sentinel 中的實體,讓 SOC 工程師能夠在調查期間將實體定義為辨識項的一部分。 實體對應也可讓 SOC 分析師利用直覺式 [調查圖表 (investigate-cases.md#use-the-investigation-graph-to-deep-dive),以協助縮短時間和精力。
- 使用 UEBA 資料調查事件,例如如何使用辨識項來呈現事件、警示,以及事件預覽窗格中與特定事件相關聯的任何書籤。
- Kusto 查詢語言 (KQL),您可以用來將唯讀要求傳送至您的 Log Analytics 資料庫,以處理資料並傳回結果。 KQL 也用於其他 Microsoft 服務,例如適用於端點的 Microsoft Defender 和 Application Insights。
比較規則術語
此表可協助您釐清 Microsoft Sentinel 與 QRadar 的規則概念比較。
QRadar | Microsoft Sentinel | |
---|---|---|
規則類型 | • 事件 • 流程 • 通用 • 冒犯 • 異常偵測規則 |
• 排程的查詢 • 融合 • Microsoft 安全性 • Machine Learning (ML) 行為分析 |
準則 | 在測試條件中定義 | 在 KQL 中定義 |
觸發條件 | 在規則中定義 | 閾值:查詢結果數目 |
動作 | • 建立冒犯 • 分派新事件 • 新增至參考集或資料 • 等等 |
• 建立警示或事件 • 與 Logic Apps 整合 |
對應和比較規則範例
使用這些範例,在各種案例中比較 QRadar 與 Microsoft Sentinel 的規則並加以對應。
規則 | 語法 | 範例偵測規則 (QRadar) | 範例 KQL 查詢 | 資源 |
---|---|---|---|---|
通用屬性測試 | QRadar 語法 | • 規則運算式範例 • AQL 篩選查詢範例 • equals/not equals 範例 |
• 規則運算式範例 • AQL 篩選查詢範例 • equals/not equals 範例 |
• 規則運算式:符合規則運算式 • AQL 篩選查詢:字串運算子 • equals/not equals:字串運算子 |
日期/時間測試 | QRadar 語法 | • 選取的月份日期範例 • 選取的星期數範例 • after/before/at 範例 |
• 選取的月份日期範例 • 選取的星期數範例 • after/before/at 範例 |
• 日期和時間運算子 • 選取的月份日期:dayofmonth() • 選取的星期幾:dayofweek() • after/before/at:format_datetime() |
事件屬性測試 | QRadar 語法 | • IP 通訊協定範例 • 事件承載字串範例 |
• IP 通訊協定範例 • 事件承載字串範例 |
• IP 通訊協定:字串運算子 • 事件承載字串:has |
函數:計數器 | QRadar 語法 | 事件屬性和時間範例 | 事件屬性和時間範例 | summarize |
函數:負條件 | QRadar 語法 | 負條件範例 | 負條件範例 | • join() • 字串運算子 • 數值運算子 |
函數:簡單 | QRadar 語法 | 簡單條件範例 | 簡單條件範例 | or |
IP/連接埠測試 | QRadar 語法 | • 來源連接埠範例 • 來源 IP 範例 |
• 來源連接埠範例 • 來源 IP 範例 |
|
記錄來源測試 | QRadar 語法 | 記錄來源範例 | 記錄來源範例 |
通用屬性測試語法
以下是通用屬性測試規則的 QRadar 語法。
通用屬性測試:規則運算式範例 (QRadar)
以下是可使用規則運算式的範例 QRadar 通用屬性測試規則語法:
when any of <these properties> match <this regular expression>
以下是 QRadar 中的範例規則。
通用屬性測試:規則運算式範例 (KQL)
以下是 KQL 中具有規則運算式的通用屬性測試規則。
CommonSecurityLog
| where tostring(SourcePort) matches regex @"\d{1,5}" or tostring(DestinationPort) matches regex @"\d{1,5}"
通用屬性測試:AQL 篩選查詢範例 (QRadar)
以下是可使用 AQL 篩選查詢的範例 QRadar 通用屬性測試規則語法。
when the event matches <this> AQL filter query
以下是 QRadar 中的範例規則。
通用屬性測試:AQL 篩選查詢範例 (KQL)
以下是 KQL 中具有 AQL 篩選查詢的常見屬性測試規則。
CommonSecurityLog
| where SourceIP == '10.1.1.10'
通用屬性測試:equals/not equals 範例 (QRadar)
以下是可使用 equals
或 not equals
運算子的範例 QRadar 通用屬性測試規則語法。
and when <this property> <equals/not equals> <this property>
以下是 QRadar 中的範例規則。
通用屬性測試:equals/not equals 範例 (KQL)
以下是 KQL 中具有 equals
或 not equals
運算子的通用屬性測試規則。
CommonSecurityLog
| where SourceIP == DestinationIP
日期/時間測試語法
以下是日期/時間測試規則的 QRadar 語法。
日期/時間測試:選取的月份日期範例 (QRadar)
以下是可使用所選取月份日期的範例 QRadar 日期/時間測試規則語法。
and when the event(s) occur <on/after/before> the <selected> day of the month
以下是 QRadar 中的範例規則。
日期/時間測試:選取的月份日期範例 (KQL)
以下是 KQL 中具有所選取月份日期的日期/時間測試規則。
SecurityEvent
| where dayofmonth(TimeGenerated) < 4
日期/時間測試:選取的星期幾範例 (QRadar)
以下是可使用所選取星期幾的範例 QRadar 日期/時間測試規則語法:
and when the event(s) occur on any of <these days of the week{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}>
以下是 QRadar 中的範例規則。
日期/時間測試:選取的星期幾範例 (KQL)
以下是 KQL 中具有所選取星期幾的日期/時間測試規則。
SecurityEvent
| where dayofweek(TimeGenerated) between (3d .. 5d)
日期/時間測試:after/before/at 範例 (QRadar)
以下是可使用 after
、before
或 at
運算子的範例 QRadar 日期/時間測試規則語法。
and when the event(s) occur <after/before/at> <this time{12.00AM, 12.05AM, ...11.50PM, 11.55PM}>
以下是 QRadar 中的範例規則。
日期/時間測試:after/before/at 範例 (KQL)
以下是 KQL 中可使用 after
、before
或 at
運算子的日期/時間測試規則。
SecurityEvent
| where format_datetime(TimeGenerated,'HH:mm')=="23:55"
TimeGenerated
是以 UTC/GMT 為單位。
事件屬性測試語法
以下是事件屬性測試規則的 QRadar 語法。
事件屬性測試:IP 通訊協定範例 (QRadar)
以下是使用 IP 通訊協定的範例 QRadar 事件屬性測試規則語法。
and when the IP protocol is one of the following <protocols>
以下是 QRadar 中的範例規則。
事件屬性測試:IP 通訊協定範例 (KQL)
CommonSecurityLog
| where Protocol in ("UDP","ICMP")
事件屬性測試:事件承載字串範例 (QRadar)
以下是使用 Event Payload
字串值的範例 QRadar 事件屬性測試規則語法。
and when the Event Payload contains <this string>
以下是 QRadar 中的範例規則。
事件屬性測試:事件承載字串範例 (KQL)
CommonSecurityLog
| where DeviceVendor has "Palo Alto"
search "Palo Alto"
若要將效能最佳化,請在您已經知道資料表名稱時避免使用 search
命令。
函數:計數器語法
以下是可使用計數器的 QRadar 函數規則語法。
計數器:事件屬性和時間範例 (QRadar)
以下是範例 QRadar 函數規則的語法,而此規則使用已定義分鐘數內的事件屬性數目。
and when at least <this many> events are seen with the same <event properties> in <this many> <minutes>
以下是 QRadar 中的範例規則。
計數器:事件屬性和時間範例 (KQL)
CommonSecurityLog
| summarize Count = count() by SourceIP, DestinationIP
| where Count >= 5
函數:負條件語法
以下是可使用負條件的 QRadar 函數規則語法。
負條件範例 (QRadar)
以下是可使用負條件的範例 QRadar 函數規則語法。
and when none of <these rules> match in <this many> <minutes> after <these rules> match with the same <event properties>
以下是 QRadar 中的兩個已定義規則。 負條件將會以這些規則為基礎。
以下是根據上述規則的負條件規則範例。
負條件範例 (KQL)
let spanoftime = 10m;
let Test2 = (
CommonSecurityLog
| where Protocol !in ("UDP","ICMP")
| where TimeGenerated > ago(spanoftime)
);
let Test6 = (
CommonSecurityLog
| where SourceIP == DestinationIP
);
Test2
| join kind=rightanti Test6 on $left. SourceIP == $right. SourceIP and $left. Protocol ==$right. Protocol
函數:簡單條件語法
以下是可使用簡單條件的 QRadar 函數規則語法。
簡單條件範例 (QRadar)
以下是可使用簡單條件的範例 QRadar 函數規則語法。
and when an event matches <any|all> of the following <rules>
以下是 QRadar 中的範例規則。
簡單條件範例 (KQL)
CommonSecurityLog
| where Protocol !in ("UDP","ICMP") or SourceIP == DestinationIP
IP/連接埠測試語法
以下是 IP/連接埠測試規則的 QRadar 語法。
IP/連接埠測試:來源連接埠範例 (QRadar)
以下是指定來源連接埠的範例 QRadar 規則語法。
and when the source port is one of the following <ports>
以下是 QRadar 中的範例規則。
IP/連接埠測試:來源連接埠範例 (KQL)
CommonSecurityLog
| where SourcePort == 20
IP/連接埠測試:來源 IP 範例 (QRadar)
以下是指定來源 IP 的範例 QRadar 規則語法。
and when the source IP is one of the following <IP addresses>
以下是 QRadar 中的範例規則。
IP/連接埠測試:來源 IP 範例 (KQL)
CommonSecurityLog
| where SourceIP in (“10.1.1.1”,”10.2.2.2”)
記錄來源測試語法
以下是記錄來源測試規則的 QRadar 語法。
記錄來源範例 (QRadar)
以下是指定記錄來源的範例 QRadar 規則語法。
and when the event(s) were detected by one or more of these <log source types>
以下是 QRadar 中的範例規則。
記錄來源範例 (KQL)
OfficeActivity
| where OfficeWorkload == "Exchange"
下一步
在本文中,您已了解如何將移轉規則從 QRadar 對應至 Microsoft Sentinel。