solomonhenry-afk/enterprise-suricata-ids-ips-deployment

GitHub: solomonhenry-afk/enterprise-suricata-ids-ips-deployment

该项目记录了在 pfSense 上部署企业级 Suricata IDS/IPS 的完整流程,涵盖规则管理、检测验证、eve.json 遥测及 Splunk SIEM 调查的端到端安全工程实践。

Stars: 0 | Forks: 0

# 企业级 IDS/IPS 部署 — Suricata 网络安全工程 ## 概述 本项目记录了在基于 pfSense 的网络安全环境中,将 Suricata 作为企业级入侵检测和防御系统进行部署、配置、验证和操作使用的过程。 目标是构建网络级的可见性,能够检测可疑流量、侦察活动、策略违规和已知的威胁特征,同时通过防火墙日志、Suricata 遥测数据和 Splunk 保留用于调查的证据。 Suricata 被部署为分层防御架构的一部分,而不是作为独立的告警工具。该实现将网络执行、IDS/IPS 检查、安全日志记录和 SIEM 调查连接到一个操作工作流中。 ## 目标 * 在 pfSense 上部署 Suricata。 * 在适当的网络接口上配置 IDS/IPS 检测。 * 启用和管理 Suricata 规则源。 * 生成受控流量以验证检测可见性。 * 查看 Suricata 告警和 `eve.json` 遥测数据。 * 一起验证防火墙和 IDS 证据。 * 在 Splunk 中转发和调查 Suricata 事件。 * 记录检测、限制、残余风险和改进机会。 ## 环境范围 | 组件 | 角色 | 安全功能 | | ------------------ | ------------------------------- | ---------------------------------------------- | | pfSense | 防火墙和网关 | 路由、策略执行、Suricata 托管 | | Suricata | IDS/IPS 引擎 | 特征检测、协议分析、告警生成 | | Kali Linux | 安全工程工作站 | 受控验证和授权流量测试 | | Windows Server | 企业基础设施 / 域控制器 | 内部服务和身份验证目标 | | Windows Client | 企业终端 | 内部流量源和验证端点 | | Splunk Enterprise | SIEM | 搜索、调查、事件关联、证据保留 | ## 架构 ``` Internet / External Traffic │ ▼ ┌───────────────────┐ │ pfSense │ │ Firewall + Router │ └─────────┬─────────┘ │ ┌──────────────┴──────────────┐ │ │ ▼ ▼ ┌──────────────────┐ ┌──────────────────┐ │ Suricata IDS/IPS │ │ Firewall Logging │ │ Detection Engine │ │ Policy Evidence │ └─────────┬────────┘ └─────────┬────────┘ │ │ └──────────────┬──────────────┘ ▼ ┌───────────────────┐ │ Splunk Enterprise │ │ SIEM Investigation│ └───────────────────┘ ``` ## IDS 与 IPS | 模式 | 目标 | 行为 | | ------------------ | -------------------------- | -------------------------------------------- | | IDS | 检测可疑流量 | 生成告警并记录证据 | | IPS | 检测并阻止可疑流量 | 在配置的情况下丢弃或阻止匹配的流量 | | 被动监控 | 可见性和调查 | 观察流量但不执行 | | 内联防御 | 主动保护 | 对检查的流量执行阻断决策 | 本次部署首先强调可靠的检测可见性,随后进行受控的 IPS 评估。在启用激进的阻断规则之前,进行检测调优非常重要,因为误报可能会干扰合法的业务流量。 ## Suricata 部署工作流 ``` Install Suricata Package │ ▼ Select Interface for Inspection │ ▼ Enable IDS / IPS Mode │ ▼ Configure Rule Sources │ ▼ Download and Update Rules │ ▼ Enable Logging and eve.json Output │ ▼ Generate Controlled Validation Traffic │ ▼ Review Alerts in pfSense and Splunk │ ▼ Tune Rules and Document Findings ``` ## Suricata 配置领域 ### 接口配置 在选定的 pfSense 接口上启用了 Suricata,以检查流经企业实验室网络的流量。 配置注意事项包括: * 接口选择。 * 混杂模式要求。 * 支持的情况下的 IPS 内联模式。 * Home network 定义。 * 受信任或排除系统的 Pass list。 * 告警日志记录配置。 * 性能影响和规则选择。 ### 规则源 规则源为可疑流量、漏洞利用、恶意软件活动、扫描、策略违规和协议异常提供检测逻辑。 | 规则类别 | 目的 | | -------------------- | ------------------------------------------ | | Emerging Threats Open| 社区威胁检测特征 | | 扫描规则 | 检测侦察和服务发现 | | 策略规则 | 检测潜在风险或未经授权的行为 | | 恶意软件规则 | 检测已知的恶意指标和流量模式 | | 漏洞利用规则 | 检测漏洞利用尝试和易受攻击的服务攻击 | | Web 服务器规则 | 检测可疑的 HTTP 和 Web 服务活动 | | 协议解码器规则 | 检测格式错误或异常的协议行为 | ### 日志记录 Suricata 遥测数据非常有价值,因为它为每个告警提供了结构化的上下文。 常见字段包括: | 字段 | 含义 | | ---------------- | ----------------------------- | | `timestamp` | 事件发生的时间 | | `event_type` | Suricata 事件的类型 | | `src_ip` | 源 IP 地址 | | `dest_ip` | 目标 IP 地址 | | `src_port` | 源端口 | | `dest_port` | 目标端口 | | `proto` | 网络协议 | | `alert.signature`| 检测特征 | | `alert.category` | 告警类别 | | `alert.severity` | 特征严重性 | | `flow_id` | 关联的网络流标识符 | ## 受控检测验证 验证仅在授权的企业实验室环境中进行。 用于测试检测可见性的受控流量示例包括: * ICMP echo 请求。 * TCP 连接尝试。 * 服务发现。 * 端口扫描。 * SMB 连接检查。 * DNS 活动。 * HTTP 请求。 * 内部侦察模式。 授权验证命令示例: ``` # ICMP 验证 ping -c 4 192.168.56.100 ``` ``` # 受控服务发现 nmap -Pn -sT -p 53,88,135,389,445,3389,5985,5986 192.168.56.100 ``` ``` # 受控 SYN 扫描验证 nmap -Pn -sS -p 1-1000 192.168.56.100 ``` 预期结果不一定是阻断。主要目标是验证 Suricata 生成了有用的遥测数据,并且该活动是可以被调查的。 ## 检测示例 | 检测类型 | 示例活动 | 预期证据 | | -------------- | --------------------------- | ----------------------------------------------- | | ICMP 异常 | ICMP 测试或格式错误的 ICMP 行为 | 带有源和目标上下文的 Suricata 告警 | | 端口扫描 | Nmap 服务发现 | 与扫描相关的特征或流证据 | | SMB 活动 | 文件共享连接验证 | 与 SMB 相关的流量可见性 | | 策略违规 | 意外的服务访问 | 策略类别告警或防火墙日志 | | 协议异常 | 格式错误或异常的协议行为 | 解码器或协议告警 | | Web 活动 | HTTP 请求测试 | HTTP 事件或 Web 规则告警 | ## Suricata 告警调查 在 Splunk 中搜索 Suricata 告警的示例: ``` index=main source=suricata | table _time alert.signature alert.category alert.severity src_ip dest_ip proto ``` 简化的分析师专用搜索: ``` index=main source=suricata | table _time signature severity category src_ip dest_ip tactic technique ``` 搜索最频繁的特征: ``` index=main source=suricata | stats count by alert.signature alert.category alert.severity | sort - count ``` 搜索重复的源到目标活动: ``` index=main source=suricata | stats count by src_ip dest_ip proto alert.signature | sort - count ``` ## 证据收集 推荐的证据结构: ``` screenshots/ ├── 01-surricata-package-installed.png ├── 02-interface-configuration.png ├── 03-rule-source-configuration.png ├── 04-rule-update-status.png ├── 05-suricata-alerts-pfsense.png ├── 06-eve-json-telemetry.png ├── 07-splunk-suricata-search.png ├── 08-splunk-alert-details.png └── 09-controlled-validation-output.png ``` ## 检测工程注意事项 并非所有的 Suricata 告警都能完全对应到 MITRE ATT&CK。 例如,一个解码器事件如: ``` SURICATA ICMPv4 unknown code ``` 可能表明存在异常的协议行为,但不一定是高置信度的入侵事件。应结合以下上下文进行调查: * 源系统和目标系统。 * 事件发生的频率。 * 关联的扫描或连接活动。 * 防火墙策略决策。 * Windows 身份验证活动。 * 资产重要性。 * 来自同一源的其他 IDS 特征。 更高价值的丰富化机会可能包括与以下相关的特征: * Nmap SYN 扫描。 * Nmap 版本扫描。 * SMB 策略违规。 * Web 服务器探测。 * 恶意软件指标。 * 漏洞利用尝试。 * 凭据访问行为。 * 横向移动协议。 ## 操作发现 | 领域 | 结果 | | ------------------ | --------------------------------------------------------------------- | | IDS 部署 | Suricata 部署在 pfSense 网络安全架构内 | | 规则管理 | 配置并更新检测规则源 | | 检测可见性 | 由受控验证流量生成的告警 | | 遥测数据 | 通过 `eve.json` 提供结构化的 Suricata 事件数据 | | 调查 | 告警可在 Splunk 中进行搜索和审查 | | 防火墙关联 | IDS 证据与策略执行上下文相连接 | | 检测调优 | 确定了区分低置信度异常和高价值检测的需求 | ## 风险与限制 | 风险 / 限制 | 影响 | 缓解措施 | | ------------------- | ---------------------------- | ------------------------------------------------------------------ | | 误报 | 告警疲劳或不必要的阻断 | 在 IPS 执行前调优规则并进行验证 | | 漏报 | 错过恶意活动 | 维护规则,关联多个遥测数据源 | | 加密流量 | 减少了 payload 检查 | 使用元数据、TLS 指纹、端点日志和 SIEM 关联 | | 宽泛的规则集 | 性能影响和噪音 | 启用相关类别并监控资源使用情况 | | 解码器告警 | 可能缺乏明确的 ATT&CK 上下文 | 结合流、资产和行为上下文进行调查 | | IPS 配置错误 | 可能会中断合法的流量 | 从 IDS 模式开始并进行仔细验证 | | 遥测数据不完整 | 降低了调查能力 | 集中管理防火墙、Suricata 和端点日志 | ## 未来改进 * 扩展 Suricata 到 MITRE ATT&CK 的丰富化。 * 为重复的告警增加重复抑制机制。 * 实施基于严重性的风险评分。 * 为源 IP 地址添加威胁情报丰富化。 * 构建 Splunk 仪表板以展示告警趋势和热门特征。 * 为已处理、转发和抑制的告警添加操作指标。 * 为内部横向移动协议创建调优后的规则类别。 * 将资产重要性整合到检测优先级排序中。 * 根据精心挑选的特征验证 IPS 阻断行为。 ## 结论 在企业环境中部署 Suricata 提供的不仅仅是告警。它创建的网络级证据可以与防火墙策略、端点活动、身份事件和 SIEM 调查进行关联。 本项目演示了当 IDS/IPS 部署被视为分层检测和响应架构的一部分时,它是如何变得具有操作价值的。重点不仅仅是生成告警,而是产生可操作的、可解释的且有据可查的安全遥测数据。 # 作者 ## BASSEY SOLOMON HENRY **网络安全工程师 | SOC 分析师 | 检测工程师 | 紫队 | Active Directory 安全 | SIEM | 企业安全** 热衷于构建企业级安全实验室,通过模拟真实世界的攻击链、验证防御控制措施、增强检测工程能力,并通过实战化的紫队运作将进攻性安全与企业防御联系起来。 # 个人理念 ### — Solomon Henry
## 🌐 企业安全演进 *通过企业攻击模拟、Active Directory 安全、检测工程、紫队验证、威胁狩猎、数字取证和安全自动化,构建现代网络安全专业知识。* **企业安全演进是一个多领域的网络安全工程作品集,记录了跨 Active Directory、检测工程、紫队运作、云安全、威胁狩猎、数字取证和安全自动化等领域设计、执行、验证和检测企业攻击模拟的过程。每个领域都在前一个领域的基础上构建,反映了现代企业安全团队如何防御真实世界的环境。** **如果您觉得这个项目有价值,请考虑为该仓库点赞并关注我的网络安全之旅。**
标签:Metaprompt, pfSense, Suricata, 入侵检测系统, 安全数据湖, 现代安全运营, 网络安全, 防火墙, 隐私保护