谁在蚕食你的手机话费 ——初析WM智能手机木马与利益链 作者:小金 一.智能手机与高额话费商务精英胡先生终于没能抵挡住身边同事们都在用智能手机的诱惑,也去品牌店购买了一部“多普达S1精英版”智能手机,开 ...
谁在蚕食你的手机话费
——初析WM智能手机木马与利益链
作者:小金
一.智能手机与高额话费
商务精英胡先生终于没能抵挡住身边同事们都在用智能手机的诱惑,也去品牌店购买了一部“多普达S1精英版”智能手机,开始了他的商务白领手机生涯。然而紧跟着的一连串问题让胡先生明白了自己仍然是个门外汉的事实,首先同事的“HTC钻石”永远比他的“精英”反应速度快一些,然后又得知他买这个手机的价格比市场价高出了接近50%,也就是说,我们的商务精英在买“精英”的时候被商家狠狠宰了一刀。
但是事情还不算完,月末胡先生去充值手机费用时被一个他做梦也没想到的高额话费吓得差点诱发心脏病,让营业厅打印话费详单后,他惊奇的发现自己通过短信注册了不少收费的移动增值业务,甚至还有在深夜时刻拨打声讯台长达3小时的通话记录!胡先生完全迷惑了,他不记得自己有订购过什么业务,更别提打电话给声讯台了,与营业厅交涉无果,胡先生只能自认倒霉交了费用并注销了所有莫名其妙开通的增值业务。
事隔一天,胡先生查话费再次惊讶的发现自己昨晚又订制了多个收费增值业务,这下他坐不住了,赶紧去营业厅说明情况,与营业员争论半天,最后还是大堂经理见多识广,建议胡先生给手机杀毒或重装系统。手机也能重装系统?一头雾水的入门级用户胡先生只好求助于同事,终于把手机“硬启”了,然后又是折腾大半天重装各种手机软件,终于赶在下班前重新让手机上了股票交易软件。几天后,话费里再次莫名其妙多出的增值业务费用彻底让他欲哭无泪,这时候同事终于开始怀疑胡先生的手机是否中了病毒了。手机上居然还会有病毒?心力交瘁的胡先生决定不再用智能手机,一咬牙把“精英”低价卖了,随便买了个非智能平台的手机,继续过普通白领的日子去了,从此他再也没遇到话费的困扰。
二.谁在蚕食你的手机话费
随着魅族推出M8手机的攻势与苹果iPhone的宣传效应,越来越多的国内民众终于对“智能手机”这个名词有了些许认识,同时一直被大众视为“山寨”的多普达手机也终于得到了露脸的机会,“商务智能手机”开始走入寻常百姓家,许多人突然知道了手机也可以有操作系统,并且还能根据安装软件的不同而衍生出多个不同的特性和功能,一时之间“智能手机”成为了年轻人们聊天的又一个新话题。
和家庭电脑上存在几个不同操作系统阵营一样,智能手机也是有阵营区 分的,分别是诺基亚的Symbian系统、苹果的Mac OS X、微软的Windows Mobile、RIM的RIM系统以及Google正在研发的Android系统等,这些系统平台之间互不兼容,这也是想购买智能手机的用户面临的第一个困惑,什么平台最适合自己呢?这个问题各人都有不同的答案,所以选择一款适合自己的智能手机是十分必要的,总体而言,由于微软的Windows桌面系统占据了国内主流市场,而且Windows Mobile平台的手机内置Office文档办公功能,同时由于具备Windows平台开发经验的开发人员可以很轻松的转移到WM开发层面上来,所以采用微软WM平台方案的PocketPC手机可以作为商务人士的参考选择,但是由于软件众多,要想让它发挥所有功能必须经过一番折腾,因此业务繁忙人士不宜选用。
而苹果iPhone采用基于UNIX类操作系统的Mac OS X平台也提供了更为丰富的系统特性和功能,与WM平台SDK开放下载不同,苹果虽然也发布了官方SDK软件开发包让开发者得以加入开发阵营,但是这个开发是需要授权收费的;而相比之下走中规中矩路线的诺基亚Symbian平台由于证书授权问题,它的软件开发和使用相对比前两者要麻烦些许,但是它的S60操作系统是相当稳定的,适合需求稳定手机功能而不那么追求软件使用的商务人士使用。
以下我们将以普通家庭用户接触最多的Windows操作系统对应的手机平台Windows Mobile为例,讲解一个智能手机与恶意程序的故事。
简述Windows Mobile智能手机
Windows Mobile手机由于可以和Windows桌面系统紧密联系,同时还因为众多开发人员编写了方便在电脑端管理手机的工具而成为一部分智能手机人士的不二之选,而且WM系统的核心是Windows CE——被视为便携设备上使用的Windows系统解决方案,因此无论是普通用户还是开发者接触WM系统都能较快的入门,这也与WM手机无论是文件格式还是目录结构都类似个人电脑上的Windows系统有关,在业界里采用Windows Mobile系统的手持设备被称为PocketPC,即PPC,严格说来最初的PPC只是指一种能放进口袋的小型PDA设备,而增加了电话功能的PPC则应该称为PPC Phone,但是通常人们都已习惯用PPC指代智能手机了。
在PPC手机上可以看到许多鲜明的微软Windows标志和操作特性,如开始菜单结构、注册表、文件路径格式等,这些与Windows系统操作习惯类似的设定令许多用户在初期接触便已觉得十分亲切和容易上手,但是两者也不是100%相似的,在PPC里,“桌面”的概念变得很细微,取而代之的是用于模拟常规手机待机屏的“今日屏幕”,而程序图标是位于开始菜单的“程序” 分支里的;更重要的是,虽然PPC手机里运行的程序也是EXE和DLL文件,然而两者却是不互相兼容的,用于WM平台的可执行程序属于ARM体系,而普通个人计算机是x86体系,两种处理器的结构和底层操作完全不同,所以用于Windows系统的QQ2009是不能在WM系统里执行的,反之亦然。
当 然,这些底层的差异对于开发者而言并不是重要的事情,因为微软已经将Windows Mobile开发项目无缝集成到Visual Studio.Net里去了,而且它是免费的,这也就意味着为智能手机开发程序变得及其简单,因此鼓励了许多开发者加入智能手机软件开发的行列,从而让众多功能各异的工具软件在PPC上大放异彩。
相应的,当一个在Windows开发里习惯了编写木马后门的开发者要为Windows Mobile开发程序的时候,他自然也就会考虑开发木马后门这方面的程序了,因此,PPC木马终于出现。
从Windows Mobile应用程序的安装说起
对于“安装程序”这种东西,每一个电脑用户都是最清楚的了,大部分软件都是通过“安装”的形式在用户的计算机上构建一个合适的运行环境的,这个步骤其实从开发者的角度看来就是将相应文件复制到目标位置,然后在系统中注册相应的组件以达到目的,在Windows系统里这一过程实际上就是复制文件和注册表信息的调整写入,那么在Windows Mobile系统里,软件的安装又是如何进行的呢?
在WM平台中,微软启用了一种新的软件安装形式,这就是每个入门者都难搞清楚的CAB压缩包格式,在微软的规范下,基于CE内核的便携设备系统里每个软件最终都以单一文件形式的CAB压缩文件包发布,使用者只需将其复制到设备中运行即可被操作系统识别和执行相应的文件解压复制和注册表修改,这样就能避免安装程序文件变得零散,毕竟便携设备并非家用计算机那么方便操作。
软件开发者通过两种形式发布他们的产品,一种是零散的文件形式,这种形式适用于对系统运行环境没有过多需求和设置的小程序,即“绿色软件”;而另一种必须预设置系统环境和文件关联的软件就必须以CAB压缩文件的形式发布了,制作一个安装包并不复杂,微软的开发环境提供了打包工具,开发者更可以使用强大的第三方安装包制作和分析工具WinCE CAB Manager来完成这个过程,符合CE软件安装格式的CAB压缩文件在一般的解压缩工具查看的情况下是由乱七八糟不知所云的多个文件组成的,要正确识别这些安装程序的内容,必须通过第三方分析工具来实现,如WinCE CAB Manager。
一个符合软件安装要求的CAB安装程序解开后是由多个以数字为后缀的文件和至少一个XML文件组成的,无论里面的文件搭配形式如何,它都必须存在一个名为“_setup.xml”的XML文件,这个文件就是一切安装文件的核心脚本,它负责记录每个文件对应的原文件名以及将要复制的目标位置,并且告诉系统要写入和修改的注册表数据和注册组件等,系统读取解析这个脚本文件然后执行相应的文件复制、注册表数据写入和创建快捷方式等工作。
以这个流程来看,安装包似乎并不适合用于一些需要安装后立即自动运行以进一步设置系统环境的工具软件,例如某个软件安装后需要自动执行一下设置选项程序将软件安装路径和一些配置信息写入数据文件里,那么开发者将面临这样的难题:这些配置信息和安装路径并不是在每个便携设备上都一致的,而CAB安装包的形式只提供注册表修改和文件复制操作,对于进一步写入数据文件的操作它无能为力也无权进行,那么开发者只能告诉用户自己手工执行一次设置程序以构造初始运行环境,这样一来将显得这个软件很不专业。
但是,微 软不愧是微软,后期的CE系统接受了这个需求并针对其推出了一种被称为“安装库”(Setup Library)的扩展安装技术规范,这个规范使得之前制作的CAB安装包不会由于格式变动而作废,它在保持原有CAB安装格式的基础上加入了“安装库” 选项,所谓“安装库”就是一个DLL文件,它以微软约定标准编写导出函数,并命名为“SETUP.DLL”,系统在完成传统的安装过程前会寻找安装包里提供的安装库文件并执行它的导出函数,将当前安装信息传递过去,开发者要做的事情就是在这个导出函数里编写自己的安装环境扩充代码,就能轻松达到上述的文件操作目的,不仅如此,开发者还能让安装进程在刚开始时弹出提示消息框、以及到最后自动重启设备等,简单说来,可以把“安装库”视为一个能够监视和控制整个安装进程的安装组件模块,它可以拥有一切普通程序该具备的功能,这就意味着开发者可以运用安装库执行程序、生成特定配置信息数据、删除注册表(安装包只允许添加和改写注册表操作)等。
正是这一特性,方便了开发者,也方便了后来的木马制作者。
各个智能手机论坛是每一个智能手机用户必须光临的地方,在这些地方每天都能有新的软件发布,更重要的是论坛提供了一种互动形式,使得大家更深入了解某个软件具体提供什么功能,而不是从一些智能手机软件下载站点上看那些简洁难懂的文字,同时论坛里发布的软件通常要比下载站点里的版本要新,而目前还没出现能够“捆绑木马”的智能手机软件,于是许多用户都能放心运行论坛里下载的软件,殊不知,一场木马盛宴已经在悄悄展开……
手机木马来袭
事情的起因源于一些用户下载安装了某个发布者提供的软件后觉得手机出现异常现象,例如不定期的连接GPRS、莫名其妙拨打电话等,由于大部分使用者并非很了解智能手机,他们只能以通常的眼光认为是手机系统混乱了,然后执行“初始化”操作——在业界里这一行为称为“硬重置”(Hard Reset),俗称“硬启”,这个操作会导致整个手机系统清理后期用户安装和改写的系统环境,将系统初始化为最初状态。
硬启后,这些奇怪的现象自然消失了,然而好景不长,在重新设置系统环境和安装众多软件后,诡异现象再次出现,一部分人的话费账单开始出现异常记录,甚至产生高额话费,于是用户们发帖求助,最终,一场智能手机木马案浮出水面。
受害用户们的手机程序进程里出现了一个名为“msservices.exe”的进程,同时手机根目录和存储卡根目录同时出现了一个隐藏的“2577”文件夹,里面同样有个隐藏的“autorun.exe”,由于国内用户普遍对智能手机还处于初步摸索阶段,当分析者公布“2577”文件夹中的文件为木马执行体之一的时候,许多人还坚信这是正常的文件夹,依据是因为他们的手机里都有这个文件夹,由此可见这一类型的智能手机木马散播范围之广!
木马是怎么被安装到手机上的呢?许多有探究精神的人去重新下载了那个被他们怀疑的发布者提供的安装包,然而安装包里并没有“autorun.exe”和 “msservices.exe”的存在,直到具备便携设备开发经验和软件逆向工程经验的论坛会员进行了真正的技术分析,“被怀疑”终于变成“被确认”,安装包里的确没有“autorun.exe”和“msservices.exe”,然而却有安装库文件“setup.dll”!
通过使用反汇编工具对SETUP.DLL进行逆向工程,安装包进行的暗箱操作终于大白于受害用户眼前,首先,安装包里除了正常的程序文件以外,还混杂有一个被改了名的木马本体文件,这个名字当然是由发布者自己决定的,如“file.dat”、“_data.dat”等,就是要让一部分经验用户即使简单的打开安装包也看不出来。当安装程序执行完正常的文件复制和释放工作后,它触发了安装库的扩展安装功能。
然后安装库“setup.dll”被载入执行,这个安装库先把解压出来的木马本体给重命名为“msservices.exe”,再通过系统API去将它启动,执行完这些操作,安装库悄无声息退出执行,最后系统判定安装过程已经结束,返回结果用户。
然而木马已经被触发执行了,只是用户不知道。
在系统里安家后,木马程序开始一系列初始工作,首先,它获取系统的“启动”文件夹目录,并将自己的快捷方式创建到这个目录。资深Windows木马爱好者也许会问了,这方法多老土多暴露啊,写注册表或驱动不好么?问题就在于,CE里并不提供相对复杂的注册表自动运行项。当然,要在CE里实现非启动目录形式的自动运行也是可行的,只是相对复杂,而我们的木马开发者目前还处于初步摸索阶段,同时大部分智能手机用户也同样处于初步摸索阶段,所以如今这时期可以用当年“Windows 98的光辉时代”来形容了。
然后,木马开始获取用户手机的IMEI国际移动身份识别码,即俗称的“串号”等敏感信息,并通过连接GPRS网络的形式将数据发送到记录网站,这一过程就会导致受害用户的手机频频出现“自动联网”现象;同时,木马还会下载多个作用不明的文件,甚至意欲构造手机上的木马群环境!
做完初始工作后,木马开始监视存储卡的拔插操作并向其写入隐藏的“2577”目录和复制一个自身改名为“autorun.exe”的木马本体到这个文件夹中,这又是代表什么意义呢?原因在于微软的“便携设备存储卡插入通知”规范,“2577”目录配合“autorun.exe”引发的效果就等同于普通电脑上U盘病毒依赖运行的“autorun.inf”作用一样,这样就确保了被感染的存储卡在每次插入手机后,其中的木马程序被自动触发,同时这张被感染的存储卡在插入其他 Windows Mobile平台PPC手机时也会导致对方手机被感染木马程序,受害面积就是这样扩大的。为了坚定的达到这一目的,木马会在每次启动和用户插入存储卡时写入“2577”目录和木马本体,这就是为什么有些用户认为“2577”目录是系统文件的原因了,因为它被删除后仍然会在手机重启时出现,对于众多经验尚不足的用户群体,习惯了也就默许这只木马存在了。
最后,也是最关键的一步出现了,木马调用系统提供的短信服务API,开始不定期发送短信,这一步骤是由木马编写者决定的,例如向合作的移动增值服务商发送注册收费服务短信,对SP流程有认识的同学又会问了,现在移动规范了SP商必须返回一个确认短信以避免用户误操作,当用户确认后SP商还必须返回一个开通成功的短信提醒用户订制的业务内容,这些明显的步骤难道不能阻止木马恶意开通收费服务吗?这是个好问题,既然了解SP流程的同学们能知道,那么木马编写者自然也能知道,然后就会有针对的措施,而这个措施很不幸又是由系统自身提供的。
系统的短信服务提供了众多API接口,包括编写和发送短信、接收和删除短信等,但是微软却遵循了一个最开放法则来制作短信服务:除了以上接口,它还提供一种对短信进行预先识别和拦截的功能,通过这一接口,用户可以编写相应程序将系统接收到的短信提前拦截下来并读取和篡改内容,而这整个过程里不会触发任何系统提醒通知,也就是说,用户不会看到被拦截了的短信,设备也不会提示有新短信到达!正是这一接口让“短信大师”这一类短信加强工具诞生,同时也方便了木马编写者!
在这个流程里,木马首先发送一个要求注册SP服务的短信,然后将返回的短信加以识别和拦截,并回复一个“确认”短信,然后这条短信和随后SP服务商返回的“开通成功”短信一起被删除了,这样整个注册流程下来,用户都还不知道自己已经被中了套!更恶劣一些的木马甚至定期发送注册短信确认服务是否已被用户退订,这样一来,用户一天下来“被发送”的短信究竟有多少条,只有开发者自己才知道了。
同时,通过系统提供的电话呼叫服务 API接口,木马还能根据当前用户手机时间以及电源管理返回的状态判断是否夜深人静外加用户已睡觉的完美条件(通常是深夜时刻并且电源管理为待机状态或累计不操作时间超过设定的小时数,即认为用户已休息),当这些条件达到的时候,木马就可以操作手机拨打指定的号码了,例如预置的高收费声讯台号码,甚至骚扰电话和国际长途等,一切处心积虑只为了一个事情:蚕食用户的手机话费!
目前曾经在国内智能手机论坛闹得轰轰烈烈的似乎只有“小媒体”一家,然而实际上还有众多不为人知的非法公司在从事这一行为。
不过有一点可以确认的是,目前手机木马尚未达成“远程控制”的目标,这是由于GPRS网络与一般网络存在区别导致的,用户除了话费和隐私以外不用担心自己被人“监控操作”,但是联系人会被上传到网站倒是有可能的。
幕后的利益分成
与计算机里木马编写者的目的一样,手机木马编写者自然也需要有一个盈利目标,否则吃饱了撑的才会去玩这些讨骂的事情,因此,在手机木马的背后,是隐藏着某些 SP服务商和手机网站甚至声讯台的合作黑幕的,实际上某些SP商与山寨手机的合作黑幕早已被人公布在国内知名的看雪论坛里了,而且是在烧录手机系统芯片的时候固化进去的,如今这个黑手也伸向了智能手机平台,甚至一部分制作智能手机ROM文件的人自己就捆绑了木马程序,导致一些新人被先入为主的木马行为迷惑成了“系统特性”!
然而,如今不止PPC平台,诺基亚的Symbian平台也传来了木马嵌入安装包的消息,看来某些SP服务商是决定吃下整个智能手机市场了。
智能手机木马的发展
正 如我前面所说的那样,目前的智能手机木马尚处于“Windows 98”时代,它们必然会跟着使用者的经验提高而进化,目前已经出现了可以不依赖“启动文件夹”的木马,它们通过“设备事件队列”来触发,就像同步程序坚持不懈的在后台运行一样,采用这种形式启动的木马将增加技术人员的查找和删除难度,对于一般用户,就只能“硬启”了。
“设备事件队列”是 Windows Mobile平台里的又一个重要组成部分,由于WM里电源管理控制在设置系统进入待机时会将一切程序转入休眠状态,也无法通过程序自身唤醒,这就需要一个外部的系统事件触发了,而“设备事件队列”就能实现这一目的,通常它被一些闹钟软件使用,而如今,木马又借用它来完成了进一步升级。
目前的智能手机木马都能被任务管理器发现它们的进程,这不能不说是一件庆幸的事,然而这只是意味着木马制作者还没研究到一定深度而已,例如WM平台里实际上是可以实现DLL注入的,只不过调用的API不同罢了,利用这个方法制作的DLL木马将十分隐蔽和难以清除,为了避免一些不必要的后果,具体方法在此不提。
三.关于智能手机上的杀毒软件
早几年,就已经有杀毒厂商针对智能手机平台推出了杀毒软件,但是与电脑平台不同,目前大部分手机杀毒软件还只能称为“鸡肋的存在”——木马样本少得可怜、使用者少得可怜、占用系统资源大得残忍!在我早期的文章里曾经提到过,在一些低配置电脑上,杀毒软件的存在甚至比中了木马群还拖累用户系统速度,就如今的智能手机综合性能而言,手机上的实时监控和杀毒软件比真正的木马还要木马!所以目前的手机平台杀毒软件其实处于一个极其尴尬的地位——智能手机使用者自身都还在摸索阶段,他们很难知道自己的手机是否中了病毒,更别说用手机将病毒样本上传到杀毒软件官方网站了,首先是缺少需要的技术,其次,GPRS流量费用是一个很现实的问题。如此一来,杀毒软件也就成了花瓶般的摆设,当有新的木马携安装程序汹涌而来的时候,它们的病毒特征数据库里由于缺少对应的标识而不认为对方是木马,这样的杀毒软件除了驻留手机内存消耗用户电力和系统速度以外,实在是很难达到预见的效果。
四.结语
作为一种国内的“新兴事物”,智能手机在大部分人眼里仍然是一种怪物般的存在,而许多使用者也尚处于茫然的状态,在这样的情况下,相对于桌面计算机而言编写技术相对简陋的手机木马也就能平安横行于智能手机了,这个局面是无法简单的通过几句指导来改变的,我们只能期盼着有一天,众多国人眼里的“多普达”不再是“山寨机”的存在,但是,相对于普通手机,熟悉操作智能手机所需的常识和操作又成为阻碍众多国内用户发展的难点之一,这个梦,或许还很遥远……