Nate-ryan-7690/home_SOC_suite
GitHub: Nate-ryan-7690/home_SOC_suite
一套用PowerShell构建的个人Windows端点SOC监控套件,通过基线学习与严重性分类实现对网络、资源、任务和电源事件的异常检测与每周分析。
Stars: 0 | Forks: 0
# 家庭 SOC 套件 — Night's Watch
这是一个在 Anwendungsentwicklung(应用开发)再培训课程期间从零开始构建的个人安全运营中心 (SOC)。该套件监控 Windows 终端的网络异常、资源峰值、计划任务变更和电源事件——将所有内容记录到结构化文件中,以便进行每周分析并未来集成到 Python 仪表板中。
## 背景
作为正式 IT 再培训期间的实践学习项目构建,该套件将真实的 SOC 概念——基线收集、异常检测、严重性分类和日志聚合——应用于个人 Windows 计算机。目标是理解从数据收集到分析的完整监控流程,为从事网络防御职业做准备。
## 架构
该套件采用双层架构:
**采集层** — 在后台持续运行的 PowerShell 脚本,每个脚本监控特定的数据源并写入结构化、带有严重性标签的日志条目。
**分析层** — 解析收集的日志并生成每周摘要报告的 PowerShell 分析脚本。
结合所有数据源的 Python 仪表板计划作为下一阶段推出。
## 脚本
### 采集器
| 脚本 | 别名 | 功能 |
|--------|----------|----------|
| Sentinel.ps1 | Network Watchdog | 监控出站 TCP 连接,包括地理位置和进程路径验证 |
| Bulwark.ps1 | Night's Watch | 监控入站监听端口的变化和地理位置异常 |
| Steward.ps1 | Quartermaster | 使用 Windows 性能计数器监控每个进程的 CPU、RAM 和磁盘 I/O |
| CityGuard.ps1 | City Guard | 监控计划任务的添加、删除和修改 |
| Watchman.ps1 | Watchman | 监控 Windows 电源事件——启动、睡眠、唤醒和意外关机 |
### 分析器
| 脚本 | 别名 | 功能 |
|--------|----------|----------|
| Investigator.ps1 | Audit Reporter | 每周分析 Sentinel 出站连接日志 |
| Crow.ps1 | Lord Commander | 每周分析 Bulwark 入站端口日志 |
| Ledger.ps1 | Maester | 每周分析 Steward 资源日志并进行 RAM 趋势检测 |
| Castellan.ps1 | Castellan | 每周分析 CityGuard 计划任务日志 |
## 严重性系统
所有采集器使用一致的四级严重性系统:
| 级别 | 颜色 | 含义 |
|-------|-------|---------|
| OK | Green | 匹配已知基线,无需操作 |
| UNKNOWN | Yellow | 尚未建立基线,监控模式 |
| SUSPICIOUS | DarkYellow | 检测到异常,需调查 |
| CRITICAL | Red | 超过阈值,需立即审查 |
## 日志结构
所有日志遵循一致的格式,以便未来 Python 解析:
```
[yyyy-MM-dd HH:mm:ss] [SEVERITY] Event details
```
日志存储在结构化的文件夹层次结构中:
```
$RootPath/ — default: Desktop\SOC
├── Scripts/ — PowerShell collector and analyst scripts
├── Logs/ — Active log files
│ └── Archives/ — 7 day archived logs
├── Reports/ — Weekly analyst reports
└── Config/ — Baseline files (JSON)
```
## 支持的操作系统语言
Steward 会自动检测以下操作系统语言的正确 CPU 性能计数器路径:
| 语言 | 计数器路径 |
|----------|-------------|
| English | \Process(*)\% Processor Time |
| German | \Prozess(*)\Prozessorzeit (%) |
| French | \Processus(*)\% temps processeur |
| Spanish | \Proceso(*)\% de tiempo de procesador |
| Italian | \Processo(*)\% Tempo processore |
| Portuguese | \Processo(*)\% de Tempo do Processador |
| Russian | \Процесс(*)\% загруженности процессора |
| Chinese (Simp.) | \Process(*)\% Processor Time (通常为英文) |
要增加对另一种语言的支持,请将本地化的计数器路径添加到 `Steward.ps1` 中 `Get-WorkingCounterPath` 函数的 `$PathsToTry` 数组中。
## 主要功能
- **行为基线收集** — 所有采集器随时间建立基线,能够基于观察到的正常行为而非静态规则进行异常检测
- **地理位置监控** — 按国家/地区跟踪出站和入站连接,能够检测意外的地理位置目的地
- **进程指纹识别** — 每个连接和端口事件都记录完整的进程路径,检测伪装攻击
- **带严重性标签的日志记录** — 结构化日志条目支持自动解析和未来 SIEM 集成
- **7 天日志轮换** — 自动归档在保留历史记录的同时保持日志易于管理
- **多语言 Windows 兼容性** — 启动时自动检测 8 种受支持操作系统语言的性能计数器路径
## 计划的下一阶段
- 使用 Flask 和 Chart.js 的 Python 仪表板
- 所有五个数据流的实时可视化
- 一个月基线期后的白名单集成
- DNS 查询监控
- 文件完整性监控
## 注意事项
- 将每个脚本中的 `$RootPath` 设置为安装 SOC Suite 的文件夹。默认为 `Desktop\SOC`——如果您安装在其他位置,请更改此项
- 脚本需要将 PowerShell 执行策略设置为 Bypass
- 采集器脚本需要管理员权限提升以获得完整的系统可见性
- 分析器脚本以标准用户身份运行
- 性能计数器路径在启动时自动检测,支持 8 种操作系统语言。要增加额外的语言支持,请将本地化的计数器路径添加到 `Steward.ps1` 中 `Get-WorkingCounterPath` 的 `$PathsToTry` 数组中
- 地理位置由 ip-api.com 免费层提供
## 学习背景
构建于德国 2026 年 Fachinformatiker Anwendungsentwicklung 再培训期间。
目标职业为网络防御和威胁情报。
在 AI 辅助下作为学习工具构建。每一个设计决策、调试环节和架构选择均由开发者驱动,并对底层概念有充分理解。
标签:AI合规, AMSI绕过, Conpot, EDR, IPv6, Libemu, Mr. Robot, PowerShell, Windows安全, 个人安全项目, 事件日志, 后渗透, 基线检测, 威胁检测, 安全管理, 安全运营中心, 开源SOC, 异常检测, 性能监控, 数字取证, 端点安全, 网络安全, 网络映射, 脆弱性评估, 自动化脚本, 补丁管理, 计划任务监控, 资源监控, 隐私保护