通过Auditbeat收集系统审计数据并监控文件更改

本文介绍如何通过阿里云Auditbeat收集Linux系统的审计框架数据,监控系统文件的更改情况,并生成可视化图表。

背景信息

Auditbeat是轻量型的审计日志采集器,可以收集Linux审计框架的数据,并监控文件完整性。例如使用Auditbeat从Linux Audit Framework收集和集中审核事件,以及检测对关键文件(如二进制文件和配置文件)的更改,并确定潜在的安全策略冲突,生成标准的结构化数据,方便分析。而且Auditbeat能够与Logstash、Elasticsearch和Kibana无缝集成。

Auditbeat支持两种模块:

  • Auditd

    Auditd模块接收来自Linux审计框架的审计事件,审计框架是Linux内核的一部分。Auditd模块可以建立对内核的订阅,以便在事件发生时接收它们,详情请参见官方Auditd文档

    重要

    在启用Auditd模块的情况下运行Auditbeat时,您可能会发现其他监控工具会干扰Auditbeat。例如,如果注册了另一个进程(例如auditd)来从Linux Audit Framework接收数据,则可能会遇到错误。此时可以使用service auditd stop命令停止该进程。

  • File Integrity

    File Integrity模块可以实时监控指定目录下的文件的更改情况。如果要在Linux系统中使用File Integrity,请确保Linux内核支持inotify(2.6.13以上内核均已安装inotify),详情请参见官方File Integrity文档

    说明

    目前官方Auditbeat System模块还处于实验阶段,将来的版本中可能删除或者更改,建议不要使用。更多模块详情请参见modules

前提条件

您已完成以下操作:

  • 创建阿里云Elasticsearch实例。

    详情请参见创建阿里云Elasticsearch实例

  • 开启阿里云ES实例的自动创建索引功能。

    出于安全考虑,阿里云ES默认不允许自动创建索引。但是Beats目前依赖该功能,因此如果采集器Output选择为Elasticsearch,需要开启自动创建索引功能,详情请参见快速访问与配置

  • 创建阿里云ECS实例,且该ECS实例与阿里云ES实例处于同一专有网络VPC(Virtual Private Cloud)下。

    详情请参见自定义购买实例

    重要

    Beats目前仅支持Alibaba Cloud Linux (Alinux)、RedHat和CentOS这三种操作系统。

  • 在目标ECS实例上安装云助手和Docker服务。

    详情请参见安装云助手客户端部署并使用Docker(Alibaba Cloud Linux 2)

操作步骤

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Beats数据采集中心

  3. 创建采集器区域中,单击Auditbeat

  4. 安装并配置采集器。

    详情请参见采集ECS服务日志采集器YML配置,本文使用的配置如下。配置Auditbeat采集器

    说明
    • 勾选启用Monitoring,系统会在Kibana控制台开启Auditbeat服务的监控。

    • 勾选启用Kibana Dashboard,系统会在Kibana控制台中生成图表,无需额外配置Yml。由于阿里云Kibana配置在VPC内,因此需要先在Kibana配置页面开通Kibana私网访问功能,详情请参见配置Kibana公网或私网访问白名单

    本文使用默认的auditbeat.yml配置文件,无需更改。相关模块配置说明如下:

    • Auditd模块配置

      - module: auditd
        # Load audit rules from separate files. Same format as audit.rules(7).
        audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ]
        audit_rules: |
      • audit_rule_files:指定加载的审计规则文件,支持通配符,默认提供了32位和64位两种,请根据您的系统选择其一。

      • audit_rules:定义审计规则。可连接ECS,执行./auditbeat show auditd-rules命令,查看默认的审计规则。

        -a never,exit -S all -F pid=26253
        -a always,exit -F arch=b32 -S all -F key=32bit-abi
        -a always,exit -F arch=b64 -S execve,execveat -F key=exec
        -a always,exit -F arch=b64 -S connect,accept,bind -F key=external-access
        -w /etc/group -p wa -k identity
        -w /etc/passwd -p wa -k identity
        -w /etc/gshadow -p wa -k identity
        -a always,exit -F arch=b64 -S open,truncate,ftruncate,create,openat,open_by_handle_at -F exit=-EACCES -F key=access
        -a always,exit -F arch=b64 -S open,truncate,ftruncate,create,openat,open_by_handle_at -F exit=-EPERM -F key=access
        说明

        一般情况下默认规则就可以满足审计需求。如果需要自定义审计规则,可修改audit.rules.d目录下的审计规则文件。

    • File Integrity模块配置

      - module: file_integrity
        paths:
        - /bin
        - /usr/bin
        - /sbin
        - /usr/sbin
        - /etc

      paths:指定被监控文件的路径,默认监控的路径包括/bin/usr/bin/sbin/usr/sbin/etc

  5. 选择采集器安装的ECS实例。

  6. 启动并查看采集器安装情况。

    1. 单击启动

      启动成功后,系统弹出启动成功对话框。

    2. 单击前往采集中心查看,返回Beats数据采集中心页面,在采集器管理区域中,查看启动成功的Auditbeat采集器。

    3. 等待采集器状态变为已生效1/1后,单击右侧操作栏下的查看运行实例

    4. 查看运行实例页面,查看采集器安装情况,当显示为心跳正常时,说明采集器安装成功。

查看结果

  1. 登录目标阿里云ES实例的Kibana控制台。

    登录控制台的具体步骤请参见登录Kibana控制台

  2. 在左侧导航栏,单击Discover,选择预定义的auditbeat-*模式,并选择一个时间段,查看对应时间段内的Auditbeat收集的数据。

    查看Auditbeat数据收集结果

  3. 在左侧导航栏,单击Dashboard

  4. Dashboard列表中,单击[Auditbeat File Integrity] Overview,然后选择一个时间段,查看该时间段内监控文件的更改情况。

    Auditbeat监控文件更改情况