安全运营-ELK基础设施构建SIEM平台

admin 2024年6月6日20:56:19评论3 views字数 7291阅读24分18秒阅读模式

前言

本文将手把手带你搭建基于ELK技术栈实现SIEM平台,我们将会使用到的技术栈如下:

  • Elasticsearch用于SIEM平台存储、关联、搜索和索引
  • Kibana用于可视化展示Elasticsearch中存储的信息日志和安全事件数据

这里我们安装的Elasticsearch和Kibana版本均是8.13.4,Kibana在高版本用户界面已经变成了Elastic界面了,如果你使用的版本为7.x版本那么可能界面跟本文的界面差距很大。

这是因为Elastic Stack由Elasticsearch、Kibana、Integrations三大技术栈组成,目前Elasticsearch、Kibana和Integrations组成了一个全新Elastic平台。

我们还需要安装一些集成,为Elastic平台提供终端或服务器日志数据和安全事件,Elastic为我们提供
了很多集成,本文需要安装的是Auditbeat集成、Filebeat集成、Winlogbeat集成和Suricata集成。

主机我们需要准备三台:
1、第一台Centos Linux用于搭建Elasticsearch服务和Kibana服务(本文称SIEM服务器)
2、第二台Centos Linux用于安装集成采集主机、网络等相关日志数据和安全事件到SIEM服务器,
3、第三台Windows终端或服务器,用于采集Windows相关事件数据。

SIEM定义

“SIEM(信息安全和事件管理)可收集日志和事件,从而对这些数据进行标准化处理以供进一步分析,这些分析可以通过可视化、告警、搜索和报告等多种方式进行展现。安全团队通常会将他们的SIEM用作中央仪表板,在平台外执行许多日常操作。安全分析师可以使用SIEM解决方案来处理高级网络安全用例,例如持续监测、威胁猎捕,以及事件调查和响应。”  总得来说,SIEM平台主要就是分析日志和事件并且可视化,帮助安全分析人员更可观的分析日志和事件。

Eleastic SIEM架构

安全运营-ELK基础设施构建SIEM平台

根据上面的图,我们大概了解Elastic SIEM平台是如何运作的。
在最底层,使用Beats数据采集器或者Logstash数据收集引擎提供日志数据,在上一层通过Elastic通用数据定义来解析和规范化数据,最上面的一层则使用Kibana可视化数据和对事件的管理。

部署Elastic平台

Elastic官方下载地址 https://www.elastic.co/cn/downloads/
首先需要先安装Elasticsearch和Kibana,下载相应的RPM包安装

# 下载相应RPM包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.4-x86_64.rpm
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.13.4-x86_64.rpm
# 安装Elasticsearch和Kibana
yum install elasticsearch-8.13.4-x86_64.rpm kibana-8.13.4-x86_64.rpm

安装好Elasticsearch和Kibana后,接下来就是要修改配置文件,需要先查看当前IP,后续配置需要

安全运营-ELK基础设施构建SIEM平台

先配置Elasticsearch配置文件,该配置位置在 /etc/elasticsearch/elasticsearch.yml 文件中,将对应配置项进行更改

cluster.name: siem # 集群名
node.name: node-1 # 节点名
network.host: 0.0.0.0 # 主机监听地址
discovery.seed_hosts: ["0.0.0.0"] # 发现主机节点
cluster.initial_master_nodes: ["node-1"] # 指定集群初始化主节点

往下翻还有一个 cluster.initial_master_nodes 重复了,删除或者注释掉都可以

需要注意的是,如果Elasticsearch版本较高,可能需要Java版本在17版本,否则可能会启动失败。如果启动失败,也可查看配置文件是否有重复项或者格式是否有误等情况配置完成后,启动Elasticsearch并且设置自启动

systemctl start elasticsearch # 自启动
systemctl enable elasticsearch
安全运营-ELK基础设施构建SIEM平台

在Elasticsearch配置文件中默认开启了xpack认证机制和SSL,是需要授权且需要使用https协议才可以访问,不在生产环境这里建议取消SSL证书访问,Elasticsearch账号密码可以使用工具来生成

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

也可以使用相关工具来修改密码,管理员用户名是 elastic

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
安全运营-ELK基础设施构建SIEM平台

下面开始配置Kibana配置文件,先使用kibana加密密钥程序生成密钥,最好保存一下

/usr/share/kibana/bin/kibana-encryption-keys generate -q
安全运营-ELK基础设施构建SIEM平台

打开Kibana配置文件,将对应配置项进行更改,顺便把上面生成的密钥信息也添加进去

vim /etc/kibana/kibana.yml
# kibana主机地址
server.host: "10.211.55.12"
# 设置中文语言
i18n.locale: "zh-CN"
xpack.encryptedSavedObjects.encryptionKey: 110b9a5a64b411c5747ea1d19e39100f
xpack.reporting.encryptionKey: d5b767bfd472e8fbce8535da27270699
xpack.security.encryptionKey: a04dd648d0d86ea06967315b8bc9d2a4

再去设置Kibana平台连接Elasticsearch账号密码,Kibana在高版本已经不允许使用名为elastic超级管理员账号来连接到Elasticsearch了,可以使用Elasticsearch重置密码工具重置名为kibana账号和密码,使用该kibana账号来连接

/usr/share/kibana/bin/kibana-keystore add elasticsearch.username
/usr/share/kibana/bin/kibana-keystore add elasticsearch.password
安全运营-ELK基础设施构建SIEM平台

配置完成后,即可启动Kibana服务

systemctl start kibana
systemctl enable kibana

启动Kibana后,访问Kibana默认5601端口,这里输入elastic账号密码即可登录到Elastic平台

安全运营-ELK基础设施构建SIEM平台

至此,我们已经成功部署好了Elastic平台

安装集成

“从各种应用、终端、基础架构、云、网络、工作场所工具和生态系统中的所有其他常见来源中流式传输日志、指标、痕迹、内容等。向您选择的通知工具发送告警。轻松连接到所有重要系统。”

根据官方的描述,可以简单的理解为集成就是传输日志的通知工具,可以推送转发日志、事件等内容到Elasticsearch

Suricata

告警事件使用Filebeat来将Suricata日志事件数据转发到Elasticsearch

“Filebeat是一个轻量级的发送器,用于转发和集中日志数据。
Filebeat作为代理安装在您的服务器上,监控您指定的日志文件或位置,收集日志事件,并将其转发到Elasticsearch或Logstash进行索引。

先安装Filebeat集成

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.13.4-x86_64.rpm
rpm -vi filebeat-8.13.4-x86_64.rpm

编辑Filebeat配置文件连接到Kibana和Elasticsearch

vim /etc/kibana/kibana.yml
setup.kibana:
  host: "10.211.55.12:5601"
output.elasticsearch:
  username: "elastic"
  password: "YP4w2dc3GYM2cPDlxxm5"

这里我们开启Filebeat内置的suricata模块,还需要修改一下suricata配置文件,设置事件日志存储路径

filebeat modules enable suricata # 开启Filebeat内置suricata模块
vim /etc/filebeat/modules.d/suricata.yml
- module: suricata
  eve:
    enabled: true
    var.paths: ["/var/log/suricata/eve.json"]

再将仪表板和管道加载到Kibana,完成之后启动Filebeat

filebeat setup
systemctl start filebeat
安全运营-ELK基础设施构建SIEM平台

安装完Filebeat,再安装Suricata

yum install epel-release yum-plugin-copr
yum copr enable @oisf/suricata-7.0
yum install suricata

安装完suricata,修改suricata配置文件对应配置项内容

vim /etc/suricata/suricata.yaml
vars:
  address-groups:
    HOME_NET: "[10.211.55.0/24]" # 修改成你想要监听的网段
af-packet:
  - interface: eth0 # 这里选择需要监听的网卡

# 在文件末尾添加以下配置
 detect-engine:
  - rule-reload: true

使用suricata-update命令来更新suricata规则库,更新完成之后再测试一下配置文件有没有配置错误,没有的话重启suricata

suricata-update
suricata -T -c /etc/suricata/suricata.yaml -v
systemctl restart suricata

执行下面命令来测试一下,会不会产生告警

curl http://testmynids.org/uid/index.html
安全运营-ELK基础设施构建SIEM平台

以上执行结果是个返回了root身份,查看日志是成功告警了,如果日志没有告警信息,查看一下 /var/log/suricata/ 目录和该目录下面的文件文件所属者是不是suricata,不是的话将文件所有者设置成suricata用户

cat /var/log/suricata/fast.log
安全运营-ELK基础设施构建SIEM平台

进入Kibana的Dashboards面板模块

安全运营-ELK基础设施构建SIEM平台

Suricata主要看两个面板,一个是事件面板另一个告警面板

安全运营-ELK基础设施构建SIEM平台

在右侧我们可以看到告警名称,找到了上面告警日志中的告警名称

安全运营-ELK基础设施构建SIEM平台

在下面可以看到详细的来源IP和目的IP,也可对告警进行展开查看原始告警信息

安全运营-ELK基础设施构建SIEM平台
安全运营-ELK基础设施构建SIEM平台

通过KQL语法过滤规则来搜索相关告警信息

安全运营-ELK基础设施构建SIEM平台

Auditbeat

“Auditbeat是一个轻量级的发送程序,您可以将其安装在服务器上,以审核系统上用户和进程的活动。例如,您可以使用Auditbeat从Linux审计框架收集和集中审计事件。您还可以使用Auditbeat检测对关键文件(如二进制文件和配置文件)的更改,并识别潜在的安全策略违规行为。”

在另外一台服务器上执行下面的命令安装Auditbeat事件集成

curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.13.4-x86_64.rpm
rpm -vi auditbeat-8.13.4-x86_64.rpm

修改 /etc/auditbeat/auditbeat.yml 配置文件如下:

setup.kibana:
  host: "10.211.55.12:5601"
output.elasticsearch:
  hosts: ["10.211.55.12:9200"]
  username: "elastic"
  password: "vFsYVEHtH-K4OOOkfJd*"

配置完成后,执行下面命令加载面板和启动auditbeat服务

auditbeat setup
systemctl start auditbeat
安全运营-ELK基础设施构建SIEM平台

这样就加载成功了,然后启动auditbeat服务,现在需要来检查数据是否能够收到

安全运营-ELK基础设施构建SIEM平台

点击检查数据按钮,显示已成功接受数据说明已经成功了

Auditbeat面板可以看到系统的基本情况、主机信息、登录事件、所有用户、系统进程、Sockets链接、软件包等信息

安全运营-ELK基础设施构建SIEM平台
安全运营-ELK基础设施构建SIEM平台
安全运营-ELK基础设施构建SIEM平台

Packetbaet

“Packetbeat是一种实时网络数据包分析器,您可以将其与Elasticsearch一起使用,以提供应用程序监控和性能分析系统。Packetbeat通过提供网络服务器之间的可见性来完善Beats平台。”

下载packetbeat的rpm安装包后,先安装libpcap数据包捕获库

curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.13.4-x86_64.rpm
yum install libpcap
rpm -vi packetbeat-8.13.4-x86_64.rpm

修改 /etc/packetbeat/packetbeat.yml 配置文件如下:

setup.kibana:
  host: "10.211.55.12:5601"
output.elasticsearch:
  hosts: ["10.211.55.12:9200"]
  username: "elastic"
  password: "vFsYVEHtH-K4OOOkfJd*"

执行下面的命令完成加载面板和启动服务

packetbeat setup
systemctl start packetbeat
安全运营-ELK基础设施构建SIEM平台

来到仪表板,发现packetbeat仪表板已经有了,说明已经安装成功

Packetbeat面板可以看到DNS、DHCP、TLS、HTTP、RPC、NFS以及数据库等相关网络协议的情况

安全运营-ELK基础设施构建SIEM平台
安全运营-ELK基础设施构建SIEM平台

Winlogbeat

“Winlogbeat使用Windows API从一个或多个事件日志中读取数据,根据用户配置的条件筛选事件,然后将事件数据发送到配置的输出(Elasticsearch或Logstash)。Winlogbeat监视事件日志,以便及时发送新的事件数据。每个事件日志的读取位置将保留到磁盘上,以允许Winlogbeat在重新启动后恢复。”

集成下载地址 https://www.elastic.co/cn/downloads/beats/winlogbeat

安装下载的安装包,打开安装的位置,默认安装在 C:Program FilesElasticBeats8.13.4winlogbeat,将配置文件 winlogbeat.example.yml 文件名修改成 winlogbeat.yml 并打开编辑,修改相应的配置项

setup.kibana:
  host: "10.211.55.12:5601"
output.elasticsearch:
  hosts: ["10.211.55.12:9200"]
  username: "elastic"
  password: "vFsYVEHtH-K4OOOkfJd*"

可以执行下面命令查看配置文件是否有错

.winlogbeat.exe test config -c .winlogbeat.yml -e
安全运营-ELK基础设施构建SIEM平台

出现 Config OK 说明没有问题,以管理员身份打开CMD执行下面的命令加载面板

winlogbeat.exe setup
安全运营-ELK基础设施构建SIEM平台

以管理员身份打开Powershell工具,进入到winlogbeat目录中执行powershell脚本

.install-service-winlogbeat.ps1
安全运营-ELK基础设施构建SIEM平台

安装好winlogbeat服务后,启动服务即可

net start winlogbeat
安全运营-ELK基础设施构建SIEM平台
安全运营-ELK基础设施构建SIEM平台

winlogbeat仪表板已经有了,说明安装成功

从Winlogbeat概述面板中可以看到事件的数量以及分类和按事件ID计数等信息

安全运营-ELK基础设施构建SIEM平台

主要有用户登录事件、登录失败和账号锁定事件、用户管理事件、用户组管理事件这些面板,可以分析用户事件信息

安全运营-ELK基础设施构建SIEM平台

总结

使用Kibana+Elasticsearch搭建了基础SIEM平台,通过在终端和服务器上安装集成将日志和事件等内容转发到Elasticsearch,在Kibana平台应用对应的集成面板可视化查看日志信息。

Reference

1、https://mp.weixin.qq.com/s/vcL7eKMYyL-TCsvmvhCI_A
2、https://mp.weixin.qq.com/s/iaztHJYAtQSCDUS0_5fgtQ
3、https://mp.weixin.qq.com/s/5Jxh-bQEhLnQul9d4hEG8A
4、https://mp.weixin.qq.com/s/whk_VOsYjoz1BccePxj0XA

原文始发于微信公众号(Evilc0de 安全团队):安全运营-ELK基础设施构建SIEM平台

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月6日20:56:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全运营-ELK基础设施构建SIEM平台https://cn-sec.com/archives/2823562.html

发表评论

匿名网友 填写信息