博客

CERT和CWE之间有什么联系?

2021-08-26 | 作者: Tan Rahman

高达90%的软件安全问题是由编码错误引起的,这就是实践安全编码规范必不可少的原因。本文将讨论编码标准其中的两种:CWE和CERT,并解释它们之间的联系。

CWE常见缺陷列表

“CWE™️是由社区开发,有关软件和硬件缺陷的类型列表,界定安全有关的词汇、作为安全工具的衡量标准,以及识别漏洞、修复和预防安全隐患的基准”。

因此业界对它有统一的名称和描述,利于软件分析工具识别导致安全缺陷的编码错误。CWE枚举了设计和架构缺陷以及低级编码和设计错误的清单,使开发人员更好地设计应用程序的架构。

 

CERT 安全编码标准

CERT是卡内基梅隆大学软件工程研究所的计算机应急响应小组为C、C++和Java开发的编码规范。其中的内容是接纳了全球范围的软件工程师社区的贡献而实现的。这些规范有据可查,使软件开发团队中得以强制执行,从而确保创建高质量、安全的代码。通过遵循一套统一的规则,软件开发人员可以按照企业制定的指导方针工作,而不是根据程序员个人可能未经过充分的试验和测试的偏好。一旦在企业内建立了标准,就可以使用它们来定量评估源代码的质量和漏洞。这可以通过手动代码审查或使用代码分析工具自动审查来实现。

CERT安全编码标准包括避免在编码和实现时的错误,以及其底层架构设计错误。

 

CERT 和CWE 的关系

首先,它们都是编码标准,但处理问题的方式略有不同。

他们是互相支持的。CWE是软件应用程序中已知安全漏洞的数据库。而CERT则提供编写代码和识别不安全编码结构的指南。CWE涵盖了广泛的编程语言,因此不仅限于CERT C规则,因为不是所有漏洞都可以在一种语言中找到。此外,CWE包括可能导致漏洞的高级设计问题。相反,并非所有CERT规则都映射到CWE的缺陷,因为编码错误不一定导致与安全相关的问题。因此,同时使用这两种标准能为应用程序开发提供更高级别的安全性。

 

CERT-CWE映射

通过遵循CERT中规定的规则,开发人员可以直接解决 CWE中发现的一些漏洞。这些映射关系的能力对于满足企业安全编码的要求很重要。例如,如果开发人员遵守CERT编码标准,他们可以完全或部分防止 CWE-734 中确定的漏洞。CWE-734涵盖CERT C的799个有关CWE规则中的103个。静态代码分析工具根据它们涵盖的CERT规则的数量提供这样的映射关系。

CERT C安全编码标准中的指南与CWE条目存在交叉引用。 这些交叉引用根据那些如果违反了CERT C规则,将直接导致对应CWE缺陷的指导方针创建。

总而言之,CWE提供了软件中已知弱点的列表,而 CERT规范确定了可能暴露软件漏洞的编码结构。由于它们的相互映射,弄清所有CERT示例以确保软件安全可靠是明智的,甚至是必要的。鉴释自主研发的静态代码工具——爱科识,为开发人员提供了创建安全代码所需的许多映射。

 

点击此处了解爱科识如何结合CERT和CWE标准进行静态代码分析,以达到最佳实践和安全编码。

通过使用我们的网站,表明您已经阅读并理解我们的Cookie政策及隐私政策