根据CERT C编码标准,每条规则都附有风险评估汇总表。
例如:
规则02.声明和初始化(DCL)
DCL31-C。在使用之前声明标识符
风险评估摘要
规则严重性可能性修复成本优先级
DCL31-C低可低P3 L3
风险评估汇总表传达程序员的信息是什么,如何解释它?上面提到的条款是什么?他们的意思是什么?
根据introduction to the SEI CERT coding standard,风险评估计算为严重性,可能性和补救成本的乘积。
其中每一个都带有值1
到3
,如下:
1 2 3
+------------------+------------+--------------+-----------+
| Severity | Low | Medium | High |
+------------------+------------+--------------+-----------+
| Likelihood | Unlikely | Probable | Likely |
+------------------+------------+--------------+-----------+
| Remediation cost | High (m/m) | Medium (a/m) | Low (a/a) |
+------------------+------------+--------------+-----------+
最后一行中的m
和a
项目决定了处理规则的检测和修正要求(m
表示手册,a
表示自动)。因此,我们有一个表格,其数量很大,可以提高严重性和可能性,并减少修复工作量。
由此产生的产品通过1
优先考虑27
,尽管只有该范围内的某些值是可能的(例如,没有办法将数字乘以得到7
)。
然后将该产品(优先级)转换为如下级别:
通过1
的优先级4
是水平3
- 这些是朝着低严重性,不太可能和难以修复的规模结束。
6
,8
和9
的优先级是2
级别 - 在严重性,可能性和补救措施方面处于中间位置。
优先级12
,18
和27
是级别1
- 这些往往是高度严重,可能更容易解决的问题。
这样做的原因是,如果你以降低级别顺序解决问题,你将获得最好的“每次降压”。