MVulcansTrace/VulcansTrace-Web
GitHub: MVulcansTrace/VulcansTrace-Web
一款零构建、纯浏览器端的防火墙日志威胁检测与网络取证分析工具,内置十种 MITRE ATT&CK 映射检测器和 DuckDB SQL 引擎,支持本地优先的即时日志分析与会报级演示文稿生成。
Stars: 0 | Forks: 0
# VulcansTrace-Web
[](https://github.com/MVulcansTrace/VulcansTrace-Web/actions/workflows/deploy-pages.yml)
[](https://mvulcanstrace.github.io/VulcansTrace-Web/)
[](LICENSE)
[](package.json)
[](components/main.js)
[](vendor/duckdb/duckdb-esm.js)
基于浏览器的威胁检测平台。粘贴防火墙日志即可获取即时分析 —— 包含 10 个检测徽章、DuckDB SQL 引擎、自动化证据打包,以及一个适合在会议室展示的演示文稿。无需框架,无需构建步骤,在浏览器中进行本地优先分析。
旨在展示应用型网络安全知识:检测逻辑、MITRE ATT&CK 映射、网络取证和证据链处理。

## 本地运行
无需构建步骤,也没有框架。签入的应用资源可以直接在本地开发服务器上运行。
```
git clone
cd VulcansTrace-Web
node tools/serve.mjs
```
然后在浏览器中打开 `http://localhost:7071`。仅本地开发服务器需要 [Node.js](https://nodejs.org/) —— 应用本身是纯 HTML/JS/CSS。
首次启动时,系统会提示您创建一个工作区(调查案件)。您可以随意命名,然后粘贴日志或运行“引导演示”以查看实际检测效果。
## GitHub Pages
公共站点通过 GitHub Actions 部署至:
```
https://mvulcanstrace.github.io/VulcansTrace-Web/
```
每次推送到 `main` 分支时,都会发布来自 `index.html`、`assets`、`components`、`samples`、`styles` 和 `vendor` 中签入的浏览器资源。不涉及任何构建步骤。
## 检测能力
| 检测器 | MITRE ATT&CK 技术 | 标记内容 |
|---|---|---|
| **Scanner** | T1595 Reconnaissance | 探测多个端口的源 IP |
| **Flooder** | T1498 Denial of Service | 来自单一来源的大量 DROP 活动 |
| **Egress Anomaly** | T1048 Exfiltration Over Alt Protocol | 异常的出站目标数量或流量 |
| **Lateral Movement** | T1021 Remote Services | 内部主机在管理端口上访问多个内部目标 |
| **Beacon** | T1071 Application Layer Protocol | 对相同目标:端口的周期性连接,且抖动极低(C2 模式) |
| **Exfiltration** | T1048 Exfiltration Over Alt Protocol | 出站字节数超过阈值 |
| **Brute Force** | T1110 Brute Force | 在滑动窗口内对管理端口(SSH、RDP、SMB)的快速重复连接 |
| **Compromised Host** | 状态标签(无直接 ATT&CK 技术) | 交叉引用:被标记为暴力破解/扫描器目标,且同时表现出站活动的主机 |
| **Attack Chain** | T1190 Exploit Public-Facing Application | 在链窗口内跨文件,在同一端口上先 DROP 后 ALLOW |
| **Threat Intel** | 证据标签(无直接 ATT&CK 技术) | IP 与手动加载的已知恶意 IOC 列表匹配 |
### 敏感度配置
三种配置用于控制检测敏感度:
- **高** —— 标记更多活动,阈值更低。能捕获隐蔽攻击,但在繁忙网络中可能会产生误报。
- **中** —— 平衡(默认)。为演示清晰度进行了调优。
- **低** —— 阈值更高。减少高流量生产日志中的噪音。
## 支持的日志格式
| 格式 | 解析器 | 备注 |
|---|---|---|
| **Windows 防火墙** | `pfirewall.log` 解析器 | 同时处理简化版(8字段)和原生版(17列)格式。验证操作枚举、协议、IPv4/IPv6 格式地址以及端口范围。网络角色/风险分析以 IPv4 为主;非回环 IPv6 行可被解析,但在分析期间会被标记为无效。 |
| **AWS VPC Flow** | VPC Flow 解析器 | 包含 AWS 账户 ID 和 ENI 前缀检测的 14+ 字段格式。 |
| **AWS CloudTrail** | CloudTrail JSON 解析器 | 解析 API 审计事件。存储在 DuckDB 中以供 SQL 查询。不参与网络流风险评分(根据设计 —— CloudTrail 是 API 审计,而非网络流)。 |
| **通用 W3C** | 强化的后备解析器 | 捕获与专用解析器不匹配的结构化日志。至少需要 6 个字段,验证操作、IP 和端口。 |
解析器会在粘贴时自动检测格式。无需配置。
## 架构
- **纯 Vanilla JS ESM** —— 无框架,无构建步骤。每个组件都是一个导出 ES module 的 JS 类;DuckDB WASM 是唯一的 npm 依赖项,其浏览器资源被 vendored 在 `vendor/duckdb` 下。
- **本地优先分析** —— 默认的解析、检测、SQL、证据生成和演示均在浏览器中运行。无需 API 密钥或云服务。IndexedDB 用于存储工作区、数据集、查询、快照和记录。
- **DuckDB WASM** —— 用于临时日志追踪的浏览器内 SQL 引擎。针对内存中的 `flows`、`cloudtrail` 和 `datasets` 表,使用完整的 SQL 查询解析后的数据。
- **24 个测试文件中的 83 个单元测试** —— 涵盖解析器、检测器、MITRE 映射、代理技能、证据生成、自测。
- **演示文稿** —— 根据分析状态确定性地生成 6 页适合在会议室展示的输出(概述、快照、分流、差异分析、假设、修复方案)。
## 阈值调优说明
VulcansTrace-Web 是一款**演示工具**,而非生产级 SIEM。检测器阈值的调优旨在保证清晰度和教育价值,并非为了在实时的企业网络中部署。
具体注意事项:
- **Egress 阈值**(中等:6 个唯一目标,5 MB 字节)非常严格,繁忙的工作站或代理服务器可能会触发误报。在生产环境中,需要根据网络基线进行校准。
- **Exfil 与 Egress 重叠** —— 两者都使用出站字节/目标计数,因此真实的 Exfiltration 事件通常会同时触发这两个徽章。生产级工具会应用白名单和基线偏差,而不是固定的阈值。
- **Beacon 检测** 要求至少有 60 秒的跨度。这能正确过滤掉突发流量(正常浏览),但如果捕获窗口较短,可能会漏掉间隔超过 5 分钟的慢速 C2 通道。
- **Brute force 检测** 使用滑动窗口(中等:在管理端口上 30 秒内发生 5 次事件)。这适用于 SSH/RDP 暴力破解,但无法检测到缓慢的密码喷射攻击(数小时内每分钟 1 次尝试)。
- **Compromised host 检测** 会将暴力破解/扫描器目标与来自受攻击主机的出站活动进行交叉引用。它无法捕获这些目标注册表之外的攻击向量(例如网络钓鱼、漏洞利用工具包)引发的受损主机。
- **`rankRiskProfiles` 最多限制为 50 台主机。** 在包含数百个被标记 IP 的数据集中,排名 50 之后的主机将被排除在风险排名之外。这是有意为之,以保持 UI 和演示文稿的可读性。
低/中/高配置系统允许用户调整敏感度,但在真实环境中部署时,需要对每个网段进行统计基线分析,而不是依赖静态阈值。
## 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | Vanilla JavaScript (ES Modules), HTML5, CSS3 |
| SQL 引擎 | DuckDB WASM (浏览器内) |
| 存储 | IndexedDB (工作区、数据集、快照、记录) |
| 服务器 | Node.js 本地开发服务器;可选的 localhost API 演示服务器 (`npm run dev:api`) |
| 测试 | Node.js 内置测试运行器 |
| 许可证 | Apache 2.0 |
标签:AMSI绕过, DuckDB, IP 地址批量处理, MITM代理, Vanilla JS, 威胁检测, 纯前端, 自定义脚本