CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>社区>软件保证>软件质量
ID

软件质量

软件保证始于代码质量。例如,一个可以假设一个软件缺陷发现在开发产品的成本1美元来弥补。如果缺陷逃开发阶段和进入独立测试阶段将约100美元来弥补成本。如果缺陷逃独立测试阶段,使其生产成本将约1000美元来弥补。如果敏感数据丢失,通过开发一个已知的软件缺陷,该缺陷的成本可能超过成千上万的美元来修复,如果修复甚至是可能的。

的第一步获得软件的质量保证是提高应用程序/软件直接控制。这部分可以进一步细化为三个部分:

  • 你直接写的软件。
  • 你合同别人写的软件,你(通常是领域专家)。
  • 默认继承软件弱点和漏洞,软件你或你的发展中承包商包括来自第三方的软件应用程序库,开源的,持牌人或购买的软件工具。

软件编写

看一节;软件编译器的第一道防御软件弱点。打开所有的“警告”编译器能够生成。如果可以,把编译器警告当作“编译错误”。这一步利用软件质量和软件保证你已经投资工具,以提高软件开发的质量。你可能会经历一个编译器警告说,你想忽视。之前禁用特定编译器警告应该充分理解风险权衡由禁用特定编译器警告。如果禁用警告消息,你应该为你的决定文档的基本原理。

单元测试是软件行业最佳实践。软件开发应该直接写单元测试,并执行成功,为每个软件模块开发。

额外的政策你可以考虑开发环境是禁止检查软件到您的配置管理系统,直到编译:

  • 没有任何编译器错误
  • 没有编译器警告
  • 已经通过了所有的单元测试编写的软件
  • 独立的同行验证上述登记政策也可能实现

编译器生成的警告和错误是一个很好的实现软件质量的第一步。然而,一个编译器的主要功能不是代码质量。有特定的软件工具和包旨在提高软件质量。不幸的是,没有一个单一的工具将覆盖所有可能的软件弱点日期和被发现。这意味着你将需要确定一套工具,以确保足够的覆盖您的应用程序和警惕你的工具套件更新新的漏洞被发现。工具将引导您选择敏感你发现了在你的软件。

编写的软件给你

软件开发人员雇佣或简约为你编写自定义软件应该是领域专家。如果开发人员是领域专家,他们应该已经做所有的软件保证步骤做,如果你是自己构建的软件。如果你选择的开发人员是不做上面所有的步骤,他们真的是领域专家吗?

在编写协议或合同的条款之间你和你的软件开发人员,项目应该被添加到合同确保你收到质量的软件(以及正确运行的软件)。为软件开发人员提供的规则或要求其交付软件产品将被接受或者被拒绝。

例如,如果您的组织是敏感的一组共同的弱点,然后添加合同合同语言专门调用你关心共同的弱点,并坚持从开发人员可证实的证据,这些常见的缺陷数量(CWE)已经解决。这可能包括编译器的输出软件建立交付,以便它可以验证,没有生成编译器警告。你也可以请求来验证源代码没有禁用编译器警告消息。

这个验证源代码是否可以做一个工件的合同交付。软件开发人员应告知您将执行软件测试套件保证交付的产品和软件产品必须“通过”这些测试作为软件的验收的规定。允许开发人员在开发过程中也使用验收标准测试。

为了有效地做到这一点,你需要确定哪些常见的弱点(CWE数量)你最敏感的,和软件质量的套件工具您计划使用在确定交付软件的质量。

默认继承软件弱点

在软件开发的开始进化,所有软件开发是完全内部编写自定义的特定环境和任务。随着软件开发行业的成熟,它变成了一个常见的做法来生成可用的通用功能并使这些库库组织内的其他软件开发项目。

后来的发展导致商用软件图书馆。开源库和代码也成为可行的方法来生成复杂的软件功能。开源和函数库允许建立在其他人的工作创造了几个非常平凡,niche-specific或华丽的代码段。这些构建块是需要更复杂的应用程序开发的基础。

一旦软件开发行业放弃直接控制软件代码嵌入到他们的项目的所有方面,行业不得不接受默认继承了软件的弱点。这些缺点在开发的代码包含在你的控制之外的你正在构建的软件应用程序,或者在软件运行时,您的应用程序需要使用。

仔细选择你的上游软件组件将有助于减少软件的数量和严重性的弱点包括内置软件组件。记住,这些软件库,开源库,或商业软件包,可能没有故意包括软件缺陷代码库,但可能使用接受高质量的编码实践当时流行的软件设计。今天许多已知的已知的软件缺陷是相对较新的发现。现在,互联网添加到软件设计的混合和孤立地运作预计在一个网络环境显著增强攻击表面。

看到根据您的组织的使命优先的弱点指导如何最佳识别cw你敏感,以及这些连续波产生的优先列表。

更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2017年1月4日,