ibadovulfat/shadowlab-detection-lab
GitHub: ibadovulfat/shadowlab-detection-lab
ShadowLab 是一个基于 FastAPI 和 PySide6 的 Windows 网络安全运营平台,用于主机遥测、进程调查、恶意软件分析和事件响应。
Stars: 0 | Forks: 0
# ShadowLab 实验室
## 演示视频
**由 [Ulfat Ibadov](https://www.linkedin.com/in/ibadovulfat/) 创建**
ShadowLab 是一个专注于 Windows 的网络安全运营平台,围绕本地 FastAPI 后端和 PySide6 桌面操作控制台构建。它将主机遥测、进程调查、持久化审查、文件与恶意软件分析、网络可见性、遏制、案件处理、ATT&CK 上下文、报告以及安全运营就绪性整合到一个适合实验室使用的统一技术栈中。
该平台面向网络安全工程师、检测工程师、威胁猎手、事件响应者、恶意软件分析师以及开发人员,他们希望拥有一个本地环境来学习 Windows 技术手法、验证检测规则,并将可疑活动转化为结构化的调查工作。
## 功能覆盖
- 本地遥测收集和事件工件生成
- 进程画像、进程树审查、字符串分析、内部信息、YARA、内存分析、沙盒痕迹以及 AI 辅助分类
- 持久化发现、修复、回滚、隔离感知的遏制以及证据捕获
- 以文件为中心的恶意软件分析,支持原生 Detect It Easy 并具备 PE 后备方案
- `WHIDS` 和 `OSSEC/HIDS` 数据摄取、实时验证、工件拉取、调度器状态和响应规划
- 网络连接审查、数据包捕获、ARP 发现、实体关系图和时间线重建
- 类似杀毒软件的遏制功能,包括提供程序健康状态、判定历史、隔离、响应、列表、规则和 Webhook
- 以案件驱动的企业工作流,包含任务分配、工作项、备注、故事、标记、导出和 ATT&CK 覆盖范围
- 安全运营控制,涵盖完整性、可观测性、密钥管理、就绪性、审计导出和数据保留
- 工作区感知的企业记录、审批范围限定、租户感知导出以及基于身份的 RBAC 基础框架
## 桌面端模块
当前桌面客户端包含以下模块:
- `仪表盘`
- `WHIDS`
- `HIDS`
- `概述`
- `进程`
- `持久化`
- `文件分析`
- `网络`
- `关系图`
- `时间线`
- `防病毒`
- `历史记录`
- `工件`
- `企业版`
- `安全运营`
- `关于 / 常见问题`
在 `企业版` 模块内,工作区分为 `企业运营` 和 `企业情报`。
## 架构
```
api/ FastAPI routes, RBAC, policy enforcement, request signing, and workers
core/ shared policy, models, workspace context, and normalization helpers
services/ investigation, response, telemetry, enterprise, graph, antivirus, and security logic
detections/ behavioral rules and scoring support
plugins/ host-native collection, YARA, forensic, sandbox, and network helpers
desktop/ PySide6 operator client
docs/ platform, usage, production, security, and architecture documentation
scripts/ startup, packaging, migration, validation, backup, and audit helpers
```
## 本地 YARA 层
ShadowLab 使用针对 Windows 技术手法调优的分层 YARA 工作流:
- 配置后,将 `YARAify` 作为首个外部查找源
- 使用 ShadowLab 规则及精选的社区规则包进行本地后备和深度扫描
- 专门的 `Inceptor_*` 和 `Memory_*` 规则,用于 AMSI、ETW、手动映射、APC、系统调用和卸载挂钩等技术手法
- 通过 `安全运营` 进行策略、调优、遥测和编译健康状态报告
最新验证状态:
- `enterprise_rules_requested = 1163`
- `enterprise_rules_loaded = 1163`
- `compile_error_count = 0`
详细说明请参见 [plugins/rules/YARA_VALIDATION.md](plugins/rules/YARA_VALIDATION.md)。
## 文件分析
`文件分析` 工作区可通过原生 `die-python` 绑定或可选的外部二进制文件使用 Detect It Easy:
- 首选后端:原生 `die-python`
- 可选的子进程后端:通过 `SHADOWLAB_DIEC_PATH` 或 `PATH` 使用 `diec.exe` 或 `die.exe`
- 后备路径:基于 `pefile` 的结构化 PE 分析
- 原生 DiE 执行隔离在工作进程中,以减少崩溃影响
- 即使未配置外部 `diec.exe` 路径,桌面端也能正确报告原生运行时就绪状态
更多详情请参见 [docs/DIE_INTEGRATION.md](docs/DIE_INTEGRATION.md)。
## 报告与工件
监控、防病毒和案件导出会生成便于交接的输出。
- `ShadowLab_Report.pdf` 包含执行摘要、检测分解、分析师发现、响应指导、遥测快照、安全事件亮点和工件清单
- `ShadowLab_Report.html` 以浏览器友好的格式呈现相同结构
- `工件` 是获取当前报告、遥测导出、调查输出和收集证据的最快途径
## 快速开始
### 1. 创建虚拟环境
```
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
```
### 2. 启动 API
基本本地启动:
```
python app.py
```
启用认证的本地启动:
```
powershell -ExecutionPolicy Bypass -File scripts\start_shadowlab_auth.ps1
```
仅当您处于隔离环境中时,才启用仅限实验室的破坏性和网络作战控制:
```
powershell -ExecutionPolicy Bypass -File scripts\start_shadowlab_auth.ps1 -EnableDangerousActions -EnableNetworkWarfare
```
### 3. 启动桌面客户端
```
python desktop\main.py
```
桌面端默认期望后端运行在 `http://127.0.0.1:8000`。
## 认证模型
ShadowLab 支持三种角色:
- `viewer`(查看者)
- `analyst`(分析师)
- `admin`(管理员)
相关环境变量:
- `SHADOWLAB_REQUIRE_AUTH`
- `SHADOWLAB_API_KEYS`
- `SHADOWLAB_API_KEYS_SHA256`
- `SHADOWLAB_ALLOWED_ORIGINS`
- `SHADOWLAB_POLICY_PROFILE`
- `SHADOWLAB_NOAUTH_DEFAULT_ROLE`
- `SHADOWLAB_OIDC_ENABLED`
- `SHADOWLAB_OIDC_ISSUER`
- `SHADOWLAB_OIDC_AUDIENCE`
- `SHADOWLAB_ROLE_WORKSPACES`
- `SHADOWLAB_ACTOR_WORKSPACES`
- `SHADOWLAB_ENABLE_DANGEROUS_ACTIONS`
- `SHADOWLAB_ENABLE_NETWORK_WARFARE`
推荐做法:
1. 使用 `scripts\generate_api_keys.py` 生成新密钥
2. 尽可能存储 SHA-256 摘要而非原始密钥
3. 分别保管 `viewer`、`analyst` 和 `admin` 密钥
4. 在较严格的策略配置中,对更高风险的操作使用审批 ID
5. 在 `corp` 和 `prod` 环境中,传递显式工作区上下文,并优先使用基于 OIDC 的身份而非共享 API 密钥
经过身份验证的写操作需要签名请求。桌面客户端会自动处理此过程。
当前企业强化亮点:
- OIDC 支架和身份撤销支持与 API 密钥认证并存
- `lab`、`corp` 和 `prod` 策略配置共享一个策略矩阵
- 企业记录、审批、连接器队列状态、工件和审计导出具有工作区感知能力
- 连接器存储使用租户感知的 `workspace_id + name` 持久化方式
- 重放保护、速率限制状态、请求随机数、审计日志和迁移元数据被持久化存储
- 行为评分以信号为主导,因此干净的主机评分接近零,只有真正的恶意软件或注入指标才会引发事件
- 从服务器传递到桌面客户端的路径在任何打开、删除或计算哈希操作之前都会被沙盒化到工件根目录
## 验证
仓库中附带了有用的检查脚本:
- `python scripts/validate_deployment_runtime.py`
- `python scripts/rbac_smoke_matrix.py`
- `python scripts/perf_stability_probe.py`
- `python scripts/smoke_test_live_integrations.py --base-url http://127.0.0.1:8000 --api-key `
- `powershell -ExecutionPolicy Bypass -File scripts\validate_ossec_active_response.ps1 -OssecHome `
- `python scripts/validate_detection_corpus.py`
## 打包
```
pip install pyinstaller
desktop\build_exe.ps1
```
相关文件:
- `desktop\shadowlab.spec`
- `desktop\shadowlab.iss`
- `desktop\version_info.txt`
## 文档
- [平台指南](docs/PLATFORM_GUIDE.md)
- [使用指南](docs/USAGE_GUIDE.md)
- [生产运行手册](docs/PRODUCTION_RUNBOOK.md)
- [安全修复运行手册](docs/SECURITY_REMEDIATION_RUNBOOK.md)
- [企业路线图](docs/ENTERPRISE_ROADMAP.md)
- [策略矩阵](docs/POLICY_MATRIX.md)
- [桌面端说明](desktop/README.md)
- [架构](ARCHITECTURE.md)
- [前十路线图](TOP10_ROADMAP.md)
## 许可证
该仓库的主要许可和使用限制在 [LICENSE](LICENSE) 中定义。
为方便未来的双重许可或特定组件使用,仓库中也包含了 [LICENSE-APACHE](LICENSE-APACHE) 中的 Apache 2.0 文本副本,但除非针对特定文件、组件或发布明确声明,否则它不会覆盖 [LICENSE](LICENSE) 中的仓库范围条款。
## 截图

平台健康状况、威胁态势、认证状态和工作流入口的快速 SOC 看板。

WHIDS 管理器同步、报告摄取、工件拉取、调度器控制、IoC 和规则。

OSSEC/HIDS 告警摄取、实时状态和面向响应的操作。

包含分类上下文和操作员摘要的高信号事件简报。

可疑进程调查、画像、树审查、字符串、内部信息和响应操作上下文。

用于长期驻留点的持久化发现和修复工作流。

Detect It Easy、PE 结构、文件/进程提交以及恶意软件分析亮点。

网络遥测、数据包捕获、ARP 发现、阻断器控制和主机清单上下文。

实体、事件、进程和攻击面关联的关系图。

用于事件重建的时序事件故事线。

提供程序健康状态、判定、隔离、响应、规则、列表、Webhook 和遏制控制。

事件、操作、认证和审计历史,用于回溯调查。

报告、证据和导出调查工件的中心存储库。

以案件为中心的企业工作流,包含任务分配、工作项、审批、备注和导出。

针对完整性、密钥管理、可观测性、YARA 健康状态和报告的运营就绪性视图。

产品概述和创建者资料,附带项目快速链接。
## 安全说明
ShadowLab 包含仅限实验室使用的功能,例如响应操作、数据包检查、ARP 发现、网络阻断器控制和评估辅助工具。请将其置于隔离环境中,并将其视为安全工具,而非通用桌面应用程序。
标签:AMSI绕过, ATT&CK框架, AV绕过, Conpot, DAST, FastAPI, PySide6, Python, RBAC, Windows安全, YARA, 主机遥测, 事件响应工作流, 云资产可视化, 包含遏制, 后端开发, 威胁检测, 安全报告, 安全运营, 安全运营准备, 恶意软件分析, 恶意软件分流, 扫描框架, 持久化检测, 文件分析, 无后门, 本地部署, 桌面应用, 检测验证, 网络安全运营平台, 运营研究, 进程调查, 逆向工具