CWE

常见的弱点枚举

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

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

cwe - 285:不适当的授权

弱点ID: 285
抽象:
结构:简单的
视图定制的信息:
+描述
产品不执行或不正确执行授权检查当演员试图访问资源或执行一个动作。
+扩展描述

假设一个用户与给定的身份,授权是一个过程,确定该用户是否可以访问给定的资源,基于用户的特权和权限或其他访问控制规范,适用于资源。

当访问控制检查不一致——或者根本不应用用户能够访问数据或执行行动,他们不应该被允许执行。这可能导致各种各样的问题,包括信息曝光、拒绝服务和执行任意代码。

+替代条款
AuthZ:
“AuthZ”通常是用作缩写web应用程序安全社区内的“授权”。它是不同于“AuthN”(或者,有时候,“AuthC”)这是一个缩写的“认证”。The use of "Auth" as an abbreviation is discouraged, since it could be used for either authentication or authorization.
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 284年 访问控制不当
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 552年 文件或目录访问外部各方
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 732年 不正确的权限分配的关键资源
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 862年 失踪的授权
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 863年 错误的授权
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 926年 不当的Android应用程序组件的出口
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 927年 使用隐式意图敏感的通信
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1230年 暴露敏感信息的元数据
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1256年 不当限制软件接口硬件的功能
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1297年 保护机密信息被OSAT供应商设备访问
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1328年 安全版本号可变的旧版本
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1011年 授权的演员
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 284年 访问控制不当
+背景细节
一个访问控制列表(ACL)代表世卫组织/给定对象的权限。不同的操作系统以不同的方式实现(acl)。在UNIX中,有三种类型的权限:读、写和执行。文件访问用户分为三类:所有者、群组的所有者,和所有其他用户,每个类都有一个独立的权利。在Windows NT,有四种基本类型的权限文件:“不能”,“读访问权”,“改变访问”和“完全控制”。Windows NT延伸的概念在UNIX中三种类型的用户,包括用户和组列表及其相关的权限。用户可以创建一个对象(文件),并将指定的权限分配给该对象。
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现

实现:造成这一弱点在建筑安全策略的实施。

开发人员可能会引入授权弱点由于缺乏了解底层技术。例如,开发人员可能假设攻击者不能修改某些输入标题或饼干等。

架构和设计

授权的弱点可能出现当一个单用户应用程序移植到一个多用户环境。

操作
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

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

技术

Web服务器(通常是普遍的)

数据库服务器(通常是普遍的)

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

技术的影响:阅读应用程序数据;读文件或目录

攻击者可以读取敏感数据,通过阅读的数据直接从数据存储不合理限制,或通过访问保护不足,特权功能读取数据。
完整性

技术的影响:修改应用程序数据;修改文件或目录

攻击者可以修改敏感数据,通过将数据直接写入一个数据存储不合理限制,或通过访问保护不足,特权功能写数据。
访问控制

技术的影响:获得特权或假设的身份

攻击者可以获得特权直接通过修改或阅读关键数据,或通过访问保护不足,特权功能。
+利用的可能性
+示范例子

示例1

这个函数运行任意给定的数据库SQL查询,返回查询的结果。

(坏的代码)
例如语言:PHP
函数runEmployeeQuery (dbName,名字美元){
mysql_select_db (dbName, globalDbHandle美元)或死亡(“不能开放数据库”。$ dbName);
/ /使用一份事先准备好的声明中来避免cwe - 89
preparedStatement = globalDbHandle美元- >准备(' SELECT *从员工的名字=:名字);
$ preparedStatement - >执行(数组(美元:名字' = >名称));
返回$ preparedStatement - > fetchAll ();
}
/……

将采用employeeRecord =美元runEmployeeQuery (EmployeeDB, $ _GET [' EmployeeName ']);

虽然这段代码是小心避免SQL注入,该函数不确定用户发送查询授权这样做。攻击者可以从数据库中获取敏感的员工信息。

示例2

下面的程序可能是一个公告板系统的一部分,允许用户发送私人消息。这个程序将用户进行身份验证,然后再决定是否应该显示一个私人信息。假设LookupMessageObject()确保$ id参数是数值,构造基于id的文件名,并从该文件中读取消息的细节。还假设所有用户的程序将所有私人信息存储在相同的目录中。

(坏的代码)
例如语言:Perl
子DisplayPrivateMessage {
我($ id) = @ _;
我消息= LookupMessageObject美元($ id);
打印“:”。encodeHTML(美元消息- >{和})。“< br > \ n”;
主题:“打印”。encodeHTML(美元消息- >{主题})。“\ n”;
打印“<人力资源> \ n”;
身体:“打印”。encodeHTML(美元消息- >{身体})。“\ n”;
}

我问= new CGI美元;
#为目的的这个例子中,假设cwe - 309


#cwe - 523不适用。
如果(!AuthenticateUser (q - >参数(用户名),$ q - >参数('密码'))){
ExitError(“无效的用户名或密码”);
}

我的$ id = $ q - >参数(“id”);
DisplayPrivateMessage ($ id);

在程序正常退出如果认证失败,它并不能保证消息被发送给用户。结果,一个经过验证的攻击者可以提供任意标识符和阅读用于其他用户的私人信息。

为了避免这种问题的一个方法是确保消息对象”到“字段匹配身份验证的用户的用户名。

+观察到的例子
参考 描述
Go-based持续部署产品不检查用户有一定的权限更新或创建一个应用程序,允许对手读敏感的存储库信息
Web应用程序不限制管理脚本的访问,允许经过身份验证的用户重置密码管理。
Web应用程序不限制管理脚本的访问,允许经过身份验证的用户修改其他用户的密码。
Web应用程序商店Web根下数据库文件访问控制(不足cwe - 219),允许直接请求。
终端服务器没有为客人检查授权访问。
数据库服务器没有使用合适的某些敏感的操作权限。
网关使用默认为其授权设置“允许”配置。
链:产品不正确解释系统组的配置选项,允许用户获得特权。
链:SNMP产品不正确解析配置选项允许哪些主机连接,允许未经授权的IP地址连接。
系统监控软件允许用户绕过授权通过创建自定义形式。
链:依赖客户端安全(cwe - 602)允许攻击者绕过授权使用一个定制的客户端。
链:产品不妥善处理通配符的授权策略列表,允许意外访问。
内容管理系统不为私人文件,检查访问权限允许他人查看这些文件。
ACL-based保护机制对待消极的访问权限,好像他们是积极的,允许绕过限制。
产品不会检查页面的ACL访问使用一个“包括”指令,允许攻击者读取未授权文件。
默认ACL列表一个DNS服务器不设置特定的ACL,允许未经授权的DNS查询。
产品依赖于HTTP报头X-Forwarded-For授权,允许意外访问通过欺骗的头。
操作系统内核之前不检查一个特定的特权设置acl文件。
链:文件系统代码执行一个不正确的比较(cwe - 697),防止违约acl正确应用。
链:产品不正确检查反向DNS查询的结果,因为操作符优先级(cwe - 783),允许绕过以域名系统的访问限制。
+潜在的缓解措施

阶段:体系结构和设计

将产品划分为匿名的,正常的,特权和行政区域。减少攻击表面通过仔细映射角色的数据和功能。使用基于角色的访问控制(RBAC)执行的角色在适当的界限。

注意,这个方法可能不是防止水平授权,即。,它不会保护用户免受攻击别人用同样的角色。

阶段:体系结构和设计

确保您执行访问控制检查相关的业务逻辑。这些检查可能是不同的访问控制检查适用于更一般的资源(如文件、连接、进程、内存和数据库记录。例如,一个数据库可能限制医疗记录到一个特定的数据库的访问用户,但每个记录可能只是为了访问病人和病人的医生。

阶段:体系结构和设计

策略:库或框架

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

例如,考虑使用授权框架如JAAS授权框架(ref - 233)和OWASP ESAPI访问控制功能(REF-45]。

阶段:体系结构和设计

对于web应用程序,确保访问控制机制是正确的每一页都在服务器端执行。用户不能访问任何未经授权的功能或信息,只需请求直接访问该页面。

要做到这一点的方法之一是确保包含敏感信息的所有页面不缓存,,所有此类页面限制访问请求都伴随着一个活跃的和经过身份验证的会话令牌关联到一个用户所需的权限访问该页面。

阶段:系统配置;安装

使用您的操作系统的访问控制功能和服务器环境,并相应地定义访问控制列表。使用“默认否认”政策在定义这些acl。
+检测方法

自动静态分析

自动静态分析是有用的检测常用的习语进行授权。一个工具可以分析相关的配置文件,比如. htaccess在Apache web服务器中,或检测常用的使用授权库。

一般来说,自动静态分析工具有困难检测自定义授权模式。此外,软件的设计可能包括一些功能,任何用户都可以访问,不需要一个授权检查;自动化技术,检测没有授权可能报告假阳性。

有效性:有限

自动动态分析

自动动态分析可能会发现许多或所有可能的接口,不需要授权,但手动分析需要确定缺乏授权违反业务逻辑

手动分析

这个弱点可以检测使用的工具和技术,需要手动(人类)的分析,如渗透测试、威胁建模和交互工具,允许测试人员记录和修改一个活跃的会话。

具体来说,手工静态分析有助于评估自定义授权机制的正确性。

有效性:温和

注意:这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。然而,手动努力可能不会在有限时间内达到所需的代码覆盖约束。

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

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

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

有效性:飙升部分

动态分析与自动化的结果解释

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

成本有效的部分报道:
  • Web应用程序扫描
  • Web服务的扫描仪
  • 数据库扫描仪

有效性:飙升部分

动态分析与人工解释结果

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

成本有效的部分报道:
  • 扫描仪主机应用程序接口
  • 模糊测试
  • 基于框架Fuzzer
  • 强制执行路径
  • 监控虚拟环境——在沙箱中运行潜在的恶意代码/包装/虚拟机,看看它任何可疑的

有效性:飙升部分

人工静态分析源代码

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

成本有效的部分报道:
  • 关注人工抽查,手动分析来源
  • 手工源代码审查(不检查)

有效性:飙升部分

自动静态分析源代码

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

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

有效性:飙升部分

体系结构或设计审查

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

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

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 254年 7 pk -安全特性
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 721年 OWASP十大2007类别A10 -未能限制的URL访问
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 723年 OWASP十大2004类别A2 -破碎的访问控制
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 753年 2009年前25 -多孔防御
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 803年 2010年前25 -多孔防御
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 817年 OWASP十大2010类别A8 -未能限制的URL访问
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 935年 OWASP十大2013类别A7 -失踪函数级别的访问控制
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 945年 SFP二级集群:不安全的资源访问
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1031年 OWASP 2017年十大类别A5,破碎的访问控制
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1345年 OWASP 2021年十大类别A01:2021——破碎的访问控制
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1382年 ICS操作(&维护):新兴能源技术
+分类法映射
映射分类名称 节点ID 适合 映射节点名
7有害的王国 失踪的访问控制
OWASP十大2007 A10 CWE更具体 没有限制的URL访问
OWASP十大2004 A2 CWE更具体 破碎的访问控制
软件故障模式 SFP35 不安全的资源访问
+引用
卡特里娜REF-6 Tsipenyuk,布莱恩象棋和加里·麦克格劳博士。“七有害的王国:分类软件安全错误”。NIST研讨会软件安全保障技术和度量工具。NIST的。2005-11-07。<https://samate.nist.gov/SSATTM_Content/papers/Seven%20Pernicious%20Kingdoms%20-%20Taxonomy%20of%20Sw%20Security%20Errors%20-%20Tsipenyuk%20-%20Chess%20-%20McGraw.pdf>。
(ref - 229)国家标准。“基于角色的访问控制和基于角色的安全”。<http://csrc.nist.gov/groups/SNS/rbac/>。
[REF-7]大卫迈克尔·霍华德和勒布朗。编写安全代码。第四章,“授权”114页;第六章,“确定适当的访问控制”171页。第二版。微软出版社。2002-12-04。<https://www.microsoftpressstore.com/store/writing -安全-代码- 9780735617223>。
(ref - 231)弗兰克·金。“前25系列-等级5 -不当访问控制(授权)”。无软件安全研究所。2010-03-04。<http://blogs.sans.org/appsecstreetfighter/2010/03/04/top-25-series-rank-5-improper-access-control-authorization/>。
REF-45 OWASP。“OWASP企业安全API (ESAPI)项目”。<http://www.owasp.org/index.php/ESAPI>。
[ref - 233]拉胡尔保护好。“使用JAAS身份验证”。<http://www.javaranch.com/journal/2008/04/authentication-using-JAAS.html>。
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第二章,“常见的漏洞授权”,39页。1版。艾迪生卫斯理》2006。
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第十一章,“ACL继承”,649页。1版。艾迪生卫斯理》2006。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 7有害的王国
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-08-15 Veracode
建议OWASP 2004年排名前十的映射
2008-09-08 CWE内容团队 主教法冠
更新的关系,Other_Notes Taxonomy_Mappings
2009-01-12 CWE内容团队 主教法冠
更新Common_Consequences、描述Likelihood_of_Exploit、名称、Other_Notes Potential_Mitigations,引用关系
2009-03-10 CWE内容团队 主教法冠
更新Potential_Mitigations
2009-05-27 CWE内容团队 主教法冠
更新描述,Related_Attack_Patterns
2009-07-27 CWE内容团队 主教法冠
更新的关系
2009-10-29 CWE内容团队 主教法冠
更新的类型
2009-12-28 CWE内容团队 主教法冠
更新Applicable_Platforms、Common_Consequences Demonstrative_Examples Detection_Factors, Modes_of_Introduction Observed_Examples、人际关系
2010-02-16 CWE内容团队 主教法冠
更新Alternate_Terms、Detection_Factors Potential_Mitigations、引用关系
2010-04-05 CWE内容团队 主教法冠
更新Potential_Mitigations
2010-06-21 CWE内容团队 主教法冠
更新Common_Consequences、引用关系
2010-09-27 CWE内容团队 主教法冠
更新描述
2011-03-24 CWE内容团队 主教法冠
改变了名称和描述;澄清区别“访问控制”和“授权”。
2011-03-29 CWE内容团队 主教法冠
更新Background_Details、Demonstrative_Examples、描述、名称、关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences Observed_Examples,关系
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples Potential_Mitigations、引用Related_Attack_Patterns、人际关系
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2013-07-17 CWE内容团队 主教法冠
更新的关系
2014-07-30 CWE内容团队 主教法冠
更新Detection_Factors、关系、Taxonomy_Mappings
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Applicable_Platforms Modes_of_Introduction、引用关系
2018-03-27 CWE内容团队 主教法冠
更新引用关系
2019-01-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2020-02-24 CWE内容团队 主教法冠
更新引用关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Alternate_Terms
2021-07-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-04-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Observed_Examples
2023-01-31 CWE内容团队 主教法冠
更新描述,Potential_Mitigations
+以前的条目名称
改变日期 以前的条目名称
2009-01-12 缺失或不一致的访问控制
2011-03-29 不当访问控制(授权)
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日