EXP09/SAM-Enterprise-Demo
GitHub: EXP09/SAM-Enterprise-Demo
自托管的 Windows 端点 SOC/XDR 平台,整合 EDR、DLP、威胁情报、事件响应与合规治理,为安全分析师提供端到端的检测、调查与处置闭环。
Stars: 0 | Forks: 0
# SAM — 企业安全平台




**SAM** 是一个自托管的 **SOC / XDR 平台** —— 这是一个单一的安全控制台,
它从 Windows 端点收集遥测数据,将其关联为检测结果和
事件,并为分析师提供调查和响应的工具。可以将其
视为 Defender XDR / CrowdStrike Falcon / SentinelOne 的内部替代品,
采用端到端构建:**端点 agent → 摄取 API → 事件 pipeline → 检测
引擎 → 运营控制台。**
## 工作原理
每个 Windows 端点上的轻量级 agent 通过 HTTPS 将安全信号流式传输到
服务器,并使用**每 agent 专属 token** 进行身份验证。服务器将
所有内容持久化到 PostgreSQL,并将每个事件发送到内部的 **事件 pipeline**。
后台的**事件总线**将这些事件分发给独立的检测引擎
(EDR、IOC 匹配、风险评分、DLP、事件响应),这些引擎并行运行并
将其发现写回。分析师完全通过 Web 控制台进行工作 —— 对
事件进行分类、狩猎,并触发响应操作(隔离主机、终止进程、阻止
USB),这些操作将被推送回 agent。
```
flowchart LR
subgraph EP["Windows Endpoints"]
A1["PowerShell agent
w.ps1 · sam_telemetry.ps1"] A2[".NET agent
SAMAgentSvc + Tray"] end A1 & A2 -->|per-agent token · HTTPS| ING["Ingestion API
FastAPI"] ING --> DB[(PostgreSQL)] ING --> PIPE["Event pipeline
core_events + pg_notify"] PIPE --> BUS["Event bus
dispatcher"] BUS --> DET["Detection engines
EDR · IOC · Risk · DLP · IR"] DET --> DB DB --> UI["SOC Console
Jinja2 + ⌘K palette"] UI --> AN(("Analyst")) AN -->|isolate · kill · hunt| RESP["Response actions"] RESP -.-> A1 ``` **数据流:** `agent → 摄取 → PostgreSQL + 事件 pipeline → 总线 → 检测器 → 控制台 → 响应 → agent` ## 功能 | 领域 | 功能描述 | |------|--------------| | **检测与响应** | 映射 MITRE 的 EDR 检测器、事件响应引擎(检测 → 事件 → 一键 playbook)、调查工作区,以及用于主机隔离 / 终止进程 / 提取证据的响应中心。 | | **数据防泄漏 (DLP)** | 端点(USB + 文件复制)和网络 DLP(通过 mitmproxy 拦截 addon)、内容分类器 + 文档指纹、具有基于域策略的上传监控,以及证据保管库。 | | **威胁情报** | IOC 中心(带有针对实时遥测数据的匹配引擎)、威胁情报富化,以及 provider 集成(VirusTotal / MalwareBazaar),在未配置时会优雅降级。 | | **风险与内部威胁** | 以用户为中心的风险评分(具有行为基线和内部威胁指标),外加一个统一、可解释的风险引擎,该引擎聚合 EDR / IOC / DLP / PAM 信号。 | | **威胁狩猎** | 基于事件存储库的安全、参数化(防注入)查询层,带有可将数据馈送到 IR pipeline 的已保存检测规则。 | | **治理与合规** | 基于真实系统信号评级的 SAMA CSF / NCA ECC / PDPL 实时合规状态、证据保管库、保留 / 同意 / RoPA / DSAR 模块,以及可打印的审计报告。 | | **端点管理** | 具有健康状态(在线/过期/离线)的设备清单、端点健康监控器、资产清单、PAM 设备视图,以及一键 agent 部署生成器。 | | **AI 助手** | 通过 Claude 或兼容 OpenRouter 的模型进行自然语言威胁狩猎和事件摘要(阿拉伯语 / 英语)—— 可选功能,支持优雅降级。 | | **平台** | 事件 pipeline + 总线、基于 agent 的身份/token 颁发、RBAC + TOTP 2FA、hash 链接的防篡改审计日志、结构化日志、健康与指标 endpoint。 | ## 截图 ### 主页 — 概览与分析 SOC 概览汇总了会话、DLP 事件、风险分布和实时 活动;高管视图为领导层进行了汇总。 | SOC 概览 | 高管视图 | 近期活动 | |:---:|:---:|:---:| | [](screenshots/01-soc-overview.png) | [](screenshots/02-executive.png) | [](screenshots/03-recent-activity.png) | ### 运营 — 检测、调查、响应 事件队列、调查工作区、响应中心(遏制 操作),以及用于收集 artifacts 的证据中心。 | 事件 | 调查 | 响应中心 | 证据中心 | |:---:|:---:|:---:|:---:| | [](screenshots/04-incidents.png) | [](screenshots/05-investigation.png) | [](screenshots/06-response-center.png) | [](screenshots/07-evidence-center.png) | ### 风险与情报 高风险用户评分、威胁情报、IOC 中心、威胁狩猎、MITRE EDR 覆盖视图和沙箱。 | 高风险用户 | 威胁情报 | IOC 中心 | |:---:|:---:|:---:| | [](screenshots/08-risky-users.png) | [](screenshots/09-threat-intel.png) | [](screenshots/10-ioc-center.png) | | 威胁狩猎 | 高级 EDR | 沙箱 | |:---:|:---:|:---:| | [](screenshots/11-threat-hunting.png) | [](screenshots/12-advanced-edr.png) | [](screenshots/13-sandbox.png) | ### 端点 个人设备访问 (PAM)、设备清单、端点健康和资产。 | PAM — 我的设备 | 设备清单 | 端点健康 | 资产 | |:---:|:---:|:---:|:---:| | [](screenshots/14-pam-my-devices.png) | [](screenshots/15-fleet.png) | [](screenshots/16-endpoint-health.png) | [](screenshots/17-assets.png) | ### 数据保护与治理 统一的 DLP 控制台、合规中心(SAMA / NCA / PDPL 就绪状态)、 计划报告和防篡改审计日志。 | DLP | 合规 | 报告 | 审计 | |:---:|:---:|:---:|:---:| | [](screenshots/18-dlp.png) | [](screenshots/19-compliance.png) | [](screenshots/20-reports.png) | [](screenshots/21-audit.png) | ### 管理 策略中心、用户管理、细粒度访问控制、agent 部署 生成器、AI 助手和设计系统参考。 | 策略中心 | 用户管理 | 访问控制 | |:---:|:---:|:---:| | [](screenshots/22-policy-center.png) | [](screenshots/23-user-management.png) | [](screenshots/24-access-control.png) | | 部署 Agent | AI 助手 | 设计系统 | |:---:|:---:|:---:| | [](screenshots/25-deploy-agent.png) | [](screenshots/26-ai-assistant.png) | [](screenshots/27-design-system.png) | ## 技术栈 - **后端** — FastAPI (Python 3)、Jinja2 服务端渲染 UI、WebSockets(实时 shell / RDP) - **数据库** — PostgreSQL(事件存储 + 领域表) - **平台** — 定制事件 pipeline + 基于轮询的事件总线、基于 agent 的身份、RBAC、TOTP 2FA、hash 链审计 - **端点 agent** — PowerShell (`w.ps1`, `sam_telemetry.ps1`) 和原生 **.NET 8** 服务 + 托盘程序 (`agent-native/`);C# 中的 DXGI 屏幕捕获和 ETW 文件监控 - **DLP** — mitmproxy 拦截 addon + 内容分类器 / 指纹 - **媒体与分析** — imageio + Pillow + numpy(来自屏幕帧的视频)、OCR 关键词/DLP 检测 - **交付** — Cloudflare Tunnel 背后的 systemd 服务 ## 仓库结构 | 路径 | 描述 | |------|-------------| | `app/main.py` | FastAPI 入口点 —— 连接 router,启动总线,注册检测引擎 | | `app/routes/` | 36 个路由模块(SOC 页面 + agent/摄取 + WebSocket endpoint) | | `app/platform/` | 跨切面基础设施:`events/` (pipeline + 总线), `identity/`, `edr/`, `risk_engine/`, `threatintel/`, `dlp/`, `response/`, `pam/`, `assets/`, `observability/` | | `app/agents/` | 领域 agent:`risk/`, `ir/` (事件响应), `hunting/`, `reporting/`, `sandbox/`, `assistant/` | | `app/compliance/` | SAMA / NCA / PDPL 就绪引擎 + 保留 / 同意 / RoPA / DSAR | | `app/services/` | 身份验证、会话、OCR、风险、视频、威胁情报服务 | | `app/templates/` | 50 个基于共享 `base.html` 外壳构建的 Jinja2 页面(左侧边栏 + ⌘K 面板) | | `app/static/` | 设计系统 (`style.css`)、主题 + 终端资产 | | `tools/` | DLP 引擎、mitmproxy addon、频道助手 | | `agent-native/` | .NET 8 端点 agent(服务 + 托盘)—— **仅源码** | | `kernel/` | 用于内核级 DLP 的文件系统 Minifilter 概念验证 (`SamMon`) | | `migrations/` | Alembic schema 迁移(仅结构 —— 无数据) | | `w.ps1`, `w-external.ps1`, `sam_telemetry.ps1`, `sam_posture.ps1` | PowerShell 端点 agent | | `capture_dxgi.cs`, `etw_file.cs`, `session_launch.cs` | 原生捕获 / ETW / 会话启动助手 | ## 本地运行 ``` # 配置 — 复制模板并填入你自己的值 cp .env.example .env # 至少设置 PG_PASS 和 API_KEY(没有它们,app 将拒绝启动) # 安装依赖项 pip install -r requirements.txt # 创建 .env 中引用的 PostgreSQL 数据库,然后运行 uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` 如果强制要求的密钥(`PG_PASS`, `API_KEY`)未设置,应用将会**抛出明显错误** — 这是故意的,以确保它永远不会静默回退到默认凭据。 ## 安全说明 - 没有提交任何真实的密钥。密钥来自环境变量 / `.env` (被 git 忽略);`.env.example` 仅包含占位符。 - 密码哈希使用 **bcrypt**,会话基于 cookie,并且特权 角色受 **TOTP 2FA** 保护。 - 审计日志是 **hash 链接的**(每个条目都链接到前一个),以便 能够检测到篡改。 ## 许可证 基于 [MIT License](LICENSE) 发布。
w.ps1 · sam_telemetry.ps1"] A2[".NET agent
SAMAgentSvc + Tray"] end A1 & A2 -->|per-agent token · HTTPS| ING["Ingestion API
FastAPI"] ING --> DB[(PostgreSQL)] ING --> PIPE["Event pipeline
core_events + pg_notify"] PIPE --> BUS["Event bus
dispatcher"] BUS --> DET["Detection engines
EDR · IOC · Risk · DLP · IR"] DET --> DB DB --> UI["SOC Console
Jinja2 + ⌘K palette"] UI --> AN(("Analyst")) AN -->|isolate · kill · hunt| RESP["Response actions"] RESP -.-> A1 ``` **数据流:** `agent → 摄取 → PostgreSQL + 事件 pipeline → 总线 → 检测器 → 控制台 → 响应 → agent` ## 功能 | 领域 | 功能描述 | |------|--------------| | **检测与响应** | 映射 MITRE 的 EDR 检测器、事件响应引擎(检测 → 事件 → 一键 playbook)、调查工作区,以及用于主机隔离 / 终止进程 / 提取证据的响应中心。 | | **数据防泄漏 (DLP)** | 端点(USB + 文件复制)和网络 DLP(通过 mitmproxy 拦截 addon)、内容分类器 + 文档指纹、具有基于域策略的上传监控,以及证据保管库。 | | **威胁情报** | IOC 中心(带有针对实时遥测数据的匹配引擎)、威胁情报富化,以及 provider 集成(VirusTotal / MalwareBazaar),在未配置时会优雅降级。 | | **风险与内部威胁** | 以用户为中心的风险评分(具有行为基线和内部威胁指标),外加一个统一、可解释的风险引擎,该引擎聚合 EDR / IOC / DLP / PAM 信号。 | | **威胁狩猎** | 基于事件存储库的安全、参数化(防注入)查询层,带有可将数据馈送到 IR pipeline 的已保存检测规则。 | | **治理与合规** | 基于真实系统信号评级的 SAMA CSF / NCA ECC / PDPL 实时合规状态、证据保管库、保留 / 同意 / RoPA / DSAR 模块,以及可打印的审计报告。 | | **端点管理** | 具有健康状态(在线/过期/离线)的设备清单、端点健康监控器、资产清单、PAM 设备视图,以及一键 agent 部署生成器。 | | **AI 助手** | 通过 Claude 或兼容 OpenRouter 的模型进行自然语言威胁狩猎和事件摘要(阿拉伯语 / 英语)—— 可选功能,支持优雅降级。 | | **平台** | 事件 pipeline + 总线、基于 agent 的身份/token 颁发、RBAC + TOTP 2FA、hash 链接的防篡改审计日志、结构化日志、健康与指标 endpoint。 | ## 截图 ### 主页 — 概览与分析 SOC 概览汇总了会话、DLP 事件、风险分布和实时 活动;高管视图为领导层进行了汇总。 | SOC 概览 | 高管视图 | 近期活动 | |:---:|:---:|:---:| | [](screenshots/01-soc-overview.png) | [](screenshots/02-executive.png) | [](screenshots/03-recent-activity.png) | ### 运营 — 检测、调查、响应 事件队列、调查工作区、响应中心(遏制 操作),以及用于收集 artifacts 的证据中心。 | 事件 | 调查 | 响应中心 | 证据中心 | |:---:|:---:|:---:|:---:| | [](screenshots/04-incidents.png) | [](screenshots/05-investigation.png) | [](screenshots/06-response-center.png) | [](screenshots/07-evidence-center.png) | ### 风险与情报 高风险用户评分、威胁情报、IOC 中心、威胁狩猎、MITRE EDR 覆盖视图和沙箱。 | 高风险用户 | 威胁情报 | IOC 中心 | |:---:|:---:|:---:| | [](screenshots/08-risky-users.png) | [](screenshots/09-threat-intel.png) | [](screenshots/10-ioc-center.png) | | 威胁狩猎 | 高级 EDR | 沙箱 | |:---:|:---:|:---:| | [](screenshots/11-threat-hunting.png) | [](screenshots/12-advanced-edr.png) | [](screenshots/13-sandbox.png) | ### 端点 个人设备访问 (PAM)、设备清单、端点健康和资产。 | PAM — 我的设备 | 设备清单 | 端点健康 | 资产 | |:---:|:---:|:---:|:---:| | [](screenshots/14-pam-my-devices.png) | [](screenshots/15-fleet.png) | [](screenshots/16-endpoint-health.png) | [](screenshots/17-assets.png) | ### 数据保护与治理 统一的 DLP 控制台、合规中心(SAMA / NCA / PDPL 就绪状态)、 计划报告和防篡改审计日志。 | DLP | 合规 | 报告 | 审计 | |:---:|:---:|:---:|:---:| | [](screenshots/18-dlp.png) | [](screenshots/19-compliance.png) | [](screenshots/20-reports.png) | [](screenshots/21-audit.png) | ### 管理 策略中心、用户管理、细粒度访问控制、agent 部署 生成器、AI 助手和设计系统参考。 | 策略中心 | 用户管理 | 访问控制 | |:---:|:---:|:---:| | [](screenshots/22-policy-center.png) | [](screenshots/23-user-management.png) | [](screenshots/24-access-control.png) | | 部署 Agent | AI 助手 | 设计系统 | |:---:|:---:|:---:| | [](screenshots/25-deploy-agent.png) | [](screenshots/26-ai-assistant.png) | [](screenshots/27-design-system.png) | ## 技术栈 - **后端** — FastAPI (Python 3)、Jinja2 服务端渲染 UI、WebSockets(实时 shell / RDP) - **数据库** — PostgreSQL(事件存储 + 领域表) - **平台** — 定制事件 pipeline + 基于轮询的事件总线、基于 agent 的身份、RBAC、TOTP 2FA、hash 链审计 - **端点 agent** — PowerShell (`w.ps1`, `sam_telemetry.ps1`) 和原生 **.NET 8** 服务 + 托盘程序 (`agent-native/`);C# 中的 DXGI 屏幕捕获和 ETW 文件监控 - **DLP** — mitmproxy 拦截 addon + 内容分类器 / 指纹 - **媒体与分析** — imageio + Pillow + numpy(来自屏幕帧的视频)、OCR 关键词/DLP 检测 - **交付** — Cloudflare Tunnel 背后的 systemd 服务 ## 仓库结构 | 路径 | 描述 | |------|-------------| | `app/main.py` | FastAPI 入口点 —— 连接 router,启动总线,注册检测引擎 | | `app/routes/` | 36 个路由模块(SOC 页面 + agent/摄取 + WebSocket endpoint) | | `app/platform/` | 跨切面基础设施:`events/` (pipeline + 总线), `identity/`, `edr/`, `risk_engine/`, `threatintel/`, `dlp/`, `response/`, `pam/`, `assets/`, `observability/` | | `app/agents/` | 领域 agent:`risk/`, `ir/` (事件响应), `hunting/`, `reporting/`, `sandbox/`, `assistant/` | | `app/compliance/` | SAMA / NCA / PDPL 就绪引擎 + 保留 / 同意 / RoPA / DSAR | | `app/services/` | 身份验证、会话、OCR、风险、视频、威胁情报服务 | | `app/templates/` | 50 个基于共享 `base.html` 外壳构建的 Jinja2 页面(左侧边栏 + ⌘K 面板) | | `app/static/` | 设计系统 (`style.css`)、主题 + 终端资产 | | `tools/` | DLP 引擎、mitmproxy addon、频道助手 | | `agent-native/` | .NET 8 端点 agent(服务 + 托盘)—— **仅源码** | | `kernel/` | 用于内核级 DLP 的文件系统 Minifilter 概念验证 (`SamMon`) | | `migrations/` | Alembic schema 迁移(仅结构 —— 无数据) | | `w.ps1`, `w-external.ps1`, `sam_telemetry.ps1`, `sam_posture.ps1` | PowerShell 端点 agent | | `capture_dxgi.cs`, `etw_file.cs`, `session_launch.cs` | 原生捕获 / ETW / 会话启动助手 | ## 本地运行 ``` # 配置 — 复制模板并填入你自己的值 cp .env.example .env # 至少设置 PG_PASS 和 API_KEY(没有它们,app 将拒绝启动) # 安装依赖项 pip install -r requirements.txt # 创建 .env 中引用的 PostgreSQL 数据库,然后运行 uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` 如果强制要求的密钥(`PG_PASS`, `API_KEY`)未设置,应用将会**抛出明显错误** — 这是故意的,以确保它永远不会静默回退到默认凭据。 ## 安全说明 - 没有提交任何真实的密钥。密钥来自环境变量 / `.env` (被 git 忽略);`.env.example` 仅包含占位符。 - 密码哈希使用 **bcrypt**,会话基于 cookie,并且特权 角色受 **TOTP 2FA** 保护。 - 审计日志是 **hash 链接的**(每个条目都链接到前一个),以便 能够检测到篡改。 ## 许可证 基于 [MIT License](LICENSE) 发布。
标签:AI合规, AV绕过, DLP, DNS 反向解析, EDR, FastAPI, HTTP工具, PostgreSQL, SOC平台, 子域名变形, 无线安全, 测试用例, 知识库安全, 终端安全, 脆弱性评估, 逆向工具