AdityaBhatt3010/Splunk-Basics

GitHub: AdityaBhatt3010/Splunk-Basics

基于 TryHackMe 实验平台的 Splunk SIEM 入门实战教程,系统讲解日志接入、SPL 查询编写和基础安全调查技能。

Stars: 0 | Forks: 0

# Splunk 101:SIEM、日志摄取与基础威胁狩猎实战入门 **关键词:** Splunk, SIEM, 日志分析, SOC, 威胁狩猎, TryHackMe 安全监控不仅关乎收集日志——它更在于将原始机器数据转化为可执行的安全洞察。 在本次动手实践中,我通过一个涉及日志摄取和基础调查查询的实验,探索了最广泛使用的 SIEM 平台之一 **Splunk** 的基础知识。本教程不仅涵盖了理论,更侧重于*我们实际做了什么、为什么要这么做,以及 Splunk 如何帮助安全分析师高效调查事件。* **实验链接:** [https://tryhackme.com/room/splunk101](https://tryhackme.com/room/splunk101) Splunk # 什么是 Splunk? **Splunk** 是一个 SIEM(安全信息和事件管理)平台,可帮助安全团队: * 从多个来源收集日志 * 规范化并索引机器数据 * 高效搜索事件 * 关联安全事件 * 可视化趋势和异常 * 加速事件检测与调查 可以将其视为基础设施的集中可见性平台。 如果没有 SIEM 工具,手动审查数千条日志在操作上将极其痛苦。 # Splunk 核心架构 Splunk 主要由三个核心组件运行。 ## Forwarder **Forwarder** 充当日志收集器。 它是安装在受监控系统上的轻量级代理,负责收集日志并将其转发给 Splunk。 典型的数据源包括: * Windows 事件日志 * Syslogs * Web 服务器日志 * 防火墙日志 * 数据库日志 * 终端遥测数据 其轻量级特性确保了对主机性能的影响最小。 **实验答案:** Forwarder ## Indexer **Indexer** 是进行真正处理的地方。 一旦数据到达 indexer: * 解析原始日志 * 规范化数据 * 提取字段 * 索引事件以实现快速搜索 如果没有索引,在数百万个事件中进行搜索将极其缓慢。 ## Search Head **Search Head** 是分析师的工作区。 在这里可以: * 编写查询 * 执行调查 * 构建仪表板 * 生成可视化图表 Splunk 使用 **SPL (Search Processing Language)** 来查询索引数据。 # 连接到实验环境 实验环境提供了一个实时运行的 Splunk 实例。 启动机器后,即可通过提供的 IP 访问仪表板。 此时,目标尚不是狩猎威胁——而仅仅是熟悉该平台。 # 导航 Splunk 界面 首次打开 Splunk 时,会显示多个界面部分。 ## 顶部导航栏 它提供了管理和操作控制: * 消息 * 设置 * 活动 * 帮助 * 搜索 * 应用切换 分析师通常在这里监控正在运行的作业并管理平台设置。 ## 应用面板 Splunk 是模块化的。 不同的应用提供专门的功能。 默认应用是: **Search & Reporting** 这是分析师的主要工作区。 # 探索部分 此部分可快速访问: * 添加数据 * 安装应用 * 文档 这在数据导入期间尤其有用。 # 向 Splunk 添加数据 没有数据的 SIEM 只是一个昂贵的仪表板。 Splunk 支持从以下来源摄取数据: * 事件日志 * Syslogs * Web 日志 * 网络遥测 * 自定义文件 * 基于 API 的来源 在本实验中,我们使用了 **VPN 日志数据**。 # 从文件收集数据 在 **Add Data** 中,Splunk 提供了多种摄取方法。 基于文件的收集的正确选项是: **Monitor** 为什么? 因为此模式会持续监视文件或端口并自动摄取传入的数据。 # 日志摄取实战 我们上传了提供的 VPN 日志数据集。 Splunk 的摄取遵循结构化的工作流程: ## 步骤 1 — 选择来源 选择日志文件。 这会告诉 Splunk 需要处理哪些原始数据。 ## 步骤 2 — 选择来源类型 这定义了 Splunk 如何解释传入的数据。 示例: * Syslog * JSON * CSV * Windows 日志 选择正确的类型很重要,因为字段提取依赖于它。 ## 步骤 3 — 输入设置 在这里我们配置了: * 索引名称 → `vpn_logs` * 主机元数据 索引就像一个可搜索的存储桶。 ## 步骤 4 — 审查 在摄取之前务必验证配置。 不正确的来源解析可能会在稍后破坏字段提取。 ## 步骤 5 — 完成 Splunk 处理文件并索引事件。 现在调查阶段开始了。 # 调查查询 现在到了有趣的部分。 我们不再手动打开原始日志,而是查询结构化事件数据。 # 1. 事件总数 目标: 确定上传的数据集中存在多少个事件。 ### 查询语句 ``` index=vpn_logs ``` ### 为什么有效 这会告诉 Splunk: 由于没有应用任何过滤器,Splunk 将返回所有已索引的事件。 ### 结果 **2862 个事件** # 2. 由用户 "Maleena" 生成的事件 目标: 识别与特定用户关联的所有 VPN 活动。 ### 查询语句 ``` index=vpn_logs UserName="Maleena" ``` ### 为什么有效 此查询: * 在 `vpn_logs` 中搜索 * 仅筛选出 `UserName` 等于 `Maleena` 的事件 这在以用户为中心的调查中非常有用。 示例: * 内部威胁审查 * 可疑账户监控 * 登录活动审计 ### 结果 **60 个事件** # 3. 识别 IP 地址背后的用户名 目标: 将 IP 地址映射回用户身份。 ### 查询语句 ``` index=vpn_logs Source_ip="107.14.182.38" ``` ### 为什么有效 这会过滤掉源自指定源 IP 之外的事件。 这在事件响应期间很常见,当一个 IP 在外部被标记且分析师需要溯源归因时使用。 ### 结果 **Smith** # 4. 来自除法国以外所有国家的事件 目标: 从搜索中排除一个地理位置。 ### 查询语句 ``` index=vpn_logs NOT Source_Country=France ``` ### 为什么有效 `NOT` 运算符会移除所有符合指定条件的事件。 这在以下情况很有用: * 过滤已知的良性流量 * 缩小调查范围 * 消除噪音 ### 结果 **2814 个事件** # 5. 来自特定 IP 的活动 目标: 检查与可疑 IP 相关的所有事件。 ### 查询语句 ``` index=vpn_logs Source_ip="107.3.206.58" ``` ### 为什么有效 这会隔离来自一台主机的活动。 这有助于: * IOC 调查 * VPN 滥用分析 * 威胁行为者追踪 ### 结果 **14 个事件** # 学到的关键 Splunk 概念 本练习巩固了几个基础的 SIEM 概念: ### 日志摄取 安全可见性始于正确的数据导入。 没有数据 = 无法检测。 ### 索引 原始日志在经过解析和索引后变为可搜索的事件。 ### SPL 查询 分析师使用 SPL 在大型数据集中进行快速狩猎。 ### 过滤与调查 我们不再手动阅读日志,而是提出有针对性的问题: * 谁登录了? * 从哪里登录的? * 多久登录一次? * 有异常吗? # 为什么这在真实 SOC 工作中很重要 尽管这是一个初学者实验,但其工作流程反映了现实世界中的分析师活动。 SOC 分析师经常: * 调查可疑 IP * 审查用户登录活动 * 过滤噪音 * 狩猎失陷指标 * 跨数据集关联事件 与手动审查日志相比,Splunk 显著减少了调查时间。 # 总结 Splunk 仍然是防御者最实用的 SIEM 平台之一,因为它结合了: * 可扩展性 * 快速搜索 * 灵活的解析 * 丰富的仪表板 * 调查速度 这个实验对初学者很友好,但它引入了运营安全监控所需的正确思维方式。 从简单的搜索开始。 然后逐步转向: * 关联规则 * 告警 * 仪表板 * 异常检测 * 事件调查 这正是 Splunk 真正强大的地方。 *实验参考:TryHackMe Splunk 101*
标签:AMSI绕过, Endpoint Telemetry, Forwarder, Indexer, OpenCanary, Splunk SPL查询, Splunk架构, TryHackMe, Windows事件日志, 威胁检测, 子域名变形, 子域枚举, 安全信息与事件管理, 安全可视化, 安全调查, 安全运营中心, 异常检测, 搜索引擎爬取, 数据解析, 日志 ingestion, 日志取证, 日志收集, 机器数据分析, 渗透测试报告, 网安实战, 网络安全基础, 网络安全实验, 网络映射, 防火墙日志