CWE

常见的弱点枚举

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

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

cwe - 916:使用的密码哈希计算努力不足

弱点ID: 916
抽象:基地
结构:简单的
视图定制的信息:
+描述
产品生成哈希密码,但它使用一个计划没有提供足够水平的计算工作量,使密码破解攻击不可行或昂贵。
+扩展描述

许多密码存储机制计算哈希散列和储存,而不是储存原始密码明文。在这个设计中,验证涉及到接受传入密码,计算其散列,比较散列存储。

许多散列算法被设计用来执行迅速以最小的开销,甚至密码散列。然而,这对密码存储效率是一个问题,因为它可以减少对强力密码破解攻击者的工作负载。如果攻击者可以通过其他方式获取散列(如SQL注入数据库存储散列),攻击者可以离线存储散列和使用各种技术来破解密码有效地通过计算散列。没有内置工作负载,现代攻击可以计算大量的散列,甚至耗尽整个空间的所有可能的密码,在很短的时间内,使用大规模并行计算(比如云计算)和GPU, ASIC或FPGA硬件。在这种情况下,一个有效的散列算法帮助攻击者。

有几个属性的一个哈希方案相关的强度对离线,大规模并行攻击:

  • 所需的CPU时间计算散列(“拉伸”)
  • 所需的内存计算散列(“memory-hard”操作)
  • 包括一个随机值,以及密码,作为散列计算的输入(“盐”)
  • 给定一个散列,没有已知的方法确定一个输入(如密码),产生的散列值,除了通过猜测可能的输入(单向散列)
  • 相对于所有可能的散列的数量,可以生成的计划,有一个低的可能性为多个不同的输入生产相同的散列(“碰撞阻力”)

注意,产品的安全需求可能取决于环境和密码的值。不同方案可能不提供所有这些属性,但仍可能对环境提供足够的安全。相反,一个解决方案可能是很强的保留一个属性,它仍在为攻击另一个属性很弱,或者它可能无法显著降低大规模并行攻击的效率。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 327年 使用损坏或危险的密码算法
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 759年 使用单向散列没有盐
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 760年 使用单向散列和一个可预测的盐
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 255年 凭证管理错误
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 310年 密码问题
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 327年 使用损坏或危险的密码算法
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1010年 验证的演员
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 实现:造成这一弱点在建筑安全策略的实施。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

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

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

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

如果攻击者可以访问散列,则缺乏足够的计算工作将更容易进行强力攻击使用技术,如彩虹表,或专门的硬件如gpu,速度远远超过通用cpu计算散列。
+观察到的例子
参考 描述
路由器不使用盐散列,使其更容易破解的密码。
路由器不使用盐散列,使其更容易破解的密码。
博客软件使用硬编码的盐在计算密码散列。
数据库服务器使用盐当加密的用户名密码,简化蛮力攻击。
服务器使用一个常数盐当加密密码,简化蛮力攻击。
链:产品产生可预见的MD5散列使用恒定值加上用户名,允许绕过身份验证。
+潜在的缓解措施

阶段:体系结构和设计

使用一个自适应哈希函数,可以配置为改变计算的工作量需要计算散列,如迭代的数量(“拉伸”)或所需的内存。哈希函数自动执行盐。这些函数可以显著增加蛮力攻击的开销相比intentionally-fast MD5等功能。例如,彩虹表攻击会变得不可行,由于高计算开销。最后,由于计算能力变得更快和更便宜的随着时间的推移,这项技术可以改造增加工作量没有迫使整个更换使用的算法。

一些哈希函数的一个或多个这些所需的属性包括bcrypt [ref - 291],scrypt [ref - 292],PBKDF2 [ref - 293]。虽然有积极讨论哪些是最有效的,他们都是比使用盐很少用哈希函数计算开销。

注意,使用这些函数可以对性能有影响,所以他们需要特殊考虑避免拒绝服务攻击。然而,他们的可配置性提供了更好的控制有多少CPU和内存使用,所以它可以调节以适应环境的需要。

有效性:高

阶段:实施;架构和设计

当使用有技术,正确地使用它们。不偷工减料,跳过资源密集型步骤(cwe - 325)。这些步骤通常是必不可少的预防常见的攻击。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
+检测方法

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

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

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

有效性:飙升部分

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

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

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

有效性:飙升部分

人工静态分析源代码

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

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

有效性:高

自动静态分析源代码

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

高成本效益:
  • 源代码缺陷分析仪
  • Context-configured源代码分析器

有效性:高

自动静态分析

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

成本有效的部分报道:
  • 配置检查

有效性:飙升部分

体系结构或设计审查

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

高成本效益:
  • 正式的方法/ Correct-By-Construction
成本有效的部分报道:
  • 检验(IEEE 1028标准)(适用于需求、设计、源代码,等等)。

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1346年 OWASP十大2021类别A02:2021 -密码失败
+引用
(ref - 291)约翰尼·雪莱。“bcrypt”。<http://bcrypt.sourceforge.net/>。
科林·珀西瓦尔(ref - 292)。“Tarsnap——scrypt密钥推导函数和加密效用”。<http://www.tarsnap.com/scrypt.html>。
ref - 293 b . Kaliski。“RFC2898——PKCS # 5:密码的加密规范2.0版本”。5.2 PBKDF2。2000年。<http://tools.ietf.org/html/rfc2898>。
黑尔(ref - 294)结尾。“如何安全地存储密码”。2010-01-31。<http://codahale.com/how-to-safely-store-a-password/>。
布莱恩·克雷布斯(ref - 295)。“企业如何加强密码安全”(托马斯·h·“)采访时。2012-06-11。<http://krebsonsecurity.com/2012/06/how-companies-can-beef-up-password-security/>。
(ref - 296)太阳能设计师。“密码安全:过去、现在、未来”。2012年。<http://www.openwall.com/presentations/PHDays2012-Password-Security/>。
(ref - 297)特洛伊打猎。“我们的密码哈希没穿衣服”。2012-06-26。<http://www.troyhunt.com/2012/06/our-password-hashing-has-no-clothes.html>。
(ref - 298) Joshbw。“我们真的应该使用bcrypt / scrypt ?”。2012-06-08。<http://www.analyticalengine.net/2012/06/should-we-really-use-bcryptscrypt/>。
杰夫·阿特伍德(ref - 636)。“速度哈希”。2012-04-06。<http://www.codinghorror.com/blog/2012/04/speed-hashing.html>。
OWASP (ref - 631)。“密码存储备忘单”。<https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet>。
[ref - 632]托马斯“。“足够的彩虹表:你需要知道的关于安全的密码方案”。2007-09-10。<http://www.securityfocus.com/blogs/262>。
(ref - 908)太阳能设计师。“大规模密码散列”。2012-10-01。<http://www.openwall.com/presentations/YaC2012-Password-Hashing-At-Scale/>。
(ref - 909)太阳能设计师。“密码散列新发展:ROM-port-hard功能”。2012 - 11。<http://www.openwall.com/presentations/ZeroNights2012-New-In-Password-Hashing/>。
(ref - 633)罗伯特·格雷厄姆。“规范”的重要性。2009-02-02。<http://erratasec.blogspot.com/2009/02/importance-of-being-canonical.html>。
+内容的历史
+提交
提交日期 提交者 组织
2013-01-28 CWE内容团队 主教法冠
创建输入来自社区的成员安全的密码散列。
+修改
修改日期 修饰符 组织
2014-02-18 CWE内容团队 主教法冠
更新Potential_Mitigations,引用
2014-07-30 CWE内容团队 主教法冠
更新Detection_Factors
2017-01-19 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2019-01-03 CWE内容团队 主教法冠
更新描述
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2020-02-24 CWE内容团队 主教法冠
更新的关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2023-01-31 CWE内容团队 主教法冠
更新描述
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日