CWE

普遍的弱点

社区开发的软件和硬件弱点类型清单

2021 CWE最重要的硬件弱点
CWE前25个最危险的弱点
>社区>软件保证>根据您的环境优先考虑常见弱点
ID

得分CWES

根据您组织的使命确定弱点

软件可以通过从未打算的方式使用软件,因此,软件可以利用软件可以利用软件有多种方式。CWE列表目前包含约700个识别弱点。CWE项目提供了优先考虑弱点的几种方法,因此您可以专注于适当的子集,并尽快在软件的弹性,可靠性和完整性方面取得最大的提高。

如果您没有时间对某些弱点如何影响您的软件(因为它用于组织的特定任务)如何进行更深入的分析,则可以利用CWE前25名最广泛和关键的CWE的社区共识列表。如果您有一些时间和资源可以专注于特定的弱点子集(通过查看其技术影响和检测方式),则应探讨我们的技术影响和检测方法方法。最后,如果您想使用对前两种方法的调查创建的一致的风险评分方法,请研究常见的弱点评分系统(CWSS)用于得分CWES和常见的弱点风险分析框架(CWRAF)。这种最后的方法使人们可以通过使用专业场景或“ Vignettes”应用CWSS来优先考虑与组织的业务,任务和部署技术最相关的CWES。

技术影响与检测方法

尽管CWE中存在许多弱点,但这些故障导致的八种不同后果或技术影响(请参见下表)。换句话说,如果弱点以可剥削的方式以产品表现出来,并且攻击者成功利用了它,那么该弱点将产生八种技术影响或后果之一。

软件弱点的技术影响:

  • 读取数据
  • 修改数据
  • 拒绝服务:不可靠的执行
  • 拒绝服务:资源消耗
  • 执行未经授权的代码或命令
  • 获得特权 /假定身份
  • 旁路保护机制
  • 隐藏活动

在每个CWE条目中,“常见后果”字段列出了CWE中每个弱点可能造成的“技术影响”。技术影响及其转化为对任务的影响是重要的标准,对于需要合理保证的任何组织,其基于软件的功能可以做到的事情,而仅此而已。

将数百种错误类型的错误崩溃成一系列的技术影响,这简化了一个问题:“我的组织应该专注于在我们的软件中获得保证?”。而不是试图删除全部弱点,鉴于软件产品为您的组织所做的事情,您可以决定八个影响或多或少对您的危险。

例如,一个利用分布式托管/镜像来提供信息的公共网站可能不必担心会导致资源消耗/拒绝服务利用的弱点,但可能非常关注会导致某人修改数据的弱点。使用这种方法保证活动可以集中在可能导致这种不可接受的故障模式的弱点上。可以将此技术影响信息与检测方法CWE条目中的信息进行第二次简化,其中可以将弱点与可以检测到它们的评估活动相匹配。这项练习可能会提高人们对这种弱点是否仍然是问题的见解,或者是否已被减轻或删除。

普通弱点评分系统(CWSS™)

当执行软件应用程序的安全分析时,例如使用自动代码审核工具时,开发人员通常会面对数百或数千个单独的错误报告,以了解其代码中发现的弱点。在某些情况下,软件弱点会导致可剥削的脆弱性。例如,缓冲区溢出漏洞可能是由于程序员无法正确验证输入缓冲区的长度而引起的。这种弱点只有在输入受到恶意方面的影响时才会导致脆弱性,并且如果该恶意输入可以复制到小于输入的输出缓冲区。

由于报道的弱点大量,开发人员被迫陷入必须优先考虑应调查并首先解决哪些问题的情况。同样,在评估设计和架构选择及其弱点时,需要有一种方法来相对于彼此以及应用程序的其他问题优先级。最后,软件消费者想知道他们最担心的是什么,以及要从供应商和供应商那里获得更安全的产品。

进一步使问题复杂化,弱点的重要性可能会因业务或任务需求,使用的技术种类和威胁环境而有所不同。

简而言之,人们需要能够推理和交流不同弱点的相对重要性。虽然今天使用了各种评分方法,但它们要么是临时的,要么不适合适用于对软件安全性评估的应用。

CWSS提供了一种以一致,灵活,开放的方式得分的机制,同时为各种业务领域提供背景。这是一项协作,基于社区的努力,正在解决政府,学术界和工业的利益相关者的需求。CWSS是CWE项目的一部分,由软件和供应链保证程序中的程序网络安全和通信办公室(CS&C)美国国土安全部(DHS)

CWSS:

  • 为在软件应用程序中发现的安全错误(“弱点”)的优先级排序提供了一个共同的框架
  • 提供对软件应用程序中存在的未固定弱点的定量测量
  • 开发人员可以使用自己的软件中的未固定弱点来使用优先级
  • 常见的弱点风险分析框架(CWRAF)下面描述的是,消费者可以将其用于确定其业务领域最重要的弱点,以便将其获取和保护活动告知获得软件保证的较大过程的一部分。

常见弱点风险分析框架(CWRAF™)

CWRAF,与CWSS一起使用,将为您的组织提供量身定制的“顶级XX”列表。为您的环境生成的列表可以进一步分为三组:

  • 外部软件工具/程序很容易检测到的一组常见弱点。
  • 一组常见的弱点很难用外部工具/软件检测到。
  • 无法通过外部工具/软件检测到的一组常见弱点。

首先看第一组(上图),没有单个软件工具/程序可以识别所有常见的弱点。您将需要几种工具一起工作,以涵盖该组中确定的一组弱点。几种可用的工具便宜,而其他工具非常昂贵。作为一般的经验法则,更昂贵的工具可以更全面地了解您的软件。

如果您正在寻找便宜的快速“第一步”:

  • 打开整个编译器警告级别,重新编译您的代码,然后通过确定的问题列表进行工作。
  • 按照上述步骤进行完整的单元测试,以确保软件的正确功能。

在您的组织中正确包含软件保证将需要文化转变。这种文化转变需要理解,即在某个时候将利用软件弱点,并且可以随时发现新的弱点。在您的软件开发过程中构建新规则,以教育开发人员,测试人员和承包商,即软件保证是5个零件软件质量和2个零件软件安全性 - 并且软件保证是大家的工作。

首先,编译器“警告”不应关闭或忽略。

  • 添加您内部开发人员必须遵循的规则:必须证明将所有代码检查到配置管理系统中,或者必须证明没有基本质量缺陷。
  • 添加规则或合同语言,合同开发组织必须遵守:所有交付的代码必须没有[公司]顶级XX软件弱点所确定的软件弱点,这是[公司]自己的CWRAF和CWSS所确定的,否则他们将被没收合同价值的百分比。

    作为域专家,合同的软件开发公司应该已经制定质量和安全的代码。如果合同的软件开发公司是不是产生质量和安全的代码,他们不是领域专家。质量和安全性都需要从一开始就将其内置到产品中,并成为发展文化的一部分。不幸的是,已经开发了许多软件,既需要高质量又安全,但可悲的是既不是。

    该问题的巨大性在这里可见:您如何负担得起将生产应用程序重新开发以将软件质量和软件保证应用于它们?你怎么能负担不起?

提供更多信息 - 请选择其他过滤器。
页面最后更新:2019年9月18日