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

news2024/9/24 19:23:52

在前面的文章中安装了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地址,如下:
在这里插入图片描述
同时由于使用elastic agent 向security onion 发起连接,因此需要设置securityonion自带的防火墙,允许对应的请求连接通过,不然会注册不成功,如下:
在这里插入图片描述
设置elastic_agent_point对应的IP地址,允许对应的请求通过,生效时间大概在15分钟。

日志解析配置

上述命令执行成功,在fleet管理端会出现1 agent has been enrolled的标志,如下图:
在这里插入图片描述
可以看到agent名称是按照sensor的主机名来命名的,当前没有配置策略,处于unhealthy状态。

前面提到由于默认的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中的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村中少年原创文章,未经允许不得转载,博主链接这里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1595945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识three.js创建第一个threejs3D页面

说到3D&#xff0c;想必大家都能想到three.js&#xff0c;它是由WebGL封装出来的&#xff0c;接下来&#xff0c;我手把手教大家创建一个简单的3D页面 话尽在代码中&#xff0c;哈哈 大家可以复制代码玩一下 <!DOCTYPE html> <html lang"en"><head&…

华为昇腾AI芯片加持,9.1k Star 的 Open-Sora-Plan,国产Sora要来了吗

Aitrainee | 公众号&#xff1a;AI进修生 哇&#xff0c;今天Github趋势榜第一啊&#xff0c;为了重现Sora&#xff0c;北大这个Open-Sora-Plan&#xff0c;希望通过开源社区力量的复现Sora&#xff0c;目前已支持国产AI芯片(华为昇腾&#xff09;&#xff0c;这回不用被卡脖子…

【iOS】SDWebImage源码阅读笔记

文章目录 前言一、设计目的二、特性三、用法1.UITableView 中使用 UIImageViewWebCache2.使用回调Blocks3.SDWebImageManager 的使用4.单独使用 SDWebImageDownloader 异步下载图片5.单独使用 SDImageCache 异步缓存图片 四、实现原理五、具体实现流程sd_setImageWithURLsd_int…

实习僧网站的实习岗位信息分析

目录 背景描述数据说明数据集来源问题描述分析目标以及导入模块1. 数据导入2. 数据基本信息和基本处理3. 数据处理3.1 新建data_clean数据框3.2 数值型数据处理3.2.1 “auth_capital”&#xff08;注册资本&#xff09;3.2.2 “day_per_week”&#xff08;每周工作天数&#xf…

Matlab-AMF算法(自适应中值滤波Adaptive Median Filtering)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 实现原理 AMF&#xff08;Adaptive Median Filter&#xff0c;自适应中值滤波&#xff09;是一种用于图像处理和信号处理的滤波算…

OpenHarmony南向开发案例:【智能垃圾桶】

样例简介 智能垃圾桶可以通过数字管家应用来监测垃圾桶当前可用容量&#xff0c;提醒主人及时处理垃圾&#xff1b;通过日程管家可以实现和其他智能设备联动。 核心组件位置功能距离传感器置于垃圾桶盖内侧感应垃圾量红外传感器置于垃圾桶前端感应是否有人靠近光敏电阻开发板…

SpringMvc文件上传下载案例

1、文件上传 文件上传功能如下&#xff1a; 客户端使用ElementPlus上传文件 服务器使用 SpringMvc接收文件 1.1客户端代码 ElementPlus的<el-upload>可以非常方便的处理文件上传功能&#xff0c;即美观又强大。 传送门--》 upload组件文档 1.1.1、使用axios工具上传…

Java算法之时间复杂度和空间复杂度的概念和计算

1. 算法效率 如何去衡量一个算法的好坏&#xff1f; 通常我们从时间效率和空间效率两个方面去分析算法的好坏。时间效率即时间复杂度&#xff0c;空间效率被称为空间复杂度。时间复杂度主要是衡量一个算法的运行速度&#xff0c;而空间复杂度主要衡量一个算法所需要的额外空间…

【面试题】s += 1 和 s = s + 1的区别

文章目录 1.问题2.发现过程3.解析 1.问题 以下两个程序真的完全等同吗&#xff1f; short s 0; s 1; short s 0; s s 1; 2.发现过程 初看s 1 和 s s 1好像是等价的&#xff0c;没有什么区别。很长一段时间内我也是这么觉得&#xff0c;因为当时学习c语言的时候教科书…

系统思考—时间滞延

“没有足够的时间是所有管理问题的一部分。”——彼得德鲁克 鱼和熊掌可以兼得&#xff0c;但并不能同时获得。在提出系统解决方案时&#xff0c;我们必须认识到并考虑到解决方案的实施通常会有必要的时间滞延。这种延迟有时比我们预想的要长得多&#xff0c;特别是当方案涉及…

AlgorithmDay11

day11 对于-*/这些运算符&#xff0c;它们并不是单个字符&#xff0c;而是由两个字符组成的运算符。在C中&#xff0c;这些运算符是作为字符串处理的&#xff0c;因此应该使用双引号来表示。 例如&#xff1a; string op ""; // 表示加法运算符另一方面&#xff…

vue3+高德地图(或echarts)+turfjs实现等压线,色斑图(用于显示气象,环境等地图场景)

首先是turf.js(英文官网),也有中文网不过也就目录翻译了一下. 高德官网自行获得key echarts官网 使用turf的isobands api实现. 数据: 需要准备geojson格式经纬度信息业务值(比如温度,高度,光照只要是number值什么数据都可以) 国内各地区geojson数据点这里获得 参考的是这位大佬…

30元腾讯云服务器搭建幻兽帕鲁Palworld多人联机游戏,畅玩

幻兽帕鲁太火了&#xff0c;官方palworld服务器不稳定&#xff1f;不如自建服务器&#xff0c;基于腾讯云幻兽帕鲁服务器成本32元全自动部署幻兽帕鲁服务器&#xff0c;超简单有手就行&#xff0c;全程自动化一键部署10秒钟即可搞定&#xff0c;无需玩家手动部署幻兽帕鲁游戏程…

[通俗易懂:Linux标准输入/输出和重定向]Shell脚本之 > /dev/null 2>1命令详解

目录标题 一、> /dev/null 2>&1 命令解析二、/dev/null 文件浅显理解三、标准输入、标准输出、标准错误输出四、输入重定向、输出重定向五、命令作用与应用场景 如果想看命令意义&#xff0c;可以直接跳到第五部分 一、> /dev/null 2>&1 命令解析 我们在别…

7 个 Python 问题,来扫扫盲

这 7 个问题&#xff0c;我是有收获的&#xff0c;整理如下&#xff1a; 1、反射算术运算符 你可能知道 Python 里面的魔法函数&#xff0c;比如 __add__ 和 __sub__ 代表 - 运算符&#xff0c;表示 obj /- something&#xff0c;但你可能不知道还有一个 __radd__&#xff0…

JMeter入门教程 —— 事务!

简介&#xff1a; JMeter中事务的基本介绍 1.任务背景 JMeter中的事务是通过事务控制器实现的。&#xff0c;为了衡量服务器对某一个或一系列操作处理的响应时间&#xff0c;需要定义事务。下面我们详细介绍在JMeter中如何使用事务 2.任务目标 掌握基于JMeter性能测试脚本开…

标准版uni-app移动端页面添加/开发操作流程

页面简介 uni-app项目中&#xff0c;一个页面就是一个符合Vue SFC规范的.vue文件或.nvue文件。 .vue页面和.nvue页面&#xff0c;均全平台支持&#xff0c;差异在于当uni-app发行到App平台时&#xff0c;.vue文件会使用webview进行渲染&#xff0c;.nvue会使用原生进行渲染。…

若依框架针对漏洞升级的记录

背景&#xff1a;项目部署在生产环境上以后&#xff0c;漏洞扫描的时候&#xff0c;发现各种漏洞需要修复&#xff0c;很多漏洞的升级后面都记不住了&#xff0c;所以现在都简单记录一下处理的步骤 20240415 解决方案&#xff1a;直接修改配置文件中的Spring security的版本…

bugku-web-需要管理员

页面源码 <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <title>404 Not Found</title> </head> <body> <div idmain><i> <h2>Something error:</h2…

Linux:调试器 - gdb

Linux&#xff1a;调试器 - gdb gbd基本概念gbd调试浏览断点运行变量 gbd基本概念 GDB (GNU Debugger) 是一个强大的命令行调试工具,用于调试各种编程语言(如C、C、Java、Python等)编写的程序。使用 gdb可以帮助开发人员更快地定位和修复程序中的缺陷,提高代码质量和开发效率。…