上一篇文章做了 Elastic SIEM 簡介與 UI 功能介紹,這篇文章會更深入了解相關概念以及看看 SIEM 究竟能夠幫我們解決什麼問題,還有 SIEM 中的機器學習是怎麼一回事。
Elastic SIEM 透過分析儲存在 Elasticsearch 中規格符合 ECS 的資料,可能可以幫助我們解答
為什麼資料格式一致 (符合 ECS) 很重要?
ECS 定義了一系列的欄位,當 logs 或是 metrics 的事件資料需要存入 Elasticsearch 都需要確認符合,反過來說任何 Elastic Beats 只要傳輸符合 ECS 規格的資料,都可以存到 Elasticsearch,其中有個重要的事情是每筆事件都需要包含一個 timestamp。
ECS 規格中有個比較特別是 Geo 的格式,其他相關的也可以從 ECS 文件中或是 ECS Github 中查詢相關規格,因為小編最早開始是在 GIS 公司服務,每次遇到地理資訊類訊息都會特別注意一下,Elasticsearch 主要是透過 GeoIP Processor 把 IP Address 轉成經緯度地理位置,利用 Maxmind Geolite2 的數據去核對 IP Address 與地理訊息,當然我們也可以不自己架設,純前端的話也可以透過 geojs 的服務達到就是了。
透過這個 ECS,就可以做到類似 GA 的分析
因為目前沒有真實資料,就先截 GA 的圖給大家看
雖然之前介紹了各式各樣的指標或日誌資料,但對系統來說主要還是分成兩大塊,不要問為什麼分兩大塊,這就跟為什麼要分成動物跟植物兩類一樣,其實是透過資料的特性自動分出來的。
怎麼取資料回 SIEM?
資料決策樹
因為 Elastic 儲存的資料理論上都應該帶有 timestamp,所以異常偵測可以透過把時間序列的資料加上一個正常行為的基準參考值去偵測不正常的 patterns。
發現異常點並標註
圖片來源: https://www.elastic.co/guide/en/machine-learning/current/ml-overview.html
既然資料都規格一致了,Elastic SIEM 當然內建了針對異常偵測的機器學習功能,會透過 Elasticsearch 中儲存的資料自動幫我們偵測主機和網路相關的異常,如果資料能夠有 pattern 甚至可以做到預測未來,像是知道主機的硬碟什麼時候可能會用滿等等。
要幾分鐘入門資料探勘或機器學習概念的話,建議去載個 Weka 然後搭配每個上過資料探勘都會用到的動物園資料,接著照著各式教學你就可以得到下圖,網路上教學非常多,這邊就不贅述,而且最困難的通常是第一個步驟也就是要整理資料,像是補缺項、過濾不符合規格的值等等,這個部分都透過 ECS 的定義解決了。
照著各式教學你就可以得到下圖
我們就會發現,這不就類似剛剛說的 SIEM 中的資料主要分成兩大塊,其實更細節的分類決策樹如下:
機器學習中有個經典的概念,就是什麼樣的事情是可以預測的,答案就是只要能夠有 Pattern 就可以預測,像是小孩為什麼會哭女朋友為什麼會生氣,這兩個顯然都沒有? 遇到這類沒有 Pattern 的問題,只要先努力展現求生意識就對了? 但如果是晴天、雨天、平日、假日的停車格數量就可能會有,也比較有機會能夠做到預知未來。
預測未來
圖片來源: https://www.elastic.co/guide/en/machine-learning/current/ml-overview.html
Elastic 的系統安全 = SIEM + ECR,提供了