首頁 > 軟體

淺析使用 Auditbeat 模組監控 shell 命令的問題

2022-02-18 19:00:44

使用 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 命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com