slicedearth/malroute-atlas
GitHub: slicedearth/malroute-atlas
一款本地优先的被动恶意软件基础设施分析 CLI 工具,用于对 URLhaus 导出数据进行离线证据提取并生成私有化分析师报告。
Stars: 0 | Forks: 0
# MalRoute Atlas
MalRoute Atlas 是一款本地优先的命令行工具,用于被动的恶意软件基础设施研究。它
接收经过许可的 URLhaus 导出数据,将每个 URL 视为具有敌意的文本,提取确定性的
基础设施和路径证据,并生成私有的 HTML、JSON 和 CSV 分析师报告。
该 CLI 即为产品本身。静态网站是一个功能指南,包含固定的合成示例;它
并不是实时的威胁情报仪表板,且绝不会接收本地分析师数据。
MalRoute Atlas 绝不会访问任何指标、解析源主机名、测试记录是否
仍然活跃、获取 payload、提交指标或扫描基础设施。源报告的
标签和时间戳依然是源事实——而非独立的观察结果。
## CLI 工作流程
| 命令 | 用途 | 网络行为 |
| --- | --- | --- |
| `malroute fetch-urlhaus` | 获取一个有界的、经过身份验证的近期 CSV 导出 | 仅限固定的已审查源 |
| `malroute analyze` | 标准化记录并生成私有报告包 | 离线 |
| `malroute analyze-local` | `analyze` 的兼容形式 | 离线 |
| `malroute demo` | 重新生成固定的合成功能网站数据 | 离线 |
| `malroute validate-public` | 拒绝构建的公共树中的不安全内容 | 离线 |
| `malroute schema` | 重新生成带有版本控制的 contract schema | 离线 |
## 边界与非目标
- 不执行恶意软件 URL 请求、浏览器导航、DNS、RDAP、Certificate Transparency、ASN、
地理定位、端口扫描、payload 下载或提供商扩充。
- 不进行 URL 提交、自动报告、攻击者归因、罪责排名或“恶意
生命周期”声明。
- 无服务器、生产数据库、账户、遥测、分析或公共实时数据 API。
- Git 或功能网站中不包含
原始源数据、报告者身份、查询值、凭据或记录级别的真实数据。
在使用真实源数据之前,请阅读[架构](docs/architecture.md)、[威胁模型](docs/threat-model.md)、
[隐私政策](PRIVACY.md)和[局限性](docs/limitations.md)。
## 源概述
MVP 通过一个固定的 HTTPS 源和
路径模板支持 URLhaus 经过身份验证的近期 CSV 导出。当前的官方条款记录了经过身份验证的非盈利合理使用访问,并
指出商业用途可能需要订阅。他们没有提供足够明确的
再分发许可,以允许本项目发布原始或派生的 URLhaus 导出数据。因此,真实数据
仅在本地可用;在新的权限审查完成之前,公共聚合模式已被禁用。详情和
访问日期请参见[源政策](docs/source-policy.md)。
## 要求与安装
- CLI 需要 Python 3.12 或更高版本
- 仅在进行功能网站开发时需要 Node.js 24 或更高版本
```
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -e '.[dev]'
```
网站贡献者还可以运行 `npm --prefix site ci`。生成的 Python 和 npm lockfile
是 CI 使用的依赖项输入。
## 分析本地 URLhaus 导出
首先查看[源政策](docs/source-policy.md)和当前的上游条款。仅向
本地 shell 提供凭据:
```
export URLHAUS_AUTH_KEY='your-local-key'
.venv/bin/malroute fetch-urlhaus
.venv/bin/malroute analyze
```
fetch 命令仅联系固定的已审查导出主机。分析是离线的。凭据
绝不会作为 CLI 参数接受,如果实际输出目标指向存储库的
发布路径,则会被拒绝。
`malroute analyze` 将在 `reports/local/` 下写入仅所有者可读的文件:
| 产物 | 内容 |
| --- | --- |
| `report.html` | 无脚本响应式分析师视图,带有无网络内容策略 |
| `atlas.json` | 带有版本控制的标准化证据和质量数据 |
| `summary.csv` | 聚合维度,并中和电子表格公式 |
| `publication-manifest.json` | 模式、计数、时间戳、校验和及策略状态 |
HTML 预览限制为 500 条记录,CSV 限制为 50,000 行;私有 JSON 保留
完整的有界结果。报告者身份和查询值在报告前会被丢弃。
## 功能网站与合成示例
该网站使用 `.invalid` 名称、
`192.0.2.0/24` 文档范围、虚构标签和虚构的 2035 年时间戳来解释 CLI 并预览本地报告的形状。它不会发出
运行时网络请求。
```
.venv/bin/malroute demo
npm --prefix site run check
npm --prefix site run build
.venv/bin/malroute validate-public --path site/dist
npm --prefix site run preview
```
## 输出模式
| 模式 | 内容 | 发布状态 |
| --- | --- | --- |
| `local` | 去特征化的真实记录详情,不包含报告者身份或查询值 | 仅限私有分析师工作站 |
| `demo` | 固定的记录级合成数据 | 经过验证后的安全功能网站示例 |
| `public-aggregate` | 仅限阈值化的聚合数据;无主机或记录结构 | 在源权限得到明确记录之前禁用 |
## 测试与验证
```
.venv/bin/ruff check .
.venv/bin/mypy src/malroute
.venv/bin/pytest --cov=malroute --cov-report=term-missing
.venv/bin/malroute schema
.venv/bin/malroute demo
npm --prefix site run check
npm --prefix site run build
.venv/bin/malroute validate-public --path site/dist
.venv/bin/pip-audit --skip-editable
npm --prefix site audit --audit-level=high
git diff --check
```
集成测试使用环回 fixture 服务器,且绝不会联系 URLhaus。CI 具有只读
权限,无源凭据,无定时摄入,且无真实数据产物上传。有关已审查的
控制和剩余
风险,请参见[安全与隐私审计](docs/security-audit.md)。
## 数据删除
检查确切路径,然后仅删除本地材料:
```
rm data/local/urlhaus-recent.csv data/local/source-manifest.json
rm reports/local/atlas.json reports/local/report.html reports/local/summary.csv
rm reports/local/publication-manifest.json
```
合成 fixture 和生成的功能网站数据是相互独立的。请参阅
[数据指南](data/README.md)。
## 部署
公共功能网站通过 Netlify 从存储库的 `site/` 目录部署。已提交的
`netlify.toml` 会运行 Astro 检查和静态构建,仅发布 `site/dist/`,禁用构建
遥测和依赖生命周期脚本,并应用严格的响应标头。该部署
没有 functions、表单、运行时 API、凭据,也无法访问被 gitignore 的本地数据和报告。
在生产部署之前,请对确切的构建产物运行发布验证器:
```
npm --prefix site ci --ignore-scripts
npm --prefix site run check
npm --prefix site run build
.venv/bin/malroute validate-public --path site/dist
```
绝不能用本地或基于真实数据的输出替换生成的合成演示资产。
## 局限性与修正
源数据可能会出现延迟、不完整、重复、更正或误报。匹配的
基础设施事实并不能证明存在共同所有权或统一的活动控制。源记录
的更正应通过 URLhaus 记录的流程进行;本软件中的安全缺陷
应通过 [SECURITY.md](SECURITY.md) 中的私有报告流程进行。
## 许可证
原始源代码和项目文档采用 Apache-2.0 授权。源数据集及
任何允许的派生作品保留其自身条款,本存储库不会对其重新授权。
标签:DAST, MITM代理, 威胁情报, 开发者工具, 恶意软件分析, 暗色界面, 本地优先, 离线分析, 网络信息收集, 逆向工具