今天小编给大家分享一下如何使用Auditbeat模块监控shell命令的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
禁用 Auditd
系统守护进程 auditd 会影响 Auditbeat Audited 模块的正常使用,所以必须将其禁用。
# 停止 auditd:service auditd stop# 禁用服务:systemctl disable auditd.service
如果您在使用 Auditbeat Auditd 模块的同时也必须要运行 Audited 进程,那么在内核版本为 3.16 或者更高的情况下可以考虑设置 socket_type: multicast 参数。默认值为 unicast。
配置 Auditbeat
Auditbeat 守护进程将事件数据发送到一个 Elasticsearch Service(ESS)集群中。
要想获取工作示例,必须配置 Auditbeat 的 cloud.id 和 cloud.auth 参数。
编辑 /etc/auditbeat/auditbeat.yml:
cloud.id: <your_cloud_id>cloud.auth: ingest_user:password
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
开始使用
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 便可以对所有用户启用审核。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 模块。
通过 system 模块发送有关系统的指标。
以上就是“如何使用Auditbeat模块监控shell命令”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。