TheTurboForge/YAFVS
GitHub: TheTurboForge/YAFVS
YAFVS 是一款从 OpenVAS 源码衍生而来的漏洞扫描器,致力于为受信任的操作团队提供受保护的证据收集、基于范围的报告以及渐进式的原生 API 架构。
Stars: 0 | Forks: 0
# YAFVS
**又一个优秀的漏洞扫描器**
YAFVS(发音为“yaff-vis”)是一款专为受信任的扫描器操作员设计的、具有主见的、衍生自 OpenVAS 的漏洞扫描器。它将受保护的证据收集、基于范围的报告以及渐进式的原生 HTTP/JSON API 方向,整合在一个保留出处的 monorepo 中。它有意不作为兼容 OpenVAS 的直接替代品。
YAFVS 是处于 alpha 阶段的源码,而不是一个完整的发行版。其开发运行时和操作员工作流是真实且经过测试的,但不提供二进制文件或容器发行版、托管服务、生产部署承诺、feed 镜像、支持承诺或 feed 再分发。
## 目前已有的功能
| 层面 | 成熟度 | 含义 |
| --- | --- | --- |
| 源码、构建和保证工具 | 已实现 | monorepo 具备组件清单、依赖/构建命令、许可证检查以及源码质量门禁。 |
| 操作员工作流 | 开发验证 | target/task、原始报告、scope-report、导出和浏览器工作流在受保护的开发栈中运行。 |
| Docker 应用运行时 | 实验性 | 存在持久化的本地开发服务;但它们不是生产部署配置。 |
| 原生 HTTP/JSON API | 迁移中 | 存在基于 DB 的原生读取和受保护的写入,而 GMP/XML 仍作为兼容性和控制管道保留。 |
| Rust 操作员 CLI | 逐步迁移中 | Rust 实现了 104 个经过一致性测试的子命令,涵盖 repository、保证、构建编排、运行时检查、受保护的 resource/task/scan 控制、不可变的 feed 暂存以及明确主动选择加入的操作员操作;Python 仍作为其余部分的兼容性入口点。 |
| 生产与分发 | 不可用 | 身份验证、TLS、部署、打包、托管服务以及非源码发布门禁依然是尚未完成的独立工作。 |
## 系统架构
```
flowchart LR
Operator["Trusted operator"] --> GSA["GSA through gsad"]
GSA -->|"GMP compatibility"| GVMD["gvmd"]
GSA -->|"same-origin /api/v1"| API["yafvs-api"]
GVMD --> DB[("PostgreSQL")]
API --> DB
GVMD --> OSPD["OSPD"]
OSPD --> Scanner["OpenVAS / Notus"]
Scanner -->|"results"| GVMD
DB --> Evidence["Raw evidence"]
Evidence --> Delivery["Scope reports, exports, delivery"]
```
Target 和 task 控制技术证据收集。原始报告保留扫描器观察到的内容;scope 报告是基于已完成证据的分析视图,并保留源出处。有关详细的兼容性、原生 API、扫描、feed 和报告路径,请参阅[架构流程](docs/ARCHITECTURE_FLOWS.md)。
## 十分钟源码评估
此路径用于评估 checkout 及其确定性工具。它不会下载 feed、启动容器、运行扫描或假装是生产安装。
前置条件是 Git、Rust/Cargo、Python 3.11 或更高版本以及 `just`。黄金路径的 repository 和操作员命令通过 Rust CLI 运行。保留 Python 是有意为之,用于浏览器自动化、源策略检查、混合语言质量门禁协调以及仅用于开发的直接写入控制冒烟测试。`doctor` 会报告 Docker、编译器、Node 和组件依赖项,进行更深层次的构建/运行时工作时需要它们。
```
git clone https://github.com/TheTurboForge/YAFVS.git
cd YAFVS
just status --json
just inventory --json
just doctor --status-only --json
just license-report --status-only --json
```
在干净的 checkout 上,`status` 应报告 repository 干净,`inventory` 应找到所有十个预期的导入组件,并且 `license-report` 应通过。`doctor` 应以结构化的检查结果完成;当前的 alpha 版本即使在准备就绪的主机上也会报告明确的延迟层面警告,而缺失工具的失败是受支持的设置差距列表,而不是邀请您去猜测。
显式的 Rust 入口点暴露了完整的已迁移命令面:
```
just yafvsctl-rust --help
just yafvsctl-rust status --json
just yafvsctl-rust doctor --status-only --json
```
完整的构建、feed 初始化、应用程序启动和浏览器工作流耗时更长,并且具有有意义的状态和安全边界。请继续阅读[构建 YAFVS](BUILDING.md)、[运行时指南](docker/runtime/README.md)和[CLI 参考](docs/CLI_REFERENCE.md)。
## 操作员与安全边界
YAFVS 刻意移除了继承的产品 RBAC。这是一个有意的信任边界决定,而不是缺失的功能:一个安装实例代表一个受信任的扫描器操作员团队,其经过单独身份验证的成员共享可见性和权限,以便他们能够继续彼此的工作并在休假或其他缺席期间提供掩护。资产数量不会使安装成为多租户。仅为修复、合规、管理或报告而使用调查结果的人员,应接收受控的报告、导出、通知或交付制品,而不是控制台帐户。
如果管理或机密性边界需要严格的租户隔离,请部署独立的、独立运营的栈,并具有独立的数据、密钥、扫描器执行、网络可达性和操作状态。应用程序内的资源权限不能替代该部署边界。请参阅[操作员访问模型](docs/USER_MANUAL.md#operator-access-and-security-boundary)和[信任边界](docs/TRUST_BOUNDARIES.md#operator-console-access)。
本地开发凭据是 `admin` / `admin`;它们不是生产指南。登录暴露、TLS、主机访问、备份、可审计性、凭据处理和部署控制定义了生产边界。扫描助手不附带任何 target:完整测试路径需要一个明确的规范 CIDR,拒绝超过 256 个地址,并且在开始之前需要匹配的 target 绑定确认。
## 工程方向
新的对安全敏感的后端和产品基础设施首选 Rust。对于浏览器自动化和专门的编排(在其库和粘合抽象确实更简单的情况下),Python 仍然是合适的选择,而保留的继承的 C 代码将被加固和测试,直到有正当理由进行经过验证的替换。构建和运行时命令所有权正在迁移到 Rust,而不是凭惯性扩展兼容性入口点。原生 API 正在作为基于 PostgreSQL 的类型化产品契约进行构建,而不是作为围绕 GMP/XML 的简单 REST 包装器。[产品方向路线图](docs/ROADMAP.md)将该工程方向与 YAFVS 旨在支持的漏洞管理成果联系起来。
## 文档导航
| 需求 | 文档 |
| --- | --- |
| 产品方向和预期成果 | [产品方向路线图](docs/ROADMAP.md) |
| 漏洞管理操作模型 | [漏洞管理实践](docs/VULNERABILITY_MANAGEMENT_PRACTICE.md) |
| 命令和安全语义 | [CLI 参考](docs/CLI_REFERENCE.md) |
| 构建和依赖基线 | [构建 YAFVS](BUILDING.md) |
| 开发运行时 | [Docker 运行时](docker/runtime/README.md) |
| 操作员行为 | [用户手册](docs/USER_MANUAL.md) |
| 数据和服务流程 | [架构流程](docs/ARCHITECTURE_FLOWS.md) |
| 原生 API 契约和 schema | [API 契约](docs/API_CONTRACT.md) 和 [OpenAPI](api/openapi/yafvs-v1.yaml) |
| 验证期望 | [验证标准](docs/VALIDATION_STANDARDS.md) |
| 生产和发布限制 | [生产姿态](docs/PRODUCTION_POSTURE.md) 和 [公开发布准备](docs/PUBLIC_RELEASE_READINESS.md) |
| 内存安全方向 | [内存安全](docs/MEMORY_SAFETY.md) 和 [C 加固](docs/C_HARDENING.md) |
| 有意的上游分歧 | [与上游的差异](docs/CHANGES_FROM_UPSTREAM.md) |
| 源出处和许可 | [Upstreams](UPSTREAMS.md) 和 [许可证审计](LICENSE_AUDIT.md) |
## 名称与标识
YAFVS 代表**又一个优秀的漏洞扫描器**。这个名称具有刻意的自我认知:漏洞扫描是一个成熟的领域,YAFVS 在构建自身的产品标识、操作模型、API 和架构方向的同时,建立在有用的 OpenVAS 扫描器基础之上。
YAFVS 以前以 TurboVAS 的名称开发。现有的 Git 历史、历史记录以及真实的 TurboVAS 时代出处仍保留在该名称下;重命名并不会改写它们。
## 与 Greenbone 的关系
“衍生自 OpenVAS”描述的是源码谱系,而不是产品兼容性。
YAFVS 是独立的,不附属于、不受赞助也不受 Greenbone AG 认可。Greenbone 仍然是 [UPSTREAMS.md](UPSTREAMS.md) 中记录的导入组件的上游源。
YAFVS 会追踪其衍生项目的相关进展。与安全相关的更改会获得优先处理,但在适应或独立实施之前,每个上游更改都会根据 YAFVS 当前的架构进行评估。这不是自动的源码同步,也不是对持续上游兼容性的承诺。
YAFVS 仅支持 Community Feed 工作流。它不支持 Greenbone Enterprise Feed 订阅密钥或 Enterprise Feed 同步。寻求官方 Greenbone 产品、Enterprise Feed 访问权限、支持或服务的组织应直接联系 Greenbone。
## 贡献与安全报告
在此阶段,公开源码可见性是为了保持透明度。YAFVS 目前不寻求外部贡献,也不提供支持承诺。在提出 issue 或 pull request 之前,请阅读[CONTRIBUTING.md](CONTRIBUTING.md)和[SECURITY.md](SECURITY.md),并且切勿提交密钥、扫描结果、客户数据或私有配置。
标签:Docker, HTTP/JSON API, Rust, 加密, 可视化界面, 安全防御评估, 客户端加密, 插件系统, 测试用例, 漏洞扫描器, 网络流量审计, 请求拦截, 逆向工具