AdityaBhatt3010/Suricata-Integration-with-Wazuh

GitHub: AdityaBhatt3010/Suricata-Integration-with-Wazuh

该项目演示了如何将 Suricata 的网络入侵检测能力接入 Wazuh 平台,实现集中化的安全告警采集、关联分析与可视化监控。

Stars: 1 | Forks: 0

# Suricata 与 Wazuh 集成 ## 概述 此概念验证展示了 **Suricata IDS** 与 **Wazuh** 的集成,以提供网络入侵检测和集中化安全监控。 在此设置中,Suricata 运行在 Wazuh Agent 机器上,并监控网络流量以发现可疑活动。生成的警报存储在 Suricata 的 `eve.json` 日志文件中,随后由 Wazuh 提取,以通过 Wazuh Dashboard 进行分析、关联和可视化。 ## 架构 ``` Attacker Machine │ ▼ Nmap Scan Traffic │ ▼ Suricata IDS (Agent Machine) │ ▼ eve.json Logs │ ▼ Wazuh Agent │ ▼ Wazuh Manager & Dashboard ``` # 步骤 1:在 Agent 机器上安装 Suricata Suricata 是一个开源的入侵检测和防御系统 (IDS/IPS),可检查网络流量并在检测到可疑或恶意活动时生成警报。 ### 命令 ``` sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update sudo apt-get install suricata -y ``` ![1](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ca815ec450082730.png) # 步骤 2:下载并配置检测规则 默认情况下,Suricata 包含的规则有限。为了提高检测能力,我们下载了 Emerging Threats 规则集,其中包含数千条由社区维护的特征码,用于识别扫描、漏洞利用、恶意软件活动、命令与控制流量以及其他可疑行为。 ### 命令 ``` cd /tmp/ && curl -LO https://rules.emergingthreats.net/open/suricata-6.0.8/emerging.rules.tar.gz sudo tar -xvzf emerging.rules.tar.gz sudo mv rules/*.rules /etc/suricata/rules/ sudo chmod 640 /etc/suricata/rules/*.rules ``` ![2](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1a09015e6f082736.png) 下图显示了导入 Emerging Threats 规则后,原始规则集与扩展后规则库之间的差异。 # 步骤 3:修改 Suricata 配置 打开 Suricata 配置文件: ``` nano /etc/suricata/suricata.yaml ``` 必须调整几个设置,以便 Suricata 能够正确监控本地网络并加载导入的规则。 ## 更改 1:配置 HOME_NET `HOME_NET` 变量代表 Suricata 应该保护的网络或主机。 更改: ``` HOME_NET: "[...]" ``` 为: ``` HOME_NET: "[Current IP]" ``` 这确保了生成的警报与受监控的机器相关。 ## 更改 2:配置 EXTERNAL_NET 默认情况下,源自 `HOME_NET` 的流量可能会被排除在某些检测之外。 更改: ``` EXTERNAL_NET: "!$HOME_NET" #EXTERNAL_NET: "any" ``` 为: ``` #EXTERNAL_NET: "!$HOME_NET" EXTERNAL_NET: "any" ``` 这允许 Suricata 检查所有的流量源和目的地。 ## 更改 3:设置规则目录 更改: ``` default-rule-path: ... ``` 为: ``` default-rule-path: /etc/suricata/rules ``` 这告诉 Suricata 下载的规则存储在哪里。 ## 更改 4:加载所有规则 设置: ``` rule-files: - "*.rules" ``` 这将自动加载规则目录中存在的每个规则文件。 ## 更改 5:启用统计 如果被禁用,请启用统计信息收集。 设置: ``` stats: enabled: yes ``` 这为 Suricata 的运行和事件生成提供了额外的可见性。 ## 更改 6:验证网络接口 如果您的接口不同,请相应地替换它。 设置: ``` af-packet: - interface: eth0 ``` 这确保 Suricata 在正确的网络适配器上进行监听。 # 步骤 4:配置 Wazuh 以读取 Suricata 日志 Suricata 将警报存储在 `eve.json` 文件中。必须指示 Wazuh 监控此文件,以便生成的警报出现在仪表板中。 打开: ``` nano /var/ossec/etc/ossec.conf ``` 在闭合标签 `` 之前紧接着添加以下配置块: ### 配置 ``` json /var/log/suricata/eve.json ``` 此配置告诉 Wazuh 持续解析 Suricata 的 JSON 格式警报,并将其转发以进行分析。 # 步骤 5:重启服务 完成所有配置更改后,重启这两个服务以应用更新。 ### 命令 ``` systemctl restart suricata.service systemctl restart wazuh-agent.service ``` # 步骤 6:生成检测事件 为了验证集成,请针对 Agent 机器执行一次 SYN 扫描。 ### Payload ``` nmap -sS ``` SYN 扫描会发送 TCP SYN 数据包以发现开放端口,同时避免完整的 TCP 握手。Suricata 包含能够检测各种侦察活动的特征码,使其成为一种简单而有效的验证测试。 ![3](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/83ac8fb25e082741.png) # 步骤 7:在 Wazuh 中查看警报 一旦检测到扫描,请导航至: ``` Wazuh Dashboard └── Agents └── Threat Hunting ``` 仪表板提供了由 Suricata 生成并由 Wazuh 处理的事件的高级概述。 ![4](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ded0169008082745.png) # 步骤 8:调查事件 **Events** 选项卡包含有关每个警报的详细信息,包括: * 规则 ID * 警报严重性 * 源 IP * 目标 IP * 协议信息 * 事件时间戳 * 完整的 Suricata 警报详情 这使得分析师能够调查检测到的活动,并准确了解触发事件的原因。 ![5](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/99e901e904082750.png) # 结果 通过使用 Nmap 生成网络侦察流量,该集成得到了成功验证。Suricata 检测到了该活动,将事件记录到 `eve.json`,Wazuh 成功提取并在 Threat Hunting 仪表板中显示了该警报。 这演示了 Wazuh 如何利用 Suricata 作为基于网络的检测源,以提供对可疑网络活动的集中可见性和监控。 # 总结 此 PoC 演示了 Suricata 和 Wazuh 如何协同工作,以提供网络级检测和集中化的安全监控。 虽然本实验室侧重于检测简单的 Nmap SYN 扫描,但相同的集成可用于识别各种威胁,包括端口扫描、漏洞利用尝试、恶意软件通信、暴力破解活动、命令与控制流量以及其他入侵指标。 通过将 Suricata 的数据包检查功能与 Wazuh 的日志分析、关联和可视化功能相结合,安全团队能够对其环境获得更大的可见性,并能够更有效地调查威胁。 这种基础设置非常贴近真实的 SOC 环境,在这些环境中,多种安全工具持续生成遥测数据,这些数据随后被聚合、分析并转化为可执行的安全洞察。 # 结语 如果这篇指南对您有帮助,请随时与我联系: **GitHub:** https://github.com/AdityaBhatt3010
**LinkedIn:** https://www.linkedin.com/in/adityabhatt3010/
**Medium:** https://medium.com/@adityabhatt3010
后续还会有更多文章。更简洁、更深入,诞生于无数个深夜的实验室之中。 如果您觉得这很有用,请考虑为该仓库点赞,并关注我的网络安全之旅。
标签:CTI, FOFA, Metaprompt, PB级数据处理, PoC, Suricata, Wazuh, 安全运维, 插件系统, 暴力破解, 现代安全运营