CWE

普遍的弱点

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

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

CWE-328:使用弱哈希

弱点ID:328
抽象:根据
结构:简单的
查看自定义信息:
+描述
该产品使用一种产生摘要(输出值)的算法,该算法不符合对对手可以合理确定原始输入(预映射攻击)的哈希功能的安全性期望,请找到另一个可以产生相同哈希的输入(第二个预先映射攻击),或找到评估相同哈希(生日攻击)的多个输入。
+扩展描述

哈希函数定义为一种算法,该算法将任意尺寸的数据映射到固定尺寸的摘要(输出)中,以使以下属性保持:

  • 1.该算法是不可逆转的(也称为“单向”或“不可逆”)
  • 2.算法是确定性的;相同的输入每次都会产生相同的消化

在此定义的基础上,加密哈希功能还必须确保恶意演员不能利用哈希函数来成功确定以下任何一项:

  • 1.仅给定摘要
  • 2.给定原始输入的另一个可以产生相同摘要的输入(第二次攻击)
  • 3.一组两个或多个评估对同一摘要的输入(生日攻击),鉴于演员可以任意选择要进行的输入,并且可以做到合理的次数

被认为是“合理”的情况因上下文和威胁模型而异,但总的来说,“合理”可以涵盖比蛮力更有效的攻击(即平均而言,尝试所有可能的组合的一半)。请注意,某些攻击可能比蛮力更有效,但在现实世界中仍不认为是可以实现的。

任何算法都不满足上述条件,通常将其视为薄弱用于哈希的一般用途。

除了算法弱点外,可以通过在破坏其安全保证的安全环境中使用哈希来使哈希功能变得虚弱。例如,使用没有盐的哈希功能来存储密码(足够短)可以使对手能够创建一个“彩虹表” [Ref-637]在某些条件下恢复密码;这项攻击对付MD5,SHA-1和SHA-2等哈希作用。

+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 名称
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 326 加密强度不足
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 327 使用破裂或危险的加密算法
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 310 加密问题
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“建筑概念”(CWE-1008)有关
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1013 加密数据
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
建筑和设计 委员会:这种弱点是指与建筑安全策略相关的不正确设计。
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

班级:不是特定语言的(不确定的患病率)

+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
访问控制

技术影响:旁路保护机制

+示例的例子

示例1

在这两个示例中,如果用户给定的密码匹配存储的密码,则将记录使用:

(不良代码)
示例语言:C
unsigned char *check_passwd(char *plaintext){
ctext = simple_digest(“ sha1”,明文,strlen(plaintext),...);
//登录如果哈希匹配存储的哈希
if(等于(ctext,secret_password())){
login_user();
}
}
(不良代码)
示例语言:爪哇
字符串Plaintext = new String(Plaintextin);
MessageDigest Encer = Messagedigest.getInstance(“ sha”);
encer.update(Plaintextin);
byte [] digest = password.digest();
//登录如果哈希匹配存储的哈希
if(等于(digest,secret_password())){
login_user();
}

此代码仅依赖密码机制(CWE-309)仅使用身份验证的一个因素(CWE-308)。如果攻击者可以窃取或猜测用户的密码,则可以完全访问其帐户。注意此代码还使用SHA-1,这是一个弱的哈希(CWE-328)。它也不使用盐(CWE-759)。

示例2

2022年,OT:ICEFALL研究通过10种不同的运营技术(OT)供应商检查了产品。研究人员报告了56个漏洞,并说这些产品是“通过设计不安全的” [Ref-1283]。如果利用这些漏洞,这些漏洞通常会允许对手更改产品的运作方式,从拒绝服务到更改产品执行的代码。由于这些产品经常用于电力,电气,水和其他行业,因此甚至可能有安全感。

至少一种OT产品使用弱哈希。

+观察到的例子
参考 描述
可编程逻辑控制器(PLC)使用具有密码的密码散布算法的协议。
SHA-1算法不抗碰撞。
DNS产品使用查询名称的弱哈希(CRC32或SHA-1),从而使攻击者可以通过计算具有相同哈希的域名来伪造响应。
博客产品使用基于MD5的算法进行密码。
使用SHA-1碰撞锻造证书签名。
用于备份的移动应用程序在clearText中发送SHA-1哈希亚密码。
客户端脚本中包含的用户名和密码的硬编码的Hashed值,允许蛮力离线攻击。
+潜在的缓解

阶段:建筑和设计

使用可以配置的自适应哈希功能来更改计算哈希的计算工作量,例如迭代次数(“拉伸”)或所需的内存量。某些哈希功能会自动执行盐。与有意快速的功能(如MD5)相比,这些功能可以显着增加蛮力攻击的开销。例如,由于高计算开销,彩虹桌攻击可能变得不可行。最后,由于随着时间的推移,计算能力会变得更快,更便宜,因此可以重新配置该技术以增加工作量,而无需强迫使用算法的整个替换。

某些具有这些所需属性的哈希函数包括bcrypt [Ref-291],Scrypt [Ref-292]和pbkdf2 [Ref-293]。尽管关于哪种最有效的争论有积极的争论,但它们比使用具有很少的计算开销的盐功能的盐要强。

请注意,使用这些功能可能会对性能产生影响,因此他们需要特殊考虑以避免拒绝服务攻击。但是,它们的可配置性提供了对使用多少CPU和内存的更好控制,因此可以对其进行调整以满足环境需求。

有效性:高

+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 934 OWASP 2013年前十大A6类 - 敏感数据曝光
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 958 SFP次级群集:断密码学
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1029 OWASP前十名2017类A3类 - 敏感数据曝光
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1346 OWASP前十2021年A02:2021-加密故障
+笔记

维护

自CWE 4.4以来,各种与密码相关的条目,包括CWE-328已计划进行广泛的研究,分析和社区咨询,以定义一致的术语,改善关系并减少重叠或重复。从CWE 4.6开始,这项工作仍在进行中。
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
plover 可逆的单向哈希
+参考
[Ref-289] Alexander Sotirov等人。“ MD5今天被认为有害”。<http://www.phreedom.org/research/rogue-ca/>。
[Ref-62] Mark Dowd,John McDonald和Justin Schuh。“软件安全评估的艺术”。第2章,“诚信的共同漏洞”,第47页。第一版。艾迪生·卫斯理。2006。
[Ref-291] Johnny Shelley。“ bcrypt”。<http://bcrypt.sourceforge.net/>。
[Ref-292] Colin Percival。“ 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] Coda Hale。“如何安全地存储密码”。2010-01-31。<http://codahale.com/how-to-safely-store-a-password/>。
[Ref-295] Brian Krebs。“公司如何加强密码安全性(对Thomas H. Ptacek采访)”。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] Troy Hunt。“我们的密码哈希没有衣服”。2012-06-26。<http://www.troyhunt.com/2012/06/our-password-hashing-hashing-has-no-clothes.html>。
[Ref-298] Joshbw。“我们真的应该使用bcrypt/scrypt吗?”。2012-06-08。<http://www.analytilityengine.net/2012/06/should-we-really-use-use-bcryptscrypt/>。
[Ref-637]“彩虹桌”。维基百科。2009-03-03。<http://en.wikipedia.org/wiki/rainbow_table>。
[Ref-1243] Bruce Schneier。“ SHA-1的密码分析”。2021-10-25。2005-02-18。<https://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html>。
[Ref-1244] Dan Goodin。“多年来,在死亡之门上,使用的SHA1功能现在已经死亡”。ARS技术。2021-10-25。2017-02-23。<https://arstechnica.com/information-technology/2017/02/at-deaths-deaths-door-for---------------------------------------------------->。
[Ref-1283]预言vedere实验室。“ OT:ICEFALF:“设计不安全”的遗产及其对认证和风险管理的影响”。2022-06-20。<https://www.forescout.com/resources/ot-icefall-report/>。
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 plover
+修改
修改日期 修饰符 组织
2008-09-08 CWE内容团队 MITER
更新的关系,obsoved_example,gualomy_mappings
2008-10-14 CWE内容团队 MITER
更新的描述
2009-01-12 CWE内容团队 MITER
更新的描述,参考
2009-10-29 CWE内容团队 MITER
更新的关系
2011-06-01 CWE内容团队 MITER
更新的common_cconsquences
2012-05-11 CWE内容团队 MITER
更新的引用,相关_ATTACK_PATTERNS,关系
2012-10-30 CWE内容团队 MITER
更新了示范示例,电位_MINEIGATIONS,参考
2014-02-18 CWE内容团队 MITER
更新势_的限制,参考
2014-06-23 CWE内容团队 MITER
更新的关系
2014-07-30 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新已更新的适用_platforms,modes_of_introduction,参考,关系
2018-03-27 CWE内容团队 MITER
更新的关系
2021-03-15 CWE内容团队 MITER
更新了示范_examples
2021-10-28 CWE内容团队 MITER
更新的描述,维护_notes,名称,观察_examples,参考,关系
2022-10-13 CWE内容团队 MITER
更新了示范示例,obsoved_examples,参考
+先前的输入名称
改变日期 先前的输入名称
2021-10-28 可逆的单向哈希
提供更多信息 - 请选择其他过滤器。
页面最后更新:2022年10月13日