专业信息安全服务商

北京网安趋势信息技术有限公司

网站首页 > 新闻资讯

合伙犯罪:移动应用合谋情况调查

2016-08-22 16:26:46 北京网安趋势信息技术有限公司 阅读

合伙犯罪:移动应用合谋情况调查



—Igor Muttik
合伙犯罪很早就已经出现了,现在蔓延到了您的移动设备上。移动操作系统加入了
许多技术将应用程序隔离在沙盒中,从而限制它们的功能,并以非常细致的级别明
确控制它们具有什么权限。但是,操作系统也具有完整记录的方式,用于应用程序
跨沙盒边界彼此通信。例如在
Android 中,这通常通过互联网完成,形式基本上为
进程间(或应用程序间)的消息。
为了避开应用程序市场上提供的移动安全工具和恶意软件及隐私过滤器的检测,攻
击者可能通过使用具有敏感权限的应用程序来和接入互联网的另一款应用程序通
信,尝试利用不同功能和权限的多个应用程序来实现自己的目的。这种应用程序合
谋技术更难以被检测到,因为每个应用程序对于大多数工具的表现是良性的,使得
攻击者能够在被发现之前有更长时间侵入更多设备。
作为
McAfee Labs 对于新兴威胁和潜在防御持续调查的一部分,我们的研究人员跟
数所英国大学合作,识别并开发检测移动应用程序中恶意活动的新方法。在
ACiD
中,来自 Intel Security、伦敦城市大学、斯旺西大学和考文垂大学的研究人员已
经开发并在继续开发自动发现和检测合谋应用程序的工具。
在这一关键主题中,我们探讨了移动应用程序合谋的定义和方法,以及我们如何检

测移动设备上的新兴攻击途径并加以防范。


移动应用程序合谋是什么?
为了有效检测合谋应用程序,我们首先需要掌握准确的定义:可用协作方式通过应
用程序间的通信一起执行有害活动的两个或多个应用程序。这需要至少一个应用程
序具有访问受限信息或服务的权限,还需要一个应用程序没有该权限,但是具有设
备外部访问权限,并且能够彼此通信。每个应用程序都可以有目的地或无意地由于
意外数据泄漏而合作,或者包含恶意库或软件开发套件 (SDK)。例如,这些应用程
序可使用共享的空间(所有应用程序均可读取)来交流有关授予的权限的信息,并

确定哪个信息最适合用作数据渗出的突破点或者远程命令的输入点。

QQ截图20160822163246.jpg

为了缩小我们寻找的特性范围,我们定义了三种具体的威胁类型:
信息窃取:具有敏感或机密信息访问权限的应用程序同一个或多个其他应
用程序合作(有意或无意),越过设备的边界发送信息。
财务窃取:应用程序向另一个可进行财务交易或财务 API 调用的应用程序
发送信息。
服务滥用:应用程序可控制系统服务并接收来自一个或多个其他应用程序
的信息或命令。
例如,文档提取器套件依靠应用程序
A 来查找敏感性文档,这些敏感性文档传递至
应用程序
B 以发送给远程服务器。或者是位置窃取套件读取应用程序 C 的位置信
息,并使用应用程序
D 将其发送至攻击者的控制服务器。这些情况必须与合法应用
程序间的信息共享与合作区分开来,例如从应用程序
C 读取位置信息以在地图或天
气应用程序中用于提供本地数据。
 

移动应用程序合谋方法
攻击者可使用多种方法来开发和部署合谋移动应用程序。首先是直接在两个或多个
应用程序之间分离恶意和窃取隐私的功能,例如一个应用程序帮助管理您的联系
人,而另一个提供简单的天气更新。攻击者的难点在于部署。只有两个恶意应用程
序安装在同一台移动设备上,这种方法才会成功。恶意发布者通过以同一应用程序
市场和交叉广告为目标,可最大化同时安装合谋应用程序的几率。此类广告可以是
典型的在线广告,或者应用程序内嵌广告。我们可通过调查来自同一来源的应用程
序、明确鼓励共同安装的应用程序或经常一起安装的应用程序来缩小搜索范围。
 

QQ截图20160822163410.jpg

第二个确定的方法是在应用程序开发人员中构建和散布可加入许多应用程序的库,
不过这些应用程序之间需要具备通信能力。例如,市场压力使得应用程序价格较低
(或免费),迫使许多应用程序开发人员在自己的代码中加入广告库。不法第三方
可在库中嵌入应用程序间通信功能,并让两个或多个应用程序合谋而无需知道原始
开发者,而开发人员并不知道自己创建的应用程序包含这种合谋内容。我们可以将
重点调查对象放在使用相同可疑第三方库或
SDK 的应用程序上。
QQ截图20160822163500.jpg

第三种方式是利用第三方应用程序或库中的安全漏洞。如果有已知的应用程序会泄
露数据或违反权限控制,那么另一款应用程序就可以在安全工具修复或拦截之前利
用这一点。通过调查一般配对的应用程序组和已知泄露或漏洞,我们可以缩小搜索
范围。
所有这些方法都有特征可让我们构建有效的工具,发现潜在的合谋应用程序。

检测移动应用程序合谋
Intel Security 和大学威胁研究人员合作,已经开发并将继续开发工具来检测移动
应用程序合谋。虽然移动应用程序的总数量非常多,并且配对组、三元组等的排列
和组合数目更是天文数字,但我们仍然需要一种方法快速筛选出没有合谋的应用程
序。第一步是分析应用程序的功能和权限;如果应用程序没有对敏感数据的访问权
限,或者它们具有相当的权限,则没有合谋的需要。
如果我们查找数据泄露合谋应用程序组,则首先要根据应用程序声明的权限,隔离有
敏感或机密信息、财务进程或系统服务访问权限的应用程序组(敏感应用程序),
然后查找可在设备外部通信的应用程序组(外部应用程序)。没有敏感数据或服务
访问权限以及无法访问互联网的应用程序不需要进一步接受合谋调查。

QQ截图20160822163601.jpg

接下来,我们需要确定在这两个组之间有哪些通信渠道可用。可能性包括 Intents
(Android)
App Extensions (iOS)External Storage (Android)SharedPreferences
(Android)
UserDefaults (iOS)。这些都是有明确文档记录并且操作系统支持的通
信方式。除了这些显式方法,应用程序可使用隐蔽通道,其中一些可能相当难以发
现。例如,操纵智能手机的音量可让一个应用程序对它进行设置,而让另一个程序
来读取它,这是个缓慢但是在一定程度上可靠的应用程序之间位流(因此也可以是
任何消息)的传输方式。
应用程序市场上各种应用程序组可能产生的配对数量非常庞大,对全自动合谋检测
系统带来了巨大的挑战。如果我们加入三个或更多应用程序的排列,这个挑战将变
得几乎无法战胜,因为组合数目会变得极大。因此我们需要使用额外的技术来减小
配对组的数量,寻找潜在的合谋程序,去除不可能有恶意的应用程序,专注分析那
些可能性较高的应用程序。
例如,我们可以比较使用相同可疑库组的所有应用程序,对应用程序执行静态代码分
析,从而查找共用的通信
API,并考虑诸如发布日期、应用程序市场和安装方式等。
要跟踪通信,必须卸载每个应用程序并检查代码。利用掌握的这些信息,我们可以
将应用程序映射至潜在的通信操作,并确定来自我们两个组(敏感应用程序和外部
应用程序)的哪些配对可能在合谋。具体而言,如果敏感应用程序和外部应用程序
以必要的方向共享通信通道,则可能发生合谋。如果在每个组中加入启动程序和终
止程序,该技术也应当能发现三个或更多应用程序的合谋。例如,合谋组必须包含
有敏感信息访问权限并且可在通道
A 上发送信息的应用程序,还要包含具有互联网
访问权限并且可在通道
A 上接收信息的应用程序。或者是具有系统服务访问权限并
且可在通道
B 上接收信息的应用程序,以及具有互联网访问权限并且可在通道 B
发送信息的应用程序。合谋对之间的双向通信并非必要特性。
最近的研究《
Towards Automated Android App Collusion Detection(自动检测
Android 合谋应用) 》显示,市场上所有应用程序中几乎有 85% 可以使用显式
(11.3%) 或隐式 (73.1%) 方法与其他应用程序通信,因此仅利用通信功能,将会产
生大量可能的合谋组。这意味着这种单一方法会产生太多的可疑对象。因此我们必
须更加深入地分析应用程序来消除不正确的怀疑。

QQ截图20160822163647.jpg

加入威胁可能性计算可大幅减少这种数量。利用我们的合谋过滤工具对一组共240
合谋和非合谋应用程序进行检测,结果显示误报率是
3%(七个应用程序被误判为
合谋),而漏报率是
2.5%(六个应用程序被误判为非合谋)。这样的错误率已经有
了不小的改善,但是对实际利用来说仍然显得太高。于是我们利用全代码分析来证明
是否有数据流从一个应用程序传到另一个应用程序。这一最终步骤的成本较高,因为
符号分析需要大量时间,但是会产生决定性并且在数学上经过证明的冲突结论。

现实世界的移动应用程序合谋现象
在配备我们开始研究后所构建的工具之后,我们发现移动应用程序合谋不仅是理论上
存在。我们发现在一组使用特定 Android SDK 的应用程序中,有在网络上运行的应用
程序合谋实例没有被检测到。该 SDK
自 2015 年末起已知存在风险并且可能有害,
且加入了与 21 款应用程序相关的 5000 多个安装包,具有大范围权限。如果将这些
Android 应用程序安装到同一台设备上,它们相互协作就可以绕过 Android 操作系统
的限制,并通过具有最高权限的应用程序响应来自远程控制服务器的命令。
在下图中,三个移动应用程序协商确定哪个具有最高权限。

QQ截图20160822163758.jpg

在协商完成之后,仅具有最高权限的应用程序响应来自远程控制服务器的命令。基
于参与协商的所有应用程序,这可实现最大程度的权限提升,以及最强大的“僵尸
程序”功能。

QQ截图20160822163854.jpg

该组应用程序可以突破操作系统的限制来执行操作,造成隐私和安全违规。但遗憾的
是,之前未发现这些应用程序的协作功能,因为应用程序通常接受的是单独分析。
经由选择具有更多权限的应用程序的此类权限提升是外部恶意应用程序合谋的首个
已知案例。它体现了使用第三方代码(例如广告库和外部 SDK)的重大风险,尤其
是在它们属于闭源并且并非完全受信任的情况下。此问题并非特定于 Android,并
且成为所有移动设备以及采用软件沙盒的虚拟和云环境的严重安全问题。

防范合谋移动应用程序
安全产品供应商通过扫描各个有害的移动应用程序并拦截它们,提供保护平板电脑
和智能手机的产品。移动安全软件不只是拦截具有恶意代码的应用程序,还可以扫
描恶意行为,例如可疑的权限请求,并且允许用户完全阻止这些应用程序。许多安
全产品可在下载恶意应用程序之前保护设备。它们可确定其他的攻击途径,例如恶
意的网站或电子邮件,并提前阻止它们。
利用这些技术也可以阻止合谋移动应用程序,但是难题在于要有技术来识别它们的
合谋行为。最近, Intel Security 和来自多所英国大学的研究人员一起开发了可检测
合谋移动应用程序的工具。 McAfee Labs 研究人员现在手动利用这些工具并计划将
它们部署到自己的自动化移动应用程序分析场中。这样,我们将缩短检测合谋移动
应用程序的时间。 McAfee Labs 和我们的大学合作伙伴已经做出了承诺,公开分享
我们的
ACiD 项目研究成果,以确保对所有用户进行保护。我们将会兑现承诺。

对于期望避开合谋移动应用程序的各个企业,我们建议只使用来自受信任市场和受
信任软件发布商的应用程序。禁止安装来自“未知来源”的移动应用程序的功能也
有助于确保仅安装来自受信任来源的应用程序。此外,要避免使用包含嵌入式广告
的软件,因为过多的广告表明存在多个广告库,从而增加了合谋的可能性。了解移
动应用程序的评级和评论也是验证其他应用程序用户是否遇到过安全问题的好办
法。最后,不要对设备进行“破解”或“越狱”,因为这样会让应用程序获得系统
级访问权限且可能执行恶意活动。
应用程序开发人员可通过避免使用未知的第三方和广告库(尤其是闭源库),从而
改善自己的软件并保护声誉。避免在应用程序中使用多个广告库也是不错的办法。
最后一种措施也会减少移动数据使用,因为每个库会使用额外的数据。
嵌入式防冲突过滤器显然会为市场供应商带来好处,阻止此类应用程序的发布。就
应用程序间通信制定明智的策略并明确禁止开发人员通过合谋违反操作系统限制也
是不错的办法。
合谋属于有效软件隔离的常见问题。此问题在实施软件沙盒的所有环境中都存在
-
其他移动操作系统到服务器场中的虚拟机。我们可以看到如何使用沙盒之间的隐蔽
通信来违反安全规定并造成数据泄露。实施更多更好的隔离是值得肯定的,并且我
们应当假设攻击者会更加频繁地采用合谋方法来规避这一安全趋势。因此,我们将
继续为移动设备研究和开发合谋检测方法,并将我们的调查扩展至更广的操作系统
范围。
要了解
Intel Security 产品如何帮助防范合谋移动应用程序,请单击此处。

Powered by MetInfo 5.3.11 ©2008-2017 www.metinfo.cn