📚 概念与原理
简介
概念章节解释 CVSS Skills 工具包背后的 为什么 —— 评分数学、严重性阈值、v3.0↔v3.1 差异,以及每条命令和 SDK 调用所依赖的校验/比较模型。
如果 CLI 参考 与 Go SDK 文档告诉你 调用什么,本章节则告诉你 这些数字的含义与来源。下文每个公式、阈值与常量均取自 Go 源码,无一杜撰。
学习路径
从上到下通读可获得完整心智模型,也可直接跳转到所需主题:
| 步骤 | 主题 | 你将学到 |
|---|---|---|
| 1 | 严重性等级 | None/Low/Medium/High/Critical 五档、阈值表,以及分数到等级的映射。 |
| 2 | 评分公式 | Base = roundup(min(ISC+ESC, 10)),以及 Temporal、Environmental 扩展。 |
| 3 | v3.0 与 v3.1 差异 | 两处版本特定差异:UI:R 分数与 roundUp 算法。 |
| 4 | 校验模型 | Check(短路)与 Validate(收集全部),以及哨兵错误。 |
| 5 | 距离度量 | 欧氏、曼哈顿、汉明、Jaccard、评分差五种,及其 env/checked 变体。 |
| 6 | 预设与严重性 | 现成的 CriticalV31/HighV31/... 向量与 WithCriticalBase 选项。 |
代码位置
所有概念都映射到具体源码文件:
pkg/cvss/severity.go——Severity类型、GetSeverity、ParseSeveritypkg/cvss/calculator.go——calculateBaseScore、roundUp、calculateTemporalScore、calculateEnvironmentalScorepkg/cvss/scores.go——GetBaseScore、GetAllScores、RoundUppkg/cvss/validate.go/pkg/cvss/errors.go——Validate、ValidationErrors、哨兵错误pkg/cvss/distance.go/distance_env.go/distance_checked.go—— 五种度量及变体pkg/cvss/presets.go/options.go/pkg/mock/presets.go—— 预设向量与选项pkg/vector/user_interaction.go——UI:R的 0.56/0.62 版本分支