auditbeat使用介绍
auditbeat是一种轻量级的数据收集器,您可以将其安装在服务器上,以审核系统上用户和进程的活动。 例如,您可以使用auditbeat从linux audit framework收集和集中审核事件。 您还可以使用auditbeat来检测对关键文件(如二进制文件和配置文件)的更改,并确定潜在的安全策略冲突。auditbeat是一种elastic beat。 它基于libbeat框架。
为了能够使用auditbeat,必须安装elasticsearch及kibana。
auditbeat 工作原理
首先我们来了解一下linux的审计框架:
linux的审计框架提供了对system call及文件变化的可观测性
促进对一些关键系统应用的监控 (pam, openssh, passwd)
分发事件到用户空间的守护程序(daemon)(auditd, journald)
那么在elastic中的auditbeat到底是来做什么的呢?auditbeat直接通过netlink sockets从内核获取事件。它的作用可以分为一下的几个方面:
收集整理消息
组合相关信息
解析
丰富数据(例如host等等)
发送到elasticsearch
假如有一下的几条信息:
那么解析出来的信息就是:
从上面,我们可以看出来事件发生的时间,结果是失败。导致结果失败的用户名是admin,所发生的操作的使用/bin/cat命令来打开文件/etc/gshadow。
auditbeat是如何切入呢?它有一下的两种方法:
作为auditd的补充应用
auditd 管理审计规则
auditbeat 发送事件到 elasticsearch
需要内核 3.16 或者更新
完全替代auditd使用
不用安装auditd软件包
auditbeat 管理审计规则
另外,auditbeat可以实现文件完整性的监控:
实时监控指定文件系统变化
报告文件元数据与哈希
为文件建立、移动、删除、更新和属性修改生成事件
这个模块目前独立于 linux 审计框架
在linux、macos和windows上均可工作
针对这个,它适用于一下的应用场景:
识别可疑篡改
软件更新之外的对于二进制文件或者共享库的更改
文件权限和属性的非常规更新
根据安全情报信息对照相应文件哈希(病毒文件快速识别)
满足企业对审计/合规的需求
auditbeat安装
必须注意选择和自己elasticsearch想匹配的版本。
安装好auditbeat后的文件显示为:
请注意上面的一个配置文件autidbeat.ym。这个将是要使用到的配置文件。
如果你是在你自己的机器上安装auditbeat,并且上面有运行kibana,那么你也可以在kibana里找到相应的安装步骤.
其中左边的是一个叫做infrastructure的应用。点auditbeat.
audibeat demo
在这里,我们先来做使用auditbeat来做一个练习,让大家感受一下auditbeat是如何工作的。
默认配置文件称为auditbeat.yml。还有一个名为auditbeat.reference.yml的完整示例配置文件,其中显示了所有不推荐使用的选项。
定义要启用的auditbeat模块。 auditbeat使用模块来收集审核信息。 对于每个模块,指定要收集的指标集。
以下示例显示了file_integrity模块,该模块配置为在磁盘上指定路径之一中的文件发生更改时生成事件:
在上面,我们特意添加了一个自己创建的文件目录/users/liuxg/tmp。这样auditbeat就可以用来监测我这个目录里的文件变化。在下面的练习中,我们可以用来展示。
配置输出。
auditbeat支持多种输出,但是通常您将事件直接发送到elasticsearch或logstash以进行其他处理。
要将输出直接发送到elasticsearch(不使用logstash),请设置elasticsearch安装的位置:
如果您打算使用auditbeat随附的示例kibana仪表板,请配置kibana端点。 如果kibana与elasticsearch在同一主机上运行,则可以跳过此步骤。
如果elasticsearch和kibana受保护,请在运行设置和启动auditbeat的命令之前在auditbeat.yml配置文件中设置凭据。
请注意在上面我们使用了假设的用户名及密码。在实际的使用中请根据自己的情况进行适当地修改。
在我们真正地在kibana使用之前,我们先来测试一下我们的auditbeat安装是否成功。我们可以在auditbeat的安装目录进行如下的尝试:
./auditbeat test config -e
上面的显示结果我们的配置是成功的。
建议的auditbeat索引模板文件由auditbeat软件包安装。 如果您在auditbeat.yml配置文件中接受默认配置,则auditbeat在成功连接到elasticsearch之后会自动加载模板。 如果模板已经存在,除非您配置auditbeat这样做,否则它不会被覆盖。
默认情况下,如果启用了elasticsearch输出,则auditbeat会自动加载建议的模板文件fields.yml。 如果要使用默认索引模板,则不需要其他配置。 否则,您可以在auditbeat.yml中更改默认值。
使用elastic所提供的默认template。
auditbeat随附了示例kibana仪表板,可视化文件以及用于在kibana中可视化auditbeat数据的搜索。 在使用仪表盘之前,您需要创建索引模式,auditbeat- *,并将仪表盘加载到kibana中。为了做这个,我们可以采用两种方法:
直接在auditbeat.yml文件中加入如下的句子:
setup.dashboards.enabled: true
使用如下的命令(在audibeat的安装目录中,请确信kibana在运行后,在打入如下的命令):
./auditbeat setup --dashboards
终于到了我们最后的一步了。通过为您的平台发出适当的命令来运行auditbeat:
在这里特别注意的是:要监视系统文件,您将以root用户身份运行auditbeat,因此您需要更改配置文件的所有权,或者在指定--strict.perms = false的情况下运行auditbeat
数据的名字是以auditbeat为开始的索引。如果由于一些原因你没有看到这些数据,你可以点击右上角的时间设置来查找更大范围里的数据。通常kibana在默认的情况下显示最近15分钟的数据。
由于在之前我们已经设置了dashboard,我们现在直接点击dashboard来进行展示:
我们可以看到有许多以auditbeat为开始的dashboard列出来了。我们来选择其中的一个file integrity来做展示:
还记得我之前在auditbeat.yml,我加入了如下的一句 - /users/liuxg/tmp:
下面我们在目录/users/liuxg/tmp里创建一个文件,然后,我们再看看在kibana中有什么变化,再次查看一下kibana可以看到许多的关于文件a的变化信息。
同样地,也可以选择其它的关于auditbeat的dashboard.