家庭网络防御系统搭建-将NDR系统的zeek日志集成到securit yonion

本文主要是介绍家庭网络防御系统搭建-将NDR系统的zeek日志集成到securit yonion,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在前面的文章中安装了zeek,这里,安装了securityonion,这里,本文讲述如何将zeek生成的日志发送到siem security onion之中。

所有日志集成的步骤分为如下几步:

  • 日志收集配置
  • 日志发送接收
  • 日志解析配置
  • 日志展示配置

ZEEK日志收集配置

在之前raspiberry 上安装的zeek日志存在如下目录:
在这里插入图片描述

JSON 格式日志

默认的zeek日志格式为log后缀的文本格式,需要将日志格式改为json格式送往securityonion方便解析。因此需要在/opt/zeek/share/zeek/site/local.zeek添加json格式的解析脚本

#output to json
@load policy/tuning/json-logs.zeek

如下
在这里插入图片描述
在/opt/zeek/logs/current使用./zeekctl deploy重新启动zeek,即可以得到json格式的 zeek的日志,如下:
在这里插入图片描述
理论上只要将这些日志通过syslog发送给siem即可,但是基于elastic stack的securityonion可以使用elastic agent进行日志的收集和发送,接收日志收集策略,因此采用elastic agent 更加的方便。

elastic agent发送&接收

elastic使用elastic agent在对应的机器上收集日志,使用fleet来管理所有的elastic agent。因此首先在管理端fleet需要设置好对应的agent管理配置,详细参考连接,这里,如下图:
在这里插入图片描述
agent policy指的是收集日志的策略,方便起见这里先选择so-grid_general,虽然该策略无法生效,但是后续会新建一个收集日志的策略。同时选择enroll in fleet模式。
在这里插入图片描述
将步骤三中的命令拷贝到对应的机器上执行就会下载安装elastic agent,安装,并通过API注册到fleet中,如下图:
在这里插入图片描述

ARM版本的elastic agent

由于是raspiberry 是arm架构的机器,需要使用arm64位的安装包,不能使用默认的linux安装包,8.10版本的arm版本下载见这里,最新arm版本的elastic下载,这里,如下:
在这里插入图片描述
下载8.10.4的原因在于securityonion 2.4.60版本中带的kibana版本为8.10.4,因此只需要更换命令中下载源,其他的安装注册的命令保持不变即可。由于自签证书的问题,因此需要在注册的时候加上–insecure参数,参考链接这里,需要将原有的命令:

curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.10.4-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.10.4-linux-x86_64.tar.gz
cd elastic-agent-8.10.4-linux-x86_64
sudo ./elastic-agent install --url=https://192.168.233.136:8220 --enrollment-token=Z2xIYWJvNEJrd1VWTEF6Vi1LamE6VGRnVnB5WEFRX1dRUkFPSlhTOWllUQ==

更换为

curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.10.4-linux-arm64.tar.gz
tar xzvf elastic-agent-8.10.4-linux-arm64.tar.gz
cd elastic-agent-8.10.4-linux-arm64
sudo ./elastic-agent install --url=https://192.168.0.15:8220 --enrollment-token=Z2xIYWJvNEJrd1VWTEF6Vi1LamE6VGRnVnB5WEFRX1dRUkFPSlhTOWllUQ== --insecure

由于elastic的证书为自签的证书,因此需要加上–insecure参数,不然会提示错误,成功执行如下图:
在这里插入图片描述
这个地方需要注意的是,由于我的securityonion安装是在虚拟机中,因此需要做宿主机和虚拟机的端口映射,一些网络不同的汇总见之前的文章,这里。因此raspiberry在向对应的IP地址注册的时候,首先注册地址应该写宿主机器的IP地址而不是虚拟机的IP地址。除了初始注册连接的端口外,后续elastic agent 还会连接fleet的其他端口,因此在elastic agent 内部如果在IP地址寻址不成功,会使用对securityonion域名解析,因此需要在raspiberry主机上配置该域名解析为宿主机的IP地址,如下:
在这里插入图片描述

日志解析配置

上述命令执行成功,在fleet管理端会出现1 agent has been enrolled的标志,如上图。前面提到由于默认的policy中的配置不适合当前的agent,因此需要给当前用于收集zeek日志的agent重新配置policy,创建一个收集zeek日志的policy,采用默认配置即可如下:
在这里插入图片描述
在当前的policy下,创建解析zeek日志的Integrations,由于目前V2.4.60版本的securityonion集成的kibana版本为V 8.10.4,其中只有130+的特定日志解析功能,不支持zeek日志的解析,如下:
在这里插入图片描述

像zeek等日志解析功能需要在8.12以上版本才能提供,详见这里,如下:
在这里插入图片描述

因此使用自定义的custom logs,由于在我的raspiberry上的zeek日志存储在/opt/zeek/logs/current中,因此配置的路径如下:
在这里插入图片描述
需要注意的是advance 中的配置如下图:
在这里插入图片描述

其中的内容是复制so-grid-nodes_general中的import-zeek-logs的内容即可,只要把对应的路径改为当前raspiberry上的zeek路径即可。这样做的目的是借助security onion内置的脚本解析zeek的json日志,即把每一行json日志解析成为一个个field。如果不配置processors的话,zeek json只会被按行读取在message字段展示,不会做解析。关于processor的脚本解释,参考这里。

新创建Network-logs的policy之后,需要修改raspiberry的policy,保存生效即可,如下图:
在这里插入图片描述

日志展示配置

参考链接https://docs.securityonion.net/en/2.4/zeek.html#community-id

默认elastic agent会每隔5分钟检查current目录会不会有文件的变化,如果有的话便会上传日志。可以在fleet中查看对应agent 的日志记录,查看日志传输有没有问题,如下:
在这里插入图片描述
在security onion的dashboads中按照oberver.name进行过滤,查看raspiberry agent上传上来的日志,如下:
在这里插入图片描述
可以看到之前配置的processors起用了,其中message为zeek日志中conn.log中的一行,可以看到通过前图的processors设置,使用内置的脚本,会将每一行的日志进行解析,解析到destination.ip,destination.port以及log.id.uid中,如果之前没有配置processors,每条记录是没有message详细的字段内容的,如下:
在这里插入图片描述

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。

这篇关于家庭网络防御系统搭建-将NDR系统的zeek日志集成到securit yonion的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/890331

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要