收藏 分享(赏)

安卓短信恶意程序:系统漏洞和应对方案.docx

上传人:wo7103235 文档编号:6393734 上传时间:2019-04-11 格式:DOCX 页数:8 大小:31.62KB
下载 相关 举报
安卓短信恶意程序:系统漏洞和应对方案.docx_第1页
第1页 / 共8页
安卓短信恶意程序:系统漏洞和应对方案.docx_第2页
第2页 / 共8页
安卓短信恶意程序:系统漏洞和应对方案.docx_第3页
第3页 / 共8页
安卓短信恶意程序:系统漏洞和应对方案.docx_第4页
第4页 / 共8页
安卓短信恶意程序:系统漏洞和应对方案.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、安卓短信恶意程序:系统漏洞和应对方案摘要:在这篇文章中,我们将研究在安卓操作系统中导致一系列漏洞的一些短信功能设计上的决策。我们也将论证一个恶意应用是可以被构造出来,并滥用这些漏洞的。这个应用将其展示位一个正常普通的短信应用,使用其基本的权限去收发短消息。自从很多世界上的电信运营商提供允许用户通过短信进行存款交易的服务后,恶意软件就会滥用这个服务去非法地将用户的银行存款进行转账操作。安卓的权限子系统,广播接收者系统和短信发送机制通过授予恶意软件对短信发送、接收、伪装的完全掌控权限,共同导致形成了一个对短信恶意软件存活的温室。因此,恶意软件可以隐藏任何在存款账号事务操作后来自通信运营商的确认信息

2、。这一点会让恶意软件慢慢拿光被受攻击用户的所有存款,同时又可能对很大数量的用户和通信运营商产生危害。这样的应用在本地运营商已经被论证过了,其成功地躲避了一个声称可以查处恶意软件的标准筛检程序的检查。一系列可能的用于降低类似攻击风险的解决办法正在被提出。关键词:安卓 漏洞 恶意软件 短信 银行转账 权限 广播接收者1. 介绍移动数字通信现在已经是处于发展的第三个阶段同时也正在稳定地进步发展。通信行业的进步已经影响了移动端设备中的对应的所有组件。这些移动设备是手机,曾经一开始只是被用来在电路交换网络进行电话呼叫和提供像短消息服务这样的基础文本服务。这些功能受限的设备已进化为了带有高级功能的智能手机

3、,这也导致其世界范围内的扩散和数量激增。在 2011 年,报道预估接近 5 亿的智能手机被出货,相当于在 2010 年的基础上 60%的增长。 ,同时也是占据了所有已出货手机数量的 30%。在这些智能手机中,超过 48%是基于安卓操作系统。另外,截止 2011 年,30 亿的应用软件被下载。同时在 2012 年,每月就有 15 亿的软件应用被下载。安卓系统在设计之初就设计为一个开源的操作系统。用户能够获取到其源代码,能够通过开放应用编程接口去构建应用软件并在安卓应用商店进行发布上线。截止 2012 年九月,这一理念丰富了安卓应用市场的应用,数量达到 675000,但是也为很多不同的恶意软件打开

4、了大门。在事实上,在 2012 年 4 月到 6 月,有八百万新的移动应用被迈克菲鉴定为恶意软件。报告中提到,最新发现的问题来源有:基于短信的恶意软件,移动僵尸网络,间谍软件,破坏性的特洛伊木马。特洛伊木马!短信僵尸进程,一个短信的安卓木马,在 2012 年 7 月被发现,能够感染中国的五十万部手机。在中国,很多金融的事务和付款操作可以通过短信进行。能够拦截短信的能力和能够发送短信的权限授予了木马能够导致大规模攻击的能力。在 2012 年 9 月,一个恶意安卓游戏应用被罚款 77500 美金。这个应用使用短信来使用户订阅了一个收费应用,被调查发现已经获利了 397000 美元。也在同一个月,F

5、akeInst 被发现。这个木马伪装自己为一个基本的消息交换应用,同时秘密地通过无声发送短信订阅了保险费率服务。报道称,这一木马已经获利了 100 亿美元。在这篇文章中,我们讨论安卓操作系统中能导致恶意短信应用的发展和感染的主要特点和漏洞。另外,我们将论证基于安卓的智能手机是如何被一个使用短信服务作为操作媒介的恶意软件的利用的。通常来说,这类恶意软件依靠来自两方面的漏洞:第一个是对通信运营商的依赖,另一个就是安卓系统本身的特点。对前面一个来说,很大数量的移动运营商支持在除了从手机上发送的短信之外不需要获取任何校验和授权就能使用短信文本在不同手机用户之间进行银行转账操作。银行存款关联着能用于进行

6、使用电话呼叫、收发短信或者访问网络的余额花费。举个例子来说,一个用户想要进行转账操作只需要输入两个部分来构建一个符合结构定义的文本:一个是他们想从其余额转出的数字,一个是收款人的手机号码。在编辑信息草稿后,用户将其发送给一个特定号码,然后这个事务就会被运营商通过存款转账进行处理完成。这个也可以被扩展用于其他可能的通过短信进行处理的金融事务。至于基于安卓特性产生的漏洞,这个问题包括与安卓系统上短信收发有关的两个特性。为了论证这些漏洞,我们将构造并测试一个前置概念的恶意移动应用。这个恶意软件伪装为一个普通的短信应用,但他实际上会偷偷摸摸地在用户不知情的情况下实施银行转账操作,同时也会隐瞒掉任何收到

7、的来自运营商的确认信息。基于我们进行的一个调查,我们发现超过 20 个的移动运营商使用一种或多种这样的服务用于用户间银行转账。这些运营商地理分布在 28 个国家(一些运营商不止在一个国家有业务) 。在这样的情况下,处于风险中的有价值的用户和运营商的数量就很重要了。这篇文章剩余的部分将如以下进行组织。第 2 章节阐述相关的工作。第 3章节阐述一些与已做工作相关的安卓背景知识。第 4 章节阐述我们的应用设计。我们将在第 5 和第 6 章节分别详细地说明应用的测试和分析。最后,我们将在第 7 章节阐述建议的解决方案,同时在第 8 章节进行总结。2. 相关的工作Golde 在除了封闭源码性质的手机操作

8、系统之外的市场上的大部分智能手机中使用的短信应用中发现了很多漏洞。他展示了短信漏洞是如何被利用,用于断开手机与网络的连接,中止通话,导致崩溃和重新启动。另外,拒绝服务的例子也被发现了,因为一些测试会会导致信息在被确认前,手机就出现崩溃,所以手机网络也会受到短信没有被发送成功从而持续不断尝试发送的影响。还有,他展示了一个 SIM 卡数据下载(一个被运营商用于远程管理 SIM 卡的管理工具) ,通过这个短信可以被直接发送到 SIM(或者 USIM) ,能够被操纵,所以被攻击的手机会从手机发送短信到任意攻击者制定的特殊号码,通过这个过程用户的银行账户余额就会被慢慢全部掏空。除此之外,他展示了如何最后

9、一个特性能够被利用去导致在一个特定的号码中产生拒绝服务。Traynor 等人一起论证了如何短信可以成为对网络恶意和有害的。很多移动运营商提供基于网络的短信服务,通过这个用户可以直接通过网页向连接到网络的手机发送短信。这个服务,如果被利用,能够导致拒绝服务从而防止移动手机用户向一个特定目标城市拨打电话。Mulliner 等人也展示了一个能特别用在智能手机上进行测试和监控短信的通用框架和机制。虽然很多智能手机已经被调查过了,我们主要的关注点是基于安卓系统的手机。在他们的工作中,他们介绍了一个通过调整在无线电干扰层用于与调制解调器通信的的串行线路进行注入和监控手机信息的方法。从一个不同的视角,安卓权

10、限系统以及被研究和证明出有漏洞可以给升级后的攻击以可乘之机。Davi 等人展示了一个方法,通过这个方法应用软件可以进行拨打电话而不需要这样的权限。虽然他们特别提到这个问题以及被解决了,他们也展示了一个结果概念验证的方案,通过这个方案,一个没有任何权限的有漏洞的应用软件可以被用来执行电话命令,最终可以发送 50 条短信到攻击者制定的特殊号码,导致更多重大的危害。作为结果,没有理解不同安卓权限之间的区别会将用户置于风险之中。这也在一个由对一组安卓系统使用者进行的在线调查和采访中得到了确认。结果显示只有一小部分这些用户能够理解应用所需要的不同权限之间的不同和原因。特别对于短信来说,去理解四个可获取的

11、权限(发送短信,接收短信,读取短信,写入短信)是非常重要的。在引用的第 17 篇文章里, ,1260 个安卓的恶意软件的样本被发现捕获和分析。主要关注点是恶意软件进行传播的方法,激活过程,需要的权限和被大家所熟知会被恶意软件监听的广播意图的事件。结果显示 49 个中 21 个恶意软件种类会监听到来的短信,这是第二多被使用的广播,最多的是开机监听。更为严重的是,45.3%的恶意软件样本意图会向通过短信保险费率付费。另外,一些恶意软件被发现会去过滤一些短信,甚至有些被发现会回应收到的短信。还有就是,反病毒工具目前最好的检测率为 78.6%,还不能论证出能有一个足够的能力去检测恶意软件。另外,第 1

12、8 篇应用论文的作者可以开发一个可以存储在图片以 Linux 二进制文件原生的方式运行的恶意软件。举个例子来说,这可以绕开安卓权限系统。绕过一个特定的权限可以让侵入者做任何操作,包括发送短信。3. 安卓背景知识安卓为开发者提供开放了开发软件应用所需要的应用编程接口的软件开发工具包。一个与软件开发工具包一起的全面综合的文档也在一个专用的网站上被提供。接下来,我们将从软件开发工具包中选取一些与我们工作有关的内容话题进行描述。A. 活动在安卓操作系统中,对一个应用来说,一个活动是一个必须的组件。每一个应用必须至少有一个活动,即主活动。一般来说,一个应用汇拥有很多活动,可以互相启动其他活动,而且每个活

13、动都拥有其状态(比如停止或者暂停) 。一个活动就是一个为用户提供用户图形化操作接口的组件。B. 服务服务是按照系统中不提供任何用户接口的组件,一般是在后台运行一些需要长期运行的操作。服务是被其他应用组件开启的,所以一共活动或者一个服务能够开启一个服务而且一个服务的生命周期与开启它的组件是独立的。C. 权限处于安全方面的原因,如果没有获取到对应的权限,一部分的应用编程接口是不能被软件所使用的。一般来说,应用权限授权必须被在开发应用时,在一个“Manifest.xml”做文件中被静态声明。这些权限可以出于很多原因而被使用,比如在安卓应用商店中进行过滤,通知用户(只在安装的时候) ,和保护这些关键的

14、应用编程接口不受恶意软件利用。D. 广播接受者广播接受者是定义了安卓系统如何向应用传递数据的方法。这些广播接受者的主要用途是跨进程通信和特定事件的跟踪(比如一个短信到达手机时) 。应用静态或动态声明他们所感兴趣的接受特定种类的信息,相应地,当数据可用时,系统就会尽力将所需求的数据传递出去。对于发送信息的过程,安卓使用应该被传递给发送广播的数据结构“Intent” 。举个例子,安卓定义两种广播接受者:一般的和有序的。一般的广播都是异步的。向一个广播注册后的用户不会按照一个定义好的顺序去接受到数据。至于有序的广播,一个优先级可以被设置去让系统可以获取,用于向每个应用以一个特定的顺序去传递信息。因此

15、,一些应用可以在其他应用之前获取到信息。这个特点让开发者可以在消息到达低优先级消费者前捕获和可以修改携带的的数据。在这种情况下,一个应用可以通过中止接受到的数据继续传输,从而防止其他应用获取到特定的数据。对于一个给定的广播,一个关于所有注册过的应用的顺序会被系统所维护: =0,1,2,3,这里 都是软件应用。如果广播是普通的,假设序列中的所有元素都能获得准确的没有修改过的信息版本。在另一方面,如果广播是有序的,那么没有任何保证,保证能够有超过一个的应用可以得到最原始的信息。根据我们的实验,对于一个应用来说,如果要确保他能接受一个有序类型的广播,它必须要成为第一个以最高优先级去注册期望意图的应用

16、。值得注意的一点是,在给予权限后,一个应用可以以任何优先级去注册一个意图,而不需要特定的约束和限制。E. 短信管理工具短信管理工具,安卓电话功能栈中的一部分,为开发者提供了必要的功能去发送短信。为了发送一个文本信息,除了需要得到正确的权限外,一个应用可以在任何时间通过一个函数调用就能发送一条文本信息。用来发送短信的就是主要的函数就是“sendRexrMessage” 。调用这个发送函数不会在手机上显示任何通知。发送过程对于用户来说是感受不到和透明的。F. Logcat安卓系统有一个特殊的日志系统,通过这个,系统可以在几个循环缓冲区内存储日志(对无线电,事件和主函数) 。开发者可以从这些缓冲中得

17、到从系统中产生的信息和调试他们的应用而得到好处。对于这个目的来说,一个特殊的命令(logcat)就可以在一个被称作安卓调试桥的工具中使用去从想要的缓冲区中去获取数据。4. 应用设计在这个章节中,我们描述一种概念较前卫的恶意软件应用。先要说明的是,这个应用会被设计成看起来像一个需要基本权限能力去发送和接受短信的普通短信应用。实际上对于安卓用户来说,有很多这样的应用,而且他们中的很多收到欢迎,因为用户可以将原生的简单的短信应用替代为更加符合和方便使用的短信应用。这些应用的浏览流行论证了一个恶意的短信应用只要简单地伪装成一个方便使用的短信应用就可以用户安装的可行性和容易性。恶意的代码被加到应用中是特

18、别为了把通过短信服务进行银行转账作为攻击目标。为了这个目的,应用至少需要如下图所示的一个活动和三个服务组件。A. 主活动主活动组件拥有整个用于读取和发送短信的图形化用户接口。在安卓手机上,短信是通过向内容提供器“content:/sms/”使用数据库语句进行读取和插入的。另外,这个组件是一个基本组件,至少在第一次的时候会发动监听服务和发送服务。另一方面,开机服务在主活动启动时就会自动独立地开始运行了。B. 监听服务这个组件监听收到的短信并根据事先定义的标准去采取相应的行动。因为这个服务需要监听到来的信息,它需要注册为一个广播接受者。当从无线电系统中收到一条短信时,这个组件就会得到通知。收到的信

19、息会被检查和解析。如何新收到的信息不是一个与非法银行转账有关的确认信息,那么组件就会让这条信息没有任何修改地继续传递下去,或者直接将它插入短信数据库中。如果,相反地,这条消息是与恶意活动有关的,那么它将会被隐藏,而且永远都到达不了数据库或者其他应用中。非常需要被关注的一点是处理这个事务的广播是一个有序的广播。因此,对于被注册的广播接受者提供优先级选择权会让这个隐瞒行为变得更加容易。这个特点可能会在过滤垃圾短信的时候特别有用。但是基于它已经被证明的会导致危害的可能性,它可能会将一根漏洞引入安卓操作系统中。值得关注的是,监听服务被设计为一个不易结束的服务。即使用户有意地中止它,它也会重新启动。C.

20、 发送服务这个组件处理未授权的短信应用发送过程。这个服务以一个无声的方式工作。而这个是通过在大范围随机分开的时间片中去执行一个动作来保证的,像一个银行转账的恶意行为,使运营商方面的一个对手机活动的简单观察者对攻击过程有着不确定性和无法察觉。这个组件将防止其信息被存储到数据库中;当转账发生的时候,用户通过查看短信数据库是完全察觉不到的。另外,这个服务也是不易被处理的,与监听服务很类似,即使用户有意地中止它,它也会重新启动。几个改进还可以继续呗填入到这个服务中,使其更加隐蔽;举个例子来说,它可以监听用户活动的级别并在最繁忙的时间段比如用户在打电话或者发短信的时候执行恶意转账操作。这会降低用户察觉到账户余额减少的可能性。D. 开机服务这个组件用来使之前提到过的服务在开机的时候就开始运行.只要注册为“BOOT_COMPLETED”的广播接收者就可以达到效果。E. 权限去执行恶意活动所需要的最少的权限是短信应用所需要的接收短信和发送短信权限。在安卓市场上被调查的最流行的短信应用,在做这项工作的时候,额外地加入了读取短信和写短信权限。因此,对这些权限的请求是不正常的,也不会警告用户对恶意行为产生注意。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 解决方案

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报