作者:來自 Elastic?Paul Ewing, Jonhnathan Ribeiro
Elastic 的管道查詢語言 ES | QL 為查詢帶來了 join 功能。
威脅狩獵者歡呼吧!你是否一直在尋找一種通過 Elastic 的速度和強大功能來連接數據的方法?好消息!Elastic 現在可以通過管道查詢語言 ES|QL(Elasticsearch 查詢語言)中的新功能來連接數據源。這將使得從高級行為檢測到警報篩查,再到威脅狩獵的強大搜索成為可能。
為什么 JOIN 在安全中至關重要:這全關乎上下文
Elastic 一直提供全面的搜索功能,幫助用戶調查安全事件、分析日志以及大規模地探索數據。其中一個關鍵功能在推動檢測和調查中發揮著重要作用:JOIN,因為上下文至關重要。
JOIN 允許分析人員、檢測工程師和威脅狩獵者在基于條件的查詢上構建更具上下文感知的邏輯。考慮以下問題:這個人在哪個部門工作,他們的工作需要他們運行 PowerShell 嗎?這個惡意軟件事件是否涉及一個關鍵用戶,比如域管理員?這個釣魚攻擊活動是否針對特定的角色或業務部門?
所有這些問題都依賴于警報之外的數據。而 JOIN 就是讓從業人員將這些上下文信息引入查詢的方式 —— 通過跨數據源連接線索,從而在狩獵、調查和響應過程中做出更智能、更快速的決策。
JOIN 的進化:ES|QL 中的 LOOKUP
Elastic 現有的豐富策略已經支持類似 JOIN 的工作流,但維護豐富作業和管理更新增加了摩擦,比如每次更新后都需要重新執行豐富策略。現在,隨著 ES|QL 中引入 LOOKUP JOIN 函數,一切變得更加輕松。這一新功能為分析人員提供了更快速、更直觀的方式來將外部數據引入查詢。不需要預處理或外部步驟 —— 只需在搜索工作流中按需 JOIN 所需數據。
在每一步幫助安全分析師
安全從業人員專注于保護組織數據的許多方面。讓我們來看看在傳統的端到端工作流中,JOIN 如何提供幫助:(1)發現新的可疑活動,(2)篩查檢測警報,以及(3)進行事件響應。
1. 發現威脅:假設、搜索、關聯
威脅狩獵者和檢測工程師通過發現可疑行為來保護他們的系統。威脅狩獵工作流側重于一個科學模型來發現惡意活動。首先,建立假設,查看你的結果,并判斷是否發生了事件。
威脅狩獵可以包括機器學習和簡單的搜索,但通常數據堆棧分析是其中的一部分。Elasticsearch 查詢語言(ES|QL)已將聚合功能引入查詢,并提供了轉換數據的能力 —— 現在還可以將來自不同數據存儲的結果添加到查詢結果中。這就是 JOIN 如此關鍵的原因。分析師和威脅狩獵者經常需要處理多個數據源,并需要關聯這些數據。通常會有一個共享的參數,如主機、用戶、文件、進程等。那么,如何在身份驗證日志和進程執行之間尋找橫向移動呢?如何在網絡流量數據和文件創建之間尋找數據外泄?JOIN 使得威脅狩獵者能夠跨多個數據源找到異常行為。
2. 篩選警報:關注重要的部分
接下來,安全分析師正在審查威脅狩獵者和檢測工程師提供的警報輸出。警報篩查(alert triage)是另一個使用 JOIN 的場景。分析師因警報過多而遭遇警報疲勞這一問題已經廣為人知。是的,Elastic 通過生成性 AI 和 Attack Discovery 以及上下文豐富的用戶體驗來解決這個問題,但有時仍需要從外部或額外的數據源中進行優先級排序。JOIN 在這里也發揮著作用。現在,用戶可以將警報元數據與威脅情報數據源進行對比,優先處理那些具有已知惡意指標的警報。或者,如何處理來自特定資產清單的警報?現在,分析師可以優先考慮那些處理大部分外部通信并且是釣魚攻擊目標的業務元素。
3. 響應事件:快速行動,掌握全貌
事件響應通常是填補空白的過程。在調查初期,響應者通常只處理附帶活動案件的部分信息。這時,JOIN 就變得至關重要。在事件響應過程中,團隊需要跨系統連接信息 —— 身份驗證日志、端點遙測、網絡數據、威脅情報、資產清單 —— 并實時關聯它們。沒有 JOIN,響應者只能手動將信息拼湊在一起或在不同工具之間跳轉。使用 LOOKUP JOIN,事件響應者可以:
-
使用資產所有權或敏感性級別豐富警報
-
將端點活動與已知惡意軟件指標進行關聯
-
通過單個查詢追蹤用戶在多個系統中的活動
這是一條更快速的路徑,幫助理解根本原因并協調后續步驟。
ES|QL 中的 LOOKUP JOIN 語法
在深入了解一些安全查詢示例之前,讓我們首先回顧一下如何使用這個新的 ES|QL 函數。ES|QL 是一種管道語言,允許用戶在單個搜索中構建一系列操作,同時過濾、轉換和聚合數據。JOIN 本身以前是通過豐富策略或使用 ENRICH 命令與 ES|QL 來解決的。盡管這些方法解決了一些 JOIN 的用例,但我們的用戶需要一種更簡單的方法來連接數據,而不需要配置豐富的設置。
新的 JOIN 功能是在使用 LOOKUP JOIN 函數時實現的。在這里,你可以建立一個查找索引,根據連接鍵將數據添加到你的搜索結果中。當你使用 ES|QL 管道編寫查詢時,可以簡單地建立查找并將結果添加到當前查詢中,有效地將兩個數據源進行連接。有關更多信息,請查閱我們的文檔或其他內容,JOINs 已經到來!
這是一個簡單的安全用例,使用 LOOKUP JOIN。讓我們尋找包含已知威脅情報指標的 Elastic Security 警報。在這個場景中,我們的威脅情報數據存儲將被命名為 “threat-match”。
FROM *.alerts-security*
| EVAL indicator.id = file.name
| LOOKUP JOIN threat-match on indicator.id
結果將包含你期望的所有警報元數據,包括:
-
規則內容:名稱、描述、嚴重性等
-
原始事件、主機信息、用戶信息、進程信息、文件信息和網絡信息
-
現在,來自查找的威脅情報信息:指標名稱、指標值、指標類型、指標描述等
讓我們試試看!
為了真正展示 ES|QL 和 LOOKUP JOIN 的強大功能,讓我們重新審視一些安全場景,在這些場景中,連接數據將發揮最大的作用。
使用 AI 助手來引導 首先,使用 AI 助手總是有幫助的。我們可以請求助手首先解釋更多關于 ES|QL LOOKUP JOIN 的內容,然后請求幫助為警報添加當前用戶的風險評分。讓我們來看看!
使用 AI 助手來引導進行 Alerts 豐富
注意:請使用最新版本的 Elastic Security,以獲得最新的 AI 助手安全體驗。
警報分類示例
讓我們繼續使用警報分類的場景。在查看安全警報時,分析師總是在尋找優先排序的方法,為什么不關注那些擁有特權訪問的用戶呢?我們將查看 Windows 系統上的警報,然后在 Entity Analytics Active Directory 集成中查找結果,查看特權組成員。
其他示例可以專注于使用 MITRE ATT&CK?。我們將利用 Elastic 實體風險評分來優先排序生成跨多個 MITRE ATT&CK 戰術(初始訪問、持久性、防御規避等)警報的關鍵主機。
威脅狩獵查詢
現在,假設我們沒有警報,需要使用 LOOKUP JOIN 來進行狩獵。回想一下,Elastic 的核心理念是開放性。我們通過以下倉庫提供了我們的檢測規則,Elastic Security Labs 團隊甚至擴展了這一點,加入了威脅狩獵內容。欲了解更多信息,請閱讀如何提升你的威脅狩獵。
讓我們從一個威脅狩獵查詢開始,比如通過 Run Keys 實現的 Windows 持久性(Windows Persistence via Run Keys)。如果我們通過與資產信息的連接來豐富這些查詢呢?在這種情況下,我們將從預構建的威脅狩獵查詢開始,然后通過擴展日期范圍和查看所有持久性示例來進行微調。接著,通過添加實體查找,我們可以找到主機的資產位置。
Threat hunting queries
如果你想進一步簡化這個示例,我們可以將查詢減少到查看所有啟動過程,并執行 LOOKUP JOIN,如之前那樣,我們可以看到資產位置。
利用本地工具技術
許多威脅狩獵者搜索 “本地工具執行”(living off the land)進程執行,這代表了系統上可用的本地工具,這些工具可以執行任意代碼。盡管管理員可能出于良性原因使用這些工具,但攻擊者可以利用這些進程來規避檢測。現在,通過 LOOKUP JOINS,我們可以為我們的威脅狩獵創建這些文件的列表。這個工作流允許我們不斷將新進程添加到我們新創建的 LOOKUP 索引中,同時保留查詢的邏輯。
1. 首先創建 LOOKUP 索引。這里是一個示例:
PUT /lolbins-lookup
{"mappings": {"properties": {"process.name": {"type": "keyword"},"lolbin": {"type": "boolean"}}},"settings": {"index.mode": "lookup"}
}
2. 然后,我們可以通過批量上傳將數據添加到索引中
POST /_bulk
{ "index" : { "_index" : "lolbins-lookup" }}
{ "process.name" : "powershell.exe", "lolbin": true }
{ "index" : { "_index" : "lolbins-lookup" }}
{ "process.name" : "cmd.exe", "lolbin": true }
...
3. 現在,我們可以通過 LOOKUP JOINS 在網絡中搜索 “living off the land processes” 的進程!
這意味著我們可以使用 LOOKUP 來與指標列表進行匹配。請記住,LOOKUP 索引可以更新,因此當你發現更多的 “living off the land processes” 技術時,只需將其添加到索引中,便無需更改查詢或執行加值策略即可看到新的結果。
總結
LOOKUP JOIN 在許多安全工作流中已經證明了其極大的實用性,但這只是開始。如 Elasticsearch 博客中所述,這種類型的連接最接近于 SQL 風格的 LEFT OUTER JOIN,除了改善整體用戶體驗外,我們還計劃擴展連接功能(例如 INNER 連接)。此外,這項功能還使其他搜索語言的語法轉換成為可能。請閱讀我們最近的博客,了解更多有關自動遷移的信息!
總結一下,這種新的連接功能是安全分析師工具箱中的另一個工具,Elastic 搜索 AI 技術提供了許多先進的技術來保護您的數據免受攻擊。這包括生成式 AI、機器學習、聚合、加值、基于序列的關聯等等。繼續關注更多更新和信息!體驗 Elastic Security 最快、最簡單的方式是在 Elastic Cloud Serverless 上。立即試用。
本博客中描述的任何功能或功能的發布和時機由 Elastic 單獨決定。任何當前不可用的功能或功能可能無法按時或根本不交付。
在本文中,我們可能使用或引用了第三方生成式 AI 工具,這些工具由各自的所有者擁有和運營。Elastic 對這些第三方工具沒有控制權,也不對其內容、操作或使用負責,也不對因使用這些工具而產生的任何損失或損害承擔責任。在使用 AI 工具處理個人、敏感或機密信息時,請務必謹慎。您提交的任何數據可能會用于 AI 訓練或其他用途。我們無法保證您提供的信息會保持安全或機密。使用任何生成式 AI 工具之前,您應了解其隱私政策和使用條款。
Elastic、Elasticsearch 和相關標志是 Elasticsearch N.V. 在美國及其他國家的商標、標識或注冊商標。所有其他公司和產品名稱是各自所有者的商標、標識或注冊商標。
原文:Threat hunting in Elastic with JOINs! | Elastic Blog