MS Sentinel的查詢、視覺化與監控
Microsoft Sentinel 工作簿(Workbooks) 提供互動式報告,可協我們透過組合文字、表格、圖表和圖塊來視覺化重要資料。
假設組織使用多種 Microsoft 產品和服務為其資源實施資料安全和威脅保護。這些產品是:
- Microsoft 365
- Microsoft Entra ID
- Microsoft Entra ID Protection
- Defender for Cloud Apps
- Microsoft Defender for Identity
- Microsoft Defender for Endpoint
- Microsoft Defender for Office 365
- System Center Endpoint Protection
- Microsoft Azure Information Protection
本文介紹如何建立和使用 Microsoft Sentinel 工作簿。並視覺化資料、使用查詢(Query)產生報表以及探索工作簿的功能。
監控與視覺化資料
Microsoft Sentinel Logs可存取從安全連接器收集的各種日誌。 Microsoft Sentinel 從其整合式連接器收集這些日誌並將其儲存在 Azure Log Analytics 工作區中。
Log Analytics 工作區是儲存資料和設定資訊的儲存庫。可以建立Query來過濾重要訊息,然後使用這些資訊建立分析規則並偵測威脅。例如,使用 Microsoft Sentinel Logs 從多個來源搜尋資料、聚合大型資料集並執行複雜的操作來定位潛在的安全威脅和漏洞。
我們可以在 Microsoft Sentinel Logs頁面上搜尋特定日誌。在 Microsoft Sentinel 的導覽窗格中選擇「Logs」來查看該頁面。
日誌頁面有以下主要部分:
- 頁面標題包含指向「Queries」、「設定」和「幫助」部分的連結。
- Tables窗格顯示從table中的日誌收集的資料。
- Query窗格是我們編寫自己的查詢運算式的地方。
- 查詢結果窗格顯示查詢結果。
Queries
當選擇頁面標題上的「Queries」連結時,將開啟一個新視窗,可以在其中從一些預先定義的範例查詢中進行選擇。從查詢下拉選單中,我們可以根據下列條件過濾這些查詢:
- Category
- Query Type
- Resource Type
- Solution
- Topic
選擇Run以啟動predefined query。此操作會將重新導向至查詢視窗。我們可以觀察查詢結構和結果。
使用Query Explorer存取先前儲存的Query。還可以存取一些Solution Queries,這些查詢基本上可以過濾可用於過濾資料的最常見查詢。在解Solution Queries清單中,我們可以執行查詢或透過選擇星號在收藏夾部分中組織查詢。
Tables pane
Tables pane將來自不同解決方案的日誌分組到table中。我們可以展開solution group並觀察收集到的所有日誌。也可以從tables pane中選擇日誌之一。可以預覽資料或將該日誌新增至「Favorites」部分。
以下圖示顯示了 Microsoft Sentinel 解決方案中收集的日誌。
Queries pane
使用Queries pane建立根據我們的表達式擷取資料的查詢。Queries pane透過提供建議並自動填入查詢的預期元素來幫助我們編寫準確的查詢。
利用 KQL的功能編寫從日誌中擷取資料的查詢。以下範例說明如何在查詢中使用 KQL 代碼來識別已刪除的虛擬機器。
AzureActivity
| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| extend AccountCustomEntity = Caller
| extend IPCustomEntity = CallerIpAddress
Header toolbar
標題工具列提供了更多與查詢的交互,如以下圖示。
透過選擇Save來儲存查詢窗格中的Query。此操作將開啟一個新視窗,系統會提示我們輸入已儲存查詢和類別的名稱。儲存的查詢出現在query explorer中。
在Time Range欄位中,可以提供不同的時間來變更要顯示查詢結果的時間範圍。
建立查詢連結並透過選擇複製連結到查詢與其他團隊成員共用。也可以複製查詢文字。
從Query pane的標題工具列中,可以建立新的 Azure Monitor 告警或新的 Microsoft Sentinel 告警。如果選擇建立新的 Microsoft Sentinel 告警,系統將引導我們執行建立分析規則的後續步驟。
將查詢匯出為以下格式之一:
- 匯出為 CSV。將所有顯示和隱藏columns匯出到可使用 Microsoft Excel 開啟的 CSV 檔案中。
- 匯出到 CSV-有顯示的column。僅匯出查詢結果視窗中顯示的那些column。
- 匯出到 Power BI(M query)。建立並下載可使用 Microsoft Power BI 應用程式開啟的 PowerBIQuery.txt 檔案。
我們可以將查詢結果固定到私人或共用儀表板中,以快速檢查查詢結果。可以使用標題工具列上的格式查詢來使查詢更具可讀性。
在「Result」下,我們可以觀察查詢的結果。也可以使用圖表呈現結果,或隱藏和顯示其他欄位來篩選查詢結果。
使用KQL查詢資料
KQL 可對收集的資料建立、儲存和執行互動式分析。 Microsoft Sentinel 使用 KQL 來視覺化和分析重要資料。使用 KQL 建立複雜的分析查詢,其中包括以下一些operator:
- Calculated columns
- Join functions
- Group by aggregates
Query是一種read-only request,它處理資料並傳回處理結果,而不修改資料或metadata data。與 SQL 查詢類似,KQL 查詢使用按層次結構組織的架構實體,例如資料庫、表格和欄位。Schema是按邏輯類別分組的table的集合。查詢由以分號 (;) 分隔的查詢語句序列組成。
建立查詢時,可以從table name或搜尋命令開始。例如,以下查詢從event table中檢索所有記錄:
Event
我們可以使用豎線 (|) 字元來分隔命令。第一個命令的輸出成為下一個命令的輸入。可以在Single query新增任意數量的command。以下查詢從event table中檢索記錄,然後在其中搜尋任何屬性中的屬於error:
Event
| search error
可以使用tabular與scalar operators建立查詢,KQL 將這些operator組合成多個tabular expression statements,從而產生查詢結果。
source1 | operator1 | operator2
在以下範例中,來源是 AzureActivity。第一個operator是where,它根據邏輯表達式過濾掉記錄。第二個operator也是where:
AzureActivity
| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
預設情況下,Log Analytics 將查詢限制在過去 24 小時的時間範圍。若要設定不同的時間範圍,可以為Query新增明確 TimeGeneerated 篩選器或使用時間範圍控制項。例如,以下查詢傳回前一小時的資料:
AzureActivity
| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| where TimeGenerated > ago (1h)
可以將查詢與一些最常用的operator結合:
count
. 傳回table中的行數。take
. 傳回最多指定行數的資料。project
. 選擇column的子集。sort
. 以一column或多個column對input table的行進行排序。top
. 傳回按指定column排序的前 N 筆記錄。extend
. Computes derived columns.summarize
. Aggregates groups of rows.render
. Renders results as a graphical output.
若要合併兩個來源(table)的記錄,可以使用join。 union 則將兩個或多個table合併為一個。
Microsoft Sentinel repository on GitHub
我們也可以使用 GitHub 上的 Microsoft Sentinel 儲存庫來搜尋專門的查詢和工作簿,以協助保護環境並尋找威脅。例如,來自 Microsoft Sentinel GitHub 儲存庫的以下查詢顯示對使用者帳戶的可疑權限委派。
let timeframe = 7d;
AzureActivity
| where TimeGenerated >= ago(timeframe)
| where OperationName == "Create role assignment"
| where ActivityStatus == "Succeeded"
| project Caller, CallerIpAddress
| evaluate basket()
| extend AccountCustomEntity = Caller, IPCustomEntity = CallerIpAddress
此查詢分析管理員向其他使用者授予對 Azure 資源的存取權限的 IP 位址。如果操作不是來自有效的 IP 位址,則查詢會發出可疑活動訊號,可以進一步調查該活動。
預設的Microsoft Sentinel Workbooks
Microsoft Sentinel 提供了多個可供使用的範本。我們可以使用這些範本建立自己的工作簿,然後根據組織的需求進行修改。
Microsoft Sentinel 用於提取資料的大多數資料連接器都附帶自己的工作簿。可以使用tables和視覺化(包括長條圖和圓餅圖)深入了解正在擷取的資料。也可以從頭開始製作自己的工作簿,而不是使用預先定義的範本。
工作簿
從導覽窗格存取 Microsoft Sentinel 的工作簿頁面。在「Workbooks」頁面中,新增工作簿並查看已儲存的工作簿和可用的範本。
在「Templates」頁籤上存取現有工作簿範本。可以儲存一些工作簿以便快速存取。它們顯示在「My workbooks」頁籤上。
在「Template」頁籤中,可以選擇現有工作簿以顯示其詳細資料窗格,其中包含該範本的其他資訊。詳細資料窗格還包含有關必須連接到 Microsoft Sentinel 的所需資料類型和資料連接器的資訊。
檢視現有的工作簿範本
組織擔心身分洩露。身為資安人員,我們可以透過在「Templates」部分中選擇該範本來檢查現有的 Microsoft Entra sign-in logs工作簿。然後在詳細資料窗格中選擇「View template」。
Microsoft Entra sign-in logs工作簿包含預先定義的圖表、圖形和表格,可提供 Microsoft Entra ID 中登入活動的重要見解。可查找有關使用者登入和位置、電子郵件地址以及使用者 IP 位址的資訊。還可以查看有關失敗的活動以及觸發失敗的錯誤的資訊。
在 Microsoft Entra sign-in logs頁面上,可以擴大時間範圍或篩選在 Microsoft Entra ID 中具有登入權限的應用程式和使用者。例如,組織希望識別可以登入 Azure 網站的使用者,因此可以如下篩選資料。
組織可能有興趣辨識失敗的登入嘗試。我們可以透過選擇information tiles來顯示這些帳號,然後選擇一個tile或一行來顯示更多資訊,例如:
- Sign-ins by location。此部分顯示使用者登入 Microsoft Entra ID 的位置。
- Location sign-in details。此部分顯示使用者、其登入狀態以及嘗試登入的時間。
- Sign-ins by device。這裡列出了使用者用於登入 Microsoft Entra ID 的裝置。
- Device sign-in details。此部分顯示在特定裝置上登入的使用者以及他們登入的時間。
後台的這一個information tile配置為執行查詢並篩選從 Microsoft Entra 連接器收集的資料。然後,Microsoft Sentinel 視覺化並呈現透過使用tables收集的資料,這更有意義,並提供有關使用者登入嘗試的有用見解。
此工作簿包含其他tiles,指示使用條件存取登入的使用者。從Conditional access status table中,我們可以查看需要多重身份驗證來驗證其身份的使用者。
頁面的其餘部分還包含互動式表格和圖表。選擇一些rows 或 tiles來過濾顯示的資料。建立的一些table帶有指向相應日誌的鏈接,如以下圖示。
從工作簿編輯Query
例如,組織希望搜尋日誌以取得顯示使用者登入失敗的更多資訊。它們被重導向到 Azure Data Explorer,其中 Microsoft Sentinel 執行日誌查詢以篩選資訊。
檢視已儲存的工作簿
在「Templates」頁面中,可以透過選擇其中一個模板,然後選擇「Save」來儲存現有模板中的工作簿。我們必須提供一個位置來指示要儲存工作簿的位置。此程序使用範本的 JSON 檔案會基於範本建立 Azure 資源。
儲存的工作簿可在「My Workbooks」頁籤上找到,我們可以在其中進行自訂。可以透過選擇「View saved workbook」來開啟已儲存的工作簿。此操作將開啟與範本工作簿頁面相同的頁面,但可以根據組織的要求自訂該頁面。
選擇“Edit”以在編輯模式下開啟工作簿。可以新增或刪除項目並提供更多自訂。編輯模式顯示工作簿中的所有內容,包括在閱讀模式下隱藏的步驟和參數。
編輯模式下的標題列包含多個選項,如下圖所示。
當切換到編輯模式時,請注意與工作簿的各個方面相對應的幾個編輯選項。如果選擇這些編輯選項之一,則可以檢查 Microsoft Sentinel 用於從對應日誌中篩選資料的Query。
選擇setting圖示時,將開啟「Settings」頁面,可以在其中提供要在工作簿中使用的其他資源。也可以變更工作簿的樣式、提供標記或固定工作簿中的項目。
可以選擇「Show Pin Options」來重新排列工作簿中不同表格的位置。
對於進階自訂,可以選擇「Advanced Editor」來開啟目前工作簿(以JSON 形式的呈現),然後在文字編輯器中進一步自訂它。可以將變更儲存在現有工作簿中或另存為另一個工作簿。完成所有自訂後,可以透過選擇「Done Editing」來退出編輯模式。
探索 GitHub 上的 Microsoft Sentinel 儲存庫
Microsoft Sentinel 儲存庫包含開箱即用的偵測、探索查詢、搜尋查詢、工作簿、操作手冊等,可保護環境並偵測威脅。 Microsoft 和 Microsoft Sentinel 社群對此儲存庫做出了貢獻。
此儲存庫包含包含 Microsoft Sentinel 功能多個領域(包括偵測查詢)貢獻內容的資料夾。我們可以使用這些Query中的代碼在 Microsoft Sentinel 工作區中建立自訂查詢。
建立新的Microsoft Sentinel工作簿
除了使用內建範本建立自訂工作簿之外,我們還可以從頭開始建立自訂工作簿以產生包含文字、分析查詢、指標和參數的高度互動式報表。
從 Microsoft Sentinel 中的「Workbooks」頁面建立自訂工作簿。選擇標題列上的“+Add workbook”。將開啟「New workbook」頁面,其中包含可協助我們入門的基本分析查詢。
我們可以選擇「Edit」在「New Workbook」頁面上開始建立工作簿。然後選擇“編輯”選項以變更新工作簿範本中顯示的文字。
每個工作簿都提供了一組豐富的功能,用於視覺化從連接器收集的安全資料。可以使用以下視覺化類型和元素設計工作簿:
- Text
- Query
- Parameters
- Links/tabs
- Metric
透過選擇“+Add”將新元素新增至工作簿中,如下圖所示。
Text visualizations
使用文字區塊來解釋安全資料、章節標題、遙測資料和其他資訊。使用 Markdown markup language編輯文本,該語言為標題、字體樣式、超連結和表格提供不同的格式選項。
新增文字後,選擇「Preview」標籤以預覽內容的顯示方式。完成文字編輯後,選擇“Done Editing”選項。
Query item
根據日誌建立不同的查詢,並將資料視覺化為文字、圖表或grids。使用 KQL 編寫查詢。然後使用各種視覺化來格式化數據,包括:
- Grids (or tables)
- Area charts
- Bar charts
- Line charts
- Pie charts
- Scatter charts
- Time charts
- Tiles
建立查詢時,Microsoft Sentinel 會為工作簿新增一個新的「Run Query」步驟,如下圖示:
在標題列上,有幾個欄位提供了調整查詢輸出的選項。
在「Advanced Settings」頁籤上,可以為查詢步驟的設定和樣式提供更多自訂。「Advanced Settings」頁籤上,可以修改屬性。例如,您可以輸入圖表標題,如以下圖示。
使用「Style」頁籤來調整步驟中的邊距和填滿元素。完成自訂設定和樣式後,請記得選擇「Done Editing」來儲存該步驟。
Chart visualizations
當建立Query以將資料顯示為圖表時,可以自訂:
- Height
- Width
- Color palette
- Legend
- Titles
- Axis types and series
以下範例對所有安全告警進行計數並在圓餅圖中將其視覺化。
SecurityAlert
| where TimeGenerated \>= ago(180d)
| summarize Count=count() by AlertSeverity
| render piechart
在前面的範例中,Query呈現資料的視覺化類型。也可以使用不包含渲染參數(render parameter)的查詢。使用可視化下拉式選單選擇提供的可視化類型之一:
Grid visualizations
可以使用「Visualization」下拉式選單中的「Grid visualization」選項在表格中呈現資料,這為報表提供了豐富的 UI。可以選擇“Column Settings”選項來指定table中顯示的column並提供 column labels(如有必要)。
在Edit Column settingsu頁籤上,可以選擇不同的column renderer,例如熱圖、長條圖和火花區域。如果選擇“Custom formatting”,則可以設定數值的單位、樣式和格式選項。
我們可以使用互動式工作簿中的參數以不同的方式操作查詢結果。當選擇“Add Parameter”時,將開啟“New Parameter”頁面,可以在其中提供參數所需的名稱和其他輸入。
可以建立以下參數類型:
- Text. 可以輸入任意文字。
- Drop down. 修改查詢步驟的外觀以包含一個下拉式選單,在其中從一組值中選擇一個值。在此參數類型中,輸入 KQL 查詢或 JSON 字串來提供下拉清單的選項。
- Time range picker. 從預先填入的時間範圍中進行選擇,也可以選擇自訂範圍。
- Resource picker. 可以選擇一項或多項 Azure 資源。
- Subscription picker. 選擇一個或多個 Azure 訂閱資源。
- Resource type picker. 選擇一個或多個 Azure 資源類型值。
- Location picker. 選擇一個或多個 Azure 位置值。
- Options group. 將多個屬性分組。
- Tabs.
- Multi-value.
透過使用綁定或使用value expansions來引用工作簿其他部分中的參數值。在「Previews」部分的「New Parameter」窗格中,可以查看查詢代碼中顯示和使用的變數。
Links/tabs
可以新增links/tabs步驟,以使用標籤、清單、段落或項目符號清單自訂工作簿中的導覽。在新增links/tabs步驟時提供以下輸入:
- Text before link.
使用此選項可在選擇連結之前顯示文字。 - Link text.
使用此選項指定連結中顯示的實際文字。 - Text after link.
使用此選項指示選擇連結後顯示的文字。 - Action.
使用此選項指定選擇連結時執行的操作,例如 Url、設定參數值和捲動至step。 - Value.
使用此選項來指示連結的值。 - Settings.
使用此選項可根據連結類型和支援參數語法配置特定設定。 - Context pane.
使用此選項可在側面開啟新的context panel而不是完整視圖。 - Style.
使用此選項可以在連結、按鈕(主要)和按鈕(次要)樣式之間進行選擇。