2019年10月1日 星期二

開源記錄集中管理系統:Graylog (二)


(取自 Wikipedia)


在企業當中的記錄量越來越多,像 Graylog 這樣的解決方案就會成為所有記錄資料的重要處理核心,將資料收集進來後經過處理、轉換、剖析等程序,留給管理者判斷與決策之用。

同時,將需要特別注意的事件以相關系統發出警報,或是丟進 SOC 或 SIEM 等之類的資安機制進行反應,在上圖中可以清楚的看出記錄集中管理系統與週邊系統的連結方式。

在前一篇介紹了 Graylog 的基本安裝與使用方式,這一篇從如何把資料轉送給 Graylog 進行及集中存放、記錄內容剖析,以及資訊看板的實用方式。




記錄輸入

要讓 Graylog 做為記錄收容中心有很多種方式,它支援多種資料格式與協定,最常見也最通用的就是 Syslog。

首先到功能表 [System] -> [Inputs],進到 Inputs 的設定畫面,預設應該至少已經有兩個 Input 的設定存在,一個是 TCP,另一個是 UDP。



Syslog Inputs


確認這兩個 Input 都在 RUNNING 運作狀態,並且 bind_address 與 port 是合理設定,下一步就是去需要丟出記錄的主機進行 Syslog 轉送的設定。

這個部份以 Debian/Ubuntu 為例,首先確認安裝有 rsyslog 套件,並開啟 /etc/rsyslog.conf 設定檔,加入以下設定,此範例以 Graylog 的 IP 為 192.168.1.111,Syslog Port 為 514:

*.* @192.168.1.111:514

修改完成後,重啟 rsyslog 服務即可生效:

service restart rsyslog

當順利運作以後,可以點選 Inputs 設定畫面中的 [Show received messages] 按鈕,點進去查看是否有記錄開始進來,或是在這個按鈕的右下方有幾個數據如 `Network IO` 可以觀察是否有跳動以做為確認。








增加剖析

在大部份標準的 Syslog 格式進來,Graylog 都能夠自己拆出欄位並加以存放,但如果有一些比較特殊它無法認得的,可以自己增加要解析的格式,這個功能在 Graylog 裡稱之為「Extractor」。

我們可以到 Graylog 網站的 Marketplace 區也搜集了不少現成的擴充套件可以直接下載使用。例如我需要分析 Zimbra 這套開源郵件系統的 Log 內容,可以直接使用官方網站所提供的 Extractor 安裝後,即可直接幫我把 Zimbra Log 內容分析出需要的欄位,以便之後的資料分析比對使用。



Zimbra Extractors


下載好之後,進入要加入的 Input 的 Manage extractors 功能中 (本例是選擇 syslog-udp) ,按下右上角的 [Actions] -> [Import extractors] 即可,完成後會出現在下面的 Configured extractors 清單裡。



Zimbra Extractors 安裝完成


點選進去,可以看出他是怎麼定義解析的方式,以下圖為例是採用了正規表示式 (Regular expression)。



Zimbra Extractors 剖析式寫法






自訂剖析

看完了如何安裝它人開發好的剖析器之後,如果遇到沒有現成可以套用的該怎麼辦呢?Graylog 提供了多種方式讓使用者自己增加 Extractor,例如 JSON、Regular expression、Substring、...等,只要能餵進來的資料,都可以寫出相對應的剖析式。

在實務上比較常用的應該也是正則表示式 (Regular expression),它足夠靈活能夠從一整段訊息中取出我們所要的欄位值,以下以說明操作過程。

點選 [Get started] -> [Load Message] -> [Select extractor type] -> [Regular expression],即可進入定義剖析式的畫面,再將所要解析的剖析式填入,即可解出您所需要的欄位內容。



自訂 Extractors 剖析式







資訊看板

當我們能夠以 Graylog 做記錄收容、剖析與查詢時,接下來就是要把重要的關鍵資訊找出,並將這些常用的結果數據集中在資訊看板上,以便日後快速查看趨勢,進行決策。

首先篩選出我們需要的資料,並做 Quick values 或 Generate chart 之類的小區塊之後,它都可以被加入到資訊看版之上,這種操作非常直覺,只要能查出結果的部份,都可以被加入與運用,所以我們可以以此作出統計、表格、圓餅圖與直條圖等多種看板上的小區塊形式。



將結果加入資訊看板


與 Extractor 相同,Dashboard 一樣可以在官網的 Marketplace 上找到許多現成好用的寶藏,其中一個我最喜歡也最常看的就是與 Active Directory 事件有關的資訊看板,它可以幫助 Active Directory 的管理者省下極大的功夫。



Active Directory 事件看板


透過上面這個資訊看板,我們可以快速從時間軸的直條圖中快速辨識出那一個時段有特別多的登入失敗事件,也可以從下方兩個排行榜中得知前幾名登入失敗錯多次的帳號、IP 以及從那一部主機去跟 AD 做驗證。

試想,今天若沒有這樣快速統計結果的資訊看板可以一目了然,管理者要花多少時間去爬這些  Active Directory 的事件呢?善用工具的效益是極其驚人的。






外部整合

除了以 Graylog 做為集中管理與分析之外,其實還有另外一種神奇的用法,相信這個用法會是已經有在使用 Splunk 者的極大好消息。



Graylog plugin for Splunk


相當神奇,Graylog 開發了一支外掛程式是專為 Splunk 所設計,這支外掛程式最主要的用途,是提供把記錄轉發給 Splunk 收取。

眾所週知 Splunk 是以資料量計費,因此許多使用者會為了怎麼好好在有限的資料量費收取需要的記錄而傷透腦筋,而 Graylog plugin for Splunk 正是用以解決這個問題,先讓 Graylog 做為第一線記錄收取伺服器,再由 Graylog 透過此外掛程式決定要篩選那些記錄再即時的轉丟給 Splunk,既達成記錄全收在 Graylog,但又可以把重要的記錄丟給 Splunk 做更強的分析或整合運用。

由此可知,開源與閉源軟體不一定是對立者,而是可以互相搭配,從而創造靈活的彈性與更大的效益。






結論

在資安的管理情境裡,集中收集記錄是一件非常重要的基礎工作,當資料收容回來以後讓資料自己說話,就可以依靠 Graylog 所提供的各種現成工具,協助我們快速的完成任務,立即抓出問題,對症下藥。

參考資料的最後一個連結,是國外高手採用 Graylog 打造每日 250GB 記錄的經驗,提供了建置時的架構規劃、系統配置,並分享了如何設定好 ElasticSearch、MongoDB 等細節參數,值得一看。

等等,我們好像沒有提到怎麼收集 Windows Server 的事件記錄?別擔心,下一篇所介紹的工具正是可以協助我們解決這個問題。





參考資料