客观的
过滤器
/ Weakness_Catalog /缺点/缺点[@Structure =“复合”][不(@Status =“弃用”)]
会员
自然 |
类型 |
ID |
的名字 |
HasMember |
组合——一个复合元素包含两个或两个以上不同的弱点,所有弱点必须出现在同一时间为了一个潜在的漏洞出现。删除任何缺点消除或大大降低了风险。一个弱点,X,可以“分解”组件弱点Y和z可以有弱点在哪些情况下可能不是必要的复合,但复合的性质变化时变成了弱点。 |
61年 |
UNIX符号链接(符号链接) |
HasMember |
组合——一个复合元素包含两个或两个以上不同的弱点,所有弱点必须出现在同一时间为了一个潜在的漏洞出现。删除任何缺点消除或大大降低了风险。一个弱点,X,可以“分解”组件弱点Y和z可以有弱点在哪些情况下可能不是必要的复合,但复合的性质变化时变成了弱点。 |
352年 |
跨站请求伪造(CSRF) |
HasMember |
组合——一个复合元素包含两个或两个以上不同的弱点,所有弱点必须出现在同一时间为了一个潜在的漏洞出现。删除任何缺点消除或大大降低了风险。一个弱点,X,可以“分解”组件弱点Y和z可以有弱点在哪些情况下可能不是必要的复合,但复合的性质变化时变成了弱点。 |
384年 |
会话固定 |
HasMember |
组合——一个复合元素包含两个或两个以上不同的弱点,所有弱点必须出现在同一时间为了一个潜在的漏洞出现。删除任何缺点消除或大大降低了风险。一个弱点,X,可以“分解”组件弱点Y和z可以有弱点在哪些情况下可能不是必要的复合,但复合的性质变化时变成了弱点。 |
689年 |
在资源复制许可竞态条件 |
查看指标
|
连续波在这个视图 |
|
总连续波 |
弱点 |
4 |
的 |
933年 |
类别 |
0 |
的 |
352年 |
的观点 |
0 |
的 |
47 |
总 |
4 |
的 |
1332年 |
视图组件
描述
web应用程序不会或不能充分验证是否格式良好的,有效的,一致的请求是故意提供的用户提交请求。
复合组件
自然 |
类型 |
ID |
的名字 |
需要 |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
346年 |
起源验证错误 |
需要 |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
441年 |
意想不到的代理或中介(困惑副) |
需要 |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
642年 |
外部控制临界状态的数据 |
需要 |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
613年 |
会话过期不足 |
扩展描述
当一个web服务器是用来接收来自客户机的请求没有任何机制来验证,这是故意发送,然后为攻击者有可能欺骗客户制作一个无意的请求到web服务器将被视为一个真正的请求。这可以通过一个URL,图片加载,XMLHttpRequest等,可能导致暴露的数据或意想不到的代码执行。
替代条款
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
345年 |
验证数据的真实性不足 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关视图”架构概念”(cwe - 1008)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1019年 |
验证输入 |
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
实现:造成这一弱点在建筑安全策略的实施。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 完整性 可用性 不可抵赖性 访问控制
|
技术的影响:获得特权或假设的身份;旁路保护机制;阅读应用程序数据;修改应用程序数据;DoS:崩溃,退出或重新启动
后果将取决于自然容易CSRF的功能。攻击者可以有效地执行任何操作的受害者。如果受害人是管理员或特权用户,其后果可能包括获得完全控制web应用程序-删除或窃取数据,卸载产品,或用它来启动其他攻击的所有产品的用户。因为攻击者有受害者的身份,CSRF的范围是有限的,只有受害者的特权。 |
|
利用的可能性
示范例子
示例1
这个示例PHP代码试图确保表单提交过程验证用户提交表单有一个有效的会话。CSRF攻击不会被这个对策阻止,因为攻击者伪造请求通过用户的web浏览器中已经存在一个有效的会话。
下面的HTML是为了允许用户更新一个概要文件。
<表单动作= " / url /配置文件。php”方法= " post " > < input type = " text " name = " firstname " / > < input type = " text " name = "姓" / > < br / > < input type = " text " name = "电子邮件" / > < input type = " submit " name =“提交”value = "更新" / > > < /形式
概要文件。php包含以下代码。
/ /初始化会话为了验证会话
session_start ();
/ /如果会话是有效的用户注册然后允许更新
如果(!session_is_registered(“用户名”)){
回声“无效的会话发现!”;
/ /将用户重定向到登录页面
[…]
退出;
}
/ /用户会话有效,所以处理请求
/ /和更新信息
update_profile ();
函数update_profile {
/ /读取的数据从POST并发送一个更新
/ /到数据库
SendUpdateToDatabase ($ _SESSION(“用户”),$ _POST['邮件']); […] 回应“你的资料已成功更新。”;
}
这段代码看起来保护,因为它检查一个有效的会话。然而,CSRF攻击可以从几乎任何标签或HTML构造,包括图像标记,链接嵌入对象标签或其他属性加载背景图像。
攻击者可以主机代码将默默地改变用户名和电子邮件地址的任何用户访问页面的同时保持登录到目标web应用程序。代码可能是一个web页面看上去无害的如:
<脚本> 函数SendAttack () {
的形式。电子邮件=“attacker@example.com”;
/ /发送profile.php
form.submit (); } > < /脚本
<身体onload = " javascript: SendAttack (); " >
<表单动作= " http://victim.example.com/profile.php " id =“形式”方法= " post " > < input type = "隐藏" name = =“有趣”>“firstname”价值 < input type = "隐藏" name = "姓" value = "玩笑" > < br / > < input type = "隐藏" name = "电子邮件" > > < /形式
注意表单包含隐藏字段,所以当它被加载到浏览器,用户不会注意到它。因为SendAttack()定义在身体的onload属性,它将自动加载web页面时调用受害者。
假设用户已经登录到victim.example.com,概要文件。php将看到已经建立了一个有效的用户会话,然后更新电子邮件地址到攻击者的地址。在这个阶段,用户的身份已经被突破,并通过这个概要文件可以发送的消息被发送到攻击者的地址。
观察到的例子
参考 |
描述 |
|
通过URL添加用户帐户在一个img标记 |
|
通过URL添加用户帐户在一个img标记 |
|
通过指定任意代码执行了img标记或URL的代码 |
|
通过一个URL获得管理权限在img标记 |
|
删除一个受害者的信息通过一个URL或一个img标记 |
|
通过一个URL或修改其他用户的设置一个img标记 |
|
执行操作,管理员通过一个URL或一个img标记 |
|
修改管理员密码 |
|
CMS允许通过CSRF攻击管理员修改配置 |
|
网络接口允许通过CSRF密码更改或停止虚拟机 |
潜在的缓解措施
阶段:体系结构和设计
使用审查库或框架不允许这个弱点发生或提供了结构,使这个弱点更容易避免的。
另一个例子是ESAPI会话管理控制,其中包括CSRF的组件。( REF-45]
|
实施阶段:
确保应用程序是免费的跨站点脚本的问题( cwe - 79),因为大多数CSRF防御可以绕过使用attacker-controlled脚本。 |
阶段:体系结构和设计
|
阶段:体系结构和设计
确定特别危险操作。当用户执行一个危险的操作时,发送一个单独的确认请求,以确保用户要执行该操作。
|
阶段:体系结构和设计
使用“double-submitted饼干”方法被法尔顿和西:
当用户访问一个网站,该网站应该生成一个伪随机值和设置cookie在用户的机器上。网站应要求每个表单提交包括这个值是一种价值,也是一个cookie的值。当一个POST请求发送到网站,请求应该只被认为是有效的如果表单值和cookie值是相同的。
由于同源策略,攻击者不能读取或修改值存储在cookie中。代表用户成功提交表单,攻击者必须猜出伪随机值。如果伪随机值密码地强劲,这将是非常困难的。
这种技术需要Javascript,所以它可能不适合禁用Javascript的浏览器。( ref - 331]
注意:请注意,这可能可以绕过使用XSS ( cwe - 79),或者当使用web技术,使攻击者读取原始HTTP请求头。 |
阶段:体系结构和设计
不要使用GET方法触发状态改变的任何请求。 |
实施阶段:
检查HTTP引用页头是否起源于一个预期的页面请求。这可能破坏合法功能,因为用户或代理可能会禁用发送推荐人原因隐私。
注意:注意,这可以绕过使用XSS ( cwe - 79)。攻击者可以使用XSS来生成一个推荐人,或者生成一个恶意请求一个页面的引用页将被允许。 |
检测方法
手动分析
这个弱点可以检测使用的工具和技术,需要手动(人类)的分析,如渗透测试、威胁建模和交互工具,允许测试人员记录和修改一个活跃的会话。
具体地说,人工分析可以用于发现这个弱点,和最小化假阳性假设的理解业务逻辑。然而,它不可能实现在有限时间约束所需的代码覆盖率。对于黑盒分析,如果不以特权帐户凭据,那么重要的最安全的部分应用程序可能得不到足够的关注。
考虑使用OWASP CSRFTester识别潜在的问题和帮助手册分析。
注意:这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。 |
自动静态分析
CSRF目前很难发现可靠地使用自动化技术。这是因为每个应用程序都有自己的隐式安全政策,规定哪些请求可以受到一个局外人和自动执行代表一个用户,而哪些请求需要强大的信心,用户打算请求。例如,一个公共部分的关键词搜索一个网站通常是将编码在一个链接,可以当用户单击链接时自动启动。
|
自动静态分析——二进制或字节码
根据飙升,以下检测技术可能是有用的:
-
字节码的弱点分析,包括反汇编程序+源代码弱点分析
-
二进制弱点分析,包括反汇编程序+源代码弱点分析
|
人工静态分析——二进制或字节码
根据飙升,以下检测技术可能是有用的:
|
动态分析与自动化的结果解释
根据飙升,以下检测技术可能是有用的:
|
动态分析与人工解释结果
根据飙升,以下检测技术可能是有用的:
|
人工静态分析源代码
根据飙升,以下检测技术可能是有用的:
-
关注人工抽查,手动分析来源
-
手工源代码审查(不检查)
|
自动静态分析源代码
根据飙升,以下检测技术可能是有用的:
-
源代码缺陷分析仪
-
Context-configured源代码分析器
|
体系结构或设计审查
根据飙升,以下检测技术可能是有用的:
|
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 |
类型 |
ID |
的名字 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
635年 |
最初使用的弱点NVD从2008年到2016年 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
716年 |
OWASP 2007年十大类别A5,跨站请求伪造(CSRF) |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
751年 |
2009年前25 -安全组件之间的交互 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
801年 |
2010年前25 -安全组件之间的交互 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
814年 |
OWASP 2010年十大类别A5,跨站点请求伪造(CSRF) |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
864年 |
2011年前25 -安全组件之间的交互 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
884年 |
CWE横截面 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
936年 |
OWASP十大2013类别A8 -跨站点请求伪造(CSRF) |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
1200年 |
弱点在2019 CWE最危险的软件错误 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
1337年 |
2021 CWE最危险软件的弱点的弱点 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1345年 |
OWASP 2021年十大类别A01:2021——破碎的访问控制 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
1350年 |
2020 CWE最危险软件的弱点的弱点 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
1387年 |
2022 CWE最危险软件的弱点的弱点 |
笔记
的关系
XSS和CSRF之间可以有密切关系(cwe - 352)。攻击者可能会使用CSRF为了诱骗受害人提交请求到服务器的请求包含一个XSS负载。一个著名的例子是萨米蠕虫在MySpace上(ref - 956]。蠕虫使用XSS恶意HTML序列插入到用户的概要文件并添加攻击者为MySpace的朋友。MySpace的朋友,受害者将执行负载来修改自己的资料,导致蠕虫传播指数。由于受害者没有故意插入恶意脚本本身,CSRF根源。
理论
CSRF拓扑是多通道:
- 攻击者(如局外人)中介(用户)。交互点是外部或内部通道。
- 中介(用户)服务器(受害者)。激活是一个内部通道。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
千鸟 |
|
|
跨站请求伪造(CSRF) |
OWASP十大2007 |
A5 |
确切的 |
跨站请求伪造(CSRF) |
WASC |
9 |
|
跨站点请求伪造 |
引用
迈克尔•霍华德(REF-44)大卫·勒布朗和Viega约翰。软件安全的“24宗罪”。“罪恶之2:服务器相关的漏洞(XSS, XSRF和响应分裂)。”Page 37. McGraw-Hill. 2010. |
|
|
|
|
|
|
|
|
|
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2006-07-19 |
千鸟 |
|
|
修改 |
修改日期 |
修饰符 |
组织 |
2008-07-01 |
Eric Dalci |
Cigital |
更新Time_of_Introduction |
2008-09-08 |
CWE内容团队 |
主教法冠 |
更新Alternate_Terms、描述关系,Other_Notes, Relationship_Notes Taxonomy_Mappings |
2009-01-12 |
CWE内容团队 |
主教法冠 |
更新Applicable_Platforms、描述Likelihood_of_Exploit、Observed_Examples Other_Notes, Potential_Mitigations,引用,Relationship_Notes,关系,Research_Gaps Theoretical_Notes |
2009-03-10 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2009-05-20 |
汤姆Stracener |
|
添加演示示例配置文件。 |
2009-05-27 |
CWE内容团队 |
主教法冠 |
更新Demonstrative_Examples Related_Attack_Patterns |
2009-12-28 |
CWE内容团队 |
主教法冠 |
更新Common_Consequences、Demonstrative_Examples Detection_Factors、Likelihood_of_Exploit Observed_Examples, Potential_Mitigations Time_of_Introduction |
2010-02-16 |
CWE内容团队 |
主教法冠 |
更新Applicable_Platforms Detection_Factors、引用关系,Taxonomy_Mappings |
2010-06-21 |
CWE内容团队 |
主教法冠 |
更新Common_Consequences、Detection_Factors Potential_Mitigations、引用关系 |
2010-09-27 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2011-03-29 |
CWE内容团队 |
主教法冠 |
更新描述 |
2011-06-01 |
CWE内容团队 |
主教法冠 |
更新Common_Consequences |
2011-06-27 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2011-09-13 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations,引用 |
2012-05-11 |
CWE内容团队 |
主教法冠 |
更新Related_Attack_Patterns、人际关系 |
2012-10-30 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2013-02-21 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2013-07-17 |
CWE内容团队 |
主教法冠 |
更新引用关系 |
2014-07-30 |
CWE内容团队 |
主教法冠 |
更新Detection_Factors |
2015-12-07 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2017-11-08 |
CWE内容团队 |
主教法冠 |
更新Applicable_Platforms、Likelihood_of_Exploit Modes_of_Introduction、引用关系 |
2018-03-27 |
CWE内容团队 |
主教法冠 |
更新引用,Relationship_Notes Research_Gaps |
2019-09-19 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2020-02-24 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2020-06-25 |
CWE内容团队 |
主教法冠 |
更新的关系,Theoretical_Notes |
2020-08-20 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2021-07-20 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2021-10-28 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2022-06-28 |
CWE内容团队 |
主教法冠 |
更新的关系 |
描述
产品,复制或克隆一个资源,不设置资源的权限或访问控制直到复制完成,让资源暴露于其他领域,而复制。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
实现 |
常见的例子发生在文件档案提取,产品开始提取与不安全的默认权限,只有集最后的权限(如档案中指定)一旦复制完成。归档文件越大,越大时间窗口的竞态条件。 这个弱点也发生在一些操作系统实用程序执行的深度嵌套包含大量文件的目录。 这个弱点可以发生在任何类型的功能,包括复制对象或资源在多用户环境中,包括在应用程序级别。例如,文档管理系统可以允许用户复制私人文件,但是如果它不设置新副本尽快是私有副本开始,然后其他用户可以查看文档复制时仍然发生。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
观察到的例子
参考 |
描述 |
|
归档器解压缩文件和公开权限,然后将权限设置为指定的档案。 |
|
产品将一个新对象插入数据库之前设置对象的权限,引入竞态条件。 |
|
错误文件权限执行chmod之前疲软。 |
|
使用硬链接档案权限问题。 |
|
数据库产品创建文件初始化之前人人可写的setuid位,导致修改可执行文件。 |
弱点Ordinalities
Ordinality |
描述 |
主 |
(其他弱点的弱点存在独立的) |
笔记
研究的差距
超。似乎这个弱点可能发生在任何情况下,一个复杂的或大型复制操作发生时,当资源可以用于其他领域就被创建,但在其初始化完成。
引用
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第9章,“许可的种族”,533页。1版。艾迪生卫斯理》2006。 |
描述
一个用户进行身份验证,或建立一个新的用户会话,无效任何现有的会话标识符给攻击者窃取身份验证会话的机会。
扩展描述
这种情况下通常观察到当:
- 一个web应用程序对用户进行身份验证没有首先使现有会话失效,从而继续使用会话已经与用户相关联。
- 攻击者能够迫使一个已知的会话标识符在一个用户,这样,一旦用户进行身份验证,攻击者可以访问经过身份验证的会话。
- 应用程序或容器使用可预测的会话标识符。会话固定通用利用的漏洞,攻击者在一个web应用程序创建一个新会话和记录相关的会话标识符。攻击者然后导致受害者副,并可能进行身份验证,对服务器使用这个会话标识符,允许攻击者访问用户的帐户通过活动会话。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
610年 |
在另一个球体外部控制的参考资源 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
610年 |
在另一个球体外部控制的参考资源 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关视图”架构概念”(cwe - 1008)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1018年 |
管理用户会话 |
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示范例子
示例1
下面的示例显示了一个代码片段从J2EE web应用程序,应用程序对用户进行身份验证LoginContext.login()如果不首先调用HttpSession.invalidate ()。
私人空间身份验证(LoginContext lc, HttpSession会话)抛出LoginException {
… lc.login (); … }
为了利用上面的代码中,攻击者可以首先创建一个会话(也许通过登录到应用程序)从公共终端,记录会话标识符指定的应用程序,并重置浏览器登录页面。接下来,一个受害者坐在相同的公共码头,通知浏览器打开网站的登录页面,并进入凭证来验证应用程序。负责验证的代码受害者继续使用已经存在的会话标识符,现在攻击者只需使用之前记录的会话标识符来访问受害者的活动会话,提供几乎不受限制的访问受害者的会话的生命周期。即使一个脆弱的应用程序,这里所描述的特定攻击的成功依赖于几个因素在攻击者的支持工作:访问的公共终端,能够破坏会话保持积极,受害者感兴趣的公众终端上登录到脆弱的应用程序。
在大多数情况下,前两个是可以克服的挑战有足够的投资时间。找到一个受害者是谁使用公共终端和感兴趣的登录到脆弱的应用程序是可行的,只要这个网站是相当受欢迎的。网站是鲜为人知的,感兴趣的受害者的几率越低使用公共终端和成功的机会越低对上述攻击向量。在利用会话固定攻击者所面临的最大挑战弱点是诱导受害者进行身份验证对脆弱的应用程序使用一个会话标识符攻击者。
在上面的例子中,这是攻击者通过直接的方法,不是微妙和不适当规模的攻击涉及不知名的网站。然而,不要误自满;攻击者有许多工具在他们的腰带,帮助绕过这种攻击向量的局限性。最常见的技术被攻击者采用涉及利用跨站点脚本或HTTP响应分裂漏洞在目标网站[12]。欺骗受害者到提交恶意请求一个脆弱的应用程序,反映了受害者的JavaScript或其他代码回到浏览器,攻击者可以创建一个饼干,会导致受害者重用一个会话标识符由攻击者控制的。值得注意的是,饼干往往与顶级域与一个给定的URL。如果多个应用程序驻留在相同的顶级域名,如bank.example.com和recipes.example.com,一个漏洞在一个应用程序可以允许攻击者设置cookie固定会话标识符,将用于所有交互与任何应用程序域example.com [29]。
示例2
下面的示例显示了一个代码片段从J2EE web应用程序,应用程序对用户进行身份验证直接发布<代码> j_security_check > < /代码,通常并不能否定现有的会话在处理之前登录请求。
<形式方法=“POST”action = " j_security_check " >
< input type = " text " name = " j_username " > < input type = " text " name = " j_password " > > < /形式
潜在的缓解措施
阶段:体系结构和设计
任何现有的会话标识符无效授权之前一个新的用户会话。 |
阶段:体系结构和设计
ASP等平台,不产生新的值sessionid饼干,利用二次饼干。在这种方法中,二级饼干在用户的浏览器设置为一个随机的值和一个会话变量设置为相同的值。如果会话变量和cookie的值不匹配,使会话无效,迫使用户再次登录。 |
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
笔记
其他
其他的攻击向量包括基于DNS中毒及相关网络的攻击,攻击者会导致用户访问恶意网站重定向请求的一个有效的网站。网络攻击通常涉及一个物理存在基于受害者的网络或控制的机器在网络上妥协,这使得他们更难利用远程,但他们的意义不容忽视。少安全会话管理机制,比如Apache Tomcat的默认实现,允许会话标识符通常将在饼干上指定的URL,这使得攻击者造成受害者使用一个固定的会话标识符仅仅通过电子邮件恶意URL。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
7有害的王国 |
|
|
会话固定 |
OWASP十大2004 |
A3 |
CWE更具体 |
破碎的认证和会话管理 |
WASC |
37 |
|
会话固定 |
引用
描述
产品打开一个文件或目录时,没有充分考虑解决的文件是一个符号链接时预期的控制范围以外的目标。这可能允许攻击者造成产品使用未经授权的文件。
复合组件
自然 |
类型 |
ID |
的名字 |
需要 |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
362年 |
使用共享资源与不当同步并发执行(“竞争条件”) |
需要 |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
340年 |
一代的可预测的数字或标识符 |
需要 |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
386年 |
符号名称映射到正确的对象 |
需要 |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
732年 |
不正确的权限分配的关键资源 |
扩展描述
产品,允许UNIX符号链接(符号链接)作为路径的一部分,无论是内部代码或通过用户输入可以允许攻击者恶搞符号链接和遍历文件系统,以意想不到的地方或访问任意文件。符号链接可以允许攻击者读/写/腐败的一个文件,他们最初没有权限访问。
替代条款
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
实现 |
这些临时文件或特权程序通常报道。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
利用的可能性
观察到的例子
参考 |
描述 |
|
一些版本的Perl遵循符号链接时使用- e选项,它允许本地用户覆盖任意文件通过一个符号链接攻击。 |
|
文本编辑器创建救援时遵循符号链接复制在异常退出,它允许本地用户覆盖其他用户的文件。 |
|
防病毒更新允许本地用户创建或添加到任意文件通过一个符号链接攻击一个日志文件。 |
|
符号链接攻击允许本地用户覆盖文件。 |
|
可能的有趣的例子 |
|
二阶符号链接漏洞 |
|
二阶符号链接漏洞 |
|
符号链接在Python程序 |
|
Setuid产品允许文件阅读通过替换一个文件正在编辑符号链接到目标文件,解析失败时泄露导致的错误消息。 |
|
信号引起抛售,符号链接。 |
|
Libcontainer用于码头工人引擎允许本地用户逃避集装箱化和写作上的任意文件通过一个符号链接攻击主机系统在一个图像与一个容器。 |
|
在MySQL数据库部署工具,恶意用户可能会起草一份打包tarball包含符号链接文件外部目标一旦打开,将执行。 |
|
“Zip”漏洞Go-based开放容器倡议(OCI)注册产品允许写作目的以外的任意文件目录通过符号链接或gzip压缩文件的硬链接。 |
潜在的缓解措施
实施阶段:
符号链接攻击经常发生当一个程序创建一个存储文件/ tmp目录链接。访问目录应该局限于程序来防止攻击者操纵文件。 |
阶段:体系结构和设计
遵循最小特权原则分配访问权限实体在一个软件系统。
拒绝访问一个文件可以防止攻击者替换该文件链接到一个敏感文件。确保良好的系统提供保护区的划分,可以信任。
|
弱点Ordinalities
Ordinality |
描述 |
合成 |
(缺点是通常与其他弱点的存在) |
笔记
研究的差距
符号链接漏洞经常发现在C和壳牌项目,但所有编程语言可以有这个问题。即使外壳程序可能低报。
“二阶符号链接漏洞”在调用其他程序的程序可能存在符号链接。他们很少报道,但可能会相当普遍使用过程调用时(ref - 493]。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
千鸟 |
|
|
UNIX符号链接后 |
引用
|
|
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第9章,“符号链接攻击”,518页。1版。艾迪生卫斯理》2006。 |
|