写点什么

对现有(不断蔓延)恶意移动软件的检测

2013 年 5 月 28 日

本文首先发布于 Computer 杂志上,现在由 InfoQ & IEEE Computer Society 在此为你呈献。

由于它的超级便携性和易用性,智能手机在多方面提高了我们的日常生活,它不仅提供了对互联网上丰富信息的即时访问,同时也带来了以下的各种功能:信用卡支付,视频会议和语言识别。根据 Gartner 的统计,仅在 2011 年第二季度就有超过 4.28 亿部移动设备售往世界各地,占到目前为止已售出移动设备总数的 25%。 IMS Research 预计到 2016 年底,智能手机的年销售量将超过 10 亿部。

用户对移动手机的依赖不断增加,而这些设备所存储的大量个人信息使得它们成为恶意软件攻击的主要目标。自从 2004 年卡巴斯基实验室发现了移动手机第一个互联网蠕虫Cabir 开始,恶意软件数量就随着智能手机的普及而不断增加。

调查为“现有”(移动应用市场上已有的恶意应用1)恶意移动软件背后的动机提供更好的解释。反过来这些信息又可以帮助移动安全研究者开发更新的技术来防止智能手机受到安全上的威胁。

什么是恶意移动软件?

恶意软件指的就是那些表现出恶意行为的软件,可以大致分类为病毒,僵尸网络,蠕虫和特洛伊木马。最初,恶意软件只是用来强调软件系统的安全漏洞。但它背后的动机已经开始慢慢改变,现在它的作者主要利用它来获取大规模的经济利益。在文献中已经提出了很多检测恶意软件的新技术,并且大多数已被Manuel Egele 和他同事在2011 年进行的全面调查中指出来2。尽管如此,对恶意移动软件的研究还依然处于初级阶段,同时恶意软件的开发者也才刚刚将他们的注意力转移到智能手机上。

除了恶意软件外,移动设备还面临着其它两大威胁:间谍软件和灰色软件1。间谍软件在受害人未知情况下收集类似用户位置,短信和电话记录。间谍软件并不属于非法范畴,因为它并不将信息发送给应用作者。但是未经过设备所有者同意就私自在移动电话上安装个人间谍软件是不道德的。

灰色软件令人厌烦,但是它远不及恶意软件来得严重。举个例子,灰色软件它不会影响计算机运行或收集敏感资料,但是它可能会改变用户的字体颜色或安装烦人的弹出框。灰色软件在智能手机中非常常见,并刚刚处于法律边缘:作者会描述他们的意图以及应用在隐私政策上的行为,但是用户往往直接就点击选择了“同意”,而忽略了声明上真正陈述的内容。

很多研究人员已经将恶意移动软件根据它们的作者意图及应用在行为上的相似度做了分类了1。由该链接获得的表1 总结了其中最重要的例子。

表1. 现有恶意移动软件的行为分类概述

恶意行为

描述

提供新颖和娱乐

主要用于玩乐或炫耀作者的技术能力;并不严重;不会产生有目的破坏。举例: Android.Walkinwat

出售用户信息

秘密收集用户细节,比如:地点,安装软件,下载历史和通讯录;然后将这些细节销售给广告商或市场人员。举例: DroidDreamLight

窃取用户信用

捕捉用户信用,比如:通过秘密监听文本信息获取银行账户信息,通过键盘纪录、文件扫描和发动网络钓鱼攻击获取按键信息。举例:Ikee.B;

操纵提交内容

产生高费用电话或文本信息,可能用于提交类似技术支持,股票报价或成人服务等内容。举例: FakePlayer

发送垃圾短信

发送多条通常包含广告和网络钓鱼链接的垃圾短信给移动电话。举例: Geinimi

操纵搜索引擎优化

提高网站在搜索引擎结果中的排名。举例: Hong TouTou

恶意软件检测技术

可用于检测恶意移动软件及其他安全漏洞的技术有它们各自不同的优点和弱点。

静态分析

静态分析不用通过执行代码来发现应用中的恶意行为或糟糕代码段,是一个快速而相对低廉的方法。当可疑应用程序被第一次评估检测出有任何明显的安全威胁时,图 1 所展示的技术就被广泛用来做初始分析。

图 1a 展示了一个针对 Symbian 系统的恶意软件检测技术 3。该技术使用了 IDA Pro 来解析移动应用和提取系统调用(特征提取)。然后它使用 Centroid Machine, 一个轻量级集群机制, 来将移动应用分类为恶性或良性(异常检测)。然而,对于一个统计学方法(机器学习法),目前恶意软件样本还是太少,仅有 33 个恶性和 49 个良性移动软件?此外,研究人员只在流行的应用上测试了该方法,对于在正常或较冷门的应用上的性能目前还不清楚。

图 1b 展示了 PiOS 的使用,一个推荐在 iOS 应用程序二进制文件上进行静态污点分析的技术 4。PiOS 将移动应用分解,并构建一个控制流程图(CFG)。该分析认为流程路径来自比如:通讯录,当前 GPS 坐标,键盘缓存,唯一设备标识和其他手机相关信息等敏感情报。数据流分析会检测任何由底端传输到同步信息,会导致隐私泄漏的敏感数据。使用 PiOS 测试 Apple 应用商场里 825 个免费应用和 Cydia 的 BigBoss 库里 582 个应用得出,超过 50% 的应用会在用户不知情情况下泄漏唯一设备标识。但是,PiOS 只能在单一应用内检测隐私泄漏,当检测两个或两个以上应用传递链的时候则会失效。

图 1c 展示了一个专门为 Android 推荐的恶意软件检测技术 5。该技术使用 ded,一个 Dalvik 反编译器,来从应用的安装镜像中生成 Java 源代码;然后使用 Fortify SCA ,一个静态代码分析套件,来评估所恢复的源代码。尽管研究人员在多达 1100 个常用应用上测试过该软件,但一般来说,它仅限于那些使用相对较少权限和 API 调用的程序。

动态分析

与静态分析不同,动态分析需要在一个隔离的环境中执行移动应用,比如在一个虚拟机或模拟器上,这样研究人员才能监控该应用的动态行为。研究人员主要在进行污点跟踪或系统调用追踪的时候使用动态分析。

TaintDroid 为 Android 提供了系统级的动态污点跟踪 6。如图 2a 所示,移动应用在 Dalvik 虚拟机上展开了 4 种粒度的污点渗透:变量,方法,信息和文件。污点跟踪将任何来自敏感源的可疑信息都打上标记,比如:地点,话筒,相机及手机其它标识符。该技术通过修改本机的库加载器来确保所有的本地库都在虚拟机中被调用过,进而防止不信任应用直接执行本地方法。最后,动态分析会在数据离开系统前,在网络接口(一个漏洞引爆点)处将任何可能会造成敏感数据泄漏的数据显示出来。

通过使用 TaintDroid 测试了 30 个流行的 Android 第三方应用发现,在用户不知情的情况下,其中有 15 个应用将用户位置信息分享给广告商,7 个将手机标识符分享给远程服务器 6。尽管如此,TaintDroid 可能会出现错误否定或错误肯定的结果。同时,它仅仅关注数据流,对其它漏洞则不予考虑。

Android 应用沙箱(AASandbox)为 Andoird 应用提供了两步分析 7。如图 2b 所示,移动应用通过 AASandbox 来离线执行静态和动态分析。静态分析将应用的二进制镜像文件分解,然后使用分解文件来查看任何可疑模式。动态分析在 Android 模拟器中执行二进制文件并记录系统调用。尽管研究者使用 Android Monkey(ADB Monkey)来生成输入数据,但是还是没有通过实际用户测试来得有效 7。另外,该方法还没有在具有多态行为或加密代码片断的恶意软件上测试过。

应用权限分析

权限在移动应用中起着至关重要的作用:它为用户传递了应用的意图及后台行为。在智能手机里,权限是明确规定的,应用作者必须要申请相应的权限。但是,有些作者会刻意隐藏应用中使用的权限,从而导致了应用漏洞。

图 3 显示了 Kirin,Android 的一个应用认证 8。Kirin 会在应用安装时对其进行一个权限检测。当用户安装一个应用时,Kirin 会提取它的安全配置,然后对应它已有的安全策略规则对其进行检测。如果一个应用没有通过所有的安全策略规则,那么 Kirin 要么将其删除,要么通知用户。

以下就是从一个 Kirin 中提取出来的策略规则例子:

一个应用不可以有 PHONE_STATE,RECORD_AUDIO 或 INTERNET 权限标签

该规则保证了在用户用手机谈话时,应用程序不会录制或访问网站,从而防止了设备端的通话窃听。

通过使用 Kirin 测试 311 个常见应用显示:该规则标志出了 10 个应用,其中有 5 个带有可疑行为 8。Kirin 仅检测应用程序作者的权限请求,但不检查应用如何使用这些权限。

David Barrera 和他的同事在 1100 个 Android 应用上进行了权限检测,并使用自组织图(self-organizing maps:SOMS)将应用及其权限请求之间的关系可视化了 9。尽管如此,SOMs 也只关注应用程序作者的权限请求,而不检查应用如何使用这些权限。

一个包含 100 个付费应用和 856 个免费应用,针对 Android 应用权限请求的研究表明,大约有 93% 的免费应用和 82% 的付费应用中至少含有一个危险的权限请求 10。Internet 权限是最常见的危险权限。但是,仅仅对恶意移动软件进行权限请求检测和分析是不够的;必须同时进行静态或动态分析。

基于云的检测

由于有限的计算能力和能量源,智能手机并不携带功能齐全的安全机制。在一个 Android HTC G1 设备上进行一个简单的文件扫描需要将近 30 分钟,并减少了 2% 电池电量 11。报告显示,一个扫描应用在 HTC G1 上的运行速度要比台式机慢 11.8 倍,这强调了我们需要新的恶意移动软件分析技术 12。

图 4a 显示了 Paranoid Android(PA),一个基于云的恶意软件检测技术,它将安全分析和计算移动到一个远程服务器上,而该服务器承载了多个运行在模拟器上的移动手机副本 11。一个置于智能手机内的追踪器会纪录所有用于回应移动应用执行所需要信息。然后该追踪器将纪录信息传送给基于云的复原器,由复原器在模拟器上重现所有执行。该复原器可以利用云里的丰富资源执行多个安全检查,比如:动态恶意软件分析,内存扫描,异常系统调用检测,和商业病毒扫描。

PA 使用一个代理来暂时存储入站网络流量信息,这样手机就不需要往服务器回发信息,从而节省了能量。而服务器也可以直接联系代理获取所需的网络流量信息来成功重现执行。然而,PA 会导致一些重大开销,比如:增加了 15% 的 CPU 负载;在运行重量级任务时,需要多消耗 30% 能量。还有,由于跟踪系统是在用户空间执行追踪模式,这些调用会导致比本机执行要沉重得多的开销。举个例子,在用户空间跟踪单个类似 read()的系统调用需要 0.7 毫秒,而在内核中只需要 0.1 毫秒。

图 4b 描述了 Crowdroid, 一个针对 Android 基于行为的恶意移动软件检测技术 13。Crowdroid 是个轻量级客户端应用,它监控由目标移动应用产生的系统调用,预处理这些调用,然后发送给云,最后由云的集群技术帮助鉴定该应用是良性还是恶性。对 Crowdroid 的使用不断增加将提高恶意软件检测技术,但是使用该方法一开始可能会出现错误的测试结果,因为目前的样本量依然非常小。另外,用户对于要把他们的应用行为发送给第三方将有什么样的反应,还不大清楚。而且如果完全依赖用户行为的话,其产生的结果可能也不大准确。CloudAV 是一个基于云的防病毒文件扫描机制,但是它缺少相应的功能来检测零时攻击,远程供给和内存驻留攻击 14。

电池寿命监控

由于智能手机的电池能力有限,通过观察电池消耗有时可以鉴定出恶意应用,因为这些恶意软件通常比良性的消耗更多能量。如果正常用户行为,当前电池状态,及其它领域特定细节(比如:信号强度和网络流量)已知的话,则能更准确检测出隐藏的恶意行为。

针对 VirusMeter 的执行能力,研究者已经在 Symbian 系统里相对较小范围的恶意软件上进行了测试 15。尽管如此,由于 VirusMeter 完全依赖以用户为中心的功率模型,不可预测的用户行为及恶意注入假事件会影响功率模型的正确性。另外,该方法对于有多任务功能的智能手机并不适用。

智能手机保护技巧

尽管已经有多种工具和技术可用于检测恶意攻击和保护智能手机,但用户还必须意识到可能的安全威胁及其后果。已经被广为人知的是:用户的疏忽和对可能威胁缺乏意识往往帮助了安全攻击的成功。

以下几个实践可以很好地帮助保护智能手机,防止可能的威胁:

  • 安装一个好的移动安全应用来保护智能手机不受攻击,并在发生可疑事件时通知用户。
  • 从可信的,正式的应用提供商那下载所有移动应用。避免从不可信的第三方应用商店下载任何东西。
  • 在安装应用前,应先阅读评论及其等级评估,哪怕其作者是广为人知的。
  • 在安装过程中,确保阅读应用发出的权限申请。如果有可疑之处,就不要安装应用。最好在网页上留言以帮助其他人。
  • 在不使用 Wi-Fi,蓝牙或红外线的时候,关闭它们。在连接不安全的公共 Wi-Fi 时要小心,其中包括使用防火墙,禁用共享,使用 SSL 或虚拟专用网。
  • 保证应用的更新的同时,确保防火墙的即时更新。
  • 将所有保存在手机里的机密数据加密,并定期备份。确保敏感信息不缓存在本地。
  • 在任何可能的情况下,为机密文件和应用设置密码。
  • 不要点击任何可疑或不可靠的互联网连接。如果绝对需要的话,通过在浏览器上键入其 URL 来访问,不要在浏览器上拷贝粘贴链接。这有助于防止手机受到驱动式下载攻击。
  • 始终监视电池寿命,短信和通话费用。发现任何不寻常行为应及时对最近安装应用进行一次彻底检查。很有可能该手机已经受到安全攻击了。
  • 最后,如果手机被偷了,应远程删除所有应用、联系人和机密数据,然后使用设备唯一标识 ID 来阻止被盗手机。

就算是一个有效的移动恶意软件检测工具,也几乎不能做到零失误。因此,遵循这些好的实践能帮助防止智能手机遭受现有大多数恶意软件威胁。

恶意移动软件不仅仅是一段恶意代码;它正在迅速成长,而且与地下经济紧密相连。因此,防止移动恶意软件攻击已经成为关键,而智能手机安全研究同时关注于检测和预防恶意应用感染移动设备。

由于智能手机有限的资源,能用来检测移动安全攻击的度量是有限的。为了解决资源有限问题,未来移动安全机制将充分利用云计算和分布式计算能力。

为了防止用户从不可信的第三方市场下载移动应用,智能手机制造商和平台开发者应确保移动设备得到了充分保障。智能手机新功能,比如:近距离无线通讯(NFC)支付服务,由于它们可能取代信用卡和物理纸币,将成为恶意软件作者下一个主要攻击目标。基于 NFC 的支付应用程序可以通过逆向工程接触存储的信用卡凭证,甚至开发出恶意软件来模拟一个合法软件。这些威胁可以通过对存储机密数据访问部署强大的加密机制,以及限制非授权开发者访问 NFC 卡来减轻。

最后,让用户参与到智能手机生态系统是成功实现大幅度降低恶意软件攻击的关键。

参考

1 A.P. Felt et al., “A Survey of Mobile Malware in the Wild,” Proc. ACM Workshop Security and Privacy in Mobile Devices (SPMD 11), ACM, 2011, pp. 3-14.

2 M. Egele et al., “ A Survey on Automated Dynamic Malware Analysis Techniques and Tools ,”ACM Computing Surveys, 2012;

3 A.D. Schmidt et al., “Detecting Symbian OS Malware through Static Function Call Analysis,”Proc. 4th Int_’_l Conf. Malicious and Unwanted Software (Malware 09), IEEE, 2009, pp. 15-22.

4 M. Egele et al., “ PiOS: Detecting Privacy Leaks in iOS Applications ,”Proc. ISOC Network and Distributed System Security Symp. (NDSS 11), ISOC, 2011;

5 W. Enck et al., “ A Study of Android Application Security, Proc. 20th Usenix Security Symp., Usenix, 2011;

6 W. Enck, “ TaintDroid: An Information-Flow Tracking System for Real-Time Privacy Monitoring on Smartphones ,”Proc. 9th UsenixSymp. Operating Systems Design and Implementation (OSDI 10), Usenix, 2010;

7 T. Blasing et al., “An Android Application Sandbox System for Suspicious Software Detection,”Proc. 5th Int_’_l Conf. Malicious and Unwanted Software (Malware 10), ACM, 2010, pp. 55-62.

8 W. Enck, M. Ongtang, and P. McDaniel, “On Lightweight Mobile Phone Application Certification,”Proc. 16th ACM Conf. Computer and Communications Security (CCS 09), ACM, 2009, pp. 235-245.

9 D. Barrera et al., “A Methodology for Empirical Analysis of Permission-Based Security Models and Its Application to Android,”Proc. 17th ACM Conf. Computer and Communications Security (CCS 10), ACM, 2010, pp. 73-84.

10 A.P. Felt, K. Greenwood, and D. Wagner, “ The Effectiveness of Application Permissions ,”Proc. 2nd Usenix Conf. Web Application Development (WebApps 11), Usenix 2011;

11 G. Portokalidis et al., “Paranoid Android: Versatile Protection for Smartphones,”Proc. Ann. Computer Security Applications Conf. (ACSAC 10) ACM, 2010, pp. 347-356.

12 B.-G. Chun and P. Maniatis, “Augmented Smartphone Applications Through Clone Cloud Execution,”Proc. 12th Conf. Hot Topics in Operating Systems (HotOS 09), ACM, 2009, pp. 8-8.

13 I. Burguera, U. Zurutuza, and S. Nadjm-Tehrani, “Crowdroid: Behavior-Based Malware Detection System for Android,”Proc. ACM Workshop Security and Privacy in Mobile Devices (SPMD 11), ACM, 2011, pp. 15-26.

14 J. Oberheide, E. Cooke, and F. Jahanian, “CloudAV: N-Version Antivirus in the Network Cloud,”Proc. 17th Conf. Security Symp.,Usenix, 2008, pp. 91-106.

15 L.G. Liu, Y. Zhang, and S. Chen, “VirusMeter: Preventing Your Cellphone from Spies,”Proc. Int_’_l Symp. Research in Attacks, Intrusions, and Defenses (RAID 09), LNCS 5758, Springer, 2009, pp. 244-264.

关于作者

MahinthanChandramohan 是一名来自新加坡南洋科技大学,电气与电子工程学院的研究生。他的研究关注于检测和分析基于行为的恶意软件。Chandramohan 从南洋科技大学获得了计算机工程的学士学位。可以通过此邮箱: mahintha001@ntu.edu.sg 联系到他。

HeeBengKuan Tan 也是南洋科技大学,电气与电子工程学院信息工程部门的一名副教授。他的研究关注于软件安全和软件测试及分析。Tan 从新加坡国立大学获得了计算机科学的博士学位。可以通过此邮箱: ibktan@ ntu.edu.sg 联系到他。

查看英文原文: Detection of Mobile Malware in the Wild

2013 年 5 月 28 日 10:382382
用户头像

发布了 39 篇内容, 共 10.6 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

日防夜防,“隐私窃贼“难防? 手把手教你如何使用OPPO手机管理应用权限

OPPO安全

安全 隐私保护 数据隐私 sdk

手把手教程:基于环信4小时开发一个视频会议APP【附源码】

环信

车队管理软件

samhuang

区块链支付系统开发,数字货币支付承兑商APP模式搭建

13530558032

合约跟单系统开发,合约跟单软件定制开发

13530558032

Spring 5 中文解析核心篇-IoC容器之BeanDefinition继承与容器拓展点

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之类路径扫描和组件管理

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之SpEL表达式

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之AOP编程(上)

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之AOP编程(下)

青年IT男

Spring5 Spring Framework

企业表格技术与风险指标补录系统

Geek_Willie

SpreadJS

Spring 5 中文解析核心篇-IoC容器之基于Java容器配置

青年IT男

Spring5 Spring Framework

为什么企业自主开发软件时,都会使用统一的模块化框架式开发平台?

Philips

敏捷开发 代码优化 框架设计 框架开发 标准框架

Spring 5 中文解析核心篇-IoC容器之Spring AOP API

青年IT男

Spring5 Spring Framework

从RainbowBridge看Js与Java交互中的安全漏洞

OPPO安全

安全 安全漏洞

Redis 持久化 --RDB

是老郭啊

redis redis持久化 aof rdb

手把手带你写Node.JS版本小游戏

华为云开发者社区

Java node.js Node 华为云 剪刀石头布

CSS常用样式——绘制各种角度的三角形(1)

程序员学院

CSS css3 CSS小技巧

数字货币钱包软件开发方案,区块链数字货币钱包源码

13530558032

敏捷转型谁先动:老总,项目经理or团队

华为云开发者社区

项目管理 敏捷 敏捷开发 团队 华为云

Spring 5 中文解析核心篇-IoC容器之Environment抽象

青年IT男

Spring5 Spring Framework

软件工程开发之道:了解能力和复杂度是前提

华为云开发者社区

软件工程 开发 项目 代码 复杂度

基于环信sdk在uni-app框架中快速开发一款多平台社交Demo

环信

区块链usdt承兑商支付系统开发 区块链应用开发

电微13828808271

USDT承兑支付系统开发

长期坚持运动,生活真的改变了吗?

空山

读书 运动 健身

Spring 5 中文解析核心篇-IoC容器之基于注解的容器配置

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之JSR330标准注解

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之ApplicationContext与BeanFactory

青年IT男

Spring5 Spring Framework

区块链数字货币交易所开发,数字交易平台搭建

13530558032

iWebExcel 协同数据填报和在线分析平台

Geek_Willie

SpreadJS

Centos7 mongodb安装全攻略

红泥小壶

mongodb

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

对现有(不断蔓延)恶意移动软件的检测-InfoQ