天天看點

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

Auditbeat是輕量型的審計日志采集器,可以收集linux審計架構的資料、監控檔案完整性。能夠組合相關消息到一個事件裡,生成标準的結構化資料,友善分析,而且能夠與Logstash、Elasticsearch和Kibana無縫內建。

預設的配置檔案是auditbeat.yml,Linux平台下,該檔案位于解壓目錄下。

還有一個auditbeat.reference.yml檔案,該檔案顯示了所有的選項,可以根據需求将其拷貝到auditbeat.yml檔案中。

auditbeat.yml主要的兩部分,一部分子產品,另一部分是輸出。

1、子產品

目前有兩種子產品:

(1)auditd:auditd子產品接收來自Linux審計架構的審計事件,該架構是Linux核心的一部分。這個子產品建立對核心的訂閱,以便在事件發生時接收它們。注意使用Auditd子產品,有的系統需要先關閉auditd服務,執行” service auditd stop”。

子產品相關配置項如下:

auditrulefiles:從單獨的檔案加載審計規則,注意預設提供了36和位64位兩種,根據本地系統選擇其一。

auditrules:定義審計規則。

執行./auditbeat show auditd-rules可以檢視目前的規則,預設的審計規則如下,一般預設規則就可以滿足審計需求,如果需要自定義可修改audit.rules.d目錄下的審計規則檔案。

(2)file_integrity:file_integrity子產品實時監控指定目錄下的檔案更改。注意在linux系統中,需要使用inotify,是以核心必須支援inotify,2.6.13以上核心均已安裝inotify。

paths:指定被監控檔案路徑

想了解兩個子產品更豐富的配置項,參考官方文檔:

https://www.elastic.co/guide/en/beats/auditbeat/6.5/auditbeat-modules.html

2、輸出

内容可以輸出到Elasticsearch、Logstash、Kafka、Redis、File、Console、Cloud,注意隻能配置一種輸出方式。

輸出到Elasticsearch:

輸出到Logstash

輸出到Kafka

hosts:指定Kafka節點。

topic:指定topic名稱。

partition.roundrobin:采用輪詢的方式依次寫到不同的分區中。

reachable_only:設定為true表示隻分發到可用的分區,會增加緩存資源使用,但是可以避免輸出阻塞。

requiredacks:Kafka節點傳回ACK可靠性級别,0表示不傳回、1表示等待本地送出、-1表示等待所有副本同步完成。

compression:是否啟用壓縮傳輸,可以為none, snappy, lz4和gzip。

max_message_bytes:允許的json編碼消息的最大值,機關是bytes。

輸出到File

想了解更詳細的配置項及含義,請參考官方文檔:

https://www.elastic.co/guide/en/beats/auditbeat/6.5/configuring-output.html

本案例是将内容輸出到了Kafka

到Kafka消費的Logstash配置如下:

input部分

output部分

在解壓目錄下,使用root使用者執行如下指令,當然如果你是rpm方式安裝的,auditbeat已添加為系統服務。

<code>nohup ./auditbeat -e &amp;</code>

在ES節點檢視索引

kibana上建立logstash-audit_log-*索引後,在Discover有資料輸出

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

1、建立視圖

建立視圖,需要了解各個字段含義,可以參考官方文檔:

https://www.elastic.co/guide/en/beats/auditbeat/6.5/exported-fields.html

(1) 指令審計

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

視圖類型:Data Table

字段:

host.name 主機名稱

process.name 指令名稱,這裡我們重點記錄幾個指令,是以要将Advanced中Include設定為mkfs|dd|rm|mv|wget

porcess.args 指令參數,有些指令審計中可能不會記錄參數,是以勾選"Show missing values"

user.name_map.uid 執行指令的帳号名稱

@timestamp 時間戳

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

process.exe 程式名稱

(2)使用者帳戶審計

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

event.action 事件動作,我們統計帳戶密碼修改,是以要将Advanced中Include設定為changed-password

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

這裡的event.action字段對應的Include設定為modified-user-account,會包括用的添加、删除、屬性修改審計事件

(3)使用者登入審計

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

event.type 事件類型,我們統計使用者登入事件,是以要将Advanced中Include設定為user_login

auditd.resuld 結果,我們統計失敗的登入,是以要将Advanced中Include設定為fail

auditd.data.acct 帳号名,對端嘗試登入的帳号名

source.ip 源IP

(4)重要目錄檔案審計

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

event.action 事件動作,我們統計檔案的增删改,是以要将Advanced中Include設定為created|deleted|moved|updated

ELK實戰--利用auditbeat采集系統審計日志并生成圖表

同樣,event.action對應的Include設定為created|deleted|moved|updated

最後建立儀表盤