淺析使用 Auditbeat 模塊監控 shell 命令的問題
使用 Auditbeat 模塊監控 shell 命令
Auditbeat Audited 模塊可以用來監控所有用戶在系統上執行的 shell 命令。在終端用戶偶爾才會登錄的服務器上,通常需要進行監控。
該示例是在 CentOS Linux 7.6 上使用 Auditbeat 7.4.2 RPM 軟件包和 Elasticsearch Service(ESS)[https://www.elastic.co/products/elasticsearch/service]上的 Elastic Stack ] 7.4.2 部署的。
可以參考其中的思路,配置流程等,使用本機自建的ES,不使用Elasticsearch Service(ESS)集群
禁用 Auditd
系統守護進程 auditd 會影響 Auditbeat Audited 模塊的正常使用,所以必須將其禁用。
# 停止 auditd: service auditd stop # 禁用服務: systemctl disable auditd.service
如果您在使用 Auditbeat Auditd 模塊的同時也必須要運行 Audited 進程,那麼在內核版本為 3.16 或者更高的情況下可以考慮設置 socket_type: multicast 參數。默認值為 unicast。有關此參數的更多信息,請參見文檔[https://www.elastic.co/guide/en/beats/auditbeat/master/auditbeat-module-auditd.html#_configuration_options_14]的配置選項部分。
配置 Auditbeat
Auditbeat 守護進程將事件數據發送到一個 Elasticsearch Service(ESS)集群中。有關更多詳細信息,請參見文檔Auditbeat[https://www.elastic.co/guide/en/beats/auditbeat/master/configuring-howto-auditbeat.html]
中的配置部分。
要想獲取工作示例,必須配置 Auditbeat 的 cloud.id 和 cloud.auth 參數,詳情參見此文檔[https://www.elastic.co/guide/en/beats/auditbeat/master/configure-cloud-id.html]。
編輯 /etc/auditbeat/auditbeat.yml:
cloud.id: <your_cloud_id> cloud.auth: ingest_user:password
如果您要將數據發送到 Elasticsearch 集群(例如本地實例),請參見此文檔:[https://www.elastic.co/guide/en/beats/auditbeat/master/configure-cloud-id.html]。
Auditbeat 模塊規則
Audited 模塊訂閱內核以接收系統事件。定義規則以捕獲這些事件,並且使用Linux Auditctl 進程所使用的格式,詳情參見此文檔:[https://linux.die.net/man/8/auditctl]。
# cat /etc/auditbeat/audit.rules.d/rules.conf -a exit,always -F arch=b64 -F euid=0 -S execve -k root_acct -a exit,always -F arch=b32 -F euid=0 -S execve -k root_acct -a exit,always -F arch=b64 -F euid>=1000 -S execve -k user_acct -a exit,always -F arch=b32 -F euid>=1000 -S execve -k user_acct
- euid 是用戶的有效ID。0 代表會獲取 root 用戶和 uid >=1000 或者權限更高的其他用戶的所有活動。
- -k 用於為事件分配任意“鍵”,它將顯示在 tags 字段中。它還可以在 Kibana 中用來對事件進行過濾和分類。
Auditbeat 設置命令
運行Auditbeat 加載索引模板,讀取 node pipelines,索引文件周期策略和Kibana 儀表板。auditbeat -e setup
如果您不使用ESS,歡迎參考此文檔[https://www.elastic.co/guide/en/beats/auditbeat/current/setup-kibana-endpoint.html] 來設置您的 Kibana 端點。
開始使用
systemctl start auditbeat # 列出啟用的規則: auditbeat show auditd-rules -a never,exit -S all -F pid=23617 -a always,exit -F arch=b64 -S execve -F euid=root -F key=root_acct -a always,exit -F arch=b32 -S execve -F euid=root -F key=root_acct -a always,exit -F arch=b64 -S execve -F euid>=vagrant -F key=user_acct -a always,exit -F arch=b32 -S execve -F euid>=vagrant -F key=user_acct
監控數據
當用戶執行一些類似於 whoami,ls 以及 lsblk 的 shell 命令時,kibana 中就會發現這些事件。
- Kibana 會顯示出 user.name,process.executable,process.args 和 tags 這些選定的字段。
- 過濾的字段是 user.name: root 和 auditd.data.syscall: execve。
- 每秒刷新一次數據。
TTY 審計
當系統中發生 TTY 事件時,Auditbeat Audited 模塊也可以接收它們。配置system-auth PAM 配置文件以啟用 TTY。隻有 root 用戶的 TTY 事件將被實時記錄。其他用戶的事件通常會被緩沖直到 exit。TTY 審計會捕獲系統內置命令像pwd,test 等。
追加以下內容到 /etc/pam.d/system-auth 便可以對所有用戶啟用審核,關於 pam_tty_audit 的詳細信息,參見此文檔:[https://linux.die.net/man/8/pam_tty_audit]。session required pam_tty_audit.so enable=*
測試
$ sudo su - Last login: Fri Nov 22 23:43:00 UTC 2019 on pts/0 $ helllloooo there! -bash: helllloooo: command not found $ exit
Kibana 發現
思考
Auditbeat 還可以做什麼:
- 當一個文件在磁盤上更改(創建,更新或刪除)時可以發送事件,得益於 file_integrity 模塊,詳情參考此文檔:[https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-module-file_integrity.html]。
- 通過 system 模塊發送有關系統的指標,詳情參考此文檔:[https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-module-system.html]。該鏈接還提供瞭 Auditbeat 的相關文檔,詳情參考此文檔:[https://www.elastic.co/guide/en/beats/auditbeat/current/index.html]。
文章轉載自:https://mp.weixin.qq.com/s/_-rtOq0KrzbatEVm2Yhsag
到此這篇關於使用 Auditbeat 模塊監控 shell 命令的文章就介紹到這瞭,更多相關Auditbeat 模塊shell 命令內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 基於Docker搭建ELK 日志系統的方法
- docker安裝elastic search的詳細過程
- Linux用戶和用戶組管理方法介紹
- Security安裝 Elastic SIEM 和 EDR的超詳細教程
- MongoDB 用戶相關操作