mshermancyber/FraudVault

GitHub: mshermancyber/FraudVault

自托管的企业级恶意软件引爆与容器安全平台,在完全离线的 Docker 沙箱环境中完成动态分析、威胁情报提取和镜像漏洞扫描。

Stars: 0 | Forks: 0

# FraudVault **控制。分析。定罪。** 企业级恶意软件引爆、威胁情报和行为分析平台。 [![许可证:GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) ## 快速开始 ``` # 生成 TLS 证书 bash nginx/generate-certs.sh # 配置 cp .env.example .env # 编辑 .env — 填写所有必需的 secrets(参见 .env.example 注释) # 使用以下命令生成 secrets:openssl rand -hex 32 # 构建 sandbox 镜像(用于 dynamic analysis 所必需) docker compose --profile build-only build scanboy-sandbox # 启动全部 17 个服务 docker compose up -d # 访问 open https://localhost # 默认登录:admin@scanboy.local # 设置 admin 密码 — 参见下方的首次登录 ``` ### 首次登录 管理员账户在首次启动时使用占位密码哈希创建。登录前,您必须设置一个真实密码: ``` # 为选择的密码生成 bcrypt hash docker compose exec api-gateway node -e "require('bcrypt').hash('YOUR_PASSWORD_HERE',12).then(h=>console.log(h))" # 更新 admin 用户 docker compose exec postgres psql -U scanboy -d scanboy -c \ "UPDATE users SET password_hash = '' WHERE email = 'admin@scanboy.local';" ``` ## 功能简介 FraudVault 接收可疑文件,在强化的一次性 Docker 容器中引爆它们,并生成可操作的情报:威胁评分、IOC、MITRE ATT&CK 映射、检测规则以及可导出的报告。 ### 恶意软件分析 - **动态沙箱** -- 在一次性容器中通过 strace、inotifywait、tcpdump、strings、readelf、objdump、xxd、unrar 进行基于 Wine 的 PE 执行 - **深度 PE 分析** -- 节区、Rich header、Load Config、.NET CLR、IAT 熵、资源语言、manifest - **配置提取** -- 55+ 个恶意软件家族提取器(Cobalt Strike、Emotet、LockBit、BlackCat、Agent Tesla、Remcos、AsyncRAT、QakBot 等) - **YARA 规则匹配** -- 来自 4 个公共 GitHub 来源的 20,000+ 条规则以及自定义规则 - **VirusTotal 集成** -- 对提取的可执行文件进行哈希查询 - **MITRE ATT&CK 映射** -- 基于观察到的行为映射技术与战术 - **IOC 提取** -- 网络指标、文件痕迹、注册表更改,并带有可信域名评分(自动将供应商/CA 基础设施与可疑 IOC 分离) - **检测规则生成** -- Sigma、Suricata 和 Snort 规则 - **报告导出** -- PDF 和 STIX 2.1 ### 容器镜像分析 - **CycloneDX 1.6 SBOM** -- 在沙箱内通过 syft 生成,可下载并验证 - **SBOM 漏洞扫描** -- 每个软件包均会使用 CVSS、EPSS 和 KEV 扩展数据对本地 OSV/NVD 源进行检查 - **22 项能力安全扫描器** -- 层差异、木马层检测、符号链接逃逸向量、ELF 二进制分析、CIS 基准检查、entrypoint 分析、Dockerfile 重构、证书分析、secrets 扫描、供应链验证 - **专家设计的评分模型** -- 7 个子分数(漏洞、配置、供应链、恶意、基础运维、结构、secrets),采用二次 CVSS 缩放,设置 KEV/挖矿木马/后门最低分下限 - **独立工作流** -- 3 步流水线(沙箱提取、SBOM 漏洞扫描、容器评分),独立于恶意软件评分 ### 评分模型 两套经专家评审的评分模型,均由判定引擎驱动,生成带有置信度评级和证据链的结构化分类(恶意/可疑/良性/无法确定): - **恶意软件**:12 种按可靠性加权的证据源类型。VT 检测(供应商分级信任)、YARA 命中、沙箱行为信号(覆盖最低分下限)、静态分析、CVE/KEV/EPSS 相关性(新颖性乘数)、配置提取、网络行为、证书验证、供应链检测。域名信任评分将供应商/CA 基础设施与可疑 IOC 分离。分类阈值:恶意 >= 60,可疑 >= 30,良性 <= 15。 - **容器**:7 个子分数,采用二次 CVSS 缩放、收益递减衰减、协同效应奖励、强制最低分(KEV=70,挖矿木马=90,木马=85,后门=90)。已知良好的基础镜像域名(软件包仓库)通过模式匹配进行降级处理。 ### 离线漏洞源 所有富化操作均针对本地 SQLite 源运行——扫描期间不进行实时 API 调用。 | 源 | 覆盖范围 | |------|----------| | CISA KEV | 1,610 个已知被利用的漏洞 | | EPSS | 337k 个漏洞利用概率评分 | | NVD / cvelistV5 | 337k 个 CVE | | CPE Match | 100 万+ 产品到 CVE 的映射 | | OSV | 45 个生态系统建议数据库 | | endoflife.date | 700+ 产品生命周期记录 | 漏洞源通过后台调度程序每日刷新。 ## 架构 ``` ┌───────────┐ │ Nginx │ :443 (HTTPS) / :80 -> 443 redirect └─────┬─────┘ ┌──────────┼──────────┐ ┌────▼───┐ ┌────▼────┐ ┌──▼────────┐ │Frontend│ │API Gate-│ │Swagger UI │ │ React │ │ way │ │ /api/docs │ └────────┘ └────┬────┘ └───────────┘ ┌──────────────┼──────────────┐ ┌────▼─────┐ ┌─────▼──────┐ ┌────▼───────────┐ │Orchestr- │ │Static │ │Dynamic Analysis│ │ator │ │Analysis │ │(Docker Sandbox)│ │(BullMQ) │ │(PE/ELF) │ │(strace/wine) │ └────┬─────┘ └────────────┘ └────────────────┘ ┌────┼─────────────┬──────────────┐ ┌──▼───┐ ┌──▼────┐ ┌──▼────────┐ ┌──▼────────┐ │Redis │ │Postgr-│ │Elastic- │ │MinIO │ │ 7 │ │eSQL 16│ │search 8 │ │(artifacts)│ └──────┘ └───────┘ └───────────┘ └───────────┘ ``` 17 个容器化服务。服务间认证通过 `INTERNAL_API_KEY` 进行。所有通信均通过 Docker 内部网络。**技术栈**:PostgreSQL 16、Redis 7、Elasticsearch 8、MinIO、BullMQ、React + Vite + TailwindCSS(暗色主题,蓝绿色强调)。 ### 沙箱安全 每个沙箱容器均在深度防御隔离下运行: | 控制 | 设置 | |---------|---------| | 文件系统 | `--read-only` rootfs | | Capabilities | `--cap-drop ALL`,仅添加 `SYS_PTRACE` + `NET_RAW` | | 网络 | `--network none`(默认) | | 特权 | `--security-opt no-new-privileges` | | Syscalls | 应用 seccomp profile | | Init | PID 1 的 FD 重定向至 `/dev/null` | | DNS 隔离 | 挂载只读的虚假 resolv.conf (8.8.8.8/4.4.4.4) | | 已移除的二进制文件 | nsenter、mount、umount | | 已剥离的 SUID | su、passwd、chfn、chsh、gpasswd、newgrp | 已通过涵盖 5 轮安全扫描(约 80 项修复)的 30 多次渗透测试场景进行验证,全部安全无虞。 ## 配置 ### 必需:`.env` 将 `.env.example` 复制到 `.env` 并填写所有必需的密钥。至少需要: ``` # 生成所有必需的 secrets openssl rand -hex 32 # Use for JWT_SECRET, JWT_REFRESH_SECRET, INTERNAL_API_KEY openssl rand -hex 16 # Use for POSTGRES_PASSWORD, REDIS_PASSWORD, etc. # 可选但推荐 VIRUSTOTAL_API_KEY=your-key-here # Free tier: 4 lookups/min ``` ### 沙箱网络控制 ``` # 默认值:false(所有 sandboxes 完全隔离,--network none) SANDBOX_ALLOW_NETWORK=false ``` 当设为 `false`(默认值)时,无论 UI 中如何选择,每个沙箱都会在 `--network none` 下运行。仅在受控环境中观察 C2 回调行为时,才将其设置为 `true`。 ### 可选集成 ``` # AI 辅助分析(选择一项) OPENAI_COMPATIBLE_URL=http://localhost:11434 # Ollama OPENAI_COMPATIBLE_MODEL=llama3 ANTHROPIC_API_KEY= # Claude OPENAI_API_KEY= # GPT-4 # SIEM 转发 FRAUDVAULT_WEBHOOK_URL=https://hooks.slack.com/... FRAUDVAULT_SIEM_TYPE=splunk # splunk|sentinel|elasticsearch|webhook FRAUDVAULT_SIEM_ENDPOINT=https://splunk:8088 FRAUDVAULT_SIEM_API_KEY= # EDR hash 黑名单 FRAUDVAULT_EDR_TYPE=crowdstrike # crowdstrike|defender|sentinelone FRAUDVAULT_EDR_ENDPOINT=https://api.crowdstrike.com FRAUDVAULT_EDR_API_KEY= ``` ### 高级设置 | 变量 | 默认值 | 描述 | |----------|---------|-------------| | `JWT_SECRET` | (必需) | JWT 签名密钥 -- 使用 64+ 字符的随机字符串 | | `JWT_REFRESH_SECRET` | (必需) | 用于 refresh token 的独立密钥 | | `JWT_EXPIRY` | `15m` | Access token 生命周期 | | `JWT_REFRESH_EXPIRY` | `7d` | Refresh token 生命周期 | | `WORKER_CONCURRENCY` | `5` | 最大并行分析任务数 | | `SANDBOX_TIMEOUT_SECONDS` | `300` | 默认沙箱执行超时时间 | VirusTotal 免费版:4 次请求/分钟,500 次请求/天。FraudVault 通过 16 秒的延迟对 VT 调用进行限速。如需大容量使用,请使用高级版密钥。 ## 系统要求 | 资源 | 最低配置 | 推荐配置 | |----------|---------|-------------| | CPU | 4 核 | 8+ 核 | | 内存 | 16 GB | 32 GB | | 磁盘 | 100 GB | 500 GB (SSD) | | 操作系统 | Linux (Docker host) | Ubuntu 22.04+ / Debian 12+ | | Docker | 24+ | 29+ | | Docker Compose | v2+ | v2.20+ | ## 维护 ``` # 仅清除上传的文件(保留报告) bash scripts/purge.sh # 清除所有内容(文件 + analysis 数据) bash scripts/purge.sh --all # 恢复出厂设置(包括用户) bash scripts/purge.sh --nuke # 查看日志 docker compose logs -f orchestrator docker compose logs -f dynamic-analysis # 重启服务 docker compose restart api-gateway ``` ## 文档 | 文档 | 描述 | |----------|-------------| | [用户指南](docs/USER.md) | 如何使用该平台 | | [数据模型](docs/MODEL.md) | 数据库 schema 与数据流 | | [交互式图表](docs/database/data-model-diagram.html) | 可视化数据库 schema 浏览器 | | [功能](docs/FEATURES.md) | 完整功能列表 | | [架构](docs/architecture/ARCHITECTURE.md) | 系统设计 | | [威胁模型](docs/security/THREAT_MODEL.md) | 安全分析 | | [信任边界](docs/security/TRUST_BOUNDARIES.md) | 网络分段与信任区域 | | [安全审查](Scan.md) | 5 轮安全审计报告(68 项发现,已全部修复) | | [离线漏洞源](docs/OfflineEngine.md) | 漏洞源流水线规范 | | [故障排除](docs/INSTALL-TROUBLESHOOTING.md) | 安装与故障排除指南 | | [差距分析](docs/GAP_ANALYSIS.md) | 遗留差距与技术债务 | | [部署指南](docs/operations/DEPLOYMENT_GUIDE.md) | 安装说明 | | [运维手册](docs/operations/RUNBOOK.md) | 运维操作流程 | | [灾难恢复](docs/operations/DISASTER_RECOVERY.md) | DR 计划 | | [API 文档](https://localhost/api/v1/docs) | 交互式 Swagger UI | | [路线图](docs/ROADMAP.md) | 开发路线图 | ## 许可证 版权所有 (C) 2026 Mark Sherman 本程序为免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证条款重新分发或修改它,许可证版本可选择第 3 版,或(由您自行选择)任何更高版本。 分发本程序的目的是希望它有用,但不提供任何保证;更不包含对适销性或特定用途适用性的暗示保证。有关更多详细信息,请参阅 [GNU 通用公共许可证](LICENSE)。
标签:DAST, DInvoke, Docker, MITM代理, SBOM漏洞扫描, Web截图, 动态沙箱, 威胁情报, 安全防御评估, 容器安全, 开发者工具, 恶意软件分析, 版权保护, 网络信息收集, 自动化攻击, 请求拦截