1. Wazuh产品说明
1.1. 目录索引
- 1. Wazuh产品说明
- 1.1. 目录索引
- 1.2. 前言
- 1.2.1. IDS分类
- 1.2.2. HIDS
- 1.2.3. NIDS
- 1.3. HIDS 的数据源
- 1.3.1. 系统调用
- 1.3.2. 审计记录
- 1.3.3. 文件完整性校验
- 1.3.4. 注册表监控
- 1.3.5. IDS 的分析原理
- 1.3.6. 异常检测
- 1.4. Wazuh 架构图
- 1.4.1. 服务端
- 1.4.2. 客户端
- 2. Wazuh产品安装
- 2.1. 离线安装包下载
- 2.2. centos服务端程序安装
- 2.3. 查看安装位置
- 2.4. 启动服务
- 2.5. API安装
- 2.6. 配置Wazuh API用户
- 3. Wazuh基本使用
- 3.1. 文档结构
- [3.2. 查看日志](#3.2. -查看日志)
- 3.3. 小试牛刀 (1) SSH登录失败
1.2. 前言
- IDS (Instrucion Detection System) 即入侵检测系统。
- 是一种主动防御的安全技术,主要用于检测网络和系统中的异常行为,如端口扫描、暴力破解、漏洞利用等,以及恶意软件的传播和潜伏。IDS 通过对日志、文件、进程等进行监控,发现异常行为后,会记入安全管理系统(如 SIEM) 或者发送警报,以便安全人员进行进一步的分析和处理。
1.2.1. IDS分类
- 基于网络的 IDS (NIDS):
- 基于网络的 IDS 主要用于监控网络流量,发现网络中的异常行为。NIDS 通常部署在网络的边界,如防火墙、路由器等,以便监控网络中的所有流量。
- 基于主机的 IDS (HIDS):
- 基于主机的 IDS 主要用于监控主机的日志、文件、进程等,发现主机中的异常行为。HIDS 通常部署在主机上,以便监控主机的所有行为。
1.2.2. HIDS
- 基于主机的入侵检测系统称为HIDS。
- 是一种主动防御的安全技术。
- 检查网络上计算机上的事件,而不是检查系统周围通过的流量,主要用于检测主机中的异常行为。
- 如端口扫描、暴力破解、漏洞利用等,以及恶意软件的传播和潜伏。HIDS 通过对日志、文件、进程等进行监控,发现异常行为后,会记入安全管理系统 (如 SIEM) 或者发送警报,以便安全人员进行进一步的分析和处理。
1.2.3. NIDS
-
基于网络的入侵检测,也称为网络入侵检测系统或网络IDS,可检查网络上的流量。因此,典型的IDS必须包括一个数据包嗅探器,以收集网络流量进行分析。
-
NIDS
x的分析引擎通常基于规则,可以通过添加自己的规则进行修改。对于许多NIDS,系统的提供者或用户社区将向您提供规则,您只需将规则导入到您的实现中即可。熟悉所选NIDS的规则语法后,便可以创建自己的规则。
1.3. HIDS 的数据源
1.3.1. 系统调用
在 Unix/Linux 系统中,进程在系统中的一系列系统调用被公认为是HIDS的首选数据源。
传统来说,Windows 下由于 DLL 的广泛使用,导致谁调用了特定的系统调用变得不那么明确。但是 G. Creech 在2014年的研究中,提出了一种基于 Windows 的 HIDS,通过基于虚拟内核理论 (The Virtual Kernel Concept),监控 DLL 函数调用踪迹,实现了类似于 Unix/Linux 下的 System Call Trace。
1.3.2. 审计记录
大多数现代操作系统以及很多应用程序都会记录一些重要的事件,如用户登录、文件访问、进程创建等。这些记录可以作为 HIDS 的数据源。
1.3.3. 文件完整性校验
文件完整性校验是一种被动的防御技术,主要用于检测文件是否被篡改。HIDS 可以通过文件完整性校验来检测文件是否被篡改,从而发现异常行为。
本方法的缺点是,需要用已有的正常文件生成一个文件完整性校验数据库,并且定期监控维护,这个过程需要花费大量的时间和资源。
Tripwire 就是一个基于文件完整性校验的 HIDS。Tripwire 会根据策略文件配置,监视文件的哈希值、权限、所有权等,从而发现文件是否被篡改。
1.3.4. 注册表监控
Windows 系统中的注册表是一个重要的配置数据库,记录了系统的配置信息。HIDS 可以通过监控注册表的变化,发现异常行为。
本方法的缺点是,注册表仅局限于 Windows,且变化非常频繁、数量庞大,监控可能会带来较大的性能开销。恶意软件对注册表的修改也较少,因此注册表监控的效果可能不是很好。
1.3.5. IDS 的分析原理
判断一个检测方法能力高低的最主要的指标是误报 (False Positive, FP) 率和漏报 (False Negative, FN) 率,而衡量整个系统好坏还需要考虑到系统的效率。
在 IDS 系统中,常见的检测方法有异常检测 (Anomaly Detection) 和特征或启发式检测 (Signature or Heuristic Detection)。前者定义了正常行为的模型,来判断是否为异常行为;后者则直接检测行为是否为恶意行为。
1.3.6. 异常检测
异常检测首先会有一个训练阶段,用于生成一个正常行为的模型。在训练阶段,IDS 会监控系统的行为,生成一个正常行为的模型。训练过程可以在不同的时间段进行,也可以持续训练使其演化。
如前文提到的,HIDS 中通常利用系统调用来作为数据源。在 Linux 内核源码的arch/x86/entry/syscalls/syscall_64.tbl文件中,列出了x86_64架构下的系统调用 (如 Code 1 所示)。HIDS 可以通过监控系统调用的调用次数、调用顺序、调用参数等,来生成一个正常行为的模型。当系统调用的行为与模型不符时,IDS 就会判断为异常行为。
1.4. Wazuh 架构图
- HIDS开源产品:Wazuh
- 官网文档:https://documentation.wazuh.com/current/getting-started/components/wazuh-indexer.html
- 开源项目:https://github.com/wazuh/wazuh
1.4.1. 服务端
1.4.2. 客户端
2. Wazuh产品安装
2.1. 离线安装包下载
-
服务端程序安装包
-
linux 客户端
-
windows 客户端
2.2. centos服务端程序安装
[root@localhost ~]# rpm -ivh wazuh-manager-4.12.0-1.x86_64.rpm
warning: wazuh-manager-4.12.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 29111145: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:wazuh-manager-4.12.0-1 ################################# [100%]
[root@localhost ~]# rpm -qa|grep wazuh
wazuh-manager-4.12.0-1.x86_64
2.3. 查看安装位置
[root@localhost ~]# rpm -ql wazuh-manager-4.12.0-1.x86_64 |head
/etc/ossec-init.conf
/etc/rc.d/init.d/wazuh-manager
/usr/lib/systemd/system/wazuh-manager.service
/var/ossec
/var/ossec/.ssh
/var/ossec/VERSION.json
/var/ossec/active-response
/var/ossec/active-response/bin
/var/ossec/active-response/bin/default-firewall-drop
/var/ossec/active-response/bin/disable-account
2.4. 启动服务
systemctl start wazuh-manager.service #启动服务
systemctl status wazuh-manager.service #查看服务状态
2.5. API安装
# 安装nodejs10
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install nodejs.x86_64 nodejs-devel.x86_64 -y# 安装wazuh api
rpm -ivh wazuh-api-3.9.2-1.x86_64.rpm# 安装完成后默认设置为开机自启并且已经启动该服务
systemctl status wazuh-api.service
2.6. 配置Wazuh API用户
# 配置端口账户等信息
cd /var/ossec/api/scripts
./configure_api.sh# 查看用户信息
cat /var/ossec/api/configuration/auth/user
3. Wazuh基本使用
3.1. 文档结构
OSSEC默认安装目录:/var/ossec
,包含以下关键文件夹:
- active-response:存放主动响应脚本
- agentless:无代理连接相关文件
- bin:核心程序(如
ossec-control
、manage_agents
) - etc:配置文件(如
ossec.conf
) - logs:核心日志(含警报、归档等)
- queue:临时队列文件
- rules:入侵检测规则
- stats:系统统计数据
- tmp var:内部临时目录
3.2. 查看日志
日志文件路径:
- 文本格式:
/var/ossec/logs/alerts/alerts.log
- JSON格式:
/var/ossec/logs/alerts/alerts.json
3.3. 小试牛刀 (1) SSH登录失败
测试步骤:
- 使用错误密码通过SSH登录主机(如
wazuh
)。 - 验证Wazuh是否触发警报(日志ID
5716
,级别为5级,数字越大越严重)。
实时监控命令:
tail -f /var/ossec/logs/alerts/alerts.log
# 或
tail -f /var/ossec/logs/alerts/alerts.json
触发规则
[root@localhost ossec]# egrep -n2 '5760' ruleset/rules/0095-sshd_rules.xml
453- </rule>
454-
455: <rule id="5760" level="5">
456- <if_sid>5700,5716</if_sid>
457- <match>Failed password|Failed keyboard|authentication error</match>
--
478-
479- <rule id="5763" level="10" frequency="8" timeframe="120" ignore="60">
480: <if_matched_sid>5760</if_matched_sid>
481- <same_source_ip/>
482- <description>sshd: brute force trying to get access to the system. Authentication failed.</description>
查看触发规则5760
日志
[root@localhost ruleset]# grep -n1 "5760" /var/ossec/logs/alerts/alerts.log
4803-2025 Jul 28 21:13:22 localhost.localdomain->journald
4804:Rule: 5760 (level 5) -> 'sshd: authentication failed.'
4805-Src IP: 192.168.226.1
--
4811-2025 Jul 28 21:13:24 localhost.localdomain->journald
4812:Rule: 5760 (level 5) -> 'sshd: authentication failed.'
4813-Src IP: 192.168.226.1
--
查看触发规则5763
日志
[root@localhost ossec]# grep -n2 "5763" /var/ossec/logs/alerts/alerts.log
4908-** Alert 1753708440.697939: - syslog,sshd,authentication_failures,gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,nist_800_53_SI.4,nist_800_53_AU.14,nist_800_53_AC.7,pci_dss_11.4,pci_dss_10.2.4,pci_dss_10.2.5,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,
4909-2025 Jul 28 21:14:00 localhost.localdomain->journald
4910:Rule: 5763 (level 10) -> 'sshd: brute force trying to get access to the system. Authentication failed.'
4911-Src IP: 192.168.226.1
4912-Src Port: 10946