1、安卓 短信恶意程序: 系统 漏洞和 应对 方案 摘要 : 在 这篇文章中,我们将研究在安卓操作系统中导致一系列 漏洞 的一些短信功能设计上的 决策 。 我们 也将论证一个 恶意 应用是可以被构造出来,并滥用这些漏洞的。这个 应用 将其展示位一个正常普通的短信应用,使用 其基本的 权限 去收发短消息。 自从 很多世界上的电信运营商提供允许用户通过短信 进行 存款交易 的 服务 后,恶意软件就会滥用这个服务 去 非法地将用户的 银行 存款进行转账 操作 。 安卓 的权限子系统,广播 接收 者系统 和短信发送机制 通过 授予恶意软件 对 短信发送 、 接收、 伪装 的完全掌控 权限,共同 导致 形成
2、了一个 对 短信恶意软件 存活的温室。因此, 恶意软件可以 隐藏任何在存款账号事务操作后来自通信运营商的确认信息。这一点 会 让恶意软件 慢慢 拿光 被 受攻击用户的所有存款,同时又可能对 很大 数量的 用户 和通信运营商产生危害。这样 的 应用在本地运营商已经被论证过了,其成功地 躲避 了 一个 声称 可以查处 恶意 软件的标准筛检程序的检查。 一系列 可能的 用于降低 类似攻击风险的解决办法正在被 提出 。 关键 词: 安卓 漏洞 恶意 软件 短信 银行 转账 权限 广播接收者 1. 介绍 移动 数字通信现在已经是 处于 发展的第三个阶段 同时 也正在稳定地进步发展。 通信行业 的进步已经
3、影响了移动端 设备 中 的 对应的所有 组件 。 这些 移动 设备是 手机 ,曾经 一开始 只是被用来 在 电路交换网络进行电话 呼叫 和提供 像 短消息服务这样的 基础 文本 服务。 这些 功能 受限的设备已 进化 为了 带有 高级功能的智能手机 , 这也导致其世界范围内 的 扩散 和 数量激增 。在 2011 年 ,报道 预估 接近 5 亿的智能手机被出货 ,相当于在 2010 年 的基础上 60%的增长。, 同时 也是占据了所有已出货手机数量的 30%。在 这些 智能 手机 中,超过 48%是基于 安卓 操作系统。另外 , 截止 2011 年 , 30 亿 的应用软件被下载。同时在 20
4、12 年 ,每月就有 15 亿的软件应用被下载 。安卓 系统在设计之初就设计为一个开源的操作系统。用户 能够 获取到其源代码,能够通过 开放 应用编程接口去构建应用软件并在安卓应用商店进行发布上线。 截止 2012 年九月,这 一理念丰富了安卓应用市场 的 应用,数量达到 675000, 但是也为很多不同的恶意软件 打开 了大门。在 事实 上, 在 2012年 4 月 到 6 月 ,有 八百万新 的移动应用 被 迈克菲鉴定为恶意软件。报告 中 提到,最新发现的问题 来源 有:基于短信的恶意软件,移动僵尸网络,间谍软件,破坏性的特洛伊木马。 特洛伊 木马 ! 短信僵尸进程,一个短信的安卓 木马
5、,在 2012年 7 月 被发 现,能够感染中国的 五十 万部手机。 在 中国,很多 金融 的事务和付款操作 可以 通过短信 进行 。能够 拦截 短信 的 能力和能够发送短信的权限 授予 了木马能够导致 大规模 攻击 的 能力。在 2012 年 9 月 , 一个恶意 安卓游戏应用被罚款77500 美金。 这个 应用 使用短信来使用户订阅了一个收费 应用, 被调查发现 已经获利了 397000 美元 。也 在 同一个月, FakeInst 被发现 。这个 木马 伪装 自己为一个基本的消息交换应用,同时 秘密 地 通过无声 发送短信订阅了保险费 率 服务 。报道 称,这一木马已经 获利 了 100
6、 亿 美元。 在 这篇文章中,我们讨论 安卓 操作系统 中能 导致 恶意 短信应用的发展和感染的主要特点和漏洞 。 另外 , 我们将论证基于安卓 的 智能 手机是 如何被一个 使用短信 服务作为操作 媒介 的恶意软件 的 利用的 。 通常 来说,这类恶意软件依靠来自两方面的漏洞 : 第一个是对通信运营商 的 依赖,另一个就是安卓系统 本身 的特点。对 前面 一个来说, 很 大数量的移动运营商 支持 在除了从手机上发送的短信 之外 不需要获取任何校验和授权就能使用短信文本 在 不同手机用户之间进行银行转账操作。 银行 存款 关联着能用于进行使用电话呼叫 、 收发短信或者访问网络的余额花费。举个
7、例子 来说,一个用户 想要 进行转账操作只需要输入两个部分来构建一个符合 结构 定义的文本:一个是他们想从 其余 额 转出 的数字,一个是 收款 人的手机号码。在 编辑 信息草稿后,用户将其发送给一个特定号码 , 然后这个 事务 就会被运营商通过存款转账进行处理完成。这个 也可以 被扩展用于其他可能的 通过 短信进行处理的金融事务 。至于 基于安卓特性产生的漏洞,这个 问题 包括 与 安卓 系统上 短信 收发有关 的 两个 特 性 。 为了 论证这些漏洞,我们将 构造 并测试一个前置概念的恶意移动应用。 这个 恶意软件伪装为一个普通的短信应用 , 但他实际上 会偷偷摸摸地 在 用户不知情的情况
8、下实施银行转账操作 , 同时也会隐瞒掉任何 收到的来自运营商的 确认 信息。 基于 我们进行的一个调查,我们发现 超过 20 个 的移动运营商使用一种或多种这样的服务 用于 用户间银行转账。 这些 运营商地理分布在 28 个 国家(一些运营商 不止 在一个国家有业务)。在 这样 的情况下, 处于 风险中的有价值的用户和运营商的数量 就 很重要 了 。 这篇 文章剩余的 部分 将如以下进行组织。第 2 章节 阐述相关的工作。第 3 章节 阐述一些与 已做 工作相关的安卓背景知识。第 4 章节 阐述我们的应用设计。我们 将 在第 5 和 第 6 章节分别 详细地说明应用的测试和分析。 最后 ,我们
9、将在第 7章节 阐述建议的解决方案,同时在第 8 章节 进行总结。 2. 相关的工作 Golde 在 除了封闭 源码性质的手机操作系统之外的 市场 上的大部分智能手机中 使用的短信应用中发现了很多漏洞。 他展示 了短信漏洞是如何被利用,用于断开手机与网络的连接,中止通话, 导致 崩溃 和 重新启动。 另外 ,拒绝服务的例子也被发现了 , 因为一些测试会会导致信息在被确认前,手机就出现崩溃 , 所以手机网络也会受到短信没有被发送成功从而 持续 不断尝试发送的影响。 还有 ,他展示了 一个 SIM 卡数据下载(一个 被 运营商用于远程管理 SIM 卡的管理工具 ), 通过这个短信可以被直接发送到
10、SIM(或者 USIM),能够被 操纵 ,所以被攻击的手机会 从 手机发送短信到任意 攻击者 制定的特殊号码,通过这个过程 用户 的银行账户 余 额就会被慢慢全部掏空。 除此之外 ,他展示了如何最后一个特性能够被利用去导致在一个特定的号码 中 产生拒绝服务。 Traynor 等人 一起论证了如何短信可以 成为对 网络恶意和有害的 。 很多 移动运营商提供基于网络的短信服务,通过这个用户可以直接通过网页向连接到网络的手机发送短信。 这个 服务,如果被 利用 ,能够导致 拒绝 服务从而防止移动手机用户向一个特定目标城市拨打电话。Mulliner 等人 也展示了一个 能特别 用 在智能 手机上进行测
11、试和监控短信的 通用框架 和机制 。 虽然 很多 智能手机已经被调查过了,我们主要的关注点是基于安卓系统的手机。在 他们 的工作中,他们介绍了一个 通过 调整 在无线 电 干扰层 用于与调制解调器通信的的 串 行线路 进行 注入和监控手机 信息 的 方法。 从 一个不同的视角,安卓权限系统以及被研究和 证明 出有漏洞可以给升级后的攻击以可乘之机。 Davi 等人展示了一个方法, 通过 这个方法应用软件可以进行拨打电话而不需要这样的权限。 虽然 他们特别提到这个问题以及被解决了,他们也展示了一个结果概念验证的方案,通过这个方案,一个没有任何权限的有漏洞的应用软件可以被用来执行电话命令, 最终 可
12、以发送 50 条 短信到攻击者制定的特殊号码,导致更多重大的危害。 作为 结果,没有理解不同安卓权限之间的区别会将用户置于风险之中。 这 也 在 一个由 对 一组安卓系统使用者 进行 的在线调查和采访中 得到 了确认。结果 显示 只有一小部分这些用户能够理解应用所 需要 的不同权限 之间 的不同 和 原因 。 特别 对 于 短信 来说,去理解四个可获取的权限 ( 发送短信, 接收 短信,读取短信,写入短信)是非常重要的。 在 引用的第 17 篇 文章里, 1260 个安卓 的 恶意 软件的样本被发现捕获和分析。主要 关注点 是 恶意 软件进行传播的方法 , 激活过程,需要的权限 和 被大家 所
13、熟知会被恶意软件监听的广播意图的 事件 。 结果 显示 49 个中 21 个 恶意软件 种类 会监听到来的短信 , 这是第二多 被 使用的广播,最多的是 开机 监听。 更为严重 的是,45.3%的恶意软件样本意图会 向通过 短信保险费率付费 。 另外 , 一些恶意软件被发现会去过滤一些短信,甚至有些被发现会回应收到的短信。还有 就是 ,反病毒工具 目前最好的检测率为 78.6%,还不能论证出能有一个足够的能力去检测恶意软件。 另 外 ,第 18 篇 应用论文的作者可以开发一个 可以存储 在图片 以 Linux 二进制 文件 原生的 方式 运行的 恶意 软件 。 举个 例子 来说,这 可以 绕开
14、安卓 权限 系统 。绕过 一个 特定的权限可以让 侵入者 做任何操作,包括发送短信。 3. 安卓背景 知识 安卓 为开发者提供开放了 开发 软件应用所需要的 应用 编程接口 的 软件 开发工具包 。 一个 与 软件开发工具包一起的全面综合的文档 也 在一个专用的网站上被提供。接下来 , 我们将 从 软件开发工具包中选取一些 与 我们工作有关的 内容话题进行描述。 A. 活动 在 安卓操作系统中, 对一个 应用来说,一个活动是一个必须的组件 。 每一个应用 必须 至少 有一个活动 , 即主活动。一般 来说 ,一个应用汇拥有很多活动,可以互相启动其他活动,而且每个活动都拥有其状态(比如停止或者暂停
15、)。一个活动 就是一个为用户 提供 用户图形化操作接口的组件。 B. 服务 服务 是按照系统中不提供任何用户接口的组件,一般是在后台运行一些需要长期运行的操作。服务 是 被其他应用组件开启的,所以一共活动或者一 个 服务能够开启 一个 服务 而且 一个服务的 生命 周期与开启它的组件是 独立 的。 C. 权限 处于 安全方面的原因, 如果 没有获取到对应的权限,一 部分 的应用 编程 接口是 不能 被软件所使用的。一般 来说 ,应用权限授权必须被 在 开发应用时,在 一个“Manifest .xml” 做 文件 中 被 静态声明。这些 权限 可以 出于 很多原因而被使用,比如在安卓应用商店中进
16、行过滤,通知用户( 只 在 安装 的时候),和保护这些关键的应用编程接口不受恶意软件利用。 D. 广播 接受者 广播 接受者是定义了安卓系统如何向应用传递数据的方法。 这些 广播接受者的主要用途是跨进程通信和特定 事件 的跟踪(比如一个短信到达手机时) 。应用静态或动态声明他们所感兴趣的 接受 特定种类的 信息 , 相应 地, 当 数据 可用 时,系统就会 尽力 将 所 需求的数据传递出去。 对于发送 信息的过程, 安卓 使用 应该 被传递给发送广播的数据结构 “ Intent” 。 举个 例子 ,安卓定义两种广播接受者:一般的和有序的。 一般的广播都是异步 的 。 向 一个广播注册 后 的
17、用户 不会 按照一个定义好的顺序去 接受到数据。 至于有序 的广播, 一个 优先级可以被设置去让系统可以获取,用于向 每个 应用以一个特定的顺序去传递信息。 因此 ,一些应用可以在其他应用之前获取到信息。这个 特点 让开发者可以 在 消息到达 低 优先级消费者 前 捕获和可 以 修改携带的的数据 。 在 这种 情况下,一个应用可以 通过 中止 接受到的数据 继续 传输 ,从而防止其他应用 获取 到特定的数据 。 对于 一个给定的广播,一个 关于 所有注册过的应用的顺序 会 被系统所维护: = 0,1,2,3, 这里 都是软件 应用。 如果 广播是普通的, 假设序列 中的所有 元素 都能获得准确
18、的没有修改 过 的信息 版本 。在 另一方面 ,如果广播 是 有序的,那么没有任何保证,保证能够有超过一个的应用可以得到最原始的信息。根据 我们 的实验,对于一个应用来说,如果要确保他能 接受 一个有序 类型 的广播,它必须要 成为 第一个以最高优先级去注册期望 意图 的应用。值得 注意 的一点是, 在 给予权限后,一个应用可以以任何 优先级 去注册一个意图,而不需要特定的约束和限制。 E. 短信 管理工具 短信 管理 工具 , 安卓 电话 功能 栈中的一部分,为开发者提供了必要的功能 去发送短信。为了 发送 一个文本信息,除了需要得到正确的权限 外 , 一个 应用可以在任何时间通过一个函数调
19、用就能 发送 一条文本信息。 用来 发送短信的 就是主要的 函数 就是 “sendRexrMessage” 。 调用这个发送函数不会 在 手机上显示任何通知。发送 过程 对于用户来说是感受不到和透明的。 F. Logcat 安卓 系统有一个特殊的日志系统,通过这个 , 系统 可以 在几个循环缓冲区内存储日志(对无线电 ,事件 和主函数)。开发者 可以 从这些缓冲 中 得到 从系统中产生的信息和调试他们的应用 而 得到好处。对于 这个 目的来说,一个特殊的命令( logcat)就 可以在一个 被 称作 安卓 调试桥 的 工具中使用去 从 想要的缓冲区中去获取数据。 4. 应用 设计 在 这个章节
20、中, 我们 描述一种概念较前卫的恶意软件应用。先 要 说明的是,这个应用会被设计成看起来像一个需要 基本 权限能力去发送和接受短信的普通短信应用。 实际 上 对于 安卓用户来说,有很多这样的应用,而且 他们 中的很多收到欢迎,因为用户可以将原生的简单的短信应用替代为更加符合和 方便 使用的短信应用。 这些 应用的浏览 流行 论证了 一个 恶意的短信应用只要简单地伪装成一个方便使用的短信应用就可以 用户 安装的可行性和容易 性 。 恶意 的代码被加到应用中 是 特别为了 把 通过短信服务 进行银行 转账作为攻击目标。 为了 这个目的,应用至少 需要 如下图所示的一个 活动 和三个服务组件 。 A
21、. 主活动 主活动组件 拥有整个用于读取和发送短信的 图形化 用户接口。在 安卓 手机上,短信是 通过 向内容提供 器“ content:/sms/” 使用数据 库 语句 进行读取和插入的。另外 ,这个组件是一个基本组件,至少在第一次的时候会发动监听服务和发送服务 。另一方面 , 开机 服务在主活动启动时就会自动独立地开始运行 了。 B. 监听 服务 这个 组件监听 收到 的短信 并 根据事先定义的标准去采取相应的行动。因为 这个 服务需要监听到来的信息,它需要注册为一个广播接受者。 当 从无线电系统中收到一条短信时,这个组件就会得到通知。收到 的 信息会被 检查 和解析。如何 新 收到的信息
22、不是一个与非法银行转账有关的确认信息,那么组件就会让这条信息没有任何修改地继续 传递 下去 ,或者 直接将它 插入 短信数据库中。 如果 , 相反地 ,这条消息是与 恶意 活动有关的,那么它将 会 被隐藏,而且永远都到达不了数据库或者其他应用中 。非常 需要 被关注的一点是处理这个事务的广播是一个有序的广播。因此 ,对于被 注册的广播接受者提供优先级 选择 权会 让这个隐瞒行为变得更加容易 。 这个 特点 可能 会 在过滤垃圾短信的时候特别有用。但是 基于 它已经被证明的会导致 危害 的 可能 性,它 可能 会将一根漏洞引入安卓操作系统中。 值得 关注的是,监听 服务被 设计为一 个 不易结束
23、 的服务。即使 用户 有意地中止它,它也会重新启动。 C. 发送 服务 这个 组件处理未授权的 短信 应用发送过程。这个 服务 以一个无声的方式工作。而 这个是通过在 大范围随机分开 的时间片中 去 执行一个动作来保证的,像一个银行转账 的 恶意 行为, 使运营商方面 的 一个 对 手机活动的简单观察者 对 攻击过程有着不确定性和无法察觉。 这个 组件将 防止 其信息被存储到数据库中 ; 当转账发生的时候 , 用户通过查看短信数据库是完全察觉不到的。 另外 , 这个 服务也是不易被 处理 的,与监听服务很类似,即使 用户 有意地中止它,它也会重新启动。 几个改进还可以继续呗填入 到 这个服务中
24、,使其更加隐蔽;举个例子来说,它可以监听 用户 活动的级别并在最繁忙的 时间 段比如用户在打电话或者发短信的时候执行恶意 转账 操作。这会 降低 用户察觉到账户余额减少的可能性。 D. 开机 服务 这个 组件 用来 使之前提到过的服务 在开机 的时候就开始运行 .只要 注册为“ BOOT_COMPLETED” 的 广播接收 者 就可以达到效果。 E. 权限 去 执行恶意活动所需要的最 少 的权限是 短信 应用所需要的接收短信和发送短信 权限 。 在 安卓市场上 被 调查的最流行的短信应用 , 在做这项工作的时候,额外地加入了读取短信和写短信权限 。因此 ,对这些权限的 请求 是不正常的 , 也不会警告用户 对 恶意行为产生注意。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。