商务网站建设作业,重庆网站,金乡网站建设哪家便宜,介绍自己的网页设计作品1. 前言
正确评估软件缺陷等级#xff0c;在项目的生命周期中有着重要的作用#xff1a; 指导缺陷修复的优先级和资源分配 在软件开发和维护过程中#xff0c;资源#xff08;包括人力、时间和资金#xff09;是有限的。通过明确缺陷的危险等级#xff0c;可以帮助团队合…1. 前言
正确评估软件缺陷等级在项目的生命周期中有着重要的作用 指导缺陷修复的优先级和资源分配 在软件开发和维护过程中资源包括人力、时间和资金是有限的。通过明确缺陷的危险等级可以帮助团队合理分配资源。软件缺陷等级可以帮助开发团队确定修复缺陷的优先顺序。高等级的缺陷通常对软件的功能和性能影响更大因此需要优先修复可能需要更多的资源和注意力来快速解决。例如对于高危险等级的缺陷如系统崩溃、数据泄露等问题需要立即调配经验丰富的开发人员和测试人员进行修复投入较多的时间和精力确保系统的关键功能和安全性不受影响。而对于低危险等级的缺陷像界面上的一些小瑕疵可以安排在资源相对充裕的时候处理。 评估软件质量和风险管理 缺陷危险等级为风险评估提供了一个量化的指标。它使得团队能够清晰地识别出哪些缺陷可能对系统造成严重的危害从而提前做好应对措施。通过缺陷等级的划分可以对软件的质量进行评估。不同等级的缺陷对软件的影响程度不同从而影响软件的整体质量。 通过识别和分类缺陷可以更好地管理项目风险。高等级的缺陷可能涉及到安全、合规或重大的业务影响需要特别关注。基于缺陷危险等级管理人员可以做出更明智的风险管理决策。对于高危险等级的缺陷可能会决定暂停系统的发布或更新直到缺陷得到修复对于中等级缺陷可以考虑采取一些临时的缓解措施如限制功能的使用范围同时安排修复计划对于低等级缺陷则可以根据实际情况权衡修复的成本和收益。
本文将从软件静态分析工具、开发规范、国家标准、以及评估体系多个角度讨论软件缺陷等级的划分方式以便对软件缺陷检查工具、软件缺陷管理中缺陷等级的划分起到一定的指导作用。
2. SonarQube规则的严重等级
SonarQube 是我们非常熟悉的一个开源的代码质量管理平台用于对代码进行静态分析以帮助开发团队检测和解决代码中的潜在问题提升代码质量。
SonarQube 针对质量的不同特性给出了四种缺陷类型
可维护性: 代码异味(Code smellj)可靠性: 错误(Bug)安全性漏洞(Vulnerability)安全性安全热点(Security hotspot)
在缺陷的严重等级上采用影响和可能性两个维度来评估问题的等级。
严重等级影响(Impact)可能性(Likelihood)致命(Blocker)✅✅严重(Critical)✅❌主要(Major)❌✅次要(Minor)❌❌
3. Fortify规则的严重等级
Fortify 是一款广泛使用的应用程序安全检测工具可以说是静态分析领域的领军工具。
Fortify据问题的影响性以及被利用的可能性将问题分为以下四个风险象限 由此得到缺陷的四个等级的划分
严重Critical- 高影响 2.5 和高可能性 2.5。攻击者很容易发现和利用关键问题从而导致广泛的资产损失高High- 影响高 2.5但可能性低 2.5。高优先级问题通常难以发现和利用但可能会导致广泛的资产损失中Medium- 低影响 2 .5, 但可能性高 2.5。中等优先级的问题很容易被发现和利用但通常造成的资产损失很小低Low- 低影响 2.5 和低可能性 2.5。低优先级问题难以发现和利用通常造成的资产损失很小。
与SonarQube 不同的是可能性的指数是根据规则的另外三个参数计算出来的。
可能性计算公式
可能性Likelihood (准确性Accuracy) x 可信度Confidence x 可能性Probability / 25
这样就可能性指数就由工具的在规则上采用的检测技术和准确性来决定了工具得到的信息越多检测的越准确可能性的指数也就越准确。
4. CERT规范的严重等级
CERT安全编码标准是由卡内基梅隆大学软件工程研究所(Software Engineering Institute, SEI)计算机应急响应小组(Computer Emergency Response Team (CERT))为各种语言开发的其中的内容是接纳了全球范围的软件工程师社区的贡献而实现的。其目的是通过遵循统一的规则确保创建高质量、安全的代码避免出现安全问题。
CERT 的安全编码涵盖了 C/C/Java/Perl 等语言。CERT 规范参考了IEC 60812:2018 Failure modes and effects analysis (FMEA and FMECA)中基于故障模式(Failure Mode)、影响(Effects)和危急程度分析(Criticality Analysis)FMECA度量标准设定问题处理的优先级(priority)。
告警分为四类: 致命, 严重, 一般, 提示(只用于检视类规则, 会存在较高的误报率)。告警等级依据:告警的严重性(Severity); 缺陷发生的可能性(Likelihood); 修复成本(Remediation Cost) 三个维度进行综合衡量, 得到告警处理的优先级。
4.1. 严重性(Severity)
严重性(Severity): 忽略规则的后果有多严重。
值含义缺陷举例1高High拒绝服务攻击、异常终止2中Medium数据完整性违规无意中信息泄露3低Low执行任意代码
4.2. 可能性(Likelihood)
可能性(Likelihood): 违反规则而引入的缺陷可能导致可利用的漏洞。
值含义1不可能Unlikely2有可能Probable3可能Likely
4.3. 修复成本(Remediation Cost)
修复成本(Remediation Cost): 遵守规则的成本有多高。注意: 修复成本越低, 得分越高;
值含义检测修正1高High人工人工2中Medium自动人工3低Low自动自动
4.4. 等级评定
将每个规则的严重性(Severity)、可能性(Likelihood)、修复成本(Remediation Cost)的值相乘;等级(Level) 严重性(Severity) * 可能性(Likelihood) * 修复成本(Remediation Cost)乘积的范围是1到27尽管只有以下10个不同的值是可能的1、2、3、4、6、8、9、12、18和27。 一般: 优先级在1 - 4;严重: 优先级在6 - 9;致命: 优先级在12 - 27;提示: 这个用于检视类的规则, 不在等级评估范围之内。 以下是优先级和级别的可能解释。
LevelPrioritiesPossible InterpretationL112 , 18 , 27严重性高可能维修成本低L26 , 8 , 9 中等严重性可能中等维修成本L31 , 2 , 3 , 4严重性低不太可能维修成本高提示用于检视类规则 5. GB/T 30279-2020 信息安全技术 网络安全漏洞分类分级指南
GB/T 30279-2020《信息安全技术 网络安全漏洞分类分级指南》将漏洞分级分为技术分级和综合分级两种方式每种分级方式均包括超危、高危、中危和低危四个等级。其划分依据如下
5.1. 技术分级
危险等级描述超危漏洞一旦被利用将对系统造成极其严重的危害如完全控制系统、导致关键数据大量泄露或系统完全瘫痪等。例如存在可远程执行任意代码且无需用户交互的严重漏洞攻击者可以轻易获取系统的最高权限对整个系统进行任意操作这类漏洞就属于超危级别。高危漏洞被利用后会对系统的安全性产生重大影响如导致重要数据泄露、系统的关键功能受到严重破坏等。比如存在可远程获取系统敏感信息的漏洞或者能够使系统的重要服务中断的漏洞这些都属于高危漏洞。中危漏洞被利用后会对系统造成一定程度的影响但不会导致系统完全失控或关键数据的大量泄露。例如存在一些可能导致系统部分功能异常、数据的完整性受到一定程度破坏但不会对系统的整体运行产生致命影响的漏洞。低危漏洞被利用后对系统的影响较小通常只是一些轻微的安全隐患如可能导致系统的一些非关键功能出现异常、信息的保密性或完整性受到轻微影响等。
5.2. 综合分级
综合考虑了漏洞的技术分级以及环境因素等反映在特定时期特定环境下漏洞的危害程度。其考虑的环境因素指标包括被利用成本、修复难度、影响范围等。
危险等级描述超危在特定环境下漏洞的危害程度极高其影响范围广泛可能对整个组织或网络造成严重的破坏并且被利用成本低、修复难度极大。高危在特定的网络环境和业务场景中漏洞的危害程度较高对系统的正常运行和数据安全有较大威胁被利用成本相对较低修复难度较高。中危漏洞在当前环境下具有一定的危害性但影响范围相对较小被利用成本和修复难度处于中等水平。低危漏洞的危害程度相对较低对系统的影响较小被利用成本较高或者需要特定条件才能被利用修复难度相对较低。
5.3. 漏洞分级过程
漏洞分级过程主要包括最初的指标赋值、中间的指标评级和最后的分级计算三个步骤 指标赋值是对根据具体漏洞对每个漏洞分级指标进行人工赋值 指标评级是根据指标赋值结果分别对被利用性、影响程度和环境因素等三个指标类进行评级 分级计算是根据指标评级计算产生技术分级或综合分级的结果。 技术分级结果由被利用性和影响程度两个指标类计算产生综合分级由被利用性、影响程度和环境因素三个指标类计算产生。 漏洞分级过程图 5.4. 网络安全漏洞指标评级
5.4.1. 被利用性评级
被利用性评级反映网络安全漏洞触发的技术可能性。被利用性指标组中各指标的不同取值的组合对应不同的被利用性级别。被利用性级别分为9级用1-9的数字表示数值越大被利用的可能性越高。被利用性指标组中指标有
访问路径触发要求权限需求交互条件
5.4.2. 影响程度评级
影响程度评级反映网络安全漏洞触发造成的危害程度。影响程度指标组中各指标的不同取值的组合对应不同的影响程度级别。不同的影响程度级分为9级用1-9的数字表示数值越大导致的危害程度越高。影响程度指标组中指标有
保密性完整性可用性
5.4.3. 环境因素评级
环境因素是对漏洞进行评级是需要考虑的漏洞所处的网络环境、当前漏洞被利用的技术程度等外部环境。环境因素评级反映在参考环境下漏洞的危害程度。环境因素指标组中各指标的不同取值的组合对应不同的环境因素级别。不同的环境因素级别分为9级用1-9的数字表示数值环境因素导致的漏洞危害程度越高。环境因素指标组中指标有
被利用成本修复难度影响范围
5.5. 评级示例CVE-2014-0160OpenSSL缓冲区溢出
CVE-2014-0160OpenSSL缓冲区溢出 漏洞分级示例。 漏洞简介 OpenSSL的TLS和DTLS实现过程中的d1_both.c和t1_lib.c文件中存在安全漏洞该漏洞源于当处理Heartbeat Extension数据包时缺少边界检查。远程攻击者可借助特制的数据包利用该漏洞读取服务器内存中的敏感信息(如用户名、密码、Cookie、私钥等)。 漏洞评级 CVE-2014-0160漏洞评级表
指标类指标子类描述赋值分级被利用性访问路径通过网络远程访问网络9-触发要求无需特定环境普通环境即可触发低-权限需求无需任何特权信息或身份验证无-交互条件漏洞触发无需用户或系统的参与或配合不需要影响程度保密性攻击者从内存中可读取多达64KB的数据通过该漏洞读取每次攻击泄露出来的信息可轻松获取到服务器的私钥、用户的cookie和密码等严重4-完整性漏洞对完整性不产生影响无-可用性漏洞对可用性不产生影响无环境因素被利用成本协议本身漏洞, 直接暴露于公网之下容易被利用低7-修复难度已有较为完整的修复方案修复难度不大低-影响范围影响范围广泛高
漏洞分级 通过上述表格CVE-2014-0160漏洞被利用性为 9 级、影响程度为 4 级因此技术评级为: 高危该漏洞的环境因素为 7 级结合技术评级为高危因此该漏洞的综合评级为高危。
注该标准于 2020 年 11 月 19 日公布与 2021 年 6 月 1 号正式实施。该标准参考了 2019 年 6 月发布的 CVSS 3.1版本。所以该标准的很对地方很接近 CVSS 的评级方法。
6. 通用漏洞评分系统(Common Vulnerability Scoring System(CVSS))
CVSS 是事故响应与安全团队论坛FIRST发布的通用漏洞评分系统。CVSS 是评估软件安全漏洞严重性的标准化框架可根据可利用性、可依据保密性、完整性、可用性和所需权限的影响等因素进行评分或以低、中、高和关键几种等级定性最终分数越高则表示漏洞越严重。
通用漏洞评分系统 CVSS 是一个开放式框架用于传达软件漏洞的特征和严重性。CVSS 由四个指标组组成基本指标组(Base)、威胁指标组(Threat)、环境指标组(Environment) 和 补充指标组(Supplemental)。
基本指标组(Base): 表示漏洞的内在特性这些特性在一段时间内和用户环境中保持不变;威胁指标组(Threat): 反映随时间变化的漏洞特征;环境指标组(Environment): 表示用户环境独有的漏洞特征。
2023 年 6 月 发布了 CVSS 4.0 4.0 中重新定义了评分术语体系强调 CVSS 不等同于 CVSS 基础分提出了 CVSS-BCVSS 基础分、CVSS-BTCVSS 基础分 威胁分、CVSS-BECVSS 基础分 环境分、CVSS-BTECVSS 基础分 威胁分 环境分等概念使用的评分指标越多漏洞评分的准确性也越高。
CVSS 向量字符串由用于派生分数的值的压缩文本表示形式组成。
CVSS 4.0使用四个指标组来评估漏洞风险最终转换成分数的方法如下 6.1. 基本指标组Base Metrics
6.1.1. 可利用性Exploitability
攻击向量Attack Vector(AV)评估利用漏洞所需的访问级别。例如网络访问Network比本地访问Local的攻击向量得分更高因为远程利用漏洞通常更容易且影响范围更广而物理接触Physical访问的漏洞利用难度相对更大得分则较低。攻击复杂度Attack Complexity(AC)反映攻击者控制范围之外的因素对利用漏洞的影响程度。如果攻击者无需额外信息或特殊技术就能轻松利用漏洞那么该漏洞的攻击复杂度低得分较高反之如果需要复杂的技术、大量的信息收集或特定的环境条件才能利用漏洞攻击复杂度则高得分较低。攻击要求Attack Requirements (AT)此指标捕获启用攻击的易受攻击系统的先决条件部署和执行条件或变量。这些与安全增强技术/技术参考攻击复杂性不同因为这些条件的主要目的不是明确缓解攻击而是作为易受攻击系统的部署和执行的结果自然出现。如果攻击者不采取措施来克服这些情况则攻击可能只是偶尔成功或根本不会成功。所需权限Privileges Required(PR)基于攻击者利用漏洞所需的权限级别进行评分。如果漏洞利用需要高级权限如管理员权限那么得分相对较低因为获取高级权限通常较为困难如果只需要普通用户权限甚至不需要任何权限就能利用漏洞得分则较高。用户交互User Interaction(UI)判断攻击者是否需要其他用户的操作来利用漏洞。若攻击者可以在无需用户进一步操作的情况下完成攻击得分会更高如果需要用户执行特定操作如点击链接、下载文件等才能触发漏洞利用得分则会受到一定影响。
6.1.2. 缺陷影响Vulnerable Impact
保密性Confidentiality(VC)反映可能被泄露或丢失的数据量。如果漏洞可能导致大量敏感信息泄露那么保密性方面的影响较大得分较高如果只是少量非敏感信息可能受到影响得分则相对较低。完整性Integrity(VI)对攻击者可以对系统中的数据施加的操纵程度和数据的可信性进行评分。例如如果漏洞能让攻击者轻易篡改关键数据破坏数据的完整性那么在这方面的得分会较高如果只是对数据的影响较小得分则较低。可用性Availability(VA)反映攻击对其他用户访问系统的能力的影响。如果漏洞攻击会导致系统完全无法使用或严重影响系统的正常运行使其他用户无法访问系统那么可用性方面的得分会很高如果只是对系统的可用性造成轻微影响得分则相对较低。
根据上述各子指标的评估结果综合计算得出基本指标组的分数该分数在一定程度上反映了漏洞的内在特征和潜在影响。
6.2. 威胁指标组Threat Metrics
这部分指标主要考虑漏洞在当前威胁环境下的相关因素如漏洞的利用代码成熟度、攻击者的能力和动机等。不过威胁指标组的具体计算方式相对复杂需要结合更多的外部信息和专业判断。例如一个漏洞如果已经存在成熟的利用代码并且有大量的攻击者对其感兴趣那么该漏洞在威胁指标组的得分会相应提高。这部分指标是对基本指标组的补充用于更全面地评估漏洞在实际威胁环境下的风险程度。
6.3. 环境指标组Environmental Metrics
环境指标是针对发现漏洞的特定环境而言的具有唯一性。它需要考虑组织的安全协议、易受攻击的组件对其系统的重要性以及任何安全漏洞对漏洞的影响等因素。例如在一个安全防护措施较为薄弱的环境中漏洞的风险可能会被放大环境指标组的得分会相应增加而在一个具有强大安全防护体系的环境中漏洞的影响可能会受到限制得分则会相对较低。
6.4. 补充指标组Supplemental Metrics
包括一些额外的因素如漏洞的可自动化程度是否可蠕虫攻击、漏洞响应的力度和紧迫性等。这些指标可以为漏洞评估提供更多的参考信息但对最终分数的影响相对较小。
6.5. 漏洞评分
综合以上四个指标组的评估结果按照一定的算法和权重分配最终得出漏洞的CVSS 4.0分数。CVSS 4.0的分数范围仍然是0.0到10.0分数越高表示漏洞越严重。一般来说
0.1 - 3.9分为低风险漏洞4.0 - 6.9分为中等风险漏洞7.0 - 8.9分为高风险漏洞9.0 - 10.0分为关键风险漏洞。
需要注意的是具体的转换算法和权重分配是由CVSS 4.0标准的制定者确定的并且可能会根据实际情况不断进行调整和优化。
6.6. CVSS评分举例CVE-2021-44228log4shell
以我们熟悉的 Log4j 缺陷举例
各指标评估
VSS v4 分数基础 威胁 10.0
Metric 度量Value 价值Comments 评论攻击向量Attack Vector(AV)Network 网络易受攻击的系统可从远程网络访问。攻击复杂度Attack Complexity(AC)Low 低不需要专业条件或高级知识。攻击要求Attack Requirements (AT)None 没有尽管攻击者必须准备环境以便通过控制可访问的 LDAP 服务器来实现攻击的最坏结果例如代码执行但应假定系统易受攻击。所需权限Privileges Required(PR)None 没有攻击者无需任何权限即可成功利用此漏洞。用户交互User Interaction(UI)None 没有该攻击不需要任何用户交互。易受攻击的系统机密性(Vulnerable System Confidentiality(VC))High 高攻击者可以使用提升的权限运行任意命令并访问敏感的系统信息。易受攻击的系统完整性(Vulnerable System Integrity(VI))High 高攻击者可以使用提升的权限运行任意命令并修改系统配置。易受攻击的系统可用性(Vulnerable System Availability(VA))High 高攻击者可以使用提升的权限运行任意命令并获得足以重置或关闭设备的访问权限。后续系统机密性(Subsequent System Confidentiality(SC))High 高攻击者可以利用此漏洞查看下游系统的敏感信息。后续系统完整性(Subsequent System Integrity(SI))High 高攻击者可以利用此漏洞修改下游系统中的数据。后续系统可用性(Subsequent System Availability(SA))High 高攻击者可以利用此漏洞影响下游系统的可用性。漏洞利用成熟度(Exploit Maturity(E))Attacked 攻击在野外有已知的漏洞。 CVSS 4.0 评估字符串 CVSS 4.0的评估为CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:A 计算页面计算得分 通过计算页面可以得到风险值为10, 可见这个漏洞的危害性之大。 7. DREAD模型
DREAD由 Microsoft 创建的威胁建模框架Meier 等人2003 年。尽管 Microsoft 后来以担心其主观性为由放弃了该模型Shostack2008 年但它今天仍被广泛使用。
DREAD 模型使用比例评级系统定量评估网络威胁的严重性该系统为风险类别分配数值。DREAD 模型有五类
破坏性Damage了解特定威胁能够造成的潜在损害。可重复性Reproducibility确定复制攻击的难易程度。可利用性Exploitability分析系统的漏洞以确定对网络攻击的敏感性。受影响的用户Affected Users计算有多少用户会受到网络攻击的影响。可发现性Discoverability确定发现系统基础结构中的漏洞的难易程度。
DREAD 模型使分析师能够对威胁的严重性进行评级、比较和确定其优先级方法是在上述每个类别中为给定问题分配 0 到 10 之间的评级。最终评级计算为这些类别评级的平均值表示风险的总体严重性。
7.1. D - 破坏性Damage potential
攻击可能造成的伤害。
评级描述0无损伤5信息披露8与个人或雇主相关的非敏感用户数据泄露9非敏感管理数据泄露10破坏信息系统;数据或应用程序不可用
7.2. R - 可重复性Reproducibility
攻击被复制的难易程度。
评级描述0困难或不可能5复杂7.5简单10非常简单
7.3. E - 可利用性Exploitability
发起攻击需要的条件。
评级描述2.5高级编程和联网技能5可用的攻击工具9Web 应用程序代理10Web 浏览器
7.4. A - 受影响的用户Affected Users
攻击会影响的范围。
评级描述0无用户2.5个人用户6用户少8管理用户10所有用户
7.5. D - 可发现性Discoverability
发现漏洞的难易程度。
评级描述0难以发现漏洞5HTTP 请求可以发现漏洞8在公共领域发现的漏洞10在 Web 地址栏或表单中发现漏洞
7.6. 总体威胁评级
总体威胁评级的计算方法是将这五个关键领域获得的分数相加。威胁的风险严重性类别如下
评级分数范围描述严重(Critical)40–50严重漏洞;地址。高High25–39严重脆弱性;请考虑尽快进行审核和解决。中等Medium11–24中等风险;在解决严重和关键风险后进行审查。低Low1–10对基础设施和数据的风险较低。
8. 总结
我们了解了各种缺陷的的评级方法这包括 静态分析工具Sonarqube、Fortify编程规范CERT编程规范国家标准GB/T 30279-2020《信息安全技术 网络安全漏洞分类分级指南》业界缺陷评级方法CVSS 4.0 和 微软 DREAD 为了更细致的处理缺陷通常会将缺陷分为四级可以简单的表示为致命、高、中、低评判的指标通常包含危害性、可利用性、修复成本各个方法都试图完全通过定量的方式进行评级但不可避免的还是会存在一定的主观性判定同一缺陷会因为所处应用系统的位置不同承担的业务不同所处的环境不同带来危害也会存在差异。用户需要在处理的时候根据这些差异评估风险分析工具中给出的往往是一个综合的危害针对不同的应用程序应在实际的使用中做出相应的调整。
9. 参考
SonarQube serveritesSonarQube overviewFortify serverity calculateSEI CERT Coding StandardsGB/T 30279-2020 信息安全技术 网络安全漏洞分类分级指南CVSS 4.0 user guideImproving Web Application Security: Threats and Countermeasures(DREAD)Experiences Threat Modeling at MicrosoftDREAD Threat Modeling: An Introduction to Qualitative Risk Analysis