CWE

普遍的弱点

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

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

CWE-306:缺少关键功能的身份验证

弱点ID:306
抽象:根据
结构:简单的
查看自定义信息:
+描述
该产品不对需要可证明的用户身份或消耗大量资源的功能进行任何身份验证。
+扩展描述

由于数据迁移到云,如果访问不需要身份验证,则攻击者可以更容易从Internet上的任何地方访问数据。

+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 名称
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 287 身份验证不当
父母 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 288 使用替代路径或通道的身份验证旁路
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1211 身份验证错误
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“简化已发表漏洞的简化映射”(CWE-1003)相关的视图相关(CWE-1003)
自然 类型 ID 名称
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 287 身份验证不当
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“建筑概念”(CWE-1008)有关
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1010 认证演员
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
建筑和设计 遗漏:这种弱点是由于在架构和设计阶段缺少安全策略而引起的。
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

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

技术

课程:云计算(不确定的患病率)

班级:ICS/OT(通常很普遍)

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

技术影响:获得特权或假定身份;其他

暴露关键功能本质上为攻击者提供了该功能的特权级别。后果将取决于关联的功能,但是它们可以从阅读或修改敏感数据,访问管理或其他特权功能,甚至可能执行任意代码。
+利用的可能性
高的
+示例的例子

示例1

在以下Java示例中,方法createBankAccount用于创建用于银行管理应用程序的bankAccount对象。

(不良代码)
示例语言:爪哇
public bankaccount createBankAccount(字符串帐户名称,字符串帐户类型,
字符串帐户名,字符串帐户,双余额){
BankAccount帐户= new BankAccount();
account.setaccountnumber(帐户名);
account.setAccountType(accountType);
account.setaccountownername(accountName);
Account.SetAccountownerssn(Accountssn);
account.setbalance(余额);

退货帐户;
}

但是,没有任何身份验证机制来确保创建此银行帐户对象的用户有权创建新的银行帐户。应使用某些身份验证机制来验证用户是否有权创建银行帐户对象。

以下Java代码包括一个布尔变量和用于认证用户的方法。如果未对用户进行身份验证,则CreateBankAccount将不会创建银行帐户对象。

(好代码)
示例语言:爪哇
私人布尔iSuserauthentic = false;

//认证用户,

//如果用户经过身份验证,则将变量设置为true

//否则将变量设置为false
public boolean authenticateuser(字符串用户名,字符串密码){
...
}

public bankaccount createNewbankaccount(字符串帐户名,字符串帐户类型,
字符串帐户名,字符串帐户,双余额){
bankAccount帐户= null;

if(Isuserauthentic){
帐户= new BankAccount();
account.setaccountnumber(帐户名);
account.setAccountType(accountType);
account.setaccountownername(accountName);
Account.SetAccountownerssn(Accountssn);
account.setbalance(余额);
}
退货帐户;
}

示例2

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

多个供应商没有在其OT产品中使用任何身份验证来实现关键功能。

示例3

2021年,由PeopleGis运营的网站存储了Amazon Web服务中的美国市政当局数据(AWS)简单存储服务(S3)。

(不良代码)
示例语言:其他
一位安全研究人员发现了86个S3存储桶,可以在没有身份验证的情况下访问(CWE-306)和存储的数据未加密(CWE-312)。这些存储桶暴露了超过1000 GB的数据和160万个文件,包括物理地址,电话号码,税收文件,驾驶执照ID的图片等。[Ref-1296] [Ref-1295这是给予的

虽然没有公开披露发现后如何保护数据,但可以考虑多个选项。

(好代码)
示例语言:其他
敏感信息本可以通过确保桶没有公开阅读访问权限来保护,例如,通过启用S3-Account级 - 公共访问 - 访问 - 访问 - 隔离规则来阻止公共访问权限。此外,可以使用适当的S3设置(例如,使用S3-Bucket-Server-Side-Side-Expryption-oppaped设置启用服务器端加密)来对数据进行加密。其他设置可用于进一步防止存储桶数据被泄漏。[[Ref-1297这是给予的
+观察到的例子
参考 描述
可编程逻辑控制器(PLC)中基于TCP的协议没有身份验证。
条件监视器固件使用不需要身份验证的协议。
基于SCADA的桥接WAN和LAN流量的协议没有身份验证。
安全仪器系统使用没有身份验证的专有TCP协议。
分布式控制系统(DCS)使用没有身份验证的协议。
链:云计算虚拟化平台不需要身份验证即可上传tar格式文件(CWE-306),然后使用..路径遍历序列(CWE-23)在文件中访问意外文件,如野外CISA KEV中所利用的。
IT管​​理产品不为某些REST API请求执行身份验证,如Per Per Cisa Kev中所利用的那样。
工作流管理产品中的默认设置允许所有API请求无需身份验证,如野生CISA KEV中所利用的。
MFV。访问TFTP服务器,无需身份验证,并获得具有敏感明文信息的配置文件。
在特权上运行的代理软件不会通过未保护的频道来验证传入的请求,从而允许打破“攻击”。
产品通过GUI实施限制,但不能通过特权API进行限制。
监视设备允许无需身份验证即可访问物理UART调试端口
可编程逻辑控制器(PLC)在其通信协议上没有身份验证功能。
+潜在的缓解

阶段:建筑和设计

将软件分为匿名,普通,特权和管理领域。确定这些领域中的哪些需要经过验证的用户身份,并使用集中式身份验证功能。

确定所有潜在的通信渠道或与软件交互的其他方式,以确保所有渠道都得到适当保护。开发人员有时会在主渠道上执行身份验证,但要打开一个被假定为私有的辅助通道。例如,登录机制可能是在一个网络端口上侦听,但是在成功身份验证后,它可能打开了第二个端口等待连接的端口,但避免了身份验证,因为它假设只有身份验证的方将连接到端口。

通常,如果软件或协议允许单个会话或用户状态跨多个连接或渠道持续存在,则需要在整个过程中使用身份验证和适当的凭证管理。

阶段:建筑和设计

对于在客户端执行的任何安全检查,请确保在服务器端重复这些检查,以避免CWE-602。攻击者可以在执行检查后修改值或更改客户端以完全删除客户端检查后,可以通过修改值来绕过客户端检查。然后,这些修改后的值将提交给服务器。

阶段:建筑和设计

在可能的情况下,避免实施自定义身份验证例程,并考虑使用周围框架,操作系统或环境提供的身份验证功能。这些可能使在身份验证任务和授权任务之间提供明确的分离变得更容易。

在诸如万维网之类的环境中,身份验证和授权之间的界线有时会变得模糊。如果需要自定义身份验证例程,而不是服务器提供的例程,则必须将这些例程应用于每个页面,因为可以直接要求这些页面。

阶段:建筑和设计

策略:图书馆或框架

使用审查的库或框架,该图书馆或框架不允许这种弱点发生或提供使这种弱点更容易避免的结构。

例如,考虑使用具有身份验证功能的库,例如OpenSSL或Esapi Authenticator [Ref-45]。

阶段:实施;系统配置;手术

将数据存储在云中时(例如,S3存储桶,Azure Blobs,Google Cloud Storage等),使用提供商的控件来要求允许用户访问数据[Ref-1297] [Ref-1298] [Ref-1302]。
+检测方法

手动分析

可以使用需要手动分析的工具和技术来检测到这种弱点,例如渗透测试,威胁建模和交互式工具,使测试人员可以记录和修改活动会话。

具体而言,手动静态分析对于评估自定义身份验证机制的正确性很有用。

笔记:这些可能比严格自动化的技术更有效。与设计和业务规则相关的弱点尤其如此。

自动静态分析

自动化静态分析可用于检测常见的习语以进行身份​​验证。工具可能能够分析相关的配置文件,例如Apache Web服务器中的.htaccess,或检测常用身份验证库的使用。

通常,自动静态分析工具很难检测自定义身份验证方案。此外,该软件的设计可能包括任何用户可访问的功能,并且不需要已建立的身份;一种检测缺乏身份验证的自动化技术可能会报告误报。

有效性:有限

手动静态分析 - 二进制或字节码

根据SOAR,以下检测技术可能很有用:

对部分覆盖的成本效益:
  • 二进制 / bytecode拆卸器 - 然后使用手动分析解决漏洞和异常

有效性:飙升

自动结果解释的动态分析

根据SOAR,以下检测技术可能很有用:

对部分覆盖的成本效益:
  • Web应用程序扫描仪
  • Web服务扫描仪
  • 数据库扫描仪

有效性:飙升

动态分析和手动结果解释

根据SOAR,以下检测技术可能很有用:

对部分覆盖的成本效益:
  • 主机应用程序接口扫描仪
  • 模糊测试仪
  • 基于框架的绒毛

有效性:飙升

手动静态分析 - 源代码

根据SOAR,以下检测技术可能很有用:

对部分覆盖的成本效益:
  • 专注的手动点检查 - 源的重点手动分析
  • 手动源代码审查(不是检查)

有效性:飙升

自动静态分析 - 源代码

根据SOAR,以下检测技术可能很有用:

对部分覆盖的成本效益:
  • 源代码弱点分析仪
  • 上下文配置的源代码弱点分析仪

有效性:飙升

建筑或设计评论

根据SOAR,以下检测技术可能很有用:

高度成本效益:
  • 检查(IEEE 1028标准)(可以适用于要求,设计,源代码等)
  • 正式的方法 /正确构造
对部分覆盖的成本效益:
  • 攻击建模

有效性:高

+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 803 2010前25个 - 多孔防御
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 812 OWASP 2010年前十大类别A3-破裂的身份验证和会话管理
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 866 2011年前25名 - 多孔防御
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 884 CWE横截面
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 952 SFP辅助群集:缺失身份验证
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 1337 2021 CWE中的弱点前25个最危险的软件弱点
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 1350 2020年CWE前25个最危险的软件弱点中的弱点
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1353 OWASP前十2021年A07:2021-标识和身份验证失败
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 1387 2022 CWE中的弱点前25个最危险的软件弱点
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
plover 没有关键功能的身份验证
软件故障模式 SFP31 缺失身份验证
+参考
[Ref-62] Mark Dowd,John McDonald和Justin Schuh。“软件安全评估的艺术”。第2章,“身份验证的常见漏洞”,第36页。第一版。艾迪生·卫斯理。2006。
[Ref-257]弗兰克·金。“前25个系列 - 排名19-缺少关键功能的身份验证”。SANS软件安全研究所。2010-02-23。<http://blogs.sans.org/appsecstreetfighter/2010/02/23/top-25-series-rank-19-missing-authentication-for-critication-function/>。
[Ref-45] Owasp。“ OWASP企业安全API(ESAPI)项目”。<http://www.owasp.org/index.php/esapi>。
[Ref-1283]预言vedere实验室。“ OT:ICEFALF:“设计不安全”的遗产及其对认证和风险管理的影响”。2022-06-20。<https://www.forescout.com/resources/ot-icefall-report/>。
[Ref-1295] Wizcase。“超过80个美国市政当局的敏感信息,包括居民的个人数据,在大规模数据泄露中造成了脆弱的危害”。2021-07-20。<https://www.wizcase.com/blog/us-municipality-breach-report/>。
[Ref-1296] Jonathan Greig。“马萨诸塞州软件公司曝光的1,000 GB的地方政府数据”。2021-07-22。<https://www.zdnet.com/article/1000-gb-of-local-government-data-data-xend-by-massachusetts-software-company/>。
[Ref-1297]亚马逊。“ AWS基础安全最佳实践控制”。2022-10-11。2022. <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html>。
[Ref-1298] Microsoft。“ Azure App Service和Azure功能中的身份验证和授权”。2022-10-11。2021-11-23。<https://learn.microsoft.com/en-us/azure/app-service/overview-authentication-authorization>。
[Ref-1302] Google Cloud。“身份验证和授权用例”。2022-10-11。2022-10-11。<https://cloud.google.com/docs/authentication/use-cases>。
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 plover
+修改
修改日期 修饰符 组织
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新的关系,关系_notes,分类_mappings
2010-02-16 CWE内容团队 MITER
更新已更新的适用_platforms,common_consequences,expdiveative_examples,detection_factors,likelihood_of_exploit,name,lame,obsed_examples,entigers_mitigations,reverence,参考,相关_ATTACK_PATTERNS,关系,关系
2010-06-21 CWE内容团队 MITER
更新的common_cconsquences,entife_metigations,参考
2011-06-01 CWE内容团队 MITER
更新的common_cconsquences
2011-06-27 CWE内容团队 MITER
更新的关系
2011-09-13 CWE内容团队 MITER
更新势_的限制,参考,关系
2012-05-11 CWE内容团队 MITER
更新的电势_限制,关系
2012-10-30 CWE内容团队 MITER
更新的势_MINEIGATIONS
2014-07-30 CWE内容团队 MITER
更新的detection_factor,关系,分类_mappings
2015-12-07 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新的likelihood_of_exploit,模式_OF_INTRODUCTION,参考,关系
2019-01-03 CWE内容团队 MITER
更新相关的_attack_patterns
2019-06-20 CWE内容团队 MITER
更新相关的_attack_patterns,类型
2020-02-24 CWE内容团队 MITER
更新的关系
2020-08-20 CWE内容团队 MITER
更新的关系
2021-07-20 CWE内容团队 MITER
更新了观察到的示例,关系
2021-10-28 CWE内容团队 MITER
更新的关系
2022-06-28 CWE内容团队 MITER
更新了观察到的示例,关系
2022-10-13 CWE内容团队 MITER
更新已更新的适用_platforms,expeplative_examples,描述,观察_ examples,entife_mitigations,参考,关系_notes,关系
+先前的输入名称
改变日期 先前的输入名称
2010-02-16 没有关键功能的身份验证
提供更多信息 - 请选择其他过滤器。
页面最后更新:2022年10月13日