k14nx0/splunk-security-lab

GitHub: k14nx0/splunk-security-lab

基于 Splunk Enterprise 的安全运营实验室项目,演示了日志摄取、SPL 查询、仪表盘可视化与自动化威胁告警的完整 SOC 工作流。

Stars: 0 | Forks: 0

# 🔒 Splunk 安全家庭实验室 ## 基础设施与遥测分类 - **领域重点:** 安全运营中心 (SOC) 运营与安全事件日志分析 - **核心能力:** 威胁检测、日志摄取与解析、仪表盘可视化、自动化告警 - **平台:** Splunk Enterprise (SIEM/SOAR 平台) - **数据源:** 模拟的 Web 服务器安全日志 ## 💻 企业实验室环境架构 ### 中央 SIEM 平台: - **平台:** Splunk Enterprise (自托管 SIEM 实例) - **角色:** 聚合、索引并可视化来自模拟 Web 应用源的安全事件日志 - **主机:** 本地开发环境 (Kian) ### 数据摄取管道: - **Source Type:** 自定义 `web_attack_logs` (key=value 结构化格式) - **Index:** 带有基于主机字段提取的默认 index - **解析:** 自动提取 src_ip、user、action、status、response_time_ms 字段 ### 模拟的威胁行为者: - **攻击向量:** SQL 注入、XSS (跨站脚本攻击)、暴力破解身份验证 - **恶意 IP:** 203.0.113.42 (外部攻击者)、10.0.0.55 (内部威胁行为者) - **目标用户:** admin (特权账户)、alice、bob、charlie (普通用户) ## 📄 项目概述 本仓库记录了基于 Splunk 的安全监控实验室环境的端到端实施过程。该项目展示了在 SIEM 数据摄取、SPL (Search Processing Language) 查询开发、仪表盘创建以及自动化安全告警方面的实用技能。 ## 🔧 实施工作流与技术执行 ### **01. 数据上传界面与源文件摄取:** ![上传界面](https://static.pigsec.cn/wp-content/uploads/repos/cas/01/01d3a4ac16234608b791a8a5ff19a6c192128430d411738fb7a5c202e462ae8c.png) *展示了在初始文件上传阶段 Splunk Enterprise 的数据引导界面。基于 Web 的管理控制台显示了分类的数据源选项(云计算、网络、操作系统、安全)以及三种摄取方式:Upload(本地文件)、Monitor(文件系统监控)和 Forward(Universal Forwarder 遥测)。此处选择 Upload 方法来摄取模拟的 Web 攻击日志文件。* ### **02. 自定义 Source Type 配置与字段提取:** ![Source Type 配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/a0/a096bd18bb76e2399ca7cb677ac709b24453d16b4f20e359024c806d31a2afe7.png) *展示了 Source Type 定义对话框,其中创建了一个名为 `web_attack_logs` 的自定义 source type,描述为“用于模拟 Web 安全日志的自定义 source type”。该配置利用 Splunk 的自动字段提取引擎来解析 key=value 对结构,无需手动定义正则表达式模式,从而能够快速识别 src_ip、user、action、status 和 response_time_ms 字段。* ### **03. 输入设置与 Index 配置:** ![输入设置](https://static.pigsec.cn/wp-content/uploads/repos/cas/c9/c94f0210908e802ae43a79f2348f15e0f5249dddb5be3c8befe09f39fc0ac5e5.png) *展示了输入参数配置界面,其中使用常量赋值将 host 元数据设置为“Kian”(本地开发机器标识符)。index 目标被配置为使用 Splunk 的默认 index 以用于家庭实验室,文档解释了建议使用沙箱 index 来对配置进行故障排除,以免影响生产数据存储。* ### **04. 首次搜索结果与事件索引验证:** ![首次搜索](https://static.pigsec.cn/wp-content/uploads/repos/cas/ae/ae166ef89ffb2cc041cac6b667703b10c325a2b08560a4bfdc4519aec2fc347e.png) *展示了初始搜索结果,显示所有 10 个事件已成功索引并可在 Splunk 平台中搜索。时间轴可视化显示了在模拟攻击时间窗口(2024年3月15日 08:12-08:45)内的事件分布,并确认了对 host (Kian)、source (web_attack_logs.txt)、sourcetype (web_attack_logs) 以及所有自定义字段(包括 action、src_ip、status 和 response_time_ms)的自动字段提取。* ### **05. 操作细分可视化与统计聚合:** ![饼图](https://static.pigsec.cn/wp-content/uploads/repos/cas/47/47f67812967040d8d566152c70aadcdb275c370decade5f74fe7637a47779834.png) *展示了通过 SPL 查询 `source="web_attack_logs.txt" | stats count by action` 生成的饼图可视化,显示了六种不同操作类型的分布:LOGIN(5 个事件 - 50%)、FILE_DOWNLOAD(1)、LOGOUT(1)、SQL_INJECTION(1)、SUDO_EXEC(1)和 XSS_ATTEMPT(1)。该可视化演示了快速识别的能力:正常用户活动占流量的 70%,而攻击向量占总事件的 30%。* ### **06. 安全仪表盘与多面板可视化:** ![仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/cas/28/288341ac98fb34da8b35bb44f7d3de309b7a48664a86ff59e7325f82cdeb78ad.png) *展示了完成的“安全家庭实验室仪表盘”,包含两个分析面板:顶部面板显示了用于对用户行为与恶意活动进行分类的操作细分饼图;而底部面板展示了由查询 `source="web_attack_logs.txt" | stats count by status` 生成的 HTTP 状态码(200 Success:4 个事件,401 Unauthorized:3 个事件,403 Forbidden:3 个事件)的柱状图可视化。该仪表盘提供了对攻击分布和 Web 应用程序响应模式的一目了然的可见性。* ### **07. SQL 注入告警配置与自动化威胁检测:** ![告警配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/8f/8fed77afa712e37037533325e7a0609a97e1ac097fdc1750cfc4632c4225e382.png) *展示了“SQL Injection Detected”告警的计划告警配置界面。触发条件设置为当查询 `source="web_attack_logs.txt" action=SQL_INJECTION` 的结果数大于 0 时激活。计划配置为每小时在第 0 分钟运行一次,过期窗口为 24 小时。触发操作设置为“Add to Triggered Alerts”,并归类为中等严重性,展示了对基于阈值的检测以及通过计划执行(而非实时处理)来防止告警疲劳的理解。* ## 📊 仪表盘组件 ### 面板 1:操作细分 - **可视化:** 饼图 - **目的:** 显示用户操作与攻击尝试的分布情况 - **洞察:** LOGIN 事件占据主导地位(50%),攻击占总事件的 30% ### 面板 2:HTTP 状态码 - **可视化:** 柱状图 - **目的:** 显示成功 (200) 与客户端错误 (401, 403) 的对比 - **洞察:** 40% 的请求导致了错误,表明存在活跃的攻击面 ## 🚨 告警配置 ### SQL 注入告警 - **触发条件:** 结果数 > 0 - **计划:** 每小时在第 0 分钟运行一次 - **节流:** 每次执行一次 - **操作:** 添加到已触发告警(严重性:中等) - **目的:** 实时自动检测 SQL 注入尝试 ### 主要成就: **1. 自定义数据摄取管道** - 创建了包含混合合法与恶意流量的真实 Web 服务器安全日志 - 配置了自定义 source type 以进行自动字段提取 - 实施了基于主机的索引以进行数据组织 **2. 安全分析与可视化** - 开发了用于攻击模式识别的 SPL 查询 - 构建了显示操作细分和 HTTP 状态码分析的多面板仪表盘 - 使用饼图和柱状图可视化攻击分布 **3. 自动化威胁检测** - 配置了用于 SQL 注入检测的计划告警 - 实施了基于阈值的触发 (count > 0) - 设置了每小时计划搜索以进行持续监控 - 配置了告警节流以防止通知疲劳 ### 模拟攻击场景: `sample-data/web_attack_logs.txt` 文件包含 10 个模拟事件,包括: - **正常操作:** 用户登录、文件下载、登出 (HTTP 200) - **身份验证攻击:** 针对 admin 账户的暴力破解尝试 (HTTP 401) - **Web 应用程序攻击:** SQL 注入和 XSS 尝试 (HTTP 403) - **权限提升:** 未经授权的 sudo 执行尝试 (HTTP 403) ## 🔧 开发的 SPL 查询 ### 攻击类型分布 ``` source="web_attack_logs.txt" | stats count by action ``` ## 🛡️ 关键要点与 SOC 事件洞察 - **自定义 Source Type 配置与字段提取:** 利用 Splunk 的自动字段提取功能来解析结构化的 key=value 日志格式,无需手动配置 regex 即可快速识别关键安全指标,包括源 IP 地址、用户账户和 HTTP 响应码。 - **数据摄取管道完整性:** 证明了模拟的 Web 服务器遥测数据可以无缝摄取到 Splunk 的索引管道中,在从原始日志格式到可搜索事件的整个过程中保持数据保真度,并具有正确的时间戳识别和基于主机的元数据标记。 - **自动化威胁检测与告警工程:** 掌握了配置基于阈值的计划告警的工作流,该告警可自动检测 SQL 注入尝试,展示了对通过适当的节流和严重性分类来防止告警疲劳的理解,从而提高 SOC 的运营效率。 - **用于安全运营的仪表盘可视化:** 构建了多面板仪表盘,可一目了然地了解攻击模式和系统健康状况,使安全分析师能够快速对事件进行分类并识别 Web 应用程序流量中的异常行为模式。 - **用于威胁狩猎的 SPL 查询开发:** 开发了有针对性的 Search Processing Language 查询,以从正常操作流量中分离出特定的攻击向量(SQL 注入、XSS、暴力破解),展示了为现实安全监控场景编写有效检测规则的能力。
标签:AMSI绕过, CISA项目, DOE合作, 威胁检测, 安全可视化, 安全运营, 扫描框架