Loading... # 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配置并监视其状态。 ![wazuh data flow](https://blog.90.vc/usr/uploads/2020/10/4251643437.png) ## 2.1 Wazuh代理 Wazuh代理可在Linux,Windows,macOS,Solaris,AIX和其他操作系统上运行。它可以部署到笔记本电脑,台式机,服务器,云实例,容器或虚拟机。它提供了威胁预防,检测和响应功能。它还可用于收集不同类型的系统和应用程序数据,然后通过加密并经过身份验证的通道将其转发到Wazuh服务器。 ### 2.1.1 代理架构 Wazuh代理具有模块化体系结构,其中不同的组件负责各自的任务:监视文件系统,读取日志消息,收集清单数据,扫描系统配置,查找恶意软件等。用户可以通过配置启用或禁用代理模块设置,使解决方案适应其特定的用例。 ![wazuh agent arch](https://blog.90.vc/usr/uploads/2020/10/2332068511.png) ### 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。下图表示服务器体系结构和组件: ![wazuh architecture_server](https://blog.90.vc/usr/uploads/2020/10/3287608054.png) 该服务器通常在独立的物理机,虚拟机,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群集(单节点或多节点)。 ![wazuh 集群部署](https://blog.90.vc/usr/uploads/2020/10/2840986850.png) # 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 最后修改:2020 年 10 月 22 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏