Mukesh-cpu-gif/ThreatSOC

GitHub: Mukesh-cpu-gif/ThreatSOC

一款证据优先的 SOC 调查与检测工程平台,支持威胁狩猎、攻击场景重放及检测即代码工作流。

Stars: 0 | Forks: 0

# ThreatSOC ThreatSOC 是一个本地优先、证据优先的 SOC 调查平台,可将合成或导入的遥测数据转化为可解释的检测、关联事件、威胁狩猎、分析师决策以及事件报告。 ![ThreatSOC 概览](https://static.pigsec.cn/wp-content/uploads/repos/cas/77/777474a9d64ced623623a92dd171c06a110fa190eb1230b6ed14e1c4f5477283.png) ## 为什么开发它 ThreatSOC 展示了可信调查工作流背后的安全工程: ``` telemetry -> normalization -> detections -> alerts -> correlation -> incidents -> evidence -> decision -> report ``` 核心 pipeline 是确定性的并且可以离线工作。AI 是可选的,并且仅限于有证据依据的分析师辅助;它永远不会决定活动是否恶意,也永远不会更改事件状态或结论。 ## 核心功能 - 以 SQLite 为后端的 FastAPI 后端,带有确定性演示数据播种。 - 20 条 YAML 检测规则和 6 条 YAML 关联规则。 - 9 个可重放的场景:6 个恶意攻击故事和 3 个良性/噪声场景。 - 原始和标准化事件存储,并具有实体提取功能。 - 可解释的告警,包含证据、匹配字段、MITRE 映射和风险分解。 - 关联事件队列、时间线、证据图和不可变风格的决策账本。 - 受 KQL 启发的 ThreatSOC 查询语言,被编译为安全的 ORM 谓词。 - 保存的威胁狩猎和从事件到证据的事件附加。 - Detection Lab,用于规则检查、验证、克隆/自定义版本、规则测试和评估指标。 - 针对内置检测范围的 ATT&CK 覆盖视图。 - Markdown 和 HTML 事件报告生成。 - 离线证据助手以及可选的 OpenAI 兼容配置。 - Docker Compose、Windows/macOS/Linux 启动脚本、自动化测试和 CI。 ## 五分钟演示流程 1. 启动应用程序并打开 [http://localhost:5173](http://localhost:5173)。 2. 进入 Replay Lab。 3. 以 `Instant` 速度运行 `password-spray-to-execution`。 4. 打开生成的事件。 5. 检查概览、时间线、证据图、告警、证据和决策账本。 6. 添加带有告警/事件引用的账本注释或结论。 7. 运行威胁狩猎查询,例如 `process_name:powershell.exe AND command_line:*Encoded*`。 8. 生成 Markdown 或 HTML 事件报告。 9. 打开 Detection Lab 并测试 `suspicious-encoded-powershell`。 ## 截图 来自最终空间安全智能界面的最新视口捕获位于 `docs/screenshots/` 中,包括 Threat Core 概览、攻击故事重放、事件画布、证据图、检测工程、威胁狩猎、ATT&CK、数据、报告和设置路由。 ![事件详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/1d/1d3749ea885c749c82594954cd74c143348ba00e99b1d3b9fd28e3e68e1ec9a8.png) ![证据图](https://static.pigsec.cn/wp-content/uploads/repos/cas/6f/6f79ec4a4d8ee0972ee1954ab7b2e98b87c9be8eca9598f6c43e19bbdeb11263.png) ![Detection Lab](https://static.pigsec.cn/wp-content/uploads/repos/cas/3b/3bbc5ddb8a227d5e2df77522c4da91007c9d732c244d39e4a890d08c9af5305b.png) ![威胁狩猎工作区](https://static.pigsec.cn/wp-content/uploads/repos/cas/9d/9d0ae249459a9861f516643cae068ebfabec51e7bce3d843dd7786fa5cc58493.png) ![Replay Lab](https://static.pigsec.cn/wp-content/uploads/repos/cas/a0/a074b6d05b75b9c14a607a7265accbd14f871c3de38b154b62eda68bf51409db.png) ![ATT&CK 覆盖](https://static.pigsec.cn/wp-content/uploads/repos/cas/9e/9ee0ac61c7b748623ca0c98fa1e22062b0a9726cf8d92af36cfe7c5fda89dab3.png) ![证据报告工作室](https://static.pigsec.cn/wp-content/uploads/repos/cas/f3/f393f46c2ae7fbdcf9ab18415e0156dad577784b5e58ff8e59c809480419b6dc.png) ## 架构 ``` flowchart LR A["Demo generator / file import"] --> B["Raw events"] B --> C["Normalization"] C --> D["Normalized events"] D --> E["Detection engine"] D --> F["Threat hunting"] E --> G["Alerts"] G --> H["Correlation engine"] H --> I["Incidents"] I --> J["Timeline and evidence graph"] I --> K["Decision ledger"] I --> L["Reports"] I --> M["Offline / optional AI assistant"] ``` 前端:React、TypeScript、Vite、Tailwind CSS、TanStack Query、Recharts、Cytoscape.js。 后端:Python 3.12、FastAPI、Pydantic v2、SQLAlchemy 2.x、Alembic、SQLite。 ## 使用 Docker 快速开始 ``` docker compose up --build ``` 然后打开 [http://localhost:5173](http://localhost:5173)。后端暴露在 [http://localhost:8000](http://localhost:8000),并且 `/health` 应该返回 `{"status":"ok"}`。 Windows 便捷脚本: ``` START_THREATSOC.bat ``` macOS/Linux 便捷脚本: ``` chmod +x start-threatsoc.sh ./start-threatsoc.sh ``` ## 本地开发 后端: ``` cd backend py -3.12 -m venv .venv .\.venv\Scripts\python.exe -m pip install --upgrade pip .\.venv\Scripts\python.exe -m pip install -r requirements.txt .\.venv\Scripts\python.exe -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000 ``` 前端: ``` cd frontend npm install $env:VITE_API_BASE_URL = "http://127.0.0.1:8000" npm run dev ``` 数据库在后端启动且内容为空时会自动初始化并播种数据。手动迁移命令: ``` cd backend .\.venv\Scripts\alembic.exe upgrade head ``` ## 检测即代码示例 ``` slug: suspicious-encoded-powershell title: Suspicious Encoded PowerShell severity: high base_score: 75 event_type: process.start match: all: - field: process_name op: equals_ci value: powershell.exe - field: command_line op: contains_ci value: "-encodedcommand" mitre: - tactic: Execution technique_id: T1059.001 technique_name: PowerShell ``` 内置规则位于 `detections/rules/*.yml`;内置关联故事位于 `detections/correlations/*.yml`。内置规则可以启用或禁用,而编辑则是通过克隆到自定义的、基于数据库的规则版本来进行的。 ## 威胁狩猎查询示例 ``` event_type:auth.failed AND user:m.rahman process_name:powershell.exe AND command_line:*encoded* source_ip:203.0.113.* AND NOT status:success host:WS-023 AND (event_type:process.start OR event_type:network.connect) ``` 解析器支持 `field:value`、带引号的字符串、`*` 通配符、`AND`、`OR`、`NOT` 和括号。查询被解析为 AST 并编译为 SQLAlchemy 谓词,而不是作为原始 SQL 执行。 ## 演示场景 恶意: - `password-spray-compromise` - `password-spray-to-execution` - `privileged-persistence` - `credential-access-indicators` - `lateral-movement` - `defense-evasion-network` 良性/噪声: - `benign-admin-maintenance` - `benign-password-mistakes` - `benign-network-volume` 所有遥测数据均为合成数据,并使用虚构的 Northstar Labs 身份以及 RFC 文档 IP 范围。 ## AI 设计 ThreatSOC 在禁用 AI 的情况下完全可以工作。离线模式提供确定性的证据摘要、技术清单和威胁狩猎建议。可选的提供程序设置仅位于服务器端: ``` THREATSOC_AI_PROVIDER=offline THREATSOC_AI_MODEL= OPENAI_API_KEY= ``` AI 响应会经过验证,因此证据引用必须属于活动的事件上下文。API 密钥永远不会返回给前端。 ## 测试 后端: ``` cd backend .\.venv\Scripts\python.exe -m pytest .\.venv\Scripts\python.exe -m ruff check . ``` 前端: ``` cd frontend npm run typecheck npm run lint npm test npm run build ``` E2E 冒烟测试: ``` cd frontend npm run test:e2e ``` 截图刷新,此时 E2E 后端/前端服务器分别在 `8011` 和 `5174` 端口运行: ``` cd frontend npm run screenshots ``` ## 数据管理 - `RESET_DEMO` 重新播种演示数据,同时保留导入的行。 - `CLEAR_IMPORTS` 删除导入的行并重建确定性的演示状态。 - `RESET_ALL_LOCAL_DATA` 删除导入的数据、自定义规则、自定义威胁狩猎和运行时证据,然后重新播种演示数据。 这些破坏性操作需要在 UI/API 中进行明确的确认值。 ## 安全说明 ThreatSOC 不会执行恶意软件、漏洞利用、凭证窃取、持久化或遏制操作。重放场景仅生成无害的合成遥测数据。 ## V1 的局限性 - 仅限本地单分析师工作流。 - SQLite 是默认数据库。 - 没有真实的 endpoint agent、SIEM 连接器、SOAR 操作、RBAC、SSO、Kafka、Elasticsearch 或 Kubernetes。 - 已实现 Markdown 和 HTML 报告;在 V1 版本中有意去除了 PDF 导出功能。 - ATT&CK 覆盖范围仅限于内置的检测范围,并不声称具有完整的 ATT&CK 覆盖。 ## 许可证 MIT。详见 [LICENSE](LICENSE)。
标签:AV绕过, FastAPI, SIOC, 安全运营, 扫描框架, 版权保护