2024年1月24日发(作者:俞和玉)
2012年第08期\第27次全国计算机安全学术交流会 翻 ■doi:10 3969/j issn 1671・1122 2012 08 017 手机病毒分析与防范 舒心 ,王永伦。,张鑫 (1.国家计算机病毒应急处理中心,天津300457; 2.天津市公安局居民身份证制作中心,天津300161) 摘要:文章通过分析当前智能手机发展趋势,以及手机病毒的危害,介绍了手机病毒的分析方法 并从产业链角度提出了手机病毒的防范措施建议,具有一定的现实意义。 关键词:智能手机;手机病毒;动态分析;静态分析 中图分类号:TP393.08 文献标识码:A 文章编号:1671—1122(2012)08—0054—03 Analysis and Preventi0n 0f Mobile Virus SHU Xin ,WANG Yong—lun ,Zhang Xin (1.NationalComputer VirusEmergencyResponseCenter,Tianjin 300457,China, 2.17anjinpolice station resident identity cardproduction center,Tianjin 300161,China) Abstract:Based on the analysis of the development trend of smart phones,as well as the hazards of mobile viruses,the paper introduces the analysis method of mobile vius,and rthe prevention measures from the perspective of industry chain. Key words:smart phone;mobile vius;dynamic analrysis;static analysis 随着智能手机应用的丰富,以智能手机为目标的病毒攻击也日益增多,由于手机和资费紧密相连,在经济利益的驱动下,大 量出现利用手机病毒或恶意程序,发送垃圾短信、窃取用户隐私、恶意扣费、诈骗用户等问题,给手机用户带来很大的困扰和损失, 也对维护国家安全,稳定社会秩序,保护公民权力带来新的挑战。 1手机病毒的概念和危害 手机病毒是以智能手机为感染对象,以手机网络和计算机网络为传播平台,利用发送短信、彩信、电子邮件、浏览网站、 下载铃声、蓝牙等方式传播,导致用户手机死机、关机、个人资料被删、向外发送垃圾邮件、泄露个人信息、自动拨打电话或发短(彩) 信等恶意行为,甚至会损毁SIM卡、芯片等硬件,导致使用者无法正常使用手机,从而造成手机或手机网络异常的一种新型病毒。 在3G时代和智能手机陕速发展的今天,市场上的手机操作系统已经向四大智能手机主流操作系统集中:塞班(Symbian)、 安卓(Android)、Windows Mobile和苹果IOS。单一操作系统终端绝对数量的日趋增加,为病毒的传播创造了环境,同时,开放的 操作系统可以方便地安装各种应用程序也为恶意代码提供了可乘之机。随着Android不断代替Symbian系统,占领并扩大智能终 端市场,针对Android平台的恶意程序也呈现爆发式增长。 手机病毒几乎具备了计算机病毒的所有特性,而且一旦手机系统的漏洞被发现,这些特性将有可能被利用的淋漓尽致。对于用 户而言,不仅将面临着经济、信用上的损失,还将面临着隐私泄露和通信方面的障碍;对于网络而言,手机病毒可能会造成网络瘫痪, 网络事故,控制大量手机的病毒更可能进行政治、军事攻击;对于运营商而言,这些威胁不仅会让他们的业务运营成本增加,还将 大大降低他们在用户心目中的好感度;对于终端厂商而言,售后服务成本增加,手机耗电量的上升是f电f门不得不面对的问题;内容 服务商与政府主管部门同样会受到手机病毒带来的安全威胁的影响,这些都对移动互联网安全形成了严峻的挑战il-6]。 2基于Android操作系统的病毒分析 手机病毒具有传染性、破坏陛、隐蔽性、寄生性、潜伏性、可执行性、可触发性、衍生性、欺骗性、不可预见l生等特征,根 据检测分析的时机不同,我们分析手机病毒可以采用动态方法和静态方法两种。动态分析在病毒程序运行过程中进行,动态监 ● 收稿时间:2012—07—12 作者简介:舒心(1982一),女,辽宁,X-.程师,硕士,主要研究方向:信息安全;王永伦(1979一),男,天津,副主任科员,硕士,主要研究方 向:项目管理;张鑫(1979一),男,天津,工程师,硕士,主要研究方向:信息安全。
第27次全国计算机安全学术交流会《I皇》/2O12年第o8期 控手机病毒运行后的各种状况,并详细记录;静态分析在病 毒程序运行之前进行,对程序进行反汇编,从源码分析其特征。 然而,在实际分析过程中,通常采用动静结合的方法,更容易 对病毒样本进行全面分析。 本文以一个具有向控制服务器发送手机隐私信息、发 送扣费信息,拦截中国移动和中国联通客服短信等能力的 Android木马病毒为例,采用动静结合的方法介绍基于手机 Android系统的病毒分析方法。 2.1 Android病毒动态分析 借助Android平台虚拟机,我们可以实现Android手机病毒 的动态分析。手机病毒的动态分析可以通过以下几种方式实现。 1)手机自启动方式检查。可以通过自启动项管理等软件 对自启动项进行察看。 2)手机文件系统检查。通过对手机可疑位置文件的检查, 有助于发现和分析病毒文件。一般用户的权限只能打开有限的 文件夹,特别是SD卡可以在电脑上进行比较。 3)手机运行任务检查。对于手机系统来讲,为了能够及 时有效的发现手机病毒木马程序,必须采用动静结合的方式。 通过对Android运行任务进行检查可以发现是否有可疑程序 在运行。 4)手机联网检查。手机病毒木马要运行时,一般会采取 多种方式和外部进行数据传输,这就需要进行联网,针对手 机的Wi—Fi功能,还可以通过对网络抓包来分析手机访问网 络数据的内容。 5)手机功能检查。检查手机是否有死机、自动关机、非 正常的短信或彩信交互、擅自推送广告或欺诈信息、恶意扣费 等情况出现。 将木马病毒激活后,借助上述几种方法对手机病毒进行 动态检查,通过分析发现该恶意程序能够实现开机自启动, 并具备了_一些正常手机软件没有的恶意权限。这些权限的增加 将给手机带来安全隐患,必须予以关注,进而展开对该病毒 的静态分析,从而掌握其具体的恶意意图。 2.2 Android病毒静态分析 与手机病毒动态分析相比,静态逆向分析能耗更低,风 险更小,对实时性要求更低。静态分析技术是将可执行程序 反汇编,通过分析反汇编代码来理解其代码功能,即在不 执行应用程序的情况下对其行为进行分析的技术。通过对 Android程序的认识,有两种主流方式可以实现对Android恶 意程序的静态逆向分析,一种是将APK程序利用Apktool等 工具进行反编译,生成程序的源代码和图片、XML配置、语 言资源等文件,然后对相关文件进行查看,查找具有恶意意图 的代码,并对其进行验证;另外一种是先使用Dex2jar工具将 程序反编译成jar格式,然后再用JD—GUI直接查看源代码进 行分析。在实际分析过程中,通常是结合这两种方法进行分析。 2.2.1 Android文件格式 Android的程序文件为APK格式,APK文件是Android 最终的运行程序,是Android Package的全称,APK文件实际 上就是ZIP文件格式,但后缀名被修改为APK,通过UnZip 解压后,可以看到Dex文件,即Android Dalvik执行程序。 一个APK文件结构为: META—INF\ 来存放签名信息, 保证apk包的完整性和系统安全 res\ 用来存放资源文件, 包括程序图片等内容 AndroidManifest.xml 程序全局配置文件 classes.dex Dalvik字节码 resources-arsc 编译后的二进制资源文件 AndroidManifest.xml文件是每个Android程序中必不可 少的,它包含了组成应用程序的每一个组件的节点,并使用 Intent过滤器和权限来确定这些组件之间以及这些组件和其他 应用程序是如何交互的。classes.dex文件是Java源码编译后 生成的Java字节码文件,包含安卓应用程序的主要代码。手 机病毒制造者通过改写这些文件来达到恶意目的,因此在分 析时着重对这些文件进行研究,可以有效地分析出恶意代码 的主要功能。AndroidManifest.xml和classes.dex都需要借助工 具对其进行反汇编后才能够进行分析。 2_2.2 Android开机自启动 如同计算机病毒一样,手机病毒也是随着手机启动而自 动运行的,特别是在智能手机系统上,自启动技术是必备的 一种功能,这也为手机病毒木马提供了生存空间。Android 开机自启动可以通过定义一个BroadcastReceiver类、配置 Receiver许可等方式来实现。 1)定义BroadcastReceiver类。BroadcastReceiver类定义 的广播接收器是接收广播通知信息并做出相应处理的组件。 恶意代码首先定义A类并继承BroadcastReceiver类,通过函 数startActivity实现自启动,代码如下: Public class A extends BroadcastReceive ( Intent mainlntent new Intent(context.XX.class); mainlntent.setFlags(Intent.FLAG。.ACTIVITY_NEW_TASK); context startActivity(mainInten ; 】 2)配置Receiver许可。允许接收系统启动消息,在 AndroidManifest.xml中把接受消息意图的类和消息意图关联, 代码如下: <uses—permission android:name=”android.permission.RECEIVE BOOT C 0MPLETED”/> <receiver android:name=“.类名”> <intent—niler> <action android:name=”android intent.action.BOOT COMPLETED”/> </intent—filter> </receiver> 55 Il _
2024年1月24日发(作者:俞和玉)
2012年第08期\第27次全国计算机安全学术交流会 翻 ■doi:10 3969/j issn 1671・1122 2012 08 017 手机病毒分析与防范 舒心 ,王永伦。,张鑫 (1.国家计算机病毒应急处理中心,天津300457; 2.天津市公安局居民身份证制作中心,天津300161) 摘要:文章通过分析当前智能手机发展趋势,以及手机病毒的危害,介绍了手机病毒的分析方法 并从产业链角度提出了手机病毒的防范措施建议,具有一定的现实意义。 关键词:智能手机;手机病毒;动态分析;静态分析 中图分类号:TP393.08 文献标识码:A 文章编号:1671—1122(2012)08—0054—03 Analysis and Preventi0n 0f Mobile Virus SHU Xin ,WANG Yong—lun ,Zhang Xin (1.NationalComputer VirusEmergencyResponseCenter,Tianjin 300457,China, 2.17anjinpolice station resident identity cardproduction center,Tianjin 300161,China) Abstract:Based on the analysis of the development trend of smart phones,as well as the hazards of mobile viruses,the paper introduces the analysis method of mobile vius,and rthe prevention measures from the perspective of industry chain. Key words:smart phone;mobile vius;dynamic analrysis;static analysis 随着智能手机应用的丰富,以智能手机为目标的病毒攻击也日益增多,由于手机和资费紧密相连,在经济利益的驱动下,大 量出现利用手机病毒或恶意程序,发送垃圾短信、窃取用户隐私、恶意扣费、诈骗用户等问题,给手机用户带来很大的困扰和损失, 也对维护国家安全,稳定社会秩序,保护公民权力带来新的挑战。 1手机病毒的概念和危害 手机病毒是以智能手机为感染对象,以手机网络和计算机网络为传播平台,利用发送短信、彩信、电子邮件、浏览网站、 下载铃声、蓝牙等方式传播,导致用户手机死机、关机、个人资料被删、向外发送垃圾邮件、泄露个人信息、自动拨打电话或发短(彩) 信等恶意行为,甚至会损毁SIM卡、芯片等硬件,导致使用者无法正常使用手机,从而造成手机或手机网络异常的一种新型病毒。 在3G时代和智能手机陕速发展的今天,市场上的手机操作系统已经向四大智能手机主流操作系统集中:塞班(Symbian)、 安卓(Android)、Windows Mobile和苹果IOS。单一操作系统终端绝对数量的日趋增加,为病毒的传播创造了环境,同时,开放的 操作系统可以方便地安装各种应用程序也为恶意代码提供了可乘之机。随着Android不断代替Symbian系统,占领并扩大智能终 端市场,针对Android平台的恶意程序也呈现爆发式增长。 手机病毒几乎具备了计算机病毒的所有特性,而且一旦手机系统的漏洞被发现,这些特性将有可能被利用的淋漓尽致。对于用 户而言,不仅将面临着经济、信用上的损失,还将面临着隐私泄露和通信方面的障碍;对于网络而言,手机病毒可能会造成网络瘫痪, 网络事故,控制大量手机的病毒更可能进行政治、军事攻击;对于运营商而言,这些威胁不仅会让他们的业务运营成本增加,还将 大大降低他们在用户心目中的好感度;对于终端厂商而言,售后服务成本增加,手机耗电量的上升是f电f门不得不面对的问题;内容 服务商与政府主管部门同样会受到手机病毒带来的安全威胁的影响,这些都对移动互联网安全形成了严峻的挑战il-6]。 2基于Android操作系统的病毒分析 手机病毒具有传染性、破坏陛、隐蔽性、寄生性、潜伏性、可执行性、可触发性、衍生性、欺骗性、不可预见l生等特征,根 据检测分析的时机不同,我们分析手机病毒可以采用动态方法和静态方法两种。动态分析在病毒程序运行过程中进行,动态监 ● 收稿时间:2012—07—12 作者简介:舒心(1982一),女,辽宁,X-.程师,硕士,主要研究方向:信息安全;王永伦(1979一),男,天津,副主任科员,硕士,主要研究方 向:项目管理;张鑫(1979一),男,天津,工程师,硕士,主要研究方向:信息安全。
第27次全国计算机安全学术交流会《I皇》/2O12年第o8期 控手机病毒运行后的各种状况,并详细记录;静态分析在病 毒程序运行之前进行,对程序进行反汇编,从源码分析其特征。 然而,在实际分析过程中,通常采用动静结合的方法,更容易 对病毒样本进行全面分析。 本文以一个具有向控制服务器发送手机隐私信息、发 送扣费信息,拦截中国移动和中国联通客服短信等能力的 Android木马病毒为例,采用动静结合的方法介绍基于手机 Android系统的病毒分析方法。 2.1 Android病毒动态分析 借助Android平台虚拟机,我们可以实现Android手机病毒 的动态分析。手机病毒的动态分析可以通过以下几种方式实现。 1)手机自启动方式检查。可以通过自启动项管理等软件 对自启动项进行察看。 2)手机文件系统检查。通过对手机可疑位置文件的检查, 有助于发现和分析病毒文件。一般用户的权限只能打开有限的 文件夹,特别是SD卡可以在电脑上进行比较。 3)手机运行任务检查。对于手机系统来讲,为了能够及 时有效的发现手机病毒木马程序,必须采用动静结合的方式。 通过对Android运行任务进行检查可以发现是否有可疑程序 在运行。 4)手机联网检查。手机病毒木马要运行时,一般会采取 多种方式和外部进行数据传输,这就需要进行联网,针对手 机的Wi—Fi功能,还可以通过对网络抓包来分析手机访问网 络数据的内容。 5)手机功能检查。检查手机是否有死机、自动关机、非 正常的短信或彩信交互、擅自推送广告或欺诈信息、恶意扣费 等情况出现。 将木马病毒激活后,借助上述几种方法对手机病毒进行 动态检查,通过分析发现该恶意程序能够实现开机自启动, 并具备了_一些正常手机软件没有的恶意权限。这些权限的增加 将给手机带来安全隐患,必须予以关注,进而展开对该病毒 的静态分析,从而掌握其具体的恶意意图。 2.2 Android病毒静态分析 与手机病毒动态分析相比,静态逆向分析能耗更低,风 险更小,对实时性要求更低。静态分析技术是将可执行程序 反汇编,通过分析反汇编代码来理解其代码功能,即在不 执行应用程序的情况下对其行为进行分析的技术。通过对 Android程序的认识,有两种主流方式可以实现对Android恶 意程序的静态逆向分析,一种是将APK程序利用Apktool等 工具进行反编译,生成程序的源代码和图片、XML配置、语 言资源等文件,然后对相关文件进行查看,查找具有恶意意图 的代码,并对其进行验证;另外一种是先使用Dex2jar工具将 程序反编译成jar格式,然后再用JD—GUI直接查看源代码进 行分析。在实际分析过程中,通常是结合这两种方法进行分析。 2.2.1 Android文件格式 Android的程序文件为APK格式,APK文件是Android 最终的运行程序,是Android Package的全称,APK文件实际 上就是ZIP文件格式,但后缀名被修改为APK,通过UnZip 解压后,可以看到Dex文件,即Android Dalvik执行程序。 一个APK文件结构为: META—INF\ 来存放签名信息, 保证apk包的完整性和系统安全 res\ 用来存放资源文件, 包括程序图片等内容 AndroidManifest.xml 程序全局配置文件 classes.dex Dalvik字节码 resources-arsc 编译后的二进制资源文件 AndroidManifest.xml文件是每个Android程序中必不可 少的,它包含了组成应用程序的每一个组件的节点,并使用 Intent过滤器和权限来确定这些组件之间以及这些组件和其他 应用程序是如何交互的。classes.dex文件是Java源码编译后 生成的Java字节码文件,包含安卓应用程序的主要代码。手 机病毒制造者通过改写这些文件来达到恶意目的,因此在分 析时着重对这些文件进行研究,可以有效地分析出恶意代码 的主要功能。AndroidManifest.xml和classes.dex都需要借助工 具对其进行反汇编后才能够进行分析。 2_2.2 Android开机自启动 如同计算机病毒一样,手机病毒也是随着手机启动而自 动运行的,特别是在智能手机系统上,自启动技术是必备的 一种功能,这也为手机病毒木马提供了生存空间。Android 开机自启动可以通过定义一个BroadcastReceiver类、配置 Receiver许可等方式来实现。 1)定义BroadcastReceiver类。BroadcastReceiver类定义 的广播接收器是接收广播通知信息并做出相应处理的组件。 恶意代码首先定义A类并继承BroadcastReceiver类,通过函 数startActivity实现自启动,代码如下: Public class A extends BroadcastReceive ( Intent mainlntent new Intent(context.XX.class); mainlntent.setFlags(Intent.FLAG。.ACTIVITY_NEW_TASK); context startActivity(mainInten ; 】 2)配置Receiver许可。允许接收系统启动消息,在 AndroidManifest.xml中把接受消息意图的类和消息意图关联, 代码如下: <uses—permission android:name=”android.permission.RECEIVE BOOT C 0MPLETED”/> <receiver android:name=“.类名”> <intent—niler> <action android:name=”android intent.action.BOOT COMPLETED”/> </intent—filter> </receiver> 55 Il _