近年来,Android第三方库的安全问题层出不穷。为了研究第三方游戏库潜在的安全威胁,该文深入分析了21个主流的第三方游戏SDK,并建立了三种过程模型以揭示游戏SDK的实现细节,然后提出了7条
近几年,移动应用程序市场迅速发展。大量Android 应用程序使用第三方库,第三方库通过提供已经实现的具体功能, 使得应用程序的开发更加便利。
有研究表明, 许多应用程序使用超过20 个第三方库[1], 在某些极端情况下,一个应用程序可以引入超过30 种不同的第三方库[2]。在现存的Android 第三方SDK中,游戏类SDK 尤为突出,被应用程序开发者广泛使用。iiMedia Research 显示,2016 年中国手游用户规模达5.23 亿人,市场规模达783.2 亿元[3]。据统计,每个Android 游戏APP 平均使用SDK 的数量达17.5个0。由此可见,游戏类SDK 的使用数量不断上升,在Android 第三方SDK 中占据重要地位。
然而,尽管第三方SDK 在开发中被普遍使用,它们却往往存在潜在安全问题,例如,它们泄露用户私人信息,利用其宿主应用程序的权限或跟踪用户。文献[4]指出中国最大的移动广告提供商Taomike 所提供的广告SDK 被发现存在秘密监视用户的行为;文献[5]指出Google Cloud Messaging 提供的推送消息服务SDK 允许攻击者劫持用户的注册id 并获取用户隐私信息;文献[6]指出主流应用程序内支付服务提供商提供的支付SDK 规定商家使用URL 存储支付命令,这使攻击者很容易获取并篡改支付命令,给用户和商家造成极大经济损失。由此可见,大量第三方SDK 存在严重安全问题,亟待研究与解决。
本文旨在回答以下问题:1) 什么原因导致了游戏SDK 存在安全漏洞?2) 攻击者可能对游戏SDK 执行什么类型的攻击?3) 怎样检测游戏SDK 中存在的安全漏洞?为了解决这些问题,本文对游戏SDK 进行了深层次分析, 包括以下几个方面:1) 通过逆向工程第三方游戏SDK 和相关应用程序, 分析游戏SDK的主要功能及其实现流程,并建立过程模型。2) 总结出一系列规范游戏SDK 的安全规则。3) 举例说明违反这些安全规则后可能遭受的攻击。4) 使用自动化和手动方法结合来检测在游戏SDK,游戏SDK 服务器,游戏应用程序及游戏应用程序服务器上违反安全规则的行为。
2. 相关工作 针对Android 第三方库的分析研究主要包括同源性分析和漏洞分析。在同源性分析方面,Michael Backes 等人[7]提出一种可以精确检测Android 应用程序中使用的第三库的技术,它利用原始的第三方库生成特征文件,然后对文件进行特征匹配,此方法可以应对代码混淆技术,不仅可以检测应用程序中使用的不同库, 还可以检测出所使用的库版本。
Charlie Soh 等人[8]提出一种自动检测第三方库的工具LibSift, 这种检测工具基于应用程序的包依赖图,并采用了模块去耦技术提高识别精度。Ziang Ma 等人[1]首先利用聚类技术收集了大量第三库特征,然后开发了一种叫做LibRadar 的工具,结合静态分析和特征匹配技