文摘
目前,Android是全球领先的移动操作系统的用户。在安全方面,安卓已经重大挑战尽管Android设计师的努力为应用程序提供一个安全的环境。在本文中,我们目前的多次袭击针对Android系统的消息传递框架。我们的重点是SMS, USSD和它们相关的安全在Android的进化和相应的开发相关的攻击。同时,我们阐明了Android负责这些攻击的元素。此外,我们提出一个入侵检测系统(IDS)的体系结构,承诺阻止SMS消息传递的攻击。我们的id显示87.50%的检出率与零误报。
1。介绍
智能手机已经成为我们生活不可分割的一部分,连同他们的巨大能力。写这个的时候工作,最先进的智能手机是三星Galaxy S4。S4实际上是一个小,但非常强大的设备执行非常复杂的计算和通信任务的能力。在软件方面,Android操作系统(OS),几年来,选择三星手机的操作系统。最近的统计数据明显表明,Android在智能手机市场上占据主导地位在欧洲和中国为70.4% (1]。谷歌声称,全球超过100万的Android设备被激活每一天(2]。Android在2008年首次发布,之后7开发代号,超过9个版本了(2]。Android用户正在使用Android的姜饼版本(36.4%),紧随其后的是4.1版本的软心豆粒糖(29%),然后冰淇淋三明治(25.6%)。Android设计的开放操作系统,是由两个许可证。GNU公共许可证v2 (GPLv2)是用于内核和Apache 2.0许可协议。使用Apache许可的原因是由于更少的限制自由出版工作,如不需要披露的源代码,非常吸引人的方面对制造商(3]。另一方面,用户可以访问操作系统的源代码,可以使用公开可用的应用程序编程接口(API)来构建应用程序和发布的Android应用市场(2]。这种哲学丰富了Android市场2012年9月与超过675000个应用程序(4]。此外,谷歌宣布2013年5月,超过480亿个应用程序已经从市场下载,与每月25亿应用程序安装5]。这个声望是Android的黑暗的一面;事实上,八百万年新移动应用程序被迈克菲在2012年4月到6月之间恶意软件(6]。此外,f - secure报道,Android恶意软件的最大份额,估计在2012年最后一个季度的96%,增加了两个较前季(7]。
这份报告在6)补充说,新发现的问题源自于短消息服务(SMS)恶意软件为基础,移动僵尸网络、间谍软件、和破坏性的木马。作为一个例子,“木马!SMSZombie”, SMS Android木马,发现2012年7月,感染了500000手机在中国。许多金融交易和支付处理在中国使用短信;能够拦截短信载荷和发送SMS短信的特权授予这个木马的能力执行多次袭击(8]。2012年9月,一个恶意的安卓游戏应用检测及其开发人员罚款77500美元。这个程序使用SMS为了让用户订阅一个非免费服务,据估计,收集了397000美元(9]。也就在同一个月,“FakeInst”被发现。它是一个木马,经常伪装成一个基本的文本交换应用程序而秘密默默地通过发送短信订阅一些服务。据报道,这个木马被盗1000万美元(10]。
在本文中,我们讨论了Android操作系统的主要功能和漏洞,使开发和感染恶意软件通过短信。此外,我们将演示如何利用部署android智能手机恶意软件使用操作的服务作为媒介。一般来说,这种类型的恶意软件从两党依靠漏洞:电信运营商一方面和另一方面,Android操作系统。对于前者,很多移动运营商使用SMS短信转移单位/信用两个移动用户之间不需要任何形式的验证/授权从手机发送消息。单位/学分是指用户平衡或通话时间,可以用来打电话,发送/接收短信或者上网。例如,用户想转让单位建立一个结构的定义文本通过输入两个元素:他们想要从他们的数量平衡和受益人的手机号码。起草的消息后,用户将其发送到一个特定的数字,然后操作员完成事务通过资产转移。这可以扩展到其他潜在的金融交易都是通过短信。至于针对Android的漏洞,问题包括两个设计特点有关安卓手机短信的发送和接收方式。为了演示这些漏洞,我们可以构建和测试一个概念验证恶意手机应用程序。这个恶意软件伪装成正常的消息传递应用程序,而在现实中这将是秘密进行信用转移用户不知情的情况下,同时抑制从运营商收到任何确认消息。
此外,作为安卓的发展安全的一部分,4.2版本的操作系统使用了一个新的机制,以防止手机短信传播的攻击。我们将讨论这种机制是如何工作的和现在的新程序设计中的一个漏洞。这个漏洞允许我们实现一个解决方案通过一个特定的攻击者模型。因此,新的机制没有有效并保持信贷用户攻击的风险转移,一些短信,短信的僵尸网络。
此外,我们将提出一种新型攻击非结构化补充服务数据(USSD)转移。大多数运营商依赖USSD为了执行许多操作,如充电,信贷转让、平衡检查,和许多其他的操作。出于这个原因,USSD代表一个高价值目标,类似于黑客为了获得巨大的利益在SMS的攻击。通过一个概念验证应用程序设计,我们将演示如何良性的电话拨号器可以有恶意组件允许USSD-based攻击。
根据我们进行了调查,我们确定了20多家移动运营商使用SMS作为单位的服务或它的一个变体/用户之间信用转帐。这些运营商地域分布在28个国家(有些运营商出现在不止一个国家)。因此,受到用户和运营商的数量风险是巨大的。同样,USSD使用世界各地普遍存在。
为了解决基于短信的攻击在Android上,我们提出一个anomaly-based入侵检测系统(IDS)。异常检测识别不可接受的偏离预期行为。典型的方法是收集“正常的”配置文件并使用它们来检测异常值。近年来,复杂的技术介绍了加强检测。这些技术的例子包括使用递归定量分析以及机器学习为了提高异常捕获当面对一个复杂和非线性网络流量动态(11]。此外,这些技术还解决过时的问题获得的信息用于确定正常行为和相应的检测异常行为。使用,限制了玻耳兹曼机为了使入侵探测器学习动态反常行为(12]。关于安卓系统解决方案,研究团体已经过去许多提出的解决方案,实际上是非常吸引人的,但是不幸的是不能使用的终端用户有效地由于高需求id。这些需求是高特权,或者重大修改操作系统,和一般操作系统版本特定的需求,可能一个补丁,有时候需要花几个月的时间来变得可用。为此,我们提出一个IDS驻留在应用程序级别的解决方案。我们IDS监视许多从系统功能和构建一个每个应用分数以查明侵略者。
本文的其余部分组织如下。部分2提出了相关工作。部分3提出了一些Android相关工作背景,和部分4,5,6呈现不同的攻击。我们详细标识设计、测试和分析部分7。最后,我们总结论文部分8。
2。文献综述
Golde能找到大量的漏洞在SMS中使用的实现大部分功能手机市场上尽管亲密这些手机的操作系统(13]。他展示了短信漏洞可以被用来从网络断开电话,结束调用,崩溃,重启。此外,拒绝服务(DoS)病例也因为一些测试的手机短信之前崩溃承认,所以印象下的网络消息没有得到交付,因此不断转播的。此外,他展示了一个用户身份模块(SIM)数据下载(远程管理工具使用的运营商管理SIM卡),通过短信直接发送到SIM(或USIM, SIM卡用于第三代或3 g网络),可以操纵攻击手机将从手机发送短信到任何攻击者指定数量,这一过程通过该用户的单位/学分可以排水缓慢。此外,他展示了这最后的特性可以用来执行DoS攻击特定的手机号码。特雷诺等人如何恶意SMS消息传递和有害的网络(14]。许多移动运营商提供一个基于互联网的服务,通过它用户可以直接从网络发送SMS短信手机连接到运营商网络。这个服务,如果利用,会导致DoS攻击,从而防止移动用户打电话在目标城市。穆力纳和米勒提出了一个通用框架,可以使用专门为测试和监控与智能手机的短信15]。尽管许多研究了智能手机在15),我们的主要兴趣是android的。在他们的工作,他们引入了一个方法来注入消息和监控电话通过修改收音机界面层所使用的串行线与现代通信。马匹et al。16)是最早确定潜在威胁来自智能手机和互联网电话网络的互连。他们演示了如何使用增强的消息传递服务(EMS)、短信的一个增强版本,可以携带恶意二进制数据。以简单的形式,WAP-Push短信,假装源于运营商,可以用来提供一个恶意的应用程序的URL。为了实现后者的攻击,他们展示了如何进行身份盗窃直接注入一个SMS消息到一个SMSC通过一个门户网站,允许用户指定发送者。作者提出了潜在的对策来阻止了攻击包括密码操作的参与可能与强大的设备如智能手机。
从不同的角度来看,Android许可系统一直在研究和证明是容易受到特权升级攻击。大卫等人提出了一个方法,应用程序可以将电话没有这样的特权(17]。尽管他们补充说,这个问题解决了,他们展示了一个概念验证场景中会造成更多伤害,一个“非特权脆弱的应用程序”是用于执行Tcl命令,最终发送一些50短信到指定任意数量的攻击者。因此,不理解的区别不同的Android用户权限可以把风险。这也证实了18)进行了一项在线调查和访谈和一群Android用户和结果表明,只有少数的这些用户能够理解的原因和应用程序所需的各种权限的区别。尤其是手机短信,是非常重要的理解之间的差异四个可用权限:“SEND_SMS”,“RECEIVE_SMS”,“READ_SMS,”和“WRITE_SMS。”
2008年9月第一次发布Android操作系统。到那个时候,超过280智能手机malwares已经确定和短信这样的恶意软件的目标是为了窃取用户的钱,根据(17]。此外,作者能够开发一个恶意软件的形式本地Linux二进制程序,可以存储在一个图像,例如,可以用来绕过Android权限。绕过一个特定许可允许入侵者做任何操作,包括发送SMS消息。
应用程序启动流中的一个漏洞已经被阿曼德等证明。19,20.]。该漏洞允许任何应用程序,而不要求任何许可,将“恶意叉命令。“这些命令绕过安全检查和创建子进程,不绑定到任何应用程序,因此不会移动。放大,子进程填补相应设备的内存和强制重启。此外,两个提出了对策。第一个由检查请求方和只允许合法的请求从服务器系统和根。第二个由固定受精卵插座通过降低其权限。此外,在[20.),他们扩展他们的安全评估在Android操作系统两个套接字,密钥存储库和property_service套接字。这些插座被发现拥有高权限,类似于受精卵。测试后,密钥存储库和property_service插座是有弹性的攻击。尽管任何应用程序都可以尝试连接到他们,他们不接受非法定的命令用户通过使用套接字凭证机制,只允许特定的用户获得。
此外,三个主要作品能够调查针对android的攻击。维达等人提出了一项调查在Android上攻击(21]。本文调查了不同的攻击是由于Android的弱点安全模型。许多攻击源自权限用于应用程序混乱,和意图广播的设计使它进一步复杂。袭击被分为四个主要类别根据攻击者是否有物理访问的电话和Android调试桥(ADB)的可用性工具。亚行工具有能力安装恶意程序直接从电脑通过USB电缆,电话和安装的应用程序不需要通过官方的市场。贫穷的袭击的主要问题是由于不必要的权限授予应用程序。许多合法的恶意程序被重新打包版本的应用程序。其他的攻击,如前所述,源于Android恢复模式和启动过程攻击者创建一个恶意的恢复图像,从而导致特权访问设备上。最重要的是,发现在你的Android手机上安装恶意程序是有问题的,因为杀毒软件和防火墙软件需要更高的权限比恶意的,因此他们不是非常有效。此外,尽管谷歌可以缓和漏洞发布补丁,释放后需要花几个月的时间来达到设备检测。 Numerous mitigations were proposed, including reducing the patch cycle, allowing some applications such as antiviruses to get higher privileges in order to make them more effective, and authenticating Android market downloads and ADB. In [22],作者试图理解背后的动机malwares iOS、Android和Symbian。为此,他们收集了46块恶意软件样本从2009年1月到2011年6月。结果表明,61%的样本收集用户信息,52%发一些短信,很多人使用攻击如发送垃圾短信。作者还指出,这些操作系统根利用公开可用的74%的时间。46个样品,15被证明改变他们的行为基于命令收到命令和控制(C&C)服务器。此外,恶意应用程序往往比nonmalicious应用程序请求更多的权限。平均而言,这些数字是6.18权限恶意程序3.46和常规应用。最后,他们提到的不同实体如何受益于偷来的数据或攻击,他们给每个攻击货币值。android malwares的数量一直在增加,导致工作(23],1260 Android恶意软件样本捕获和评估从2010年8月到2011年10月。主要的重点是在恶意软件传播的机制,激活程序,所需的权限,事件也被称为“广播意图”,将听恶意软件。结果表明,86%的人重新包装版本的合理应用,36.7%的人使用根利用为了获得高特权,93%把手机变成一个僵尸网络,51.1%的获取用户的信息。结果表明,21个恶意软件的家庭,共有49个家庭,听传入的短信,第二大广播启动广播后使用。此外,45.3%的恶意软件样本”往往与背景短信订阅一些服务。“此外,一些被发现做一些过滤短信和一些被发现回复收到的消息。此外,杀毒软件不能检测恶意软件演示一个完整的能力超越最好的检出率为79.6%。
面对这样一个巨大的波的攻击以及相关损失android系统,一连串的工作已经发展为了构建工具可以检测和防止此类攻击。例如,在[24]作者现在手机id使用知识颞抽象(KBTA)方法,承诺要优于基于签名的防病毒。KBTA需要输入带时间戳的参数和事件来获得基于上下文的解释。为了评估KBTA,他开发了一个基于android id,主要由一个IDS代理服务,负责处理所有的活动。代理服务谈判的处理器(如KBTA)提要输出权重单位,然后警报经理,最后回代理服务。IDS监视系统,收集和处理参数和事件以固定时间间隔。监控原始参数的数量是160。此外,4 malwares基于类的攻击也发达:主动信息,窃取服务,信息盗窃和DoS。在[25),一个基于行为的检测框架基于android系统的设备,提出了“Andromaly,”。这在基于主机的IDS。它监视和收集不同的系统指标检测单元,它使用机器学习和分类算法。“Andromaly”的主要目标是检查是否能正确分类应用程序作为一个游戏或基于其行为的工具,它承诺来检测异常行为。工作了接近[24),并与代理服务是利用相同的框架。我们的工作是相对接近24),而是anomaly-based。另一方面,[的IDSs的主要问题24,25)是缺乏具体的证据在检测是如何实现的。同样,“TaintDroid”提出了26)作为解决方案跟踪第三方应用程序如何获取用户敏感数据通过使用“全系统的动态污点跟踪和分析”很低级。在[27),“QuantDroid”,这是基于“TainDroid”试图监视进程间通信(IPC)之间的应用程序,以减轻特权升级攻击。监控的通信是通过修改“android.os。粘合剂”模块从高层的消息,比如意图,发送使用低级的粘合剂和参与高层中间件。阈值的大小(以字节为单位)相关应用程序之间的信息传输是用来检测违反或潜在的信息泄漏。这两个作品的主要缺点,TaintDroid QuantDroid,他们需要一个深修改Android操作系统,所以他们不能在app-level部署。
3所示。Android的背景
Android为开发人员提供了一个软件开发工具包(SDK)公开API需要构建应用程序。全面的文档以及SDK提供一个专门的网站上(2]。接下来,我们将介绍选择相关的主题从SDK我们的工作。
3.1。活动
一个活动是组件,它为用户提供了一个图形用户界面(GUI) (2]。每个应用程序都应该至少有一个活动,“主要”活动。通常,一个应用程序有很多活动可以开始另一个活动;每个活动持有状态(例如,停止或暂停)。
3.2。服务
不提供任何服务组件的用户界面,他们通常在后台运行执行长时间运行的操作。服务启动其他应用程序组件,所以一个活动或服务可以开始服务,使用寿命是独立的组件,开始服务2]。
3.3。权限
出于安全原因,有些的子集API不是由一个应用程序访问没有权限。通常,这种许可授予静态声明必须在“清单。在开发应用程序xml”文件。可以使用这些权限过滤等许多原因在Android商店,通知用户(仅在安装时),和保护这些关键api从恶意使用2]。
3.4。广播接收器
广播接收器是一种机制,它定义了Android如何将数据转发到应用程序。这些广播接收器的主要使用进程间通信和跟踪特定的事件(例如,到达一个短信电话)。应用程序声明静态或动态的兴趣接受某种类型的信息和相应的操作系统将尝试提供所请求的数据可用。Android的程序发送信息,使用“意图”的数据结构应该传递给“sendBroadcast”,例如。Android定义了两种类型的广播接收器:正常和有序。正常的是异步的所以没有定义顺序根据哪些应用程序将接收的数据。至于命令的,优先从系统中可以设置为需要提供的信息以特定的顺序,每个应用程序,因此有些应用程序前将获得信息。这个特性允许开发人员捕获并可能修改它到达之前进行数据较低优先级的消费者。在这种情况下,一个应用程序可以防止其他应用程序特定的数据通过流产接收的数据(2]。根据我们的实验中,一个应用程序,以确保它将获得有序广播,它必须是第一个应用程序注册与最高优先级所需的意图。值得注意的是,应用程序可以注册一个意图与任何优先级指定没有同意约束或限制。
3.5。短信管理器
短信管理器,Android电话栈的一部分,为开发人员提供了必要的函数来发送消息。为了发送短信,除了正确的权限,一个应用程序可以在任何时间发送短信通过一个简单的函数调用。发送短信的主要功能是“sendTextMessage”[2]。调用send函数显示没有在电话里通知;发送过程是无缝和透明的手机用户。
3.6。Logcat
Android有一个特殊的日志系统的操作系统将日志存储在几个循环缓冲区(无线电、事件和主要)。开发人员可以受益于这些缓冲区的信息系统和调试自己的应用程序。为此,一个特殊的命令(logcat)可用于亚行工具来提取数据从目标缓冲区(2]。
4所示。基于短信的4.2版本之前的攻击
接下来,我们将描述设计活动,服务,所需的权限,和广播接收器我们开发的每个应用程序。在这个意义上,三种攻击,短信在Android 4.2之前,短信在安卓4.2及以上版本(部分5)和USSD(部分6),有自己的应用程序。为此,我们将展示如何应用程序的每个组件导致攻击的机制。同时,我们将解释如何将应用程序进行了测试。
之前推出的Android 4.2版本,优柔寡断的人,用户没有提示当一个应用程序试图发送SMS消息。在第一部分中,我们将展示如何进行攻击。
4.1。应用程序设计
应用程序是为了看起来像一个正常的短信应用程序能够发送和接收短信。事实上有许多这样的应用程序为Android用户,和他们中的很多人都流行(如短信Pro)由于用户可以取代普通短信与更复杂的应用程序,操作系统和用户友好的。这些应用程序的流行证明了可行性和缓解恶意消息传递应用程序可以简单地通过部署伪装成一个用户友好的短信应用程序。
恶意代码添加到应用程序,以明确目标单位/信用转移通过短信服务。为此,应用程序需要至少一个活动和三个服务组件,如图1。
以下4.4.1。主要活动
整个图形用户界面主要活动组件阅读和发送SMS消息。在Android手机,短信插入和读取使用数据库查询内容提供商“内容:/ /短信/”。此外,基础组件,该组件启动监听服务和发送者服务,至少第一次。另一方面,引导服务运行在自己的第一次发射后的主要活动。同时,注意,尽管我们描述单个活动应用程序,这决不是一个限制作为应用程序设计可以有许多活动。
4.1.2。听服务
这个组件侦听传入短信并采取行动根据预定义的标准。因为这个服务需要侦听传入的消息,它必须是注册的广播接收器。当一个SMS消息到达时,该组件会通知。传入的消息然后解析和检查。如果新收到的消息不承认“非法”相关单位/信贷转让、组件允许消息通过修改的也可以直接插入消息数据库。另一方面,如果这个信息是相关的恶意活动,这将是抑制和永远不会到达数据库或其他应用程序。重要的是要注意,优先选择注册广播接收器的抑制非常有效,我们相信这是Android操作系统的漏洞。此外,这个服务可以“不可闭”将允许它运行,即使用户故意关闭它。
4.1.3。发送方服务
这个组件是主要的恶意应用程序的一部分。它是由工作以沉默的方式在随机时间和执行信贷转让。当然,该组件将不允许其将信息存储在数据库中,用户将无法跟踪当转移。此外,这项服务不是可闭。许多改进可以添加到此服务;例如,它可以被修改以这样一种方式来监视用户的活动水平,然后执行恶意转移最繁忙的时期,当用户实际使用电话和/或手机短信的电话。这将导致更少的用户注意减少信贷的可能性。
4.1.4。启动服务
该组件是需要前面提到的服务运行的启动操作系统。这是通过注册广播接收器,以“BOOT_COMPLETED”事件。
4.1.5。权限
所需要的最小权限执行恶意活动“RECEIVE_SMS”和“SEND_SMS”,通常是由任何短信应用程序使用。请注意,最受欢迎的短信应用程序在Android市场调查使用另外的“READ_SMS”和“WRITE_SMS”权限。因此,这些权限的请求不会提醒用户的恶意行为。
4.2。测试
接下来,我们将演示如何测试应用程序,安全检查的类型上执行应用程序,所得到的测试结果。
4.2.1。准备实现
测试是使用两个手机。尽管应用程序需要一个基于android系统的智能手机,它不是一个必须使用两个智能手机。事实上,我们使用三星Galaxy他们智能手机和一个索尼爱立信K770i功能手机。应用程序是安装在受害者手机,三星Galaxy他们。这款手机上预装Android操作系统版本是4.0.3(冰淇淋三明治)。另一方面,攻击者的索尼爱立信把SIM卡谁将获得所有的转移学分。
学分转换操作在我们的实验中是通过构建一个信息有以下形式:ReceiverNumberT量。这个消息通常是发送到一个特殊的专用的四位数字。一旦消息被发送,学分从发送方平衡和添加到接收机的平衡。最后,发送方和接收方都获得一个消息通知他们的学分转换交易完成。
为了让受害者并没有注意到事务,我们不得不抑制相关操作发送和接收消息。因此,我们使用了“logcat”工具来检查所做的操作是正确的。“主要”缓冲的输出显示,正在进行转移。一个示例输出如图2。
额外的“广播”缓冲的输出相同的时间戳确认操作和一个示例如图3。
4.2.2。防病毒
为了检查是否这个恶意软件检测,使用一个名为“VirusTotal”的免费服务。这项服务提供了一个在线扫描url和文件,包括Android-apk文件,使用一组主要的防病毒目前市场上(28]。报告生成部分如图4确认,没有43防病毒能够检测这个应用程序是恶意的。这并不奇怪,因为大多数这些工具都是基于规则的。
4.2.3。Android市场(玩店)
最后的测试是检查Android市场的反应(现在更名为玩商店)。测试的目的是检查商店是否能检测到应用程序恶意组件。为此目的,修改保证应用程序的意外释放的风险最小,应用程序成功发表一段时间如图5然后未见图6为了确保它不被任何用户下载。
5。基于短信的攻击超过4.2
电话管理器应用程序框架负责提供SMS消息传递API和直接负责安全的短信。作为Android的进化的一部分,这个框架了重要修改的最新版本的操作系统,也就是说,4.2版(软心豆粒糖)。新版本中定义的重大改变规定,任何应用程序试图发送SMS消息传播数量将使系统提示用户授权等操作。该机制旨在遏制的大量基于短信的攻击。
这个特性的Android 4.2测试三星Galaxy S4果冻豆的4.2.2版本运行。在这个实验中,我们尝试通过本地应用信用转移。这是演示之前,发送消息到一个四位数字起草信息形成的受益人的电话号码连接一个字母T然后信用转移的数量。一旦点击发送按钮,一个对话框,类似于一个呈现在图7是观察到的。
因此,用户可以选择三种选择:简单的授权发送,或检查要记住永远不会允许,或总是允许这样发送。如果最后选择两个选项,用户将不会再被提示为这个特殊的应用。从这个观点上看,这款应用程序可以发送一些短信类似于4.2之前任何短信应用。修改或查看所选择的选择,用户可以设置菜单下的具体应用。
在引擎盖下,Android操作系统维护这个安全特性通过存储每个应用程序决定的传播“/数据/ misc /短信/ premium_sms_policy.xml”。
一个示例文件看起来如框所示1的价值“3”“sms-policy”意味着“总是允许应用程序“com.myapp.smsapp42”。
为了安全的访问或修改这个文件,高特权(根)是必需的。一个实验性试验修改这个文件是一个扎根Nexus手机。在这个实验中,xml文件被改变,但为了需要重启生效。因此,恶意应用程序想要生存新修改获得root访问权限,然后修改xml文件,最后重新启动手机。基于[23),许多以前见过malwares特权升级攻击,从而获得根访问。前面提出的pre - 4.2应用程序,只需要额外的组件为Android 4.2是一个服务,检查电话已经根深蒂固,如果没有,应用一个特权升级攻击。
除了支持,社会工程也可以让用户选择“总是允许”选项作为应用程序的一部分安装指南。总之,新的高级短信攻击预防机制需要更强的攻击者模型但仍然可以克服。
新的机制的另一个缺点是仍然可以发送普通短信从用户未经授权。同样,隐藏的收到短信被打掉广播意图仍然是可能的。这有许多影响包括SMS扮演一个通道的攻击。所(22,23),其中一个主要目标是窃取私人信息和相应的短信仍然是可以使用的。此外,短信作为传播媒介的指挥和控制(C&C)消息仍然是容易成为可能,因此这使Android操作系统作为一个僵尸网络的天堂。
6。USSD攻击
USSD协议使用了全球运营商的用户和运营商之间执行特定的功能。这些功能的示例包括信用检查和信贷转让。接下来,我们将展示如何良性的电话拨号器应用程序可以通过USSD用于执行攻击。我们将关注每个组件将如何帮助朝着这个目标。事实上,有许多这样的应用程序非常著名,如“拨号器”。
6.1。主要活动
主要活动组件包括整个图形用户界面来打电话。另一方面,引导服务运行在自己的第一次发射后的主要活动。注意,尽管我们描述单个活动应用程序,类似于我们先前描述的应用程序,这决不是一个限制作为应用程序设计可以有许多活动。
6.2。USSD拦截器服务
这个组件侦听传入USSD反应和行为基于预定义的机制,当然,取决于是否响应是由于攻击。拦截USSD反应,应该将服务绑定到“IExtendedNetworkService”包括“com.android.internal.telephony”。该服务提供的方法主要是修改响应消息给用户(例如,图8),生成的消息在USSD过程(例如,图9)。
因此,攻击USSD能做的两件事之一:删除任何反应或返回一个假的反应。在第一种情况下,几乎没有显示在屏幕上。
6.3。启动服务
该组件将确保前面提到的服务运行的启动操作系统和防止默认情况下“PhoneUtils”绑定到它。这是通过注册广播接收器,以“BOOT_COMPLETED”事件。
6.4。权限
所需要的最小权限执行恶意活动“RECEIVE_BOOT_COMPLETED”和“CALL_PHONE。“很明显,这些权限是典型的拨号器应用。因此,这些权限的请求不会提醒用户恶意行为。
6.5。测试
一个概念验证应用程序建立了基于设计本节中给出。设备硬件nonrooted三星Galaxy他们智能手机运行冰淇淋三明治的Android版本(4.0.3)。作为实验样本,我们试图检查用户的平衡。当地运营商使用数字220订阅用户为了检查他们的平衡。因为它是USSD, * 220组成的完整的消息#。因此,所有用户所要做的就是拨这个号码,收到短消息从运营商所请求的信息。在引擎盖下,操作系统认识到这是一个USSD从消息的格式和对待它。为了测试我们的程序,我们自己拨这个号码从服务和信息数据所示类似8和9得到了,但没有USSD对话框出现在屏幕上。
7所示。入侵检测系统
Android推出了Android 4.2.2新短信传播政策,,写这篇文章的时候工作,只有4.0%的设备使用这个版本的操作系统。因此,绝大多数的用户仍然基于短信的攻击的风险。了,很少使用4.2.2仍在一些风险。基于这些事实,我们提出了一个入侵检测系统(IDS)来检测恶意程序。我们的id是anomaly-based和运行作为一个应用程序(在应用程序级别)和没有任何高特权,这使得它适用于任何操作系统版本和设备。
7.1。IDS组件
IDS主要由四个部分组成:数据收集器、一个事件收集器、一个应用程序分析器,和一个探测器。anomaly-based因为我们的id,需要一个学习阶段,应用监控为了学习相关行为。这种行为定量和收集到的值是用于检测阶段。下面是每个组件的描述算法描述。
安装7.1.1。数据收集器
数据收集器负责收集特定的信息与我们的检测算法。这些数据包括运行的流程信息,每个进程的CPU消耗,和包的相关信息。这个过程是每5秒钟完成前两个和后只有一次。获得的部分存储在“SQLite数据库为便于检索,在后期处理。
活动管理器应用程序框架是Android类负责应用程序的生命周期和提供一个共享的活动堆栈。因此,它拥有在堆栈所有正在运行的进程,而且,通过检查堆栈的顶部,你可以了解哪些应用程序在前台或后台运行。从ActivityManager,我们可以获得运行进程的列表,其pid, uid,名称和前景/背景。
类似于Linux, Android操作系统维护信息系统资源的/ proc“虚拟文件系统下驻留在根目录下。特定的进程有一个关联的PID, CPU消耗是通过解析文件在/ proc / PID / stat。获得的数值表示在Jiffies, CPU处理时间直接相关。
包管理器应用程序框架是Android类,它允许一个特定的应用程序来访问信息的其他应用程序在设备上安装。经理与相应的元数据检索安装应用程序的列表包括UID,名字,和请求的权限。
可以推断,包的数据和过程可以通过uid和名称相匹配。我们应该注意到在这个时候,一个时间戳添加到收集数据。可以与CPU消耗过程使用pid和时间戳。
7.1.2。事件收集器
除了以前收集的数据,有一个好处在监测和收集一些动作或状态在电话上,这可能有助于检测恶意活动。这样的行为或状态事件包括屏幕状态(开/关)和短信数据存储改变透过“ContentObserver。”第一个通过注册获得“BroadcastReceiver”听意图由操作系统发送当屏幕的状态发生变化时,而后者是通过注册观察者的具体内容。
7.1.3。应用程序分析器和探测器
应用分析工具构建一个模型,该模型包含两种类型的信息。第一种从学习阶段获得,而第二种类型的信息都是当场在检测阶段。因此,对于每一个应用程序,一个特定的模型。最后,检测器的检测算法。
7.2。检测算法
的主要目标检测算法是利用收集到的数据在学习阶段为了检测恶意短信发送。算法定期检查短信发送的无线电日志缓冲区每5秒。这张支票的原因是这个缓冲区总是持有一个SMS发送的跟踪。特别是两个特定标签总是礼物:RILJ与无线电接口层(瑞来斯),和短信。更高效的使用SMS标签因为更少的日志需要更少的内存和处理在每一个检查。
如果一个SMS的缓冲区,检查发送短信数据库。如果增加了相应的短信,那么假设是没有威胁由于这手机发送消息的应用程序没有试图隐藏它。
另一方面,如果一个SMS消息没有添加,每个应用程序的许可发送SMS (android.permission.SEND_SMS)检查。
关于收集的数据,我们使用以下符号:(我)运行的进程;(2)CPU消耗每个进程的应用程序在快照作为;(3)收集所有的CPU消耗是一组。
我们假设是最少的CPU消耗需要发送SMS消息。可以以一个独立的服务通过调用“sendTextMessage”而不做任何其他计算或分配任何对象。
我们经过的应用程序池:每一个相关的消费这是高于我们进行进一步的检查,我们指定限制等应用程序池的池(。
我们定义和最小和最大数量,分别为特定应用程序的CPU消耗在一个特定的时间窗口。对于每个应用程序,我们计算这两个值之间的差别,这个程序应该显示多少活动在这个特定的窗口。
从这个角度,计算得分为每个应用程序基于CPU消耗水平,所需的权限,屏幕状态,前景和背景/状态。每个应用分数的总和3组件。(1)差的绝对值:(我)如果应用程序在前台,这个值是乘以一个衰减的因素为了消除GUI的效果,因此得到一个公平的比较;的价值计算之间的区别吗和最低消费价值观察到当应用背景;;如果一个值不可用,取默认值为1;(2)最后一个值在所有情况下(背景/前景)是规范化的最大值1。(2)使用的权限数量:(我)如果这个数字大于6.18 [22),添加一个单元;(2)否则,一个值等于是补充道。(3)如果屏幕是关闭的,一个单位是补充道。
最后,获得的分数除以(数量的总和)的组件进行评分。这个归一化步骤的范围很容易融入算法未来的其他因素。数组的分数,两个应用程序拥有值高于50%的门槛将标记为潜在的恶意。
7.2.1。算法伪代码
看算法1。
|
||||||||||||||||||||||||||||||||
7.3。测试和结果
在这部作品中,提出id是安装在三星Galaxy智能手机运行他们的冰淇淋三明治(版本4.0.3)Android。电话被连接到一个本地操作符与数据连接可用。起初,id被变成学习模式,运行一个完整的星期,和提供了1979047 CPU消耗值以及其他相关的统计数据。一旦学习阶段结束,id是在检测模式下运行。为了测试我们的id,我们认为许多攻击,在特定的条件下重复执行,将突出显示。我们将在接下来的实验中,一些实用的考虑,最后结果。
7.3.1。实际考虑
数据收集完成后,我们发现有超过20个应用程序安装在电话请求SEND_SMS许可。此外,除了四个应用程序本地应用所安装的手机制造商三星(在我们的例子中)。应用程序包括“com.android列表。电子邮件”、“com.android。交换”、“com.android。mms”、“com.android。电话”、“com.android.settings。太”、“com.android。自动售货”、“com.google.android。voicesearch”、“com.handcent。nextsms”、“com.jb。gosms”、“com.samsung。地图”和“com.whatsapp。“在我们的测试中,我们主要关心的是监控不受信任的第三方应用程序,而不是本地应用。
此外,为了进行预定的实验,我们不得不依靠第三方应用程序,有这样的功能。在谷歌商店,两个最著名的短信应用,写这篇文章的时候工作,是“goSMS”(com.jb.gosms)和“HandcentSMS”(com.hancent.nextsms)。幸运的是,这两个具有调度功能和相应的使用在我们的id实验。
此外,对于每一个短信应用程序安装在设备上,该算法使用一个时间窗口中提取CPU消耗。为了找到哪些应用程序已经主动和CPU的使用,我们看看CPU使用率的冲动。冲动是由观察之间的区别一个窗口的最小和最大CPU消耗时间。选择合适的窗口是一个妥协,因为一个小窗口会妨碍检测,而一个大窗口会连续攻击的检测困难。运行多个测试后,发现一个10到20秒的窗口无法提供任何有效的结果,而一个窗口40秒给很少有积极的结果。我们最后60秒的窗口大小以无线电日志的时间戳和提供多达12个CPU消耗的值。在我们的算法中,我们都是萎靡不振的顶部应用程序有一个得分高于一个预定义的阈值。广泛的测试后,我们集和一个阈值= 50%。的值和阈值直接影响检测率和误报。高阈值将导致检出率较低,而较低的阈值将导致较高的误报率。根据我们的测试,我们得出的结论是,恶意程序的分数高于50%。的价值定义应用程序的最大数量我们可以检测一次。我们相信,超过两个应用程序攻击的可能性在同一时间非常低。
7.3.2。实验装置和机制
我们做了三种类型的攻击,我们相信反映real-attack模型。在每个攻击,涉及应用程序试图发送一个随机的SMS消息到目标用户。从这些攻击我们的主要目标是研究的功能我们的id的检出率,假阳性和假阴性。特别是,我们看着短信发送尝试在不同条件下(包括在一个单一的应用程序在后台发送短信,在前景和多个应用程序同时发送短信。此外,我们有兴趣看到之间的最小间隔时间这两个不同的应用程序可以执行攻击,仍然可以检测到我们的id。
后台发送SMS短信攻击的占了很大一部分。它被证明是在超过50%的恶意程序的攻击(22),和被攻击负责偷数百万美元的(10]。为了测试的背景情况下,我们使用的调度短信发送功能选择的第三方应用程序。因此,为了安排一个短信,我们使用应用程序活动负责调度和输入文本包含在短信和消息应该发送的时间。这个应用程序将处理模拟攻击。我们提出的一些截图调度组件图10。
(一)
(b)
前台SMS发送攻击,其背后的基本原理依赖于事实,恶意应用程序可能会试图发送短信而用户很忙或分心。这样的应用程序可以游戏,例如,要求短信权限分享成绩虽然在现实中他们通过短信偷学分。这样的应用程序类似于(9),相信数十万美元都被偷了。执行这种攻击类似于用户发送短信的方式从任何常规的应用程序。这是通过进入目标用户的电话号码以及文本,然后直接发送从GUI。
多个应用程序的实验中,我们尝试了两种不同的方法。首先,我们使用两个应用程序在同一时间发送SMS消息。的应用程序,发送预定的攻击是由背景。对于其他应用程序,我们发送一个短信在前台。在第二个方法中,我们安排了一短信发送“攻击”这两个应用程序在同一时间都在后台。目的是看到在这种情况下,应用程序(s)将被检测到。
7.3.3。结果与讨论
在任何时间的实验中,通常有四个第三方应用程序安装和运行在背景、侦听传入或传出短信。这就是定义为正常行为。我们的id是运行整整一天,实验正在进行。一组40攻击被处决,40短信发送。这些攻击,35检测观察这表明检出率为87.50%。为每个应用程序检测到攻击,一个警告日志中观察到的主要Android日志缓冲区类似如下:应用com.jb。gosms可能试图发送一个短信在07-11-2013 22:22:38分数为66.66%;应用com.handcent。nextsms可能试图发送一个短信在07-11-2013 22:40:01分数为66.66%。
自id读取无线电日志,即使恶意应用程序未被检测到,IDS仍然可以检测到一个不请自来的短信发送。统计数据,然而,我们没有包括这些案例。我们总结我们的研究结果是基于实验和相关应用程序表1。
从表中我们可以看出1,当一个应用程序在前台表演一次,每次IDS检测到短信发送尝试。这是由于事实,即特定应用程序的CPU消耗上升在活动期间。另一方面,其他的短信应用程序是典型的“小”活动,不付出足够的CPU来影响结果。这是对两个应用程序。
另一方面,当应用程序在后台进行短信发送尝试,我们的id是能够检测到尝试总检出率为90%。我们注意到goSMS更多CPU贫困使它更容易被发现,这是反映在相关的高百分比的检出率为100%。HandcentSMS, IDS能够探测到,但80%的概率较低。
然而,对于两种同时攻击的情况下,IDS能够检测到其中一个在第一种情况下,一个是在前台,而另一个是在后台。我们相信这个结果是令人满意的,尤其是这种情况下是相当罕见的发生。特别是,结果表明,一个前景检测由于其GUI的效果。另一方面,结合这两个应用程序是在后台,结果表明一个完整的检出率为100%。假阳性,我们认为,低利率的整体观察是由于我们执行的检查步骤电台日志和数据库发送短信,在算法执行。事实上,电台日志为我们提供了具体的证据,一个短信发送。另一方面,我们相信,一个恶意的应用程序不会增加短信发送的短信数据库。因此,没有观察到当一个假阳性短信没有发送。
8。结论
在这项工作中,我们提出了两种类型的攻击针对安卓智能手机。首先是由背景和抑制网络中发送短信通知,以窃取用户信用。同时,我们显示,Android手机短信的安全框架如何发展,但我们演示了如何这样的攻击仍有可能进行。第二次攻击使用一个简单的电话拨号器应用程序在后台使用USSD协议以目标用户。的攻击,我们演示了如何Android操作系统的每个组件负责允许这样的攻击。最后,我们提出了一个anomaly-based入侵检测系统以阻止基于短信的袭击。我们的IDS使用主要是CPU消费水平以及其他参数,以标志应用程序试图在用户不知情的情况下发送SMS消息。IDS能够检测87.50%的病例没有假阳性。
利益冲突
作者宣称没有利益冲突有关的出版。
承认
这项研究是由泰勒斯公司,加拿大。