天天看点

Beats Elastic中的Auditbeat使用介绍

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.

继续阅读