一、前言
手机病毒一直被吵得沸沸扬扬,去年就有一些媒体向我约稿,要我写一些关于手机病毒方面得文章,但是我至今没见过真正的手机病毒,怕误人子弟,所以一直不敢下笔。这段时间,经常看到媒体有报道手机病毒,甚至收到很多朋友给我的提醒邮件:“当来电显示有‘ACE‘这一字段时(对于大多数有来电显示的数字手机),不要接听,立即挂断,如果接通,你的手机会感染一种病毒。该病毒会抹去你的手机和SIM卡里的所有IMS和IMIE信息,从而导致你的手机无法和电话网接通。你不得不另买台手机“,觉得有必要澄清一些错误的说法。上面所说的ACE病毒其实只是一个假病毒消息(可以见http://vil.mcafee.com/dispVirus.asp?virus_k=99320 、http://www.snopes.com/computer/virus/mobile.htm和http://www.f-secure.com/hoaxes/cf_virus.shtml),但是不少国内媒体都把它作为真的手机病毒报道(包括国内的几大防病毒产商),并到处引用和渲染。
二、病毒特点
我在手机“病毒“上加了引号,是因为我到目前为止没有见过真正的手机病毒,我们知道,病毒应该具有以下特点:
传染性
病毒通过自身复制来感染正常文件,达到破坏目标正常运行的目的,但是它的感染是有条件的,也就是病毒程序必须被执行之后它才具有传染性,才能感染其他文件。
破坏性
任何病毒侵入目标后,都会或大或小地对系统的正常使用造成一定的影响,轻者降低系统的性能,占用系统资源,重者破坏数据导致系统崩溃,甚至损坏硬件隐藏性。
潜伏性
一般病毒在感染文件后并不是立即发作,而是隐藏在系统中,在满足条件时才激活。
可触发性
病毒如果没有被激活,它就像其他没执行的程序一样,安静地呆在系统中,没传染性也不具有杀伤力,但是一旦遇到某个特定的条件,它就会被触发,具有传染性和破坏力,对系统产生破坏作用。
寄生性
病毒嵌入到载体中,依靠载体而生存,当载体被执行时,病毒程序也就被激活,然后进行复制和传播。
目前虽然出现了不少针对手机的攻击,主要可以分为以下几类:
攻击者占领短信网关或者利用网关漏洞向手机发送大量短信,向手机发送大量短信,进行短信拒绝服务攻击。典型的就是利用各大门户网站的手机服务漏洞,写个程序,不停的用某个手机号码订阅某项服务或者退定某个服务,而去年出现的SMS.Flood就是这样一个程序;
攻击者利用手机程序的漏洞,发送精心构造的短信(SMS)或者彩信(MMS),造成手机内部程序出错,从而导致手机不能正常工作,就像我们经常在计算机上看到的“程序出错”情况一样。典型的例子就是前年出现的针对西门子手机的Mobile.SMSDOS程序。
从以上分析我们可以看出,前段时间针对手机的攻击程序都没有寄生性和传染性的特点,因此我们还不能把它们称之为“病毒”,只能把他们称为手机漏洞的攻击程序。以下我们详细分析这些程序,以及他们利用的手机漏洞。
三、手机漏洞分析
根据漏洞发现时间上的先后顺序,我把已经公布的手机漏洞进行了整理,到目前为止,主要有以下一些手机漏洞:
1、 Nokia 某些产品PDU格式漏洞:荷兰安全公司ITSX的研究人员发现,诺基亚的一些流行型号的手机的操作系统由于没有对短信的PDU格式做例外处理,存在一个Bug,黑客可以利用这个安全漏洞向手机发送一条160个字符以下长度的畸形电子文本短信息来使操作系统崩溃。该漏洞主要影响诺基亚3310、3330和6210型手机。
2、 Siemens 35系列特殊字符漏洞:由于手机使用范围逐渐扩大,中国安全人士对手机、无线网络的安全也产生了兴趣,2001年底,中国安全组织Xfocus的研究人员也发现西门子 35系列手机在处理一些特殊字符时也存在漏洞,将直接导致手机关机。
3、 Panasonic的GD87彩信手机存在漏洞:2002年12月,T-Mobile International AG 公司确认了在新款松下彩信手机软件中出现了漏洞,这个漏洞可以让手机不经过使用者的同意而访问付费服务,其中的原因是GD87支持WAP PUSH中的service loading方式。 “WAP PUSH”分为service loading与service indication两种,其中service loading工作如下图所示:
a) Push发起者向wap网关发送文本方式的SL(service loading)
b) PUSH网关收到该信息后转化为二进制方式,然后向用户终端推送这个SL(service loading);
c) 如果用户终端接受到此信息,这时用户是不会知道这个信息的;
d) 如果手机端没有附加的判断,那么手机会自动启动wap浏览器通过PUSH网关发送请求;
e) 服务器返回结果,这时终端就已经登陆到相应的网址了。如果此网站需要付费,则手机用户就会在不知不觉中付大量的费用。
4、 Orange 的SPV 存在允许运行非认证软件漏洞
英国电信商Orange的SPV是市面上第一款采用微软Smartphone 2002操作系统的手机,基于安全考虑,Orange只允许经过该公司认证的软件才能 在SPV手机上执行。但2003年初已有黑客破解SPV上的安全机制,并公开此一破解方法,这样,程序无须通过Orange认证,就可直接流入网络, 用在SPV手机上,从而对用户的手机产生破坏。
5、 Nokia的Vcard存在漏洞
VCard格式是一种全球性的MIME标准,最早由Lotus和Netscape提出。该格式实现了通过电子邮件或者手机来交换名片。Nokia的6610、6210、6310、8310等系列手机都支持Vcard,但是其6210手机被证实在处理Vcard上存在格式化字符串漏洞。攻击者如果发送包含格式字符串的vCard恶意信息给手机设备,可导致SMS服务崩溃,使手机被锁或重启动。
6、 Siemens的"%String"漏洞
2003年3月,西门子*35和*45系列手机在处理短信时,在处理短信时遇到问题。当接受到"%String"形式的短信时,如”%English”西门子手机系统以为是要更操作改系统语言为英文,从而导致在查看该类短信时死机,利用这一点很容易使西门子这类手机遭受拒绝服务攻击。
四、手机病毒趋势
虽然已经在不少手机上发现了安全问题,但是到目前为止,还没有看到真正意义上的手机病毒,这并不是因为没有人愿意写,而是存在着不少困难:
1. 手机操作系统是专有操作系统,不对普通用户开放,不像电脑操作系统,容易学习、调试和程序编写,而且它所使用的芯片等硬件也都是专用的,平时很难接触到;
2. 手机系统中可以“写”的地方太少,在以前的手机中,用户是不可以往手机里面写数据的,唯一可以保存数据的只有SIM卡,下图是SIM卡的说明,其中只有Telecom Dirextory是可以由我们保存数据的,而这么一点容量要想保存一个可以执行的程序非常困难,况且保存的数据还要绕过SIM卡的格式。
3. 以前手机接收的数据基本上都是文本格式数据,我们知道文本格式也是计算机系统中最难附带病毒的文件格式,同样在手机系统中,病毒也很难附加在文本内容上。
但是随着手机行业的快速发展和基于手机的应用不断增多,这种局面已经开始发生变化,特别是
1. K-JAVA大量运用于手机,使得编写用于手机的程序越来越容易,一个普通的Java程序员甚至都可以编写出能传播的病毒程序;
2. 基于Symbian、Pocket PC和SmartPhone的操作系统的手机不断扩大,同时手机使用的芯片(如Intel 的Strong ARM)等硬件也不断固定下来,使手机有了比较标准的操作系统,而且这些手机操作系统厂商甚至芯片都是对用户开放API并且鼓励在他们之上做开发的,这样在方便用户的同时,也方便了病毒编写者,他们只需查阅芯片厂商或者手机操作系统厂商提供的手册就可以编写出基于手机的病毒,甚至这样的可以破坏硬件。
3. 手机的容量不断扩大既增加了手机的功能,同时也使得病毒有了藏身之地。现在的很多手机都有比较大的容量,甚至能外接CF卡,这样病毒就不再也不用发出“天下虽大,却没有我容身之地”的感叹了;
4. 手机直接传输的内容也复杂了很多,有以前只有文本的SMS发展到现在支持2进制格式文件的EMS和MMS,因此病毒就可以附加在这些文件中进行传播。
从以上分析可以看出,现在的手机发展为手机病毒的产生、保存、传播都创造了条件,因此手机病毒的出现和发展也仅仅只是时间问题而已。
五、防范手机病毒
如果我们可以放弃丰富的娱乐、便捷的工作、美好的生活,那手机病毒或许就可以远离我们,但我们都有愿望和权力选择更美好、更丰富的生活,所以我们要做打一场防范手机病毒战争的准备也就在所难免了。从手机病毒的特点来分析,我们可以采取以下措施:
1、 坚守手机堡垒:手机是手机病毒寄生和发作的温床,因此要防范手机病毒,就要在手机上做好安全,手机厂商要防止出现手机的安全漏洞,用户要注意不能随便下载不确定来源的文件(包括手机铃声和图片),杀毒软件厂商也要开发出手机杀毒软件(目前Trend micro、Mcafee、f-secure等公司已经有了PDA版本的杀毒软件);
2、 堵死手机病毒传播通道:手机病毒的通道主要是移动运营商提供的网关,因此在网关上进行杀毒是防止手机病毒扩散的最好办法,国内的安全组织Xfocus在这方面做了比较深入的研究,分析了SMS、EMS和MMS的协议分析,并在这基础上对其中包含的内容进行扫描,确保传送的内容是安全可靠的。
随着手机的不断发展和基于手机业务的不断扩大,手机病毒的危险也是越来越大,但是只要我们提高安全意识,注意安全,手机病毒也是可以防范的.
手机病毒一直被吵得沸沸扬扬,去年就有一些媒体向我约稿,要我写一些关于手机病毒方面得文章,但是我至今没见过真正的手机病毒,怕误人子弟,所以一直不敢下笔。这段时间,经常看到媒体有报道手机病毒,甚至收到很多朋友给我的提醒邮件:“当来电显示有‘ACE‘这一字段时(对于大多数有来电显示的数字手机),不要接听,立即挂断,如果接通,你的手机会感染一种病毒。该病毒会抹去你的手机和SIM卡里的所有IMS和IMIE信息,从而导致你的手机无法和电话网接通。你不得不另买台手机“,觉得有必要澄清一些错误的说法。上面所说的ACE病毒其实只是一个假病毒消息(可以见http://vil.mcafee.com/dispVirus.asp?virus_k=99320 、http://www.snopes.com/computer/virus/mobile.htm和http://www.f-secure.com/hoaxes/cf_virus.shtml),但是不少国内媒体都把它作为真的手机病毒报道(包括国内的几大防病毒产商),并到处引用和渲染。
二、病毒特点
我在手机“病毒“上加了引号,是因为我到目前为止没有见过真正的手机病毒,我们知道,病毒应该具有以下特点:
传染性
病毒通过自身复制来感染正常文件,达到破坏目标正常运行的目的,但是它的感染是有条件的,也就是病毒程序必须被执行之后它才具有传染性,才能感染其他文件。
破坏性
任何病毒侵入目标后,都会或大或小地对系统的正常使用造成一定的影响,轻者降低系统的性能,占用系统资源,重者破坏数据导致系统崩溃,甚至损坏硬件隐藏性。
潜伏性
一般病毒在感染文件后并不是立即发作,而是隐藏在系统中,在满足条件时才激活。
可触发性
病毒如果没有被激活,它就像其他没执行的程序一样,安静地呆在系统中,没传染性也不具有杀伤力,但是一旦遇到某个特定的条件,它就会被触发,具有传染性和破坏力,对系统产生破坏作用。
寄生性
病毒嵌入到载体中,依靠载体而生存,当载体被执行时,病毒程序也就被激活,然后进行复制和传播。
目前虽然出现了不少针对手机的攻击,主要可以分为以下几类:
攻击者占领短信网关或者利用网关漏洞向手机发送大量短信,向手机发送大量短信,进行短信拒绝服务攻击。典型的就是利用各大门户网站的手机服务漏洞,写个程序,不停的用某个手机号码订阅某项服务或者退定某个服务,而去年出现的SMS.Flood就是这样一个程序;
攻击者利用手机程序的漏洞,发送精心构造的短信(SMS)或者彩信(MMS),造成手机内部程序出错,从而导致手机不能正常工作,就像我们经常在计算机上看到的“程序出错”情况一样。典型的例子就是前年出现的针对西门子手机的Mobile.SMSDOS程序。
从以上分析我们可以看出,前段时间针对手机的攻击程序都没有寄生性和传染性的特点,因此我们还不能把它们称之为“病毒”,只能把他们称为手机漏洞的攻击程序。以下我们详细分析这些程序,以及他们利用的手机漏洞。
三、手机漏洞分析
根据漏洞发现时间上的先后顺序,我把已经公布的手机漏洞进行了整理,到目前为止,主要有以下一些手机漏洞:
1、 Nokia 某些产品PDU格式漏洞:荷兰安全公司ITSX的研究人员发现,诺基亚的一些流行型号的手机的操作系统由于没有对短信的PDU格式做例外处理,存在一个Bug,黑客可以利用这个安全漏洞向手机发送一条160个字符以下长度的畸形电子文本短信息来使操作系统崩溃。该漏洞主要影响诺基亚3310、3330和6210型手机。
2、 Siemens 35系列特殊字符漏洞:由于手机使用范围逐渐扩大,中国安全人士对手机、无线网络的安全也产生了兴趣,2001年底,中国安全组织Xfocus的研究人员也发现西门子 35系列手机在处理一些特殊字符时也存在漏洞,将直接导致手机关机。
3、 Panasonic的GD87彩信手机存在漏洞:2002年12月,T-Mobile International AG 公司确认了在新款松下彩信手机软件中出现了漏洞,这个漏洞可以让手机不经过使用者的同意而访问付费服务,其中的原因是GD87支持WAP PUSH中的service loading方式。 “WAP PUSH”分为service loading与service indication两种,其中service loading工作如下图所示:
a) Push发起者向wap网关发送文本方式的SL(service loading)
b) PUSH网关收到该信息后转化为二进制方式,然后向用户终端推送这个SL(service loading);
c) 如果用户终端接受到此信息,这时用户是不会知道这个信息的;
d) 如果手机端没有附加的判断,那么手机会自动启动wap浏览器通过PUSH网关发送请求;
e) 服务器返回结果,这时终端就已经登陆到相应的网址了。如果此网站需要付费,则手机用户就会在不知不觉中付大量的费用。
4、 Orange 的SPV 存在允许运行非认证软件漏洞
英国电信商Orange的SPV是市面上第一款采用微软Smartphone 2002操作系统的手机,基于安全考虑,Orange只允许经过该公司认证的软件才能 在SPV手机上执行。但2003年初已有黑客破解SPV上的安全机制,并公开此一破解方法,这样,程序无须通过Orange认证,就可直接流入网络, 用在SPV手机上,从而对用户的手机产生破坏。
5、 Nokia的Vcard存在漏洞
VCard格式是一种全球性的MIME标准,最早由Lotus和Netscape提出。该格式实现了通过电子邮件或者手机来交换名片。Nokia的6610、6210、6310、8310等系列手机都支持Vcard,但是其6210手机被证实在处理Vcard上存在格式化字符串漏洞。攻击者如果发送包含格式字符串的vCard恶意信息给手机设备,可导致SMS服务崩溃,使手机被锁或重启动。
6、 Siemens的"%String"漏洞
2003年3月,西门子*35和*45系列手机在处理短信时,在处理短信时遇到问题。当接受到"%String"形式的短信时,如”%English”西门子手机系统以为是要更操作改系统语言为英文,从而导致在查看该类短信时死机,利用这一点很容易使西门子这类手机遭受拒绝服务攻击。
四、手机病毒趋势
虽然已经在不少手机上发现了安全问题,但是到目前为止,还没有看到真正意义上的手机病毒,这并不是因为没有人愿意写,而是存在着不少困难:
1. 手机操作系统是专有操作系统,不对普通用户开放,不像电脑操作系统,容易学习、调试和程序编写,而且它所使用的芯片等硬件也都是专用的,平时很难接触到;
2. 手机系统中可以“写”的地方太少,在以前的手机中,用户是不可以往手机里面写数据的,唯一可以保存数据的只有SIM卡,下图是SIM卡的说明,其中只有Telecom Dirextory是可以由我们保存数据的,而这么一点容量要想保存一个可以执行的程序非常困难,况且保存的数据还要绕过SIM卡的格式。
3. 以前手机接收的数据基本上都是文本格式数据,我们知道文本格式也是计算机系统中最难附带病毒的文件格式,同样在手机系统中,病毒也很难附加在文本内容上。
但是随着手机行业的快速发展和基于手机的应用不断增多,这种局面已经开始发生变化,特别是
1. K-JAVA大量运用于手机,使得编写用于手机的程序越来越容易,一个普通的Java程序员甚至都可以编写出能传播的病毒程序;
2. 基于Symbian、Pocket PC和SmartPhone的操作系统的手机不断扩大,同时手机使用的芯片(如Intel 的Strong ARM)等硬件也不断固定下来,使手机有了比较标准的操作系统,而且这些手机操作系统厂商甚至芯片都是对用户开放API并且鼓励在他们之上做开发的,这样在方便用户的同时,也方便了病毒编写者,他们只需查阅芯片厂商或者手机操作系统厂商提供的手册就可以编写出基于手机的病毒,甚至这样的可以破坏硬件。
3. 手机的容量不断扩大既增加了手机的功能,同时也使得病毒有了藏身之地。现在的很多手机都有比较大的容量,甚至能外接CF卡,这样病毒就不再也不用发出“天下虽大,却没有我容身之地”的感叹了;
4. 手机直接传输的内容也复杂了很多,有以前只有文本的SMS发展到现在支持2进制格式文件的EMS和MMS,因此病毒就可以附加在这些文件中进行传播。
从以上分析可以看出,现在的手机发展为手机病毒的产生、保存、传播都创造了条件,因此手机病毒的出现和发展也仅仅只是时间问题而已。
五、防范手机病毒
如果我们可以放弃丰富的娱乐、便捷的工作、美好的生活,那手机病毒或许就可以远离我们,但我们都有愿望和权力选择更美好、更丰富的生活,所以我们要做打一场防范手机病毒战争的准备也就在所难免了。从手机病毒的特点来分析,我们可以采取以下措施:
1、 坚守手机堡垒:手机是手机病毒寄生和发作的温床,因此要防范手机病毒,就要在手机上做好安全,手机厂商要防止出现手机的安全漏洞,用户要注意不能随便下载不确定来源的文件(包括手机铃声和图片),杀毒软件厂商也要开发出手机杀毒软件(目前Trend micro、Mcafee、f-secure等公司已经有了PDA版本的杀毒软件);
2、 堵死手机病毒传播通道:手机病毒的通道主要是移动运营商提供的网关,因此在网关上进行杀毒是防止手机病毒扩散的最好办法,国内的安全组织Xfocus在这方面做了比较深入的研究,分析了SMS、EMS和MMS的协议分析,并在这基础上对其中包含的内容进行扫描,确保传送的内容是安全可靠的。
随着手机的不断发展和基于手机业务的不断扩大,手机病毒的危险也是越来越大,但是只要我们提高安全意识,注意安全,手机病毒也是可以防范的.