一. Wazuh简介:
- Components
Wazuh平台提供XDR和SIEM特性来保护您的云、容器和服务器工作负载。其中包括日志数据分析、入侵和恶意软件检测、文件完整性监控、配置评估、漏洞检测以及对法规遵从性的支持。
具体请查看官方文档:Components - Getting started with Wazuh · Wazuh documentation
组件名称 | 关键说明 |
Wazuh indexer | wazuh‑alerts、wazuh‑archives、wazuh‑monitoring、wazuh‑statistics |
Wazuh server |
3.Server components Agent enrollment service Agent connection service Analysis engine Wazuh RESTful API Wazuh cluster daemon Filebeat |
Wazuh dashboard | Data visualization and analysis Agents monitoring and configuration Platform management Developer tools |
Wazuh agent | |
- Architecture
2.1 Required ports
3.1 用例
暂时略,等安装完毕后再来熟悉
二. 快速开始
1.1 要求
硬件 | |
操作系统 | |
浏览器兼容性 | |
Quickstart · Wazuh documentation
1.2 安装agent
Wazuh agent - Installation guide · Wazuh documentation
1.2.1 可以跟随wazuh仪表页面的指示说明,去部署agent
Go to Wazuh > Agents, and click on Deploy new agent
windows agent 安装过程:
1.2.2 或者根据具体操作说明安装 (选择1.2.1 和 1.2.2 任意方案均可)
Installing Wazuh agents on Windows endpoints - Wazuh agent
# 1.2.2.1 安装
# windows agent 请在官网自行下载
# 使用cmd 安装agent 修改WAZUH_MANAGER的值
wazuh-agent-4.7.2-1.msi /q WAZUH_MANAGER="192.168.5.34"
# 有关其他的一些部署参数或者选项,例如 agent 名称、agent组,以及注册密码等,参考下面文档:
# https://documentation.wazuh.com/current/user-manual/deployment-variables/deployment-variables-windows.html
# 通过运行下面命令,启动 wazuh_agent
NET START Wazuh
# 注意:默认情况下,agnent安装后,所有的agent相关文件位于 C:\Program Files (x86)\ossec-agent
# 1.2.2.2 卸载
msiexec.exe /x wazuh-agent-4.7.2-1.msi /qn
Deploying Wazuh agents on Linux endpoints - Wazuh agent
三. 能力
3.1 漏洞检测
3.1.1 扫描类型
基线扫描
全盘扫描
部分扫描
3.1.2 配置以及运行扫描
Configuring and running scans - Vulnerability detection
在wazuh中运行漏洞扫描需要开启漏洞检测模块the Vulnerability Detector module 以及设置扫描配置, 安装 Wazuh Server 时,默认不开启漏洞检测模块, 但 Wazuh agent 安装时默认启用 Syscollector,
下面展示如何配置 漏洞检测组件the vulnerability detection components
3.1.2.1 在 Wazuh server 服务器的/var/ossec/etc/shared/default/agent.conf 文件中添加下面的代码块
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<os>yes</os>
<packages>yes</packages>
<hotfixes>yes</hotfixes>
</wodle>
3.1.2.2 在 Wazuh server 服务器上开启漏洞检测模块
修改此配置文件/var/ossec/etc/ossec.conf , 设置 漏洞扫描模块配置 the Vulnerability Detector module ,将 <enabled> 标记的值设为yes. 以及开启你要扫描的操作系统的类型
<vulnerability-detector>
<enabled>yes</enabled>
<interval>5m</interval>
<min_full_scan_interval>6h</min_full_scan_interval>
<run_on_start>yes</run_on_start>
<!-- Ubuntu OS vulnerabilities -->
<provider name="canonical">
<enabled>yes</enabled>
<os>trusty</os>
<os>xenial</os>
<os>bionic</os>
<os>focal</os>
<os>jammy</os>
<update_interval>1h</update_interval>
</provider>
<!-- Debian OS vulnerabilities -->
<provider name="debian">
<enabled>yes</enabled>
<os>buster</os>
<os>bullseye</os>
<os>bookworm</os>
<update_interval>1h</update_interval>
</provider>
<!-- RedHat OS vulnerabilities -->
<provider name="redhat">
<enabled>yes</enabled>
<os>5</os>
<os>6</os>
<os>7</os>
<os>8</os>
<os>9</os>
<update_interval>1h</update_interval>
</provider>
<!-- Amazon Linux OS vulnerabilities -->
<provider name="alas">
<enabled>yes</enabled>
<os>amazon-linux</os>
<os>amazon-linux-2</os>
<os>amazon-linux-2023</os>
<update_interval>1h</update_interval>
</provider>
<!-- SUSE Linux Enterprise OS vulnerabilities -->
<provider name="suse">
<enabled>yes</enabled>
<os>11-server</os>
<os>11-desktop</os>
<os>12-server</os>
<os>12-desktop</os>
<os>15-server</os>
<os>15-desktop</os>
<update_interval>1h</update_interval>
</provider>
<!-- Arch OS vulnerabilities -->
<provider name="arch">
<enabled>yes</enabled>
<update_interval>1h</update_interval>
</provider>
<!-- AlmaLinux OS vulnerabilities -->
<provider name="almalinux">
<enabled>yes</enabled>
<os>8</os>
<os>9</os>
<update_interval>1h</update_interval>
</provider>
<!-- Windows OS vulnerabilities -->
<provider name="msu">
<enabled>yes</enabled>
<update_interval>1h</update_interval>
</provider>
<!-- Aggregate vulnerabilities -->
<provider name="nvd">
<enabled>yes</enabled>
<update_interval>1h</update_interval>
</provider>
</vulnerability-detector>
3.1.2.3 离线升级
Offline Update - Vulnerability detection · Wazuh documentation
如果Wazuh服务器没有直接连接到互联网上,它依旧可以保持漏洞资源的更新,你可以从你的本地环境或者互联网中获取数据库文件。这一步骤中包括两方面:1.下载指定的漏洞文件 2.并配置这些文件,能够让Wazuh Server定位它;本节的配置示例全部都位于Wazuh server服务器上的 /var/ossec/etc/ossec.conf 的文件中。
由于机房和工作站服务器操作系统主要为centos7 和 window server,所以主要摘录关于这两方面的配置
3.1.2.3.1 RedHeat
Offline Update - Vulnerability detection · Wazuh documentation
当前 漏洞检测器模块从两个不同的源中获取 RedHat 漏洞,每个受支持的redhat版本都有 OVAL file 和 Json feed. 这些源有每个发布版本受影响的软件包得全局信息。这两个源都是检测器正常工作所必需的,下面是离线升级配置每个源的步骤
RedHat OVAL Feeds
为了执行 redhat oval 资源的离线升级,必须下载相关的文件 (文件请自行在官网下载),配置示例如下:
Red Hat Security Data JSON feed
为了执行离线升级,必须请求redhat API 去获取 从指定日期起的feed 页面。Wazuh提供一个升级脚本,这个脚本自动执行feed的下载并检查API下载时间,脚本默认会下载自1999年起的所有CVE 数据。wauzh推荐使用默认起始年份以维持一个更加全面的漏洞数据库。
- 如何执行脚本(官方页面自行下载)
# 创建目录 (local_path修改为本地服务器路径)
mkdir /local_path/rh-feed
# 运行此脚本
./rh-generator.sh /local_path/rh-feed
- 配置资源
最后,这些feed文件是一系列的数字编好文件。这些文件的命名都遵循 redhat-feed<number>.json 的格式,使用正则表达式设置这些文件的路径,比如下面的示例:
<provider name="redhat">
<enabled>yes</enabled>
<path>/local_path/rh-feed/redhat-feed[[:digit:]]\+\.json$</path>
<update_interval>1h</update_interval>
</provider>
5.34服务器中相关配置如下:/var/ossec/etc/ossec.conf (部分)
<!-- RedHat OS vulnerabilities -->
<provider name="redhat">
<enabled>yes</enabled>
<os>5</os>
<os path="/opt/wazuh/Vulnerability_detection_Offline_Update/RedHat_OVAL_feeds/rhel-6-including-unpatched.oval.xml.bz2">6</os>
<os path="/opt/wazuh/Vulnerability_detection_Offline_Update/RedHat_OVAL_feeds/rhel-7-including-unpatched.oval.xml.bz2">7</os>
<os path="/opt/wazuh/Vulnerability_detection_Offline_Update/RedHat_OVAL_feeds/rhel-8-including-unpatched.oval.xml.bz2">8</os>
<os path="/opt/wazuh/Vulnerability_detection_Offline_Update/RedHat_OVAL_feeds/rhel-9-including-unpatched.oval.xml.bz2">9</os>
<path>/opt/wazuh/Vulnerability_detection_Offline_Update/redHat_Sec_Data_json/rh-feed/redhat-feed[[:digit:]]\+\.json$</path>
<update_interval>1h</update_interval>
</provider>
3.1.2.3.2 windows
Offline Update - Vulnerability detection · Wazuh documentation (msu-updates.json 官网自行下载)
示例:
<provider name="msu">
<enabled>yes</enabled>
<path>/local_path/msu-updates\.json\.gz$</path>
<update_interval>1h</update_interval>
</provider>
5.34服务器 /var/ossec/etc/ossec.conf 配置:
3.1.2.4 为应用配置更改项,重启manager
systemctl restart wazuh-manager
查看日志
tail -f -n 300 /var/ossec/logs/ossec.log
漏洞检测器在Wazuh服务器中生成触发警报的日志, 每个告警包含下面的字段
- CVE: The Common Vulnerabilities and Exposures identifier for the corresponding vulnerability. 漏洞标识符
- Title: Short description of the impact of the vulnerability. 漏洞危害的简单描述
- Rationale: Broad description of the vulnerability. 对漏洞更广泛的描述
- Severity: Impact of the vulnerability in terms of security. 该漏洞在安全方面的影响
- Package: Information about the affected package, including why the package is marked as vulnerable.
- Published: Date when the feed added the vulnerability.
- Updated: Date of the last vulnerability update.
- CWE: The Common Weakness Enumeration reference. 常见弱点枚举引用
- CVSS: Vulnerability assessment according to the Common Vulnerability Scoring System (versions 2 and 3). 根据通用漏洞评分系统(版本2和3)进行漏洞评估。
- Advisories IDs: Red Hat security advisories.
- References: URLs with extra information on the vulnerability.
- Bugzilla references: Links to the references of the vulnerability in Bugzilla.
3.2 文件完整性监控
wazuh有一个内置的文件完整性监控(File integrity monitoring FIM)功能,wazuh FIM 模块监控文件和目录,以及在一个用户或者进程创建、修改或删除受监控的文件。它运行一个基线扫描、存储受监控文件的加密校验和以及其他属性,当一个用户或者进程改变了一个文件,该模块会将文件的校验和和属性与基线的进行比较。如果它发现不匹配就会触发警报。这个FIM模块执行实时和计划扫描是根据agents和manager对FIM的配置。
wazuh FIM功能的优势包含变更管理、威胁检测和响应以及法规遵从性;
3.2.1 如何运行
wazuh FIM 模块会使用两个数据库去收集FIM事件数据,比如文件的创建、修改以及删除数据。一个是放在监控终端上基于SQLite的数据库,它存储的数据位于:
- C:\Program Files (x86)\ossec-agent\queue\fim\db on Windows.
- /var/ossec/queue/fim/db on Linux.
- /Library/Ossec/queue/fim/db on macOS.
另一个放置在wazuh server服务器上的agent数据库。 wazuh-db 守护进程为每个agent 在wazuh server服务器 创建并管理一个数据库。它会使用后每个agent的ID去识别这个数据库,该服务将数据库存储在 /var/ossec/queue/db.
FIM 模块会保持wazuh agent和 wazuh server之间的数据库同步,它始终用wazuh agent可用的数据去更新wazuh server 中的文件清单,最新的 Wazuh 服务器数据库允许为与 FIM 相关的 API 查询提供服务。同步机制仅使用来自 Wazuh agent的信息(例如已更改的校验和和文件属性)更新 Wazuh server。Wazuh agent和manager默认启用并syscheck - Local configuration (ossec.conf) · Wazuh documentationFIM 模块。但是,我们建议您检查端点的配置,以确保根据您的环境定制 FIM 设置(例如受监控的路径)。
3.2.2 如何配置FIM模块
你必须去指定FIM模块要去监控文件创建、修改以及删除的目录 或者你需要去监控的指定文件,你可以在wazuh server 和 wazuh agent 配置文件中去设置要监控的目录。你也可以通过使用中央配置文件去远程配置这个功能。任何时候 FIM模块运行扫描。如果它发现文件修改并依赖变更的文件属性,它会触发报警。你可以在wazuh仪表盘中观察到这些警告。
下面展示了如何去设置FIM模块去监控文件或者目录,请用你自己的文件路径去代替 FILEPATH/OF/MONITORED/FILE 和 FILEPATH/OF/MONITORED/DIRECTORY 。
3.2.2.1 在wazuh agent 配置文件中增加下面的设置
- Linux: /var/ossec/etc/ossec.conf
- Windows: C:\Program Files (x86)\ossec-agent\ossec.conf
- macOS: /Library/Ossec/etc/ossec.conf
<syscheck>
<directories>FILEPATH/OF/MONITORED/FILE</directories>
<directories>FILEPATH/OF/MONITORED/DIRECTORY</directories>
</syscheck>
3.2.2.2 使用管理员权限去重新启动wazuh agent 以应用这些配置变更
- Linux: systemctl restart wazuh-agent
- Windows: Restart-Service -Name wazuh
- macOS: /Library/Ossec/bin/wazuh-control restart
Note If you specify a directory both in a Centralized configuration (agent.conf) - Reference and on the Local configuration (ossec.conf) - Reference · Wazuh documentation file of the Wazuh agent, the centralized configuration takes precedence and overrides the local configuration.
3.2.3 解释FIM模块的分析
Interpreting the FIM module analysis - File integrity monitoring
3.2.4 基础配置
Basic settings - File integrity monitoring · Wazuh documentation
3.2.5 windows注册表监控
Windows Registry monitoring - File integrity monitoring
windows注册表是windows 操作系统至关重要的一部分,它是一个存储了安装在windows操作系统上硬件以及程序配置信息的数据库。对注册表进行未经授权的或者意外的更改可能会导致系统的不稳定、应用失败、安全漏洞。另外,合法软件以及系统升级可能会修改注册表,跟踪这些变化以确保系统稳定和安全,这是至关重要的。
Wazuh FIM 模块定期地会扫描windows注册表,当它发现注册表中有修改,会触发告警。
知识补充: 注册表结构 (摘录《乐学windows操作系统》)
》》》START
《数据文件格式(HKEY_CLASS_ROOT)》
《用户个性化配置(HKEY_CURRENT_USER)》
《软硬件配置信息(HKEY_LOCAL_MACHINE)》
《用户信息(HKEY_USERS)》
《计算机当前设置(HKEY_CURRENT_CONFIG)》
注册表编辑器窗口中主要包括以下5大文件夹(学术用语为“根键”):
HKEY_CLASS_ROOT:记录Windows操作系统中所有数据文件的格式和关联信息,主要记录不同文件的文件名后缀和与之对应的应用程序。其下子键可分为两类,一类是已经注册的各类文件的扩展名,这类子键前面都有一个“.”;另一类是各类文件类型有关信息。
HKEY_CURRENT_USER:我们在系统中设定的个性化配置就在这里,它包含了当前登录用户的配置文件信息。不同的用户登录计算机时,有不同的个性化设置,如自己定义的墙纸、自己的收件箱、自己的安全访问权限等。
HKEY_LOCAL_MACHINE:包含了当前计算机的配置数据,包括所安装的硬件以及软件的设置。这些信息是为用户使用系统服务的,它是整个注册表中最庞大,也是最重要的信息条目。[插图]HKEY_USERS:包括默认用户的信息(Default子键)和所有以前登录用户的信息。
HKEY_USERS:包括默认用户的信息(Default子键)和所有以前登录用户的信息。
HKEY_CURRENT_CONFIG:存放的是计算机的当前设置信息,如显示器、打印机等外设的设置信息等。它实际上是HKEY_LOCAL_MACHINE中的一部分,其子键与HKEY_LOCAL_MACHINE\Config\0001分支下的数据完全一样。
》》》END
3.2.5.1 如何运行
Wazuh FIM 模块 使用两个数据库去收集FIM event data 事件数据,比如注册表条目的创建、修改 以及 删除数据。 一个是部署受监控终端上的基于SQLite数据库,它在 C:\Program Files (x86)\ossec-agent\queue\fim\db 下存储数据, 另一个部署在wazuh server上的agent 数据库,它将数据放在 /var/ossec/queue/db 中
3.2.5.2 配置
Windows Registry monitoring - File integrity monitoring
使用案例:
Wazuh 自动监控启动注册表项,开箱即用,不要求用户的特别操作或配置。默认情况下 Wazuh agent配置文件在 C:\Program Files (x86)\ossec-agent\ossec.conf ,它会使用下面的配置去监控启动注册表项
<syscheck>
<frequency>300</frequency>
<windows_registry arch="both">HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run</windows_registry>
<windows_registry arch="both">HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce</windows_registry>
</syscheck>
3.3 恶意软件检测
3.3.1 Virus Total集成
Wazuh 通过与virusTotal集成检测恶意软件(VirusTotal 是一个聚集了的大量反病毒产品和一个在线扫描引擎),将FIM模块与此工具结合,可以提供一个更加高效的方式去用于检测受监控文件是否存在恶意内容;
3.3.1.1关于VirusTotal
virusTotal 是一个在线服务,它使用反病毒引擎和网站扫描器去分析文件和url去检测病毒、worms蠕虫、trojans木马以及其他恶意内容。
3.3.1.2 如何运行
这个集成是利用VisusToal API 去检测通过Wazuh 文件完整性监控功能监控的文件以及目录中的恶意内容。这种集成功能正如下面描述的那样:
- . wauh FIM 发现在受监控目录中有一些文件被修改或者删除,这个模块存储了这些文件的哈希值。当它发现任何变更时,会触发告警。
- .如果开启了,当一个FIM告警发生时, wazuh 会触发virusTotal功能,从这个告警中,集成功能会提取出这个文件的哈希字段。
- .然后这个集成功能会使用virusTotal API 向 virusTotal 数据库发送一个http post请求。这个请求会发送被摘取文件的哈希值去用virustotal 数据库中的信息与它对比。
- .这个集成功能会收到一个json响应,这个响应是请求的结果,这个响应会触发下面wazuh告警列表中的一个。
- Error: Check credentials. 检查凭证
- Error: Public API request rate limit reached. 已达到公共API请求速率的限制
- Alert: No records in VirusTotal database. virusTotal数据库中没有记录
- Alert: No positives found. 未发现阳性
- Alert: X engines detected this file. X is the number of antivirus engines. X个反病毒引擎检测到此文件
Wazuh 会把此类被触发的告警记录到 /var/ossec/logs/integrations.log 文件中 ,wazuh 还会把它和其余的告警消息存储在 /var/ossec/logs/alerts/alerts.log 文件中。
3.3.1.3 配置
根据与外部AP集成的说明文档去启用Integrator 模块并配置VirusTotal集成。
请将下面配置的示例添加到Wazuh server服务器上的 /var/ossec/etc/ossec.conf 文件中 (的 <ossec_config>节中)
<integration>
<name>virustotal</name>
<api_key>API_KEY</api_key> <!-- Replace with your VirusTotal API key -->
<group>syscheck</group>
<alert_format>json</alert_format>
</integration>
案例1:使用FIM去监控一个目录
对于此案例,文档展示如何去监控linux终端上的 /media/user/sofrware 文件夹
- . 将下面的内容添加到配置文件的<syscheck>节中,在Wazuh server 和 wazuh agent 上的 /var/ossec/etc/ossec.conf文件中, 你可以配置这些选项。 你也可以使用由agent.conf 文件提供的集中配置选项去远程配置此功能。文档的syscheck部分提供了所有FIM配置选项的列表。在这个例子中,会配置下面的选项到 wazuh server 服务器 中。
<syscheck>
<directories check_all="yes" realtime="yes">/media/user/software</directories>
</syscheck>
2.为应用这些配置,你必须重新启动 sazuh manager
systemctl restart wazuh-manager
在web界面中开启 VirusTotal
随后就可以在主页看见virusTotal 仪表盘了
(此功能在5.34wazuh_server中未开启)
四. 常见问题
4.1 安装windows agent,powershell 命令执行失败
在window server安装agent,执行下列命令时,下载wazuh-agent-4.7.2-1.msi失败
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.2-1.msi -OutFile ${env.tmp}\wazuh-agent; msiexec.exe /i ${env.tmp}\wazuh-agent /q WAZUH_MANAGER='192.168.5.34' WAZUH_AGENT_NAME='win_ser_4.130' WAZUH_REGISTRATION_SERVER='192.168.5.34'
利用本地网络将此文件下载下来 (Installing Wazuh agents on Windows endpoints - Wazuh agent)
窗口显示“Wazuh 服务已经启动”后,再次查看运行日志,确认启动无误。
运行日志路径: C:\Program Files (x86)\ossec-agent\ossec.log
如果出现错误,根据日志说明,检查配置文件 C:\Program Files (x86)\ossec-agent\ossec.conf