0 引言
在通信技术高速发展的今天, 智能手机变得越来越普及, 人们在享受智能手机强大功能的同时, 也受到来自手机恶意代码的侵扰。为有效遏制手机恶意代码的快速发展势头,相应的分析防御方法已相继提出, 各种手机杀毒软件也随之应运而生。目前主流的手机恶意代码防御方法主要参照计算机恶意代码的分析防御技术, 包括传统的恶意代码防御技术( 如基于恶意代码特征匹配的扫描技术和启发式经验规则等) 及行为阻断技术; 主流手机杀毒产品基本能做到有效地实时扫描及监控、病毒处理和查杀、病毒库及软件更新, 其配套的通信基础设施也在逐步完善当中。
各种杀毒工具都是基于恶意代码的特征码实现, 在恶意代码出现到特征码被提取出的这段时间足以让恶意代码实现破坏力, 而杀毒工具对此却无能为力。尽管手机网络可以借鉴互联网的防范技术, 但由于智能手机和计算机软硬件上的本质差别,如何有效防范智能手机的恶意代码正越来越受到人们的关注。对此, 本文研究开发了智能手机恶意代码防范系统, 以实现在手机终端、网关、服务器及PC产品等层面上对智能手机恶意代码的立体防范。
1 智能手机恶意代码防范模型
针对智能手机的恶意代码问题, 本文提出了智能手机恶意代码防范模型, 并详细介绍了该模型各个层次的功能, 为智能手机恶意代码防范提供理论依据。
图1 是本文提出的智能手机恶意代码防范模型, 该模型以当前的计算机病毒防范为参考, 从5 个层次规划智能手机恶意代码防范模型, 其目标是为实际的智能手机恶意代码防范系统提供理论指导。
图1 智能手机恶意代码防范模型
按对智能手机的防范能力,可以把整个模型划分为恶意代码检测层、备份恢复层、实时监控层、漏洞管理层、数字免疫层等5 个层次。此外,为了支持模型5 个层次的运行,模型中还包括核心数据模块。核心数据模块包含5 个层次所要求的数据( 例如, 恶意代码特征库、防范策略、免疫信息等)以及获得这些数据需要的支持模块( 例如, 恶意代码分析等) 。
接下来,以5 个层次为序分别简要描述模型的内容。
1.1 恶意代码检测层
恶意代码检测层主要指恶意代码检测引擎, 它由两个部分组成: 特征代码库和扫描算法。组织合理的特征代码库和高效的扫描算法是恶意代码扫描引擎的两个核心部分。其具体将研究特征代码库的组织方法, 使特征代码库尽量节省空间; 提高扫描算法的执行效率, 降低扫描算法的空间复杂度, 以适应智能手机设备的特定硬件需求。
1.2 备份恢复层
在智能手机安全领域, 由于存在与计算机的重要区别, 因此, 可以用恢复技术来恢复被感染对象的功能。这些区别主要表现在: 计算机不仅运行应用程序, 而且还是程序员编制程序的工具, 因此, 时时刻刻都有新的应用程序出现在计算机中。而智能手机则完全不同, 用户不会在智能手机上编制新的应用程序。即使下载安装了其他应用, 也是非常有限( 可枚举) 的集合。因此, 备份恢复层功能是把智能手机领域用到的应用都备份到一个公共平台上, 当发现用户的手机中有部分对象遭到破坏时, 采用从公共平台恢复的手段来恢复被感染对象。
1.3 实时监控层
实时监控层的功能是监控手机的数据出入口,起到安全预防的功能。在实际环境中, Internet 访问、短消息服务、Email 服务、信息共享( 蓝牙、红外、PC、USB、存储卡) 、WAP、GPRS??CDMA??GSM 是病毒入侵智能手机的途径。实时监控工具预防恶意代码通过这些途径入侵智能手机。部署在手机上的实时监控工具将监控进出互联网络、信息服务、蓝牙、红外线等接口的数据, 实现预防恶意代码入侵, 防止用户信息被窃取的功能。
1.4 漏洞管理层
智能手机系统漏洞管理层主要有两层含义。在客户端, 表现为一个工具软件, 用于探测已知的漏洞或脆弱性, 提醒用户安全事项。另一个层次的含义是设计一个公共的协议, 让众多的手机厂商、手机软件开发商遵循。厂商可以通过该协议发布漏洞补丁, 便于用户下载安装。
1.5 数字免疫层
就传统的计算机系统安全而言, 现有的防范计算机病毒的技术都是权宜之计。尽管这些防范技术都取得了非常好的效果, 但在新病毒不断出现的情况下, 没有一劳永逸的基础架构可以解决计算机病毒防范问题。
本文将在数字免疫层研究在智能手机领域解决恶意代码的问题, 并采用“免疫”技术来实现智能手机领域的长远防范方法。数字免疫基础设施包含多层意思: 首先, 它不是局限于某个软件、某个系统的狭隘免疫思想( 该方法已被证明为不可行) , 而是着眼于所有智能手机及其相关服务领域的宏观免疫思想; 其次, 与其说它是一个系统, 还不如说它是一个基础设施, 这就预示着其建设过程将非常艰巨; 最后, 免疫的对象不是某个程序, 而是一个系统( 智能手机) , 这也更加贴近生物领域的免疫概念。
除了5 个层次之外, 核心数据模块包含5 个层次所要求的数据( 例如, 恶意代码特征库、防范策略、免疫数字等) 以及获得这些数据需要的支持模块( 例如, 恶意代码分析等) 。
恶意代码样本采集和分析技术是防范技术的前提。与计算机病毒防范类似, 如果要成功防范移动终端恶意代码, 就必须获得其样本, 分析恶意代码样本的运行机制, 从中得到防范方法。这部分的关键技术点在于: 恶意代码样本采集及特征码提取技术。
2 智能手机恶意代码防范系统
以智能手机恶意代码防范模型为指导, 本文研究开发了一个智能手机恶意代码防范系统。该系统严格按照防范模型进行构建, 系统各个层次采取的具体方案详细描述如下。
2.1 恶意代码检测层实现方案
恶意代码检测是防范已经入侵到智能手机内部的恶意代码的有效方法。与计算机病毒检测技术类似, 如果要成功检测出已经入侵到智能手机里的恶意代码, 就必须开发一个恶意代码检测引擎, 该引擎主要由两个部分构成, 它们是恶意代码特征库和扫描算法。
( 1) 恶意代码特征库: 恶意代码的有效检测取决于相关特征码数据库的采集与及时更新。恶意代码通常包括引导、传染和表现3 大功能模块,特征码是从恶意代码源代码中不同位置提取的一系列字节, 检测层通过不同的提取方法和提取工具采集智能手机中最新流行的特征码, 并及时更新特征库。
( 2) 扫描算法: 扫描算法的时间空间复杂度是恶意代码扫描引擎关注点。对于动态串的扫描算法有两个思路: 单模式匹配算法和多模式匹配算法。单模式匹配的经典算法有KMP(Knuth??Morris??Pratt ) , QS(Quick Search) , BM( Boyer??Moore) 等算法, 其中, BM算法被广泛应用于现有商业杀毒软件中。经典的多模式匹配算法是AV.Aho 提出的基于有限自动机的DFSA( DeterminiSTic Finite StateAutomata) 算法, 该算法在匹配前对模式串集合进行预处理, 转换成树型有限自动机, 然后只需对待匹配动态串进行一次扫描即可找出所有的模式串, 其时间复杂度为O( n) 。
2.2 备份恢复层实现方案
恶意代码检测层提供了判断程序或数据是否感染了恶意代码的方法, 备份恢复则是对其做出的响应。而由于智能手机不会像PC 机一样成为编制程序的工具, 手机上的应用程序数量有限, 可以枚举出来, 所以智能手机不需像在传统计算机病毒防治领域那样, 把清除病毒并恢复被感染者的功能作为首选策略, 而是把智能手机领域用到的应用都备份到一个公共平台上, 当发现用户的手机中有部分对象( 例如, 应用程序) 遭到破坏时, 采用从公共平台下载的手段来恢复被感染对象。
可以看出备份恢复层的难点是应用程序的枚举。就手机目前状态和长远发展而言, 智能手机上的应用还是可枚举的。如果能够解决应用程序与功能模块的枚举问题, 那么关于备份恢复层的核心问题也就可以解决了, 以下是几点关于此模块的要点:
( 1) 必须组建一个具有权威性的全球机构来创建以及维护能提供数据备份与恢复服务的公共平台, 实现对应用程序集合的更新管理。
( 2) 联合全世界的知名手机软件尤其是系统软件企业, 加入到该公共平台建设与维护中, 保证手机功能模块的恢复。
( 3) 在厂商参与形式上, 既可以采取分层模式,即由该专业机构授权参与此联盟的下属厂商提供相关产品的备份恢复服务, 也可以由该专业机构统一整合管理并提供。分层模式对于用户而言较为麻烦, 而统一模式又容易造成单点失败, 各有利弊。
( 4) 在有厂商参与的同时, 也不排斥个人行为的参与, 这类似于iphONe 应用与软件交易平台AppleStore的模式, 所不同的仅仅是在这里个人行为的参与需要经过该专业机构的严格审查与认证。
( 5) 而对于众多的应用程序与功能模块的集合管理, 可按操作系统、功能或手机品牌等进行分类。
当然, 在本层中, 不仅是应用程序的备份恢复,对于用户数据, 如个人通讯录、重要短信息等的备份也是十分必要的, 鉴于这部分仅仅只涉及数据, 而并没有涉及程序的安装使用等, 所以可以采取与PC同步的方式完成。
2.3 实时监控层实现方案
实时监控层将监控进出互联网络、信息服务、蓝牙、红外线等接口的进出口数据, 实现预防恶意代码入侵, 防止用户信息被窃取的功能。具体内容详述如下:
( 1) 监测输入数据流。
监测输入流量是监控工具的一个重要功能, 包括有害信息( 即病毒) 流入与非法行为入侵。与计算机中个人防火墙的这一功能相同, 也类似于PC 上的入侵检测系统( IDS, Intrusion DetectSystem) , 尤其是其中的网络入侵检测系统(NIDS) , 因为对智能手机而言, 网络流量是其最大的数据流输入部分,NIDS 的分析方法有: 统计分析、模式匹配、数据重组、协议分析、行为分析等。
监测流量的另一个方法是仅允许某些可信服务器发送数据流给移动用户。这需要对服务器进行验证并保护那些在服务器和无线网络间进行的传输。
( 2) 监测输出数据流。
为了防范木马攻击, 监控工具的设计原理是监测应用程序的联网请求, 然后, 根据应用程序是否可信来决定是否允许数据流的流出。有些间谍程序通过把自己改为可信程序名以逃避过滤规则。所以,移动终端防火墙的限制规则应是基于整个应用程序的校验和而不是仅仅根据名称。
( 3) 黑白名单。
黑白名单可以体现在SIM 卡号码、域名、Email地址等多个方面。在智能手机设备使用WWW、WAP 信箱服务时, 不必经过对数据流监测算法, 直接通过黑白名单决定是否允许连接请求。同样, 黑白SIM 卡号码是决定是否允许来自特定终端设备的数据流和服务的规则。
2.4 漏洞管理层实现方案
智能手机的潜在漏洞主要来自于三类: 嵌入式操作系统、运行时环境、应用程序。嵌入式操作系统的漏洞指的是由于智能手机所采用的操作系统本身的脆弱性造成的漏洞。典型的操作系统漏洞是蓝牙网络连接, Cabir 病毒就是利用该漏洞进行传播的。手机的运行时环境包括JAVA、。 NET 等运行时支持库, 它们具有脆弱性, 也可能被用户滥用, 从而形成运行时环境漏洞。Vxer( 病毒制造者) 可以利用这些漏洞访问本地文件、获取权限、开放共享等。智能手机上的应用软件可谓多种多样, 它们的脆弱性也是不计其数。嵌入WML ( Wireless Markup Language) 文件的恶意脚本代码是应用软件类漏洞的典型代表。
漏洞防范主要靠更新有关的软件开发厂商的补丁程序。关于补丁发布方式, 可以参照计算机领域操作系统漏洞发布机制来制订智能手机领域的漏洞发布方式。
2.5 数字免疫层实现方案
基于大多数恶意代码来源于互联网络的现实,本文设计了一个能够阻止来自网上恶意代码入侵的原型系统, 即智能手机数字免疫系统。所有面向智能手机的应用程序( 例如手机游戏等) 、免疫信息都将被数字免疫系统采集。任何智能手机从任何途径获得应用程序时, 都推荐使用数字免疫系统作为中间代理来验证所获得的程序的完整性。数字免疫系统可以有效防止寄生了恶意代码的宿主程序入侵手机终端。对于未登记应用程序, 该系统将不允许其进入手机终端。
如图2 所示, 数字免疫基础设施由免疫信息采集网络、免疫信息中心、免疫信息验证平台3 个子系统组成。图中虚线部分是手机终端获取各种软件的不安全途径。数字免疫系统的安全数据流程如下:
图2 数字免疫基础设施结构图
免疫信息采集网络分布于尽可能广的范围, 拥有尽可能多的节点, 采集应用于智能手机各种应用程序的免疫信息( 例如数字签名, 名字, 版本号, 大小, 开发商, 应用平台等) 。免疫信息中心存放采集网络采集下来的各种信息, 管理免疫信息。当手机用户需要下载安装软件时, 免疫信息验证平台利用免疫信息中心存储的免疫信息验证下载的软件是否完整( 有没有成为恶意代码的宿主) , 如果完整则允许安装到用户终端上, 如果不完整则拒绝安装请求。
3 结束语
随着智能手机的大众化, 其功能与设备越来越贴近人们的生活, 而与之相关的恶意代码正处于快速增长期。为使智能手机的恶意代码对人们生活的影响降到最低, 建立一套完善的防范体系模型显得尤为迫切, 手机制造商、网络运营商、反病毒软件商等正在努力构建这一平台, 从安全目标、安全威胁、安全机制、安全防护系统及安全管理等方面出发逐步实现对智能手机恶意代码的立体防御。