首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >12-02【使用Auditbeat模块监控shell命令】

12-02【使用Auditbeat模块监控shell命令】

作者头像
HaydenGuo
修改2020-01-13 18:19:37
2.1K0
修改2020-01-13 18:19:37
举报
文章被收录于专栏:东隅已逝东隅已逝

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 部署的。

您可以在此页面[https://www.elastic.co/cn/cloud/elasticsearch-service/signup]进行为期 14 天的 ESS 免费使用。

本文详细介绍的大多数步骤都适用于部署自托管的 ElasticsearchKibana

禁用 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.idcloud.auth参数,详情参见此(文档[])。

编辑/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])。

/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 <key>用于为事件分配任意“键”,它将显示在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

监控数据

当用户执行一些类似于whoamils以及lsblk的shell命令时,kibana中就会发现这些事件。

  • Kibana会显示出 user.nameprocess.executableprocess.argstags这些选定的字段。
  • 过滤的字段是user.name: rootauditd.data.syscall: execve
  • 每秒刷新一次数据。

TTY 审计

当系统中发生TTY事件时,Auditbeat Audited 模块也可以接收它们。配置system-authPAM配置文件以启用TTY。只有root用户的TTY事件将被实时记录。其他用户的事件通常会被缓冲直到exit。TTY 审计会捕获系统内置命令像pwdtest等。

追加以下内容到/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])

该链接[https://www.elastic.co/guide/en/beats/auditbeat/current/index.html]提供了Auditbeat文档。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有暗香盈袖c 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 禁用 Auditd
    • 停止 auditd:
      • 禁用服务:
      • 配置 Auditbeat
      • Auditbeat 模块规则
      • Auditbeat 设置命令
        • 列出启用的规则:
        • 监控数据
        • TTY 审计
        • 测试
        • Kibana 发现
        • 思考
        相关产品与服务
        Elasticsearch Service
        腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档