 描述
产品的不同行为或发送不同的反应在不同的情况下,可观测到一个未经授权的演员,暴露的安全相关的状态信息产品,如特定的操作是否成功与否。
 扩展描述
差异可以采取多种形式,变化可能在时间、检测控制流,通信如回复或请求,或一般的行为。这些差异可以揭示产品的操作或内部状态信息未经授权的演员。在某些情况下,差异可以被攻击者用来形成一个通道。
 替代条款
 的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
200年 |
暴露敏感信息的未经授权的演员 |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
204年 |
可观察到的响应差异 |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
205年 |
可观察到的行为差异 |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
208年 |
可观测的时间差异 |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
1300年 |
保护不当的物理通道 |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
1303年 |
不透明的Microarchitectural资源的共享 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
200年 |
暴露敏感信息的未经授权的演员 |
 模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
 常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 访问控制
|
攻击者可以获得系统的敏感信息,包括身份验证信息,可能允许攻击者访问系统。 |
|
保密
|
容易受到side-channel-attacks加密原语时,这可以用来揭示未加密的明文在最坏的情况下。 |
|
 示范例子
示例1
下面的代码检查的有效性提供的用户名和密码并通知用户的成功或失败的登录。
我的$ username =参数(用户名); 我的密码美元=参数(“密码”);
如果(IsValidUsername(用户名)= = 1) {
如果(IsValidPassword(用户名、密码)美元= = 1) {
打印“登录成功”; } 其他的 {
打印“登录失败,不正确的密码”; } } 其他的 {
打印“登录失败,未知的用户名”; }
在上面的代码中,当一个不正确的用户名有不同的信息提供,而当用户名是正确的,但密码是错误的。这种差异使潜在的攻击者了解登录的状态函数,并可能允许攻击者发现一个有效的用户名通过尝试不同的值,直到返回不正确的密码信息。本质上,这使得攻击者更容易获得必要的身份验证凭证的一半。
虽然这种类型的信息对用户是有用的,也有用一个潜在的攻击者。在上面的示例中,消息都失败的情况下应该是一样的,如:
示例2
处理时间不均匀引起时间通道。
假设一个算法来实现一个加密程序本身没问题,但是时间输出加密程序的结果取决于输入明文和密钥之间的关系(例如,假设,如果明文类似于钥匙,它会跑得很快)。
在上面的示例中,攻击者可能不同输入,然后观察不同处理时间(因为不同的明文采取不同的时间)。这可能是用来推断的关键信息。
人工延误可能被添加到确保所有计算花同等的时间执行。
示例3
假设一个加密程序内存访问模式是依赖于密钥。
攻击者可以通过知道具体恢复的关键已经访问的内存位置。这些值存储在内存位置是无关紧要的。加密程序的内存访问会影响处理器缓存的状态。如果缓存上下文之间共享资源,加密程序完成后,攻击者在不同的执行上下文可以发现内存位置的程序访问通过测量自己的内存访问的时间完成。
 观察到的例子
参考 |
描述 |
|
在RAPL界面中可观察到的差异对于一些英特尔处理器允许信息披露。 |
|
和其他人,用“. .”袭击和监控错误响应,所以有重叠目录遍历。 |
|
枚举的有效用户名不一致的反应 |
|
帐号枚举通过不一致的反应。 |
|
用户通过差异枚举错误消息。 |
|
用户通过差异枚举错误消息。 |
|
公告牌显示不同的错误消息,当一个用户存在与否,这使得它更容易为远程攻击者识别有效用户,进行暴力破解密码猜测攻击。 |
|
操作系统、禁用直接远程登录时显示一个不同的消息如果密码是正确的,它允许远程攻击者想通过暴力破解密码的方法。 |
|
产品允许远程攻击者确定港口正在过滤,因为响应数据包TTL比默认的TTL是不同的。 |
|
产品设置不同的TTL港口时比当它没有被过滤,过滤,允许远程攻击者识别过滤港口通过TTL比较。 |
|
产品修改TCP / IP堆栈和ICMP错误消息以一种不同寻常的方式显示该产品是在使用。 |
|
由响应行为infoleak SYN-FIN包。 |
|
产品比指定的管理员可能会产生不同的反应,可能导致信息泄漏。 |
|
版本控制系统允许远程攻击者决定任意的文件和目录的存在通过- x命令另一个历史文件,导致不同的错误信息返回。 |
|
FTP服务器生成一个错误消息如果不存在的用户名,提示输入密码,远程攻击者可以确定有效的用户名。 |
|
SSL实现不执行一个MAC计算如果使用不正确的分组密码填充,导致信息泄漏(时间差异),可能会使它更容易启动密码攻击依赖于区分填充和MAC验证错误,可能导致提取原始明文的,又称“Vaudenay时机攻击。” |
|
虚拟机允许恶意网站运营商决定的存在文件在客户端通过测量延迟getSystemResource的执行方法。 |
|
产品采用较短的超时时间比一个有效的用户不存在的用户,这使得它更容易为远程攻击者猜测用户名和行为暴力破解密码猜测。 |
|
产品立即发送一个错误消息当用户不存在,它允许远程攻击者通过计时攻击来确定有效的用户名。 |
|
FTP服务器响应在不同的时间当一个给定的用户名存在,它允许远程攻击者识别有效用户名通过时间服务器响应。 |
|
浏览器允许远程攻击者决定任意文件的存在将src属性设置为目标文件名,并使用Javascript来确定web页面立即停止加载,这表明该文件是否存在。 |
 潜在的缓解措施
阶段:体系结构和设计
划分系统“安全”领域信任边界可以明确。不允许走出信任边界和敏感数据时总是小心与舱外的安全区域。
确保适当的划分是建立到系统设计,划分允许和强化特权分离功能。建筑师和设计师应该依靠最小特权原则来决定适当的时间使用特权和特权。
|
实施阶段:
确保错误消息只包含最小的细节,目标受众是有用的,没有其他人。消息需要罢工之间的平衡过于神秘的(可以迷惑用户)或过于详细的(可能揭示超过预期)。不应该透露的消息的方法被用来确定错误。攻击者可以使用详细信息完善或优化他们最初的攻击,从而增加成功的机会。
如果必须捕捉到一些细节错误,记录在日志消息,但想想会发生什么,如果日志消息可以被攻击者。高度敏感的信息,如密码永远不应该被保存到日志文件中。
避免不一致的消息可能会意外地提示攻击者对内部状态,如是否存在一个用户帐户。
|
 会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
 分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
千鸟 |
|
|
差异信息泄露 |
OWASP十大2007 |
A6 |
CWE更具体 |
信息泄漏和错误处理不当 |
OWASP十大2004 |
A7 |
CWE更具体 |
错误处理不当 |
|