1. 简介

Wazuh由部署到受监视系统的端点安全代理和管理服务器组成,管理服务器收集和分析代理收集的数据。此外,Wazuh已与Elastic Stack完全集成,提供了搜索引擎和数据可视化工具,使用户可以浏览其安全警报。

Wazuh提供的功能包括日志数据分析,入侵和恶意软件检测,文件完整性监视,配置评估,漏洞检测以及对法规遵从性的支持。

github: https://github.com/wazuh

2. Wazuh平台的组件和体系结构

Wazuh平台主要包括三个主要组件,分别是Wazuh代理,Wazuh服务器和Elastic Stack。

  • Wazuh代理:它安装在端点上,例如笔记本电脑,台式机,服务器,云实例或虚拟机。它提供了预防,检测和响应功能。它确实支持Windows,Linux,macOS,HP-UX,Solaris和AIX平台。
  • Wazuh服务器:它分析从代理收到的数据,通过解码器和规则对其进行处理,并使用威胁情报来查找众所周知的危害指标(IOC)。一台服务器可以分析来自成百上千个代理的数据,并在设置为集群时水平扩展。该服务器还用于管理代理,在必要时进行远程配置和升级。
  • Elastic Stack:它索引和存储Wazuh服务器生成的警报。此外,Wazuh和Kibana之间的集成为数据的可视化和分析提供了强大的用户界面。该界面还可用于管理Wazuh配置并监视其状态。

2.1 Wazuh代理

Wazuh代理可在Linux,Windows,macOS,Solaris,AIX和其他操作系统上运行。它可以部署到笔记本电脑,台式机,服务器,云实例,容器或虚拟机。它提供了威胁预防,检测和响应功能。它还可用于收集不同类型的系统和应用程序数据,然后通过加密并经过身份验证的通道将其转发到Wazuh服务器。

2.1.1 代理架构

Wazuh代理具有模块化体系结构,其中不同的组件负责各自的任务:监视文件系统,读取日志消息,收集清单数据,扫描系统配置,查找恶意软件等。用户可以通过配置启用或禁用代理模块设置,使解决方案适应其特定的用例。

2.1.2 代理模块

所有代理模块都有不同的用途和设置。以下是他们的工作的简要说明:

  • 日志收集器:此代理组件可以读取平面日志文件和Windows事件,收集操作系统和应用程序日志消息。它确实支持Windows事件的XPath过滤器,并且可以识别多行格式(例如Linux审核日志)。它还可以使用其他元数据来丰富JSON事件。
  • 命令执行:代理可以定期运行授权命令,收集其输出并将其报告回Wazuh服务器以进行进一步分析。此模块可用于满足不同的目的(例如,监视剩余的硬盘空间,获取上次登录用户的列表等)。
  • 文件完整性监视(FIM):此模块监视文件系统,并在创建,删除或修改文件时报告。它跟踪文件属性,权限,所有权和内容。事件发生时,它将实时捕获谁,什么以及何时显示详细信息。此外,该模块使用受监视文件的状态构建和维护数据库,从而允许远程运行查询。
  • 安全配置评估(SCA):此组件利用基于Internet安全中心(CIS)基准的即用型检查提供连续的配置评估。用户还可以创建自己的SCA检查来监视和实施其安全策略。
  • 系统清单:此代理模块定期运行扫描,收集清单数据,例如操作系统版本,网络接口,运行的进程,已安装的应用程序以及打开的端口列表。扫描结果存储在本地SQLite数据库中,可以远程查询。
  • 恶意软件检测:使用基于非签名的方法,此组件能够检测异常和rootkit的可能存在。监视系统调用,它将查找隐藏的进程,隐藏的文件和隐藏的端口。
  • 主动响应:检测到威胁时,此模块将自动执行操作。它尤其可以阻止网络连接,停止正在运行的进程或删除恶意文件。用户也可以在必要时创建自定义响应(例如,在沙箱中运行二进制文件,捕获网络连接流量,使用防病毒软件扫描文件等)。
  • 容器安全监视:此代理模块与Docker Engine API集成在一起,以监视容器化环境中的更改。例如,它检测到容器映像,网络配置或数据量的更改。此外,它还警告以特权模式运行的容器以及正在运行的容器中执行命令的用户。
  • 云安全监视:此组件监视诸如Amazon AWS,Microsoft Azure或Google GCP之类的云提供商。它与它们的API进行本地通信。它能够检测云基础架构的更改(例如,创建新用户,修改安全组,停止云实例等),并收集云服务日志数据(例如,AWS Cloudtrail,AWS Macie,AWS GuardDuty ,Azure Active Directory等)

2.1.3 与Wazuh服务器通信

Wazuh代理与Wazuh服务器进行通信,以便运送收集的数据和与安全性相关的事件。此外,代理发送操作数据,报告其配置和状态。连接后,可以从Wazuh服务器远程升级,监视和配置代理。

Wazuh代理与服务器的通信通过安全通道(TCP或UDP)进行,实时提供数据加密和压缩。此外,它包括流控制机制,可避免泛洪,在必要时对事件进行排队并保护网络带宽。

在第一次将Wazuh代理连接到服务器之前,必须先注册Wazuh代理。此过程为代理提供了唯一的预共享密钥,该密钥用于身份验证和数据加密。

2.2 Wazuh服务器

Wazuh服务器组件负责分析从代理接收的数据,并在检测到威胁或异常时触发警报。它还用于远程管理代理配置并监视其状态。

Wazuh服务器运行分析引擎,Wazuh RESTful API,代理注册服务,代理连接服务,Wazuh集群守护程序和Filebeat。下图表示服务器体系结构和组件:


该服务器通常在独立的物理机,虚拟机,docker容器或云实例上运行。它安装在Linux操作系统上。以下是主要服务器组件的列表:

  • 代理注册服务:用于通过供应和分配每个代理唯一的预共享身份验证密钥来注册新代理。此过程作为网络服务运行,并支持通过TLS / SSL证书或提供固定密码进行身份验证。
  • 代理连接服务:这是从代理接收数据的服务。它利用预共享密钥来验证每个代理身份并加密代理与Wazuh服务器之间的通信。此外,此服务用于提供集中的配置管理,能够远程推送新的代理设置。
  • 分析引擎:这是执行数据分析的过程。它利用解码器来识别正在处理的信息的类型(例如Windows事件,SSHD日志,Web服务器日志等),并从日志消息中提取相关的数据元素(例如源IP地址,事件ID,用户名等)。 。接下来,通过使用规则,它可以识别解码事件中的特定模式,这些特定模式可能会触发警报,甚至可能要求采取自动对策(例如,防火墙上的IP禁止)。
  • Wazuh RESTful API:此服务提供了与Wazuh基础结构进行交互的接口。它用于管理代理和服务器配置设置,监视基础结构状态和总体运行状况,管理和编辑Wazuh解码器和规则,以及查询受监视端点的状态。Wazuh Web用户界面(Kibana应用程序)也使用它。
  • Wazuh群集守护程序:此服务用于水平扩展Wazuh服务器,将它们部署为群集。这种配置与网络负载平衡器相结合,可提供高可用性和负载平衡。Wazuh群集守护程序是Wazuh服务器用来相互通信并保持同步的服务器。
  • Filebeat:用于将事件和警报发送到Elasticsearch。它读取Wazuh分析引擎的输出并实时发送事件。当连接到多节点Elasticsearch集群时,它还提供负载平衡。

2.3 Elastic Stack

Elastic Stack是流行的开源项目的统一套件,用于日志管理,包括Elasticsearch,Kibana,Filebeat等。与Wazuh解决方案特别相关的项目是:

Filebeat:一种轻量级转发器,用于通过网络传送日志,通常将日志传送到Elasticsearch。在Wazuh服务器上使用它来将事件和警报发送到Elasticsearch。它读取Wazuh分析引擎的输出,并通过加密通道实时发送事件。当连接到多节点Elasticsearch集群时,它还提供负载平衡。
Elasticsearch:高度可扩展的全文本搜索和分析引擎。Elasticsearch是分布式的,这意味着数据索引分为多个碎片,每个碎片可以具有零个或多个副本。Wazuh对警报数据,原始事件和状态监视信息使用不同的索引。
Kibana:灵活,直观的Web界面,用于挖掘,分析和可视化数据。它在Elasticsearch集群中的索引内容之上运行。Wazuh Web用户界面已以插件的形式完全嵌入在Kibana中。它包括用于安全事件,法规遵从性(例如PCI DSS,GDPR,CIS,HIPAA,NIST 800-53)的现成仪表板,检测到的易受攻击的应用程序,文件完整性监控数据,配置评估结果,云基础架构监控事件, 和别的。
Wazuh与Elastic Stack集成,提供了供Elasticsearch索引的已解码消息的提要,以及用于警报和日志数据分析的实时Web控制台。此外,在Kibana之上运行的Wazuh用户界面用于管理和监视Wazuh基础结构。

Elasticsearch索引是具有相似特征(例如某些公共字段和共享数据保留要求)的文档的集合。Wazuh利用每天创建的多达三个不同的索引来存储不同的事件类型:

wazuh-alerts:Wazuh服务器生成的警报的索引。每当事件触发具有足够高优先级的规则(此阈值是可配置的)时,就会创建这些规则。
wazuh-events:无论是否执行规则,从代理收到的所有事件(存档数据)的索引。
wazuh-monitoring:一段时间内与Wazuh代理状态相关的数据的索引。它是用来通过Web管理界面来表示,当个别代理商或已经Active,Disconnected或。Never connected
索引由文档组成。对于以上索引,文档是单个警报,已归档事件或与Wazuh代理状态相关的数据。

Elasticsearch索引分为一个或多个分片,并且每个分片可以有一个或多个副本。每个主分片和副本分片都是一个单独的Lucene索引。因此,Elasticsearch索引由许多Lucene索引组成。在Elasticsearch索引上运行搜索时,将在所有分片上并行执行搜索,并合并结果。在多节点Elasticsearch集群中使用Elasticsearch索引划分为多个分片和副本,目的是扩大搜索范围并实现高可用性。单节点Elasticsearch集群通常每个索引只有一个分片,没有副本。

2.4 集群部署

Elasticsearch集群是一个或多个节点的集合,这些节点相互通信以对索引执行读取和写入操作。不需要处理大量数据的小型Wazuh部署可以通过单节点群集轻松处理。当有大量受监视的端点,预期有大量数据或需要高可用性时,建议使用多节点群集。

对于生产环境,建议将Wazuh服务器和Elasticsearch部署到不同的主机。在这种情况下,Filebeat用于使用TLS加密将Wazuh警报和/或存档的事件安全地转发到Elasticsearch群集(单节点或多节点)。

3. Wazuh vs Ossec

OSSEC用户在过去十年中没有看到许多新功能。该项目已经处于维护模式很长时间了,很少进行开发工作。没有活动的路线图,最新版本主要包含偶尔的贡献者报告的错误修复。

这就是为什么早在2015年,Wazuh团队决定分叉该项目的原因。结果是一个更加全面,易于使用,可靠和可扩展的解决方案。

wazuh做的工作如下:

  • 可扩展性和可靠性
  • 安装和配置管理
  • 入侵检测引擎完善
  • 集成云
  • 集成ELK
  • 集成virustotal
  • 集成OpenScap

具体参考:https://documentation.wazuh.com/3.13/migrating-from-ossec/index.html

4. 参考

https://documentation.wazuh.com/3.13/getting-started/index.html

Wazuh--一个完善的开源EDR产品相关推荐

  1. 一个完善的产品设计流程是怎样的?

    今天这篇好文全篇都是细节,特别是对于各个岗位的职能以及上线流程都非常明晰,相信每一个产品设计师们都可以从中有所收获. 看完本文你会学到: 1. 产品设计全流程 2. 用户体验部门职能 3. 跨部门如何 ...

  2. 开源EDR(OSSEC)基础篇- 01 -设计定位与能力输出

    前言 介绍OSSEC之前,不得不提到当前比较热门的技术EDR,近几年随着大数据SIEM系统的发展,EDR(端点威胁检测与响应)技术成为了安全界万众宠爱的骄子,广泛用于威胁检测.攻击溯源和响应处理的安全 ...

  3. 开源 serverless 产品原理剖析 - Kubeless

    背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...

  4. 开源 serverless 产品原理剖析 - Kubeless 1

    背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...

  5. OpenEDR:安全厂商Comodo 开源 EDR 解决方案

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周,网络安全公司 Comodo 开源其端点检测和响应(EDR) 解决方案,成为首个选择开源 EDR 的主流安全厂商. 该项目被称为 ...

  6. 开源中文bi_主流开源 BI 产品对比

    现在市场上开源 BI 产品比较多,各个产品的侧重点不同,有的以报表为主.有的以可视化为主.有的以查询分析为主.这里我们选取了一些主流的开源 BI 产品,从产品功能.可视化能力.数据源支持以及使用文档等 ...

  7. 设计一个完善可用的服务框架

    一个完善可用的RPC服务框架,需要包含以下几点: 框架组成 具体功能说明 服务注册中心 服务框架基础知识 管理端 接口管理+配置中心 统一的RPC框架 监控中心+分布式追踪+服务治理+网关 管理端 1 ...

  8. 对于一个大数据应用项目/产品的落地,可以大致总结为五大步骤阶段?

    对于一个大数据应用项目/产品的落地,可以大致总结为五大步骤阶段: 数据规划.数据治理.数据应用.迭代实施.商业价值. 第一阶段:数据规划 一个成功的大数据项目,需要有一个良好的开端,即做好数据规划阶段 ...

  9. 独立开发变现周刊(第66期): 如何把一个短链接生成工具变成一个可持续盈利的产品?...

    分享独立开发.产品变现相关内容,每周五发布. 目录 1.Padloc: 一个开源的,端到端加密的产品. 2.Spinach: 高效完成你的每日站立会议 3.Excalidraw: 虚拟白板,用于手绘图 ...

最新文章

  1. 小工匠聊架构- 提升性能的大杀器之缓存技术
  2. boost::outcome模块containers相关的测试程序
  3. 嵌入式逻辑分析仪SignalTap II 设计范例
  4. python3字典详解_python3 字典的常用 方法
  5. python库下载地址
  6. handlersocket mysql_[原创]MongoDB、HandlerSocket和MySQL性能测试及其结果分析
  7. jquery设置禁止浏览器刷新
  8. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xfe in position 198369: illegal multibyte sequenc
  9. chromebook 笔记本 TrueNas 设置 wifi 连网
  10. windows系统自带工具dxdiag查看电脑信息
  11. 一个优秀的网站首页是如何设计的?
  12. xxl-job定时任务
  13. 从军事走向民用,惯导定位能否破解室内导航难题?
  14. 【SpringBoot】 日志框架冲突
  15. 2019计算机电源海关征税,回国华人注意!2019中国海关严打:这些东西千万别带了!...
  16. rman-20207
  17. 百度语音android 集成,Android集成讯飞语音、百度语音、阿里语音识别
  18. Alpha值和Delta是什么东西?
  19. 计算机单词正确的打开方式是怎样的?
  20. 读书笔记(I) 游戏之旅

热门文章

  1. local lua 多个_Lua 级别 CPU 火焰图介绍
  2. linux系统日志_Linux系统学习系列——Linux系统日志管 理(下 )
  3. 用栈实现算术表达式 java_java的栈和用栈来解析算术表达式
  4. 作为研发工程师,不可不知的运维技能武器库,这些你知道吗
  5. java连接kafka接收不到数据_Kafka客户端无法接收消息
  6. 名片识别信息分类python_python文字识别
  7. matlab ascii 异或,GPS数据包的ASCII异或校验和计算方法(VC++)
  8. python list大小_4个python常用高阶函数的使用方法
  9. Linux/Ubuntu 单机配置Hbase
  10. Ubuntu/Centos 等linux终端忽略大小写提示