AUTHSCOPE:自动化挖掘在线服务中的授权漏洞

作者:{LIG}@ArkTeam

原文作者:Chaoshun Zuo, Qingchuan Zhao, Zhiqiang Lin

原文标题:AUTHSCOPE: Towards Automatic Discovery of Vulnerable Authorizations in Online Services

原文会议:2017 ACM SIGSAC Conference on Computer and Communications Security.

当从客户端访问私人受保护资源时,服务提供商必须实现恰当的访问控制以防止信息泄漏。然而,并不是所有的服务提供商在实现认证和授权时都遵循了最佳做法,导致了各种各样的访问控制漏洞。为了更好地理解这类威胁并识别这些漏洞,本文设计了一个自动化执行移动应用并识别其中访问控制漏洞的工具—AuthScope。

为了实现对于大规模的移动应用中授权漏洞的全自动挖掘,对每一个移动应用程序进行注册是不现实的,因此本文选择实现了Facebook Login作为第三方登录服务的移动应用作为研究对象。

AuthScope的组成如下所示,主要有3个关键部分:


图1 AuthScope的执行过程

1 用户认证后的消息生成。对于Android,每一个活动(activity)都在manifest文件中定义了。通过解析视图的UI元素,然后触发与元素绑定的活动来进行自动化地认证以及产生消息。由于Facebook Login登录的UI元素大多在首页,因此识别并触发登录活动是很容易的,接着本文使用DFS算法来探索下一层应用活动从而触发尽可能多的请求消息。

2 协议字段的识别。在此过程中,首先使用消息序列联配和值差异(Message Alignment and Value Diffing)的方法来识别出请求消息中的协议字段,第一步将两个用户的不同请求消息按照所标记好的序列进行比对,对字段值不相同的字段标记为需要检测的字段,第二步将同一用户在不同时间的相同请求进行比对,对字段值不同的字段取消标记。由此得到最终需要检测的字段。需要注意的是,REST API中,协议字段可能出现在URLs中。

3 漏洞的识别。漏洞的识别主要是通过分析客户端与服务端之间的流量进行的。在此过程中,本文使用中间人代理拦截第一个过程中产生的请求消息,将Alice的请求中待检测的协议字段轮流地替换为Bob相应的请求中的相应的字段值,得到了Alice’s Request2,然后将请求发送给服务端,分析响应结果。若Alice’s Response2与Bob’s Response结果一样,则将其标记为存在访问控制漏洞。本文考虑了对于公共资源的访问,增加了游客的请求响应分析,若游客相应的请求响应结果与认证后的请求响应结果一样,则取消标记。得到最终的检测结果。

最后,本文通过使用Xposed框架来驱动移动应用执行,BurpSuite作为中间人代理以及设计实现的AuthScope对Google Play中4838个流行移动应用进行了测试,识别出来306个应用中的597个0-day漏洞,导致账户劫持和信息泄漏。


发表评论

邮箱地址不会被公开。 必填项已用*标注