riyajerry/blue-team-portfolio

GitHub: riyajerry/blue-team-portfolio

网络安全蓝队个人作品集,记录了在家庭实验室中搭建 Splunk SIEM 环境、编写检测规则并模拟攻击验证的完整 SOC 实践过程。

Stars: 0 | Forks: 0

# 蓝队安全作品集 **姓名:** Riya Jerry **学位:** 网络安全理学硕士 — 爱尔兰科克芒斯特理工大学 **关注领域:** SOC 分析 · 威胁检测 · 事件响应 **状态:** 正在爱尔兰积极寻找初级 SOC 分析师职位 ## 关于本作品集 此仓库记录了在家庭实验室环境中构建的蓝队实战项目。 每个项目都反映了真实的 SOC 分析师工作流程,从配置 SIEM 和编写 检测规则,到生成正式的事件响应报告。 这里的所有内容都是在运行于 Windows 11 上的 VirtualBox 家庭实验室中从零开始构建的, 包含一台 Ubuntu Server SIEM 主机和一台 Windows 10 靶机。 | # | 项目 | 状态 | 关键工具 | |---|---------|--------|-----------| | 1 | [家庭 SIEM 实验 — Splunk + 检测规则](#project-1--home-siem-lab) | ✅ 已完成 | Splunk, Windows Event Logs, SPL, Atomic Red Team | | 2 | 事件响应报告 | 🔄 进行中 | MITRE ATT&CK, Any.run | | 3 | 威胁行为者画像 — APT28 | 🔄 进行中 | MITRE Navigator, OSINT | ## 项目 1 — 家庭 SIEM 实验 ### 我构建了什么 一个使用 Splunk Enterprise(免费版)的家庭 SIEM 实验室,用于实时接收和监控 Windows Event Logs。该实验室模拟了一个基本的 SOC 监控环境, 包含一台生成日志的 Windows 10 终端和一台专用的 Ubuntu Server SIEM 主机。 ### 实验室架构 Windows 10 虚拟机 → Splunk Universal Forwarder → Ubuntu Server 虚拟机 (Splunk Enterprise) [靶机] [端口 9997] [SIEM 主机 — 端口 8000] ### 我做了什么 - 配置了具有两台虚拟机的 VirtualBox:Windows 10(靶机)和 Ubuntu 22.04(SIEM) - 在 Ubuntu 上安装了 Splunk Enterprise,在 Windows 上安装了 Splunk Universal Forwarder - 将 Windows 的安全、系统和应用程序事件日志转发到了 Splunk - 使用 `index=main` 搜索确认了实时日志接收 - 验证了对 EventCode 4624(成功登录)和 4625(失败登录)的检测 - 故意生成失败登录事件以验证检测能力 ### 监控的关键事件代码 | EventCode | 含义 | 重要性说明 | |-----------|---------|----------------| | 4624 | 成功登录 | 基准活动 — 突然激增表明暴力破解成功 | | 4625 | 失败登录 | 暴力破解或凭证填充的主要指标 | | 4688 | 进程创建 | 检测可疑的进程执行 | | 4720 | 创建用户账户 | 常见的持久化技术 | ### 截图 #### Splunk 仪表板 — 日志流入中 ![Splunk 日志流入](https://raw.githubusercontent.com/riyajerry/blue-team-portfolio/main/screenshots/splunk-logs-flowing.png) #### EventCode 4625 — 检测到失败登录 ## ![检测到失败登录](https://raw.githubusercontent.com/riyajerry/blue-team-portfolio/main/screenshots/eventcode-4625-detected.png) ## 工具与技术 `Splunk Enterprise` `Splunk Universal Forwarder` `VirtualBox` `Ubuntu Server 22.04` `Windows 10` `Windows Event Logs` `SPL (Search Processing Language)` `MITRE ATT&CK` ## 实验室环境 | 组件 | 详情 | |-----------|---------| | 宿主机 | Windows 11, 16GB 内存 | | Hypervisor | VirtualBox 7.x | | SIEM 主机 | Ubuntu Server 22.04 LTS — 4GB 内存, 2 vCPUs | | 靶机 | Windows 10 Pro — 4GB 内存, 2 vCPUs | | Splunk 版本 | Enterprise 9.x (免费版 — 500MB/天) | ## 第 3-4 周 — 检测规则与仪表板 ### 我构建了什么 在 Splunk 中作为实时警报运行的四个 SPL 检测规则, 这些规则由使用 Atomic Red Team 进行的真实攻击模拟触发。 一个将所有检测结果可视化的 SOC 仪表板。 ### 执行的攻击模拟 | Atomic 测试 | MITRE 技术 | 模拟内容 | |-------------|----------------|-------------------| | T1053.005 | Scheduled Task | 攻击者在重启后的持久化 | | T1136.001 | Create Local User | 攻击者创建后门账户 | | T1547.001 | Registry Run Keys | 恶意软件在启动时运行 | ### 编写的检测规则 #### 规则 1 — 暴力破解登录检测 **EventCode:** 4625 — 失败登录 **MITRE:** T1110 — Brute Force **逻辑:** 计算每个账户的失败登录次数。当同一 账户失败超过 5 次时触发 — 表明存在凭证填充 或密码猜测攻击。 ``` index=main EventCode=4625 earliest=-60m | stats count by Account_Name, ComputerName | where count > 5 | table Account_Name, ComputerName, count | sort -count ``` #### 规则 2 — 可疑进程创建 **EventCode:** 4688 — 进程创建 **MITRE:** T1059 — Command and Scripting Interpreter **逻辑:** 当生成 powershell.exe 或 cmd.exe 等高风险进程时发出警报。这些是正常的进程,但如果 意外或大量出现,就会变得可疑。 ``` index=main EventCode=4688 | eval process=lower(New_Process_Name) | search process IN ("*powershell.exe*","*cmd.exe*", "*wscript.exe*","*mshta.exe*","*rundll32.exe*") | table _time, ComputerName, Account_Name, New_Process_Name, Creator_Process_Name | sort -_time ``` #### 规则 3 — 可疑的父子进程生成 **EventCode:** 4688 — 进程创建 **MITRE:** T1059.001 — PowerShell, T1566 — Phishing **逻辑:** 检测由异常父进程生成的 shell 或解释器。 这是恶意 Office 宏、 WMI 滥用或 living-off-the-land 攻击的关键指标。Splunk 自身的 进程被排除在外以减少误报。 ``` index=main EventCode=4688 | eval parent=lower(Creator_Process_Name) | eval child=lower(New_Process_Name) | search child IN ("*powershell.exe*","*cmd.exe*", "*wscript.exe*","*mshta.exe*","*rundll32.exe*","*schtasks.exe*") | search parent IN ("*svchost.exe*","*schtasks.exe*", "*msiexec.exe*","*wmic.exe*","*powershell.exe*", "*winword.exe*","*excel.exe*","*outlook.exe*") | where NOT match(parent,"splunk") | where NOT match(child,"splunk") | table _time, ComputerName, Account_Name, Creator_Process_Name, New_Process_Name | sort -_time ``` #### 规则 4 — 计划任务持久化检测 **EventCode:** 4698 — 计划任务创建 **MITRE:** T1053.005 — Scheduled Task **逻辑:** 每次创建计划任务时都会触发。 合法的软件极少会静默创建计划任务 — 这是攻击者持久化的一个高置信度指标。 ``` index=main (EventCode=4698 OR EventCode=4702) | table _time, ComputerName, Account_Name, Message | sort -_time ``` ### 关键发现 — 检测到真实的可疑活动 在测试期间,观察到以下真正的可疑行为 并被规则 3 捕获: - `svchost.exe` 在用户账户 `riya` 下生成 `rundll32.exe` - `powershell.exe` 在短时间内连续三次生成 `schtasks.exe` — 这与自动化的攻击者工具行为一致 ### 截图 #### SOC 仪表板 — 集中查看所有检测 ![SOC 仪表板](https://raw.githubusercontent.com/riyajerry/blue-team-portfolio/main/screenshots/soc-dashboard.png) #### 规则 3 — 父子进程检测 ![父子进程检测](https://raw.githubusercontent.com/riyajerry/blue-team-portfolio/main/screenshots/parent-child-detection.png) #### 规则 4 — 捕获计划任务持久化 ![计划任务检测](https://raw.githubusercontent.com/riyajerry/blue-team-portfolio/main/screenshots/scheduled-task-detection.png) ### 我学到了什么 - Windows 审核策略默认是关闭的,启用它们 是任何 SOC 部署的关键第一步 - Splunk 的 bucket 和 stats 命令是基于阈值的警报的核心 - 从规则中排除已知良好的进程(如 Splunk 自身的二进制文件) 对于减少误报噪音至关重要 - 在测试期间出现了真实的可疑活动, 在用户账户下生成 rundll32 的 svchost 确实 值得深入调查 *本作品集会随着我完成新项目而持续更新。*
标签:SOC分析, 库, 应急响应, 红队行动