CWE

常见的弱点枚举

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

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表> CWE -个人字典定义(4.10)
ID

cwe - 330:使用不够随机值

弱点ID: 330
抽象:
结构:简单的
视图定制的信息:
+描述
产品使用随机数或不足值的安全上下文依赖于不可预测的数字。
+扩展描述
当产品生成可预测的值在一个上下文要求不可预测性,有可能对攻击者猜测未来将生成的值,并使用这个想冒充另一个用户或访问敏感信息。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 693年 保护机制失败
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 331年 熵不足
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 334年 小空间的随机值
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 335年 不正确的使用伪随机数生成器的种子(PRNG)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 338年 使用密码地弱伪随机数生成器(PRNG)
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 340年 一代的可预测的数字或标识符
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 344年 在动态变化的环境中使用不变的价值
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1204年 代的弱初始化向量(IV)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1241年 使用随机数发生器的可预测的算法
CanPrecede 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 804年 可推测的验证码
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 331年 熵不足
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 335年 不正确的使用伪随机数生成器的种子(PRNG)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 338年 使用密码地弱伪随机数生成器(PRNG)
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1013年 加密数据
+背景细节
电脑是确定性机器,因此无法产生真正的随机性。伪随机数生成器(prng)近似随机性算法,从一粒种子开始,后续的计算值。有两种类型的prng:统计和加密。统计prng提供有用的统计特性,但其输出是可以预见的,并且形成一个简单的复制数字流,不适合使用在安全的情况下取决于生成的值是不可预测的。加密prng解决这个问题通过生成输出更难以预测。密码安全的价值,它必须是不可能的或高度不可能对攻击者区分它和一个真正的随机值。
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现 实现:造成这一弱点在建筑安全策略的实施。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:不是特定于技术的患病率(待定)

+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
保密
其他

技术的影响:其他

当一个保护机制依赖于随机值来限制对敏感资源的访问,如会话ID或生成密钥的种子,然后可以访问受保护资源猜测ID或关键。
访问控制
其他

技术的影响:旁路保护机制;其他

如果产品依赖于独特,unguessable ID来标识资源,攻击者可以猜一个ID属于另一个用户的一个资源。攻击者可以读取资源或pre-create资源与相同的ID,以防止合法程序正确的资源发送给目标用户。例如,一个产品可能维持会话信息在文件的名字是基于用户名。攻击者可以pre-create这对受害者的用户文件,然后设置权限,应用程序不能生成会话的受害者,防止受害者使用应用程序。
访问控制

技术的影响:旁路保护机制;获得特权或假设的身份

当一个授权或身份验证机制依赖于随机值来限制访问限制功能,如会话ID或生成密钥的种子,那么攻击者可能通过猜测ID或访问限制功能键。
+利用的可能性
+示范例子

示例1

这段代码试图随机生成唯一标识用户的会话。

(坏的代码)
例如语言:PHP
函数generateSessionID(美元userID) {
将srand ($ userID);
返回rand ();
}

因为PRNG的种子总是用户的ID,会话ID将永远是相同的。攻击者可能因此预测任何用户的会话ID和劫持会话。

这个示例还展示一个小种子空间(cwe - 339)。

示例2

下面的代码使用一个统计PRNG创建一个URL的收据仍然活跃一段时间后购买。

(坏的代码)
例如语言:Java
GenerateReceiptURL字符串(字符串baseUrl) {
随机随机ranGen = new ();
ranGen。setSeed((新日期()).getTime ());
返回(baseUrl + ranGen.nextInt (400000000) + " . html ");
}

这段代码使用Random.nextInt()函数来生成“独特”的收据页面生成的标识符。因为Random.nextInt()是一个统计PRNG,攻击者很容易猜它生成的字符串。尽管底层接收系统的设计也是错误的,这将是更安全的,如果使用一个随机数生成器,没有产生可预见的收据标识符,例如加密PRNG。

+观察到的例子
参考 描述
云应用程序在Kubernetes生成随机数发生器使用弱密码基于部署时间。
加密产品使用rand()库函数来生成一个复苏的关键,使其更容易进行强力攻击。
随机数发生器可以反复生成相同的值。
Web应用程序生成可预测的会话id,允许会话劫持。
密码恢复工具生成一个相对少量的随机密码,简化蛮力攻击。
与种子密钥创建基于系统时间。
核函数没有一个好的熵源刚刚启动。
博客软件使用硬编码的盐在计算密码散列。
公告牌应用程序使用不够随机名称上传文件,允许其他用户访问私人文件。
手持设备使用可预测的TCP序列号,允许欺骗或劫持的TCP连接。
Web管理控制台生成会话id基于登录时间,使其更容易进行会话劫持。
SSL图书馆使用弱随机数发生器,只有产生65536独特的钥匙。
链:精度不足导致额外的零比特分配,减少熵的API函数产生随机数。
链:精度不足(cwe - 1339随机数发生器)导致一些零位可靠地生成,减少熵(cwe - 331)
验证码的实现没有产生足够的不同的图像,允许绕过使用数据库的所有可能的校验和。
DNS客户机使用可预测的DNS事务id,允许DNS欺骗。
应用程序生成的密码是基于一天的时间。
+潜在的缓解措施

阶段:体系结构和设计

使用严格的审查算法是目前被认为是强大的由该领域的专家,并选择适当长度的种子经过良好测试的实现。

一般来说,如果一个伪随机数发生器不是广告作为密码安全,那么它可能是一个统计PRNG和不应该在安全敏感的环境中使用。

伪随机数发生器可以产生可预测的数字如果知道发电机和种子可以猜到了。一个256位的种子是一个好的起点生产一个足够“随机”的数字。

实施阶段:

根据需要考虑PRNG补种本身从高质量的伪随机输出源,如硬件设备。

测试阶段:

使用自动静态分析工具针对这种类型的弱点。许多现代技术利用数据流分析,减少假阳性的数量。这不是一个完美的解决方案,因为100%的准确率和覆盖率不可行。

阶段:体系结构和设计;需求

策略:库或框架

使用产品或模块符合FIPS 140 - 2 (ref - 267)避免明显的熵问题。咨询FIPS 140 - 2附件C(“通过随机数生成器”)。

测试阶段:

使用工具和技术,需要手动(人类)的分析,如渗透测试、威胁建模和交互工具,允许测试人员记录和修改一个活跃的会话。这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
+检测方法

黑盒

使用监控工具,检查软件的流程与操作系统交互和网络。这种技术的情况很有用的源代码不可用,如果软件并不是由你,或者如果你想验证构建阶段并没有引入任何新的弱点。例子包括调试器直接附加到正在运行的进程;系统调用跟踪实用程序,如桁架(Solaris)和strace (Linux);系统活动监视器如FileMon、RegMon、过程监控、和其他的Sysinternals工具(Windows);嗅探器和协议分析,监控网络流量。

把监控过程,寻找库函数表明随机性时使用。多次运行流程,看看种子的变化。寻找访问的设备或相关资源,通常用于强(或弱)随机性,比如/dev/urandom Linux。寻找库或系统调用访问可预测的进程id和系统时间等信息。

自动静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 字节码的弱点分析,包括反汇编程序+源代码弱点分析
  • 二进制弱点分析,包括反汇编程序+源代码弱点分析

有效性:飙升部分

人工静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 二进制/字节码反汇编程序,然后使用手动分析缺陷和异常

有效性:飙升部分

动态分析与人工解释结果

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 中间人攻击工具

有效性:飙升部分

人工静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 关注人工抽查,手动分析来源
  • 手工源代码审查(不检查)

有效性:高

自动静态分析源代码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 源代码缺陷分析仪
  • Context-configured源代码分析器

有效性:飙升部分

体系结构或设计审查

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 检验(IEEE 1028标准)(适用于需求、设计、源代码,等等)。

有效性:高

+功能区域
  • 密码学
  • 身份验证
  • 会话管理
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 254年 7 pk -安全特性
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 723年 OWASP十大2004类别A2 -破碎的访问控制
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 747年 CERT C安全编码标准(2008)第14章-杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 753年 2009年前25 -多孔防御
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 808年 2010年处于25 -弱点
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 861年 CERT甲骨文安全Java编码标准(2011)第18章-杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 867年 2011年处于25 -弱点
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 883年 CERT c++安全编码部分49 -杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 905年 SFP主要集群:可预测性
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1003年 弱点简化映射的漏洞发布
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1152年 SEI CERT甲骨文Java安全编码标准,指南49。杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1169年 SEI CERT 14 C编码标准指导方针。并发性(CON)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1170年 SEI CERT 48 C编码标准指导方针。杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1346年 OWASP十大2021类别A02:2021 -密码失败
+笔记

的关系

这可以主要其他许多缺点比如密码错误,身份验证错误,符号链接后,信息泄露等。

维护

CWE 4.3,cwe - 330CWE加密及其后代正在接受调查的团队识别缺陷相关的随机性和不可预测性,以及随机性和加密原语之间的关系。这种“子树分析”可能导致现有条目的添加或弃用;重组的关系在某些观点,如研究视图(cwe - 1000);更一致的术语;和/或重大修改相关条目。

维护

CWE 4.5,相关术语随机性,熵,和可预测性可以相差很大。在开发人员和其他社区,使用“随机性”。然而,在密码学,“熵”是不同的,通常隐含的测量。没有常用的定义,甚至在标准文件和加密文件。CWE的未来版本将试图定义这些术语,如果有必要,区分他们的方式适合不同的社区,但不会减少可用性CWE的映射,理解,或者其他场景。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 随机性和可预测性
7有害的王国 不安全的随机性
OWASP十大2004 A2 CWE更具体 破碎的访问控制
CERT C安全编码 CON33-C 不精确的 使用库函数时避免竞态条件
CERT C安全编码 MSC30-C CWE更抽象 不要使用兰德()函数生成伪随机数
CERT C安全编码 MSC32-C CWE更抽象 适当的伪随机数生成器的种子
WASC 11 蛮力
WASC 18 凭证/会话预测
CERT甲骨文安全Java编码标准(2011) MSC02-J 产生强烈的随机数
+引用
[ref - 267]信息技术实验室,国家标准与技术研究院。加密模块“安全要求”。2001-05-25。<http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf>。
[ref - 207]约翰Viega和Gary McGraw。“构建安全软件:如何避免安全问题的正确方式”。1版。addison - wesley。2002年。
[REF-7]大卫迈克尔·霍华德和勒布朗。编写安全代码。第八章,“用可怜的随机数”259页。第二版。微软出版社。2002-12-04。<https://www.microsoftpressstore.com/store/writing -安全-代码- 9780735617223>。
迈克尔•霍华德(REF-44)大卫·勒布朗和Viega约翰。软件安全的“24宗罪”。“罪20:弱随机数。”Page 299. McGraw-Hill. 2010.
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 千鸟
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新Background_Details、关系、Other_Notes、Relationship_Notes Taxonomy_Mappings Weakness_Ordinalities
2008-11-24 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2009-01-12 CWE内容团队 主教法冠
更新描述、Likelihood_of_Exploit Other_Notes Potential_Mitigations,关系
2009-03-10 CWE内容团队 主教法冠
更新Potential_Mitigations
2009-05-27 CWE内容团队 主教法冠
更新Demonstrative_Examples Related_Attack_Patterns
2009-12-28 CWE内容团队 主教法冠
更新Applicable_Platforms Common_Consequences,描述、Observed_Examples Potential_Mitigations Time_of_Introduction
2010-02-16 CWE内容团队 主教法冠
更新引用关系,Taxonomy_Mappings
2010-04-05 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2010-06-21 CWE内容团队 主教法冠
更新Detection_Factors Potential_Mitigations
2011-03-29 CWE内容团队 主教法冠
更新Demonstrative_Examples
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-06-27 CWE内容团队 主教法冠
更新的关系
2011-09-13 CWE内容团队 主教法冠
更新Potential_Mitigations、引用关系,Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples Observed_Examples、引用关系
2014-02-18 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2014-06-23 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2014-07-30 CWE内容团队 主教法冠
更新Detection_Factors
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Functional_Areas、Likelihood_of_Exploit Modes_of_Introduction、引用关系,Taxonomy_Mappings
2018-03-27 CWE内容团队 主教法冠
更新的引用
2019-01-03 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、描述的关系
2021-03-15 CWE内容团队 主教法冠
更新Maintenance_Notes、人际关系
2021-07-20 CWE内容团队 主教法冠
更新Demonstrative_Examples、Maintenance_Notes Observed_Examples
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Observed_Examples、人际关系
2023-01-31 CWE内容团队 主教法冠
更新Common_Consequences、描述
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 随机性和可预测性
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日