Skip to content

CVSS 解析器Go 语言 CVSS 解析库

强大、灵活、易用的 CVSS 3.0/3.1 解析和计算库

快速安装

bash
go get github.com/scagogogo/cvss

简单示例

go
package main

import (
    "fmt"
    "log"

    "github.com/scagogogo/cvss-parser/pkg/cvss"
    "github.com/scagogogo/cvss-parser/pkg/parser"
)

func main() {
    // 解析 CVSS 向量
    p := parser.NewCvss3xParser("CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H")
    cvssVector, err := p.Parse()
    if err != nil {
        log.Fatalf("解析失败: %v", err)
    }

    // 计算评分
    calculator := cvss.NewCalculator(cvssVector)
    score, err := calculator.Calculate()
    if err != nil {
        log.Fatalf("计算失败: %v", err)
    }

    fmt.Printf("CVSS 评分: %.1f\n", score)
    fmt.Printf("严重性: %s\n", calculator.GetSeverityRating(score))
}

主要特性

🎯 完整的 CVSS 支持

  • CVSS 3.0 和 3.1: 完全支持两个版本的规范
  • 所有指标类型: 基础指标、时间指标、环境指标
  • 严格验证: 确保向量格式和值的正确性

📈 高级分析功能

  • 向量比较: 计算两个 CVSS 向量的相似度
  • 距离计算: 多种距离算法支持
  • 批量处理: 高效处理大量向量数据

🔌 易于集成

  • JSON 支持: 完整的序列化和反序列化
  • 错误处理: 详细的错误信息和恢复机制
  • 文档完善: 丰富的示例和 API 文档

使用场景

🛡️ 安全评估

go
// 评估漏洞严重性
vectors := []string{
    "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
    "CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:L",
}

for _, vectorStr := range vectors {
    // 解析和评估...
}

📊 风险分析

go
// 计算向量距离
distCalc := cvss.NewDistanceCalculator(vector1, vector2)
distance := distCalc.EuclideanDistance()
fmt.Printf("向量距离: %.3f\n", distance)

💾 数据存储

go
// JSON 序列化
jsonData, err := json.Marshal(cvssVector)
if err != nil {
    log.Fatal(err)
}

开始使用

  1. 快速开始 - 5分钟上手指南
  2. API 文档 - 完整的 API 参考
  3. 示例代码 - 丰富的使用示例

社区和支持


CVSS 解析器 - 让 CVSS 处理变得简单高效

立即开始 | 查看源码 | 浏览示例

Released under the MIT License.