CERTCC/SSVC

GitHub: CERTCC/SSVC

SSVC 提供一套基于多方视角的漏洞优先级决策框架,解决漏洞管理中如何权衡与记录决策的问题。

Stars: 187 | Forks: 47

[![Link Checker](https://static.pigsec.cn/wp-content/uploads/repos/cas/d0/d079ff9db9e8ee38ea609f7293a26369cd30e1e79bbe41edb9e69ed42a9b2e29.svg)](https://github.com/CERTCC/SSvc/actions/workflows/link_checker.yml) # SSVC 特定利益相关者漏洞分类(SSVC)是一个用于在漏洞管理过程中确定行动优先级的系统。 SSVC 旨在避免一刀切的解决方案,而是提供一个模块化的决策系统。该系统包含定义明确且经过测试的组件,漏洞管理者可以根据自身环境选择并使用合适的组件。 SSVC 主要提供用于漏洞管理的概念性工具。 这里介绍了这些概念性工具(如何做出决策,决策应包含哪些内容,如何清晰地记录和传达决策等)。 **注意:** 本仓库包含托管在以下地址的主要 SSVC 文档的*内容* ## [https://certcc.github.io/SSVC/](https://certcc.github.io/SSVC/) - 如果您只是想查阅 SSVC 文档,请前往该地址。 - 如果您有兴趣为 SSVC 文档做贡献,您来对地方了。 # 这里有什么内容 以下是本仓库中主要目录和文件的快速概述。 ## `/docs/*` 用于构建 SSVC 文档网站的原始 Markdown 和图形文件。 有关更多信息,请参见 [`project_docs/README.md`](project_docs/README.md)。 ### `/docs/ssvc-calc` 包含使用 D3 图形的 SSVC 计算器的目录。 有关更多信息,请参见 [`ssvc-calc/README.md`](docs/ssvc-calc/README.md)。 `ssvc-calc` 的演示版本可在 找到。 ## `/pdfs/*` 此目录中存储了先前发布的 PDF 报告的静态版本。 ## `/data/*` data 文件夹包含详细的数据文件,这些文件根据漏洞工作项上各项信息的组合,定义了建议的优先级结果。 此目录中同时包含 `.csv` 和 `.json` 文件。 ### `/data/csv/*` 这些 `.csv` 文件由 Python `ssvc` 模块生成。 这些文件按照文档中描述的决策表中的每条可能路径定义了一行记录。 自定义此 csv 中的“outcome”列是建议利益相关者将 SSVC 调整至其自身环境的首选方法。 ### `/data/json/*` 这些 json 文件是由 Python `ssvc` 模块生成的示例, 该模块使用 `pydantic` 来定义数据模型。 ### `/data/schema/*` 和 `/data/schema_examples/*` 这些 JSON schema 文件用于验证 `/data/json/*` 中 `.json` 文件的结构。 它们由 Python `ssvc` 模块生成,该模块使用 `pydantic` 来定义数据模型。 这些文件会被 `ssvc-calc` 模块使用。 ## `/docker/*` `docker` 目录包含 Dockerfile 和相关配置,用于创建可以运行 SSVC 文档网站和单元测试的镜像。 示例: ``` cd docker docker-compose up test docker-compose up docs ``` ## `/src/*` 此目录包含一些辅助脚本,可以使管理或使用 SSVC 变得更加容易。 ### `/src/ssvc/*` `ssvc` Python 模块提供了用于处理决策点 (decision points)、决策点组 (decision point groups) 和结果 (outcomes) 的工具。 这些模块用于为各种[决策点](https://certcc.github.io/SSVC/reference/decision_points/)生成文档 有关 `ssvc` 模块的文档可在 [https://certcc.github.io/SSVC/reference/code/](https://certcc.github.io/SSVC/reference/code/) 找到 ## 本地开发 开始本地开发最简单的方法是使用 Docker。 我们提供了一个 Dockerfile,用于构建包含构建该站点所需所有依赖项的镜像。 我们还提供了一个 `Makefile`,用于简化构建站点和运行本地服务器的过程, 因此您无需记住确切的 `docker build` 和 `docker run` 命令即可快速开始。 ### Make 命令 要显示可用的 `make` 命令,请运行: ``` make help ``` 要在不实际执行的情况下预览任何 `make` 命令,请运行: ``` make -n ``` ### 运行本地文档服务器 最简单的入门方法是使用 make 构建 docker 镜像并运行该站点。不过,我们在下面还提供了其他几个选项。 | 环境 | 命令 | |-------------|---------| | Make, Docker | `make docs` | | ~~Make~~, Docker | `cd docker && docker-compose up docs` | | ~~Make~~, ~~Docker~~ | `mkdocs serve` | 然后导航到 即可查看该站点。 ## 运行测试 我们为 `ssvc` 模块包含了一些测试。 下面提供了运行测试套件的选项。 | 环境 | 命令 | 注释 | |-------------|---------|---------| | Make, Docker | `make docker_test` | 在 docker 容器中运行 | | ~~Make~~, Docker | `cd docker && docker-compose run -rm test` | 在 docker 容器中运行 | | Make, ~~Docker~~ | `make test` | 在宿主机操作系统中运行 | | ~~Make~~, ~~Docker~~ | `pytest src/test` | 在宿主机操作系统中运行 | ## 环境变量 如果您遇到找不到 `ssvc` 模块的问题,您可能需要设置 `PYTHONPATH` 环境变量。 Dockerfile 会在 Docker 环境中自动处理此问题。 如果未在 Docker 中运行,请确保您的 `PYTHONPATH` 中包含 `src` 目录: ``` export PYTHONPATH=$PYTHONPATH:$(pwd)/src ``` ## 引用 SSVC 如果要在学术出版物中引用 SSVC,请参考 2020 年信息安全经济学研讨会(WEIS)上展示的版本: ``` @inproceedings{spring2020ssvc, title={Prioritizing vulnerability response: {A} stakeholder-specific vulnerability categorization}, author={Jonathan M Spring and Eric Hatleback and Allen D. Householder and Art Manion and Deana Shick}, address={Brussels, Belgium}, year={2020}, month = dec, booktitle = {Workshop on the Economics of Information Security} } ``` ## 参考文献 1. Spring, J., Hatleback, E., Householder, A., Manion, A., and Shick, D. "Prioritizing Vulnerability Response: A Stakeholder-Specific Vulnerability Categorization." White Paper, Software Engineering Institute, Carnegie Mellon University (2019). 2. Spring, J., Hatleback, E., Householder, A., Manion, A., and Shick, D. "Towards Improving CVSS." White Paper, Software Engineering Institute, Carnegie Mellon University (2018).
标签:CSP, GPT, 决策支持系统, 安全标准, 文档, 漏洞管理, 风险评估