高达90%的软件安全问题是由编码错误引起的,这就是实践安全编码规范必不可少的原因。本文将讨论编码标准其中的两种:CWE和CERT,并解释它们之间的联系。
CWE常见缺陷列表
“CWE™️是由社区开发,有关软件和硬件缺陷的类型列表,界定安全有关的词汇、作为安全工具的衡量标准,以及识别漏洞、修复和预防安全隐患的基准”。
因此业界对它有统一的名称和描述,利于软件分析工具识别导致安全缺陷的编码错误。CWE枚举了设计和架构缺陷以及低级编码和设计错误的清单,使开发人员更好地设计应用程序的架构。
CERT 安全编码标准
CERT是卡内基梅隆大学软件工程研究所的计算机应急响应小组为C、C++和Java开发的编码规范。其中的内容是接纳了全球范围的软件工程师社区的贡献而实现的。这些规范有据可查,使软件开发团队中得以强制执行,从而确保创建高质量、安全的代码。通过遵循一套统一的规则,软件开发人员可以按照企业制定的指导方针工作,而不是根据程序员个人可能未经过充分的试验和测试的偏好。一旦在企业内建立了标准,就可以使用它们来定量评估源代码的质量和漏洞。这可以通过手动代码审查或使用代码分析工具自动审查来实现。
CERT安全编码标准包括避免在编码和实现时的错误,以及其底层架构设计错误。