iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
影片教學

Microsoft 365爆料公社系列 第 28

Day28: 今天來聊一下將syslog 資料連線到 Azure Sentinel

規劃syslog連接器

我們可以使用適合的Linux Log Analytics Agent,從以Linux為基礎、支援 Syslog的機器或設備

將事件串流至Azure Sentinel。只要是可直接在主機上安裝Log Analytics Agent的任何裝置,

執行此串流作業。主機的原生Syslog精靈會收集指定類型的本機事件,並將事件轉送到本機代理程式

,以串流至Log Analytics WorkSpace。

運作方式

Syslog是通用於Linux的事件記錄通訊協定。適用於Linux的Log Analytics Agent,安裝在虛擬機器或

設備上之後,安裝後會設定本機 Syslog精靈,以將訊息轉送至TCP Port 25224上的Agent。然後Agent

會透過HTTPS將訊息傳送到Log Analytics WorkSpace,並剖析成Syslog資料表中的事件記錄項目,資料表

位於[Azure Sentinel]>[記錄]。

使用 syslog 從以 Linux 為基礎的來源收集資料

檢視連接器頁面:

1.選取[資料連接器]頁面。

2.選取[Syslog] 。

3.然後在預覽窗格上選取[開啟連接器]頁面。

4.驗證有必要條件所述的適當權限。

5.選取[選擇安裝代理程式的位置]選項以展開指示。

https://ithelp.ithome.com.tw/upload/images/20211012/201121829ZIqLSpGrh.png

針對 Azure Linux VM:

若要在 Azure Linux虛擬機器上安裝代理程式:

1.在Azure Linux虛擬機器上安裝代理程式。

2.選取連結以下載及安裝Azure Linux虛擬機器代理程式。

3.在Linux VM的資料列上選取 [連線]。

https://ithelp.ithome.com.tw/upload/images/20211012/20112182eICoU1EmcR.png

設定Log Analytics代理程式

Log Analytics Linux 代理程式只會收集具有其設定中指定之設備和嚴重性的事件。

可以在Log Analytics工作區的[進階設定] 中新增設備。

1.請存取 Log Analytics 工作區的 [進階設定] 頁面:

-從[Syslog 資料連接器]頁面,選取[開啟工作區進階設定組態]。

-從Azure Sentinel入口網站,選取[設定]區域中的[設定]。在 [設定] 區域中選取 [進階設定]。

2.選取[資料]。

3.選取[Syslog] 。

4.選取[將下列設定套用到我的電腦]選項。

5.輸入設備名稱,並選取每個設備的 +。

https://ithelp.ithome.com.tw/upload/images/20211012/20112182INBaGSuMG2.png

使用KQL 剖析syslog資料

Syslog收集器會將記錄資料寫入Syslog資料表。和 CEF收集器的差異之一是,訊息資料

會儲存在名為SyslogMessage的字串欄位中。常見事件格式(CEF)連接器會將已剖析的

欄位寫入 CommonSecurityLog。若為Syslog,會需要在每個使用Syslog資料表的查詢

上剖析欄位,或寫入剖析器。剖析器是一種KQL函式,將查詢以函式的形式儲存,接著會參考

函式名稱。參考函式名稱就像存取任何其他資料表一樣。藉由建立剖析,只需要寫入一次

SyslogMessage 剖析。

在[記錄] 視窗中,建立查詢、選取 [儲存] 按鈕,然後從下拉式功能表中選取 [函式]。

接著指定函式名稱和別名。在此情況下,我們建立名為 MyParser 的函式,就可以使用名稱

MyParser 來存取資料表。

Syslog
| where ProcessName contains "squid"
| extend URL = extract("(([A-Z]+ [a-z]{4,5}:\\/\\/)|[A-Z]+ )([^ :]*)",3,SyslogMessage), 
         SourceIP = extract("([0-9]+ )(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}))",2,SyslogMessage), 
         Status = extract("(TCP_(([A-Z]+)(_[A-Z]+)*)|UDP_(([A-Z]+)(_[A-Z]+)*))",1,SyslogMessage), 
         HTTP_Status_Code = extract("(TCP_(([A-Z]+)(_[A-Z]+)*)|UDP_(([A-Z]+)(_[A-Z]+)*))/([0-9]{3})",8,SyslogMessage),
         User = extract("(CONNECT |GET )([^ ]* )([^ ]+)",3,SyslogMessage),
         RemotePort = extract("(CONNECT |GET )([^ ]*)(:)([0-9]*)",4,SyslogMessage),
         Domain = extract("(([A-Z]+ [a-z]{4,5}:\\/\\/)|[A-Z]+ )([^ :\\/]*)",3,SyslogMessage)
| extend TLD = extract("\\.[a-z]*$",0,Domain)

上一篇
Day27:今天我們來聊一下將Microsoft 365 Defender 連接到 Azure Sentinel
下一篇
Day29:今天來聊一下如何建立及管理 Azure Sentinel 威脅搜捕查詢
系列文
Microsoft 365爆料公社30

尚未有邦友留言

立即登入留言