水獭
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

写在前面
之前的十一篇已经告一段落了,后面会陆续瞎白活一些分项内容。本篇就开始白活Wazuh,对wazuh4.2.6版本及其组件、模块的系统架构、运行环境、功能性能等方面开始大概上下两篇或者上中下。对于国内用这种开源项目改成产品的情况,我就描述下个人观点。
Wazuh简介
总体架构
Wazuh由端点代理和管理服务器组成,端点代理根据管理服务器的配置项在端点服务器进行信息收集和命令执行,监控端点系统中发生的安全操作行为,管理服务器对代理收集的数据进行分析,由解码器按照一定的规则进行解析,并根据安全规则进行匹配,形成安全告警。Wazuh包括三个主要的组件:Wazuh代理、Wazuh服务器和Elastic Stack。
- Wazuh代理:它安装在被监控的端点机上。wazuh的兼容性和国内端点产品比起来是非常好的。
- Wazuh服务器:收集并分析代理返回的数据,通过解码器解析,按照一定的规则对其进行处理,并使用威胁情报来查询已知的IOC。一台管理端服务器可支撑分析上千代理的数据,对代理进行远程配置和升级。
- Elastic Stack:索引和存储Wazuh服务器生成的警报,并可管理Wazuh的配置和监视其运行状态。wazuh和Kibana的集成为数据的可视化和分析提供了强大的用户界面。
产品组成
1. 代理
Wazuh代理具有模块化的体系结构,不同模块之间互不影响,单独执行所接收的任务,通过配置可启动或禁用代理模块,这种乐高式的功能组合方式也被多数厂商所采用。
代理的主要模块功能有:日志收集、远程命令执行监控、文件完整性监控、安全配置合规性检测、恶意软件检测、系统信息采集、容器安全检测、云安全检测、主动响应。
- 日志收集:收集端点系统中指定的系统日志、软件日志、Windwos事件信息,并可配置定期执行并捕获特定命令的执行结果。
- 远程命令执行监控:由服务器配置代理定期执行特定命令,收集命令输出结果,由此来判定服务器运行状态,例如监控代理磁盘空间使用情况。
- 文件完整性监控:监控端点 上文件系统的变更,在属性、大小、删除或创建向服务器发送报告,在事件发生时,可实时捕获哪个用户、什么时间、什么操作行为等内容。
- 安全配置合规性检测:根据CIS规则收集端点上的安全配置项,对匹配进行合规性检测。
- 恶意软件检测:基于非签名的方案,检测异常和rootkit,监控系统调用,查找隐藏进程、隐藏文件和隐藏端口。
- 系统信息采集:此模块定时运行,对端点的系统版本、网络配置、运行进程、安装的软件、端口列表进行收集存储。
- 容器安全检测:监控容器环境中的内容,如容器映像、网络配置或数据更改等,并对特权模式运行的容器及正在运行的容器中执行命令的用户提供告警。
- 云安全检测:监控云服务的变化,需要与其API相结合使用,对云服务平台中的状态变化提供告警。
- 主动响应:当检测到威胁时,可以阻断网络连接、停止正在运行的进行或恶意文件。
Wazuh代理与Wazuh服务器之间进行通信,传输收集的数据和安全性相关的事件信息,代理发送操作数据,报告配置和状态,Wazuh服务器可对代理进行远程升级和配置。Wazuh代理和Wazuh服务器之间通信采用安全通道进行,对数据进行加密和压缩,在必要时对事件进行排队并保护带宽。代理和服务器之间在注册后会形成唯一的安全秘钥,用于身份验证和数据加密,预防数据被窃取和攻击。
2. 服务器
Wazuh服务器负责分析从代理收集到的数据,并在事件匹配时触发警报,其主要组件包括注册服务、远程进行守护服务、分析守护进程、RESTful API。
- 注册服务:通过提供和分发每个代理特有的预共享身份验证密钥来注册新代理,支持通过TLS/SSL或通过固定密码进行身份验证。
- 远程守护进程服务:接收代理数据,使用预共享密钥来验证每个代理的身份,并加密代理和管理器之间的通信。
- 分析守护进程:执行数据分析,利用解码器识别正在处理的信息类型(如Windows事件、SSHD日志、web服务器日志等),然后从日志消息(如源ip、事件id、用户等)中提取相关数据元素,通过使用规则,识别解码后的日志记录中的特定模式,这些模式可能触发警报,甚至可能调用自动对策(主动响应)如:防火墙禁用IP。
- RESTful API:提供了一个接口来管理和监视代理的配置和部署状态。
3. Elastic stack
Elastic Stack是一个开源的流行日志管理套件,包括Elasticsearch、Logstash、Kibana、Filebeat等。与Wazuh特别相关有:
Elasticsearch:一个高度可伸缩,全文搜索和分析引擎。弹性搜索被分配,意味着数据(索引)被分成shard,并且每个shard可以具有零个或更多个副本。
Logstash:收集和解析要保存到存储系统中的日志工具(例如,Elasticsearch)。收集到的事件还可以使用输入、过滤和输出插件进行丰富和转换。
Kibana:一个灵活和直观的web界面,用于挖掘、分析和可视化数据。它运行在一个Elasticsearch集群上索引的内容之上。
Filebeat:一种轻量级转发器,用于在网络中传送日志,通常用于Logstash或Elasticsearch。
Wazuh与Elastic Stack集成,提供已解码的日志消息提要,这些日志消息将由Elasticsearch索引,以及用于警报和日志数据分析的实时web控制台。此外,Wazuh用户界面可用于管理和监视Wazuh基础设施。
Elasticsearch索引是具有某些相似特征的文档集合。Wazuh每天使用多达三种不同的索引来存储不同的事件类型:
Wazuh-alerts:每当事件触发规则时,Wazuh服务器生成警报的索引。
wazuh-events:从代理接收的所有事件(归档数据)的索引,无论它们是否触发规则。
wazuh-monitoring:索引与代理状态相关的数据。web接口使用它表示单个代理处于或已经处于“活动”、“断开”或“从未连接”的情况。
索引是由文档组成的,文档是单个警报、归档事件或状态事件。将Elasticsearch索引分成一个或多个shard,并且每个shard可以选择性地具有一个或多个副本,每一主和副本shard是单个的Lucene索引。因此,一个Elasticsearch索引是由许多Lucene索引组成的。当搜索在Elasticsearch索引上运行时,将并行地对所有shard执行搜索,并合并结果。将Elasticsearch索引分成多个shard和复制品用于多节点的弹性搜索集群,目的是缩小搜索和获得高可用性。单节点Elasticsearch集群通常每个索引只有一个shard,没有副本。
4. 其他
wazuh支持分析第三方工具,如Bro入侵检测程序,通过使用Bro来增加对端点的网络入侵检测,形成分析报告进行告警。
Bro是一款被动的开源流量分析器,主要用于对链路上所有深层次的可疑行为进行安全监控,为网络流量分析提供一个综合平台。在Wauzh代理机上安装配置Bro,由wazuh代理收集Bro的网络流量监控日志,将日志形成传输到wazuh 的服务器按照相应的解码规则进行解析,形成代理的网络安全告警。
安装完成Bro后,在代理的配置文件中添加收集Bro日志:
需要在wazuh的服务端配置文件/var/ossec/etc/rules/local-rules.xml添加相应的Bro日志解析规则以管理Bro的日志:
由此wazuh代理将收集Bro形成的网络行为日志信息,由服务器解析形成网络告警。
功能、性能分析
运行环境
Wazuh具有很好的兼容性,平台适应用多种类型的基础资源,服务器可部署于物理机,也可部署于虚拟机,服务器模块支持多合一部署,也支持模块独立部署。具体运行环境适配性如下:
操作系统:支持Amazon Linux、CentOS、Debian、Fedora、OpenSUSE、Oracle Linux、RHEL、SUSE、Ubuntu、Raspbian OS(AIX、HP-UX、macOS、Solairs、Windows、MSU只支持代理安装)
服务器最低配置要求:4G 2U
数据库:主流数据库MySQL、MariaDB
JDK版本:支持java 1.7及以上版本
中间件:支持tomacat、nginx
浏览器:Edge、Chrome、Firefox
功能清单
Wauzh服务器 | 注册服务 | |
远程进程守护服务 | ||
分析守护进程 | ||
RESTful API | ||
Wazuh代理 | 日志收集 | Syslog、audit、mysql.... |
/var/log/*.log | ||
C:\Windows\app\log-%y-%m-%d.log | ||
命令执行 | 执行授权命令 | |
收集输出结果 | ||
文件完整性监控 | 创建、删除 | |
内容变更 | ||
安全配置配置 | Windows注册表、策略 | |
Linux关键配置文件 | ||
系统信息采集 | 系统版本、网络信息、运行程序、安装软件、端口、系统补丁 | |
恶意检测 | 系统漏洞 | |
恶意软件 | ||
容器安全 | 容器资源、特权命令执行 | |
云服务安全 | 云服务状态检测 | |
主动响应 | 阻断网络连接、停止恶意进程 |
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
