淺析使用 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!

推薦閱讀: