最近工作中了解到了scap协议,需要用到中间的几个模块,遂专门抽时间对scap进行了深入的学习。本文记录一下学习过程,以及自己的相关理解。
1. 概念
scap根据维基百科的解释是安全内容自动化协议,是用于自动化漏洞管理、评估和条款符合检测的一套标准,结合了一系列用于评估软件缺陷和安全相关问题的开放标准,用于系统测试来发现漏洞,并根据漏洞可能造成的影响提供评分标准。是意图将上述开放标准用于自动化漏洞管理、评估和条款符合检测的一套标准。
简单来说,scap协议就是为了将漏洞管理做一个统一的规范,形成自己特有的生态系统。目前大多数漏洞均有CVE编号,CVE就是Scap的一个部分,主要是为了统一漏洞描述、修补建议、影响范围等,避免不同的厂商对同一个漏洞的定义有不同的定义,从而形成规范化的漏洞管理。本文以最新的SCAP1.3作为介绍的版本。
2. 协议
scap主要由以下协议组成,部分组件为大家所熟悉的:
- Asset Identification 资产识别
- Asset Reporting Format (ARF) 资产报告规范
- Common Configuration Enumeration (CCE) 通用配置枚举
- Common Platform Enumeration (CPE) 通用平台枚举
- Open Vulnerability Assessment Language (OVAL) 开放漏洞评估语言
- Open Checklist Interactive Language (OCIL) 开放式交互语言
- Trust Model for Security Automation Data (TMSAD) 安全自动化数据的信任模型
- Extensible Configuration Checklist Description Format (XCCDF) 可扩展配置清单描述格式
- Software Identification (SWID) 软件标识
一般常用的协议如下:
随便打开一个NVD存放的cve漏洞信息,可以找到几个模块的常见使用,第一个就是CVE编号,已经成为业界公用的漏洞标识,
第二个CVSS评分
第三个CPE信息
可以看到美国的漏洞管理已经形成了统一的标准,采用SCAP这一系列的协议,能够非常标准化的管理所有漏洞。
3. 常见组件和协议
CVE
通用的漏洞库,基本上常见的组件如果存在漏洞的话,基本会有对应的CVE编号。安全研究者一般在找到通用软件漏洞的时候,也会提交给相关厂商申请CVE编号,可以说现在安全研究者就是以CVE数量作为自己的能力体现。
CVE编号通常为CVE-2021-xxxx,中间为年份,最后的数字为漏洞编号。CVE网站https://cve.mitre.org/可以根据编号搜索到对应的漏洞描述。描述中通常包含漏洞影响的组件、影响的范围以及对应的CVSS评分和修复建议等详细信息。
CPE
相当于一个识别码,SCAP的一种开源实现OPENSCAP采用的思想就是,在服务器中收集软件和系统的CPE信息,然后匹配CVE中对应的指纹来查找漏洞。
该方式相对于传统的扫描有如下几种优势:
- 大部分漏洞不会有POC或者EXP,采用CPE匹配的方式可以检测出来这部分漏洞
- 不用主动扫描,不会对网络造成压力
- 检测快速精准,比传统的远程扫描有更高 的精准度
但该方式也有他的问题所在
- 跟离线的配置检查类似,需要采用探针的方式进行检查,对于未发现的灰色资产是没有办法进行检测的,只能对已经发现的纳管资产进行检查
- 针对于国产或者小厂商的软件或者系统不存在CPE的情况下,该种方式是没办法进行检测的
CVSS
通用漏洞评分系统,CVE采用该套评分标准对一个漏洞进行定义评分。目前最新的版本是3.1。此处不详细扩展相关介绍,后期专项学习的时候再详细说明。
以上就是SCAP中常用的几种协议或者工具,此处仅做简单介绍,有兴趣的话,可查找相关原文进行学习。