【Android源码 栏目提醒】:网学会员在Android源码 频道为大家收集整理了“基于Android平台恶意代码逆向分析技术的研究 - 硕士论文“提供大家参考,希望对大家有所帮助!
04.017 石赢■dol:10.39鼬lfj,Jssn.16”-1122.2012 基于Android平台 恶意代码逆向分析技术的研究 贾菲1,刘威1’2 (1.天津市公安局,天津300457; 2.国家计算机病毒应急处理中心,天津300457) 攮要:文章针对当前基于安卓平台恶意代码分析技术的滞后性。
介绍了安卓平台的基本结构,结合目 前基于安卓平台恶意代码的主要破坏方式,采用静态分析机制,研究了基于安卓平台恶意代码逆向分析技术, 为公安机关打击移动网络环境下的违法犯罪活动提供技术支持。
关键词:安卓平台;恶意代码;静态分析;逆向分析技术 中图分类号:TP393.08 文献标识码:A 文章编号:1671~1122(2012)04—0061—03 Reverse Engineering Technology to Study the Malware by Android Platform J认Feil.LIUW西V ? f 1.1lanjing Municipal Public Security Bureau,Tianjing 3000457.China; 2。
National Computer Virus Emergency Response Centen 17anjing 3000457,China) Abstract:This paper target to the lag of the current malware analysis methods for Android Platform.It presents the basic structure of Android Platform,along with the damage of malware 011 Android Platform.It use the static analysis method and TeVerse engineering technology to study the malware.It provide a lot of supports for counter-criminal in mobile cyberspace ofpublic security department. Key words:Android platform;malware;static analysis;revct’se engineering0引言 随着移动互联网的普及。
移动安全问题日益突出,针对手机的病毒、木马和吸费软件等恶意代码发展迅速,利用移动终端恶意代码进行网络犯罪的事件呈现增长趋势,移动终端用户面临前所未有的安全风险…。
这些情况表明—方面我国恶意代码防治工作面临着严峻挑战,需要国家信息安全主管部门不断创新管理机制和防范措施,以应对日趋严重的信鼠网络安全威胁;另—方面公安民警急需提高移动终端恶意代码的分析取证能力,加强对恶意攻击者的打击力度。
1国内外研究现状 目前,国内基于安卓平台的各类应用程序还处在快速发展中。
其恶意代码还没有引起计算机用户足够的重视,针对基于安卓平台恶意代码的分析手段还处在探索阶段,没有形成系统、完善的逆向分析技术,无法对利用该类恶意代码进行网络犯罪的恶意攻击者实施有力打击。
国外针对基于安卓平台恶意代码大多采用动态分析技术,往往只关注结果,而缺乏对攻击过程、攻击方法、恶意代码类型等详细信息的分析、取证。
2安卓平台的基本情况●~ 安卓平台是Google公司研发的基于Linux开放性内核操作系统,它采用了软件堆层架构,体现了谷歌公司自由、开放的设计理念,底层Linux内核只提供基本功能。
其他的应用软件则由各公司自行开发Ⅲ。
安卓平台主要包括五层构架,如图l所示:1)应用程序,安卓平台包含一些关键应用程序,如邮件收发客户端程序、短信 收稿时间:2012—02—22 作者简介:贾菲(1977-),男,天津,工程师,本科,主要研究方向:信息网络安全;刘威(1981一),男。
天津,高级工程师,硕士,主要研究 方向:信息网络安全。
——61 万方数据 r 2012 49第04期收发程序、日历和嗍贞浏览器等,同时支持开发者』F发各类应 况下对其行为进行分析的技术.是目前最主要的恶意代码处用程序;2)框架和组件,安卓甲台枉其框架中提供n年多组 置机制,被广泛应用于恶意代码分析和公安阿络侦察j二作中。
件供应_l{j程序调用,开发者也可以开发新的组件,并将该组件 基于静态分析机制的逆向分析技术主要优点包括,一是不需放人应用程序框架中,以供自己和其它应用程序调用;3 J类库, 要真正执行恶意代码,避免被恶意攻击者发现;二足误报率低;主要服务于安卓应用程序组件.其功能通过组件间接提供给 三是不受具体进程执行流程的制约.可以对代码进行详尽的开发者;4)程序运行环境,安卓平台的程序运行环境包含一 细粒度分析。
组J…核心函数库及Dalvik虚拟机.能有效优化程序的运行 我们在对基于安卓平台的恶意代码进行逆向分析时,首先过程;5)内核,安卓平台包含经过优化的Linux内核,提供 要利用1i具对恶意代码进行反汇编后,通过对其关键部分进 睹如内存管理、进程管理和设备驱动等服务,同时也是移动 行分析和研究,进而掌握其破坏性和感染方式等特征。
终端软硬件的连接层。
4.1基本结构 安卓应用程序的扩展名为apk.町以直接用Winrar等压 缩软件打开.如图2所示.主要包括五部分,一是META—INF 目录.用来存放签名信息,保证apk包的完整性和系统安全; —二_-·_ _;i;_ 二是res目录,用来存放资源文件,包括程序图片等内容;三 是AndroidManifest.xml文件,用来描述应用的名字、版本、 权限和引用的库文件等信息;四是classes dex文件,足Java
源码编译后生成的Java字节码文件;五是resou”九arsc文件, 是编译后的二进制资源文件”J。
图1平台结构图 r’r●·.7J c…Y’■■-^{ ,,圆巴善鲁峨伶皆.&.,。
篡,3基于安卓平台恶意代码的基本情况 ¨ …·…●r 一…- r’ ,,“ _ _ ●●3.1定义 :~‘二 ’ ~ :。
: ! 基十安卓平台的恶意代码主要指在用户不知情或未授权的情况—r在安卓操作系统中安装、运行以达到不正当目的,或县有违反剧家相关法律法规行为的可执行文件、代码模块或代码片断.其能够破坏移动终端功能或者破坏数据、影响其使用并且能够自我复制,具有隐蔽性、破竦|生等特点。
3.2感染传播情况 一一 …1一 图2软件撮作示意图 4.2 AndroidManifest.xml文件 2010年我国移动终端产品发展迅速,智能手机的使用 在安卓应用程序的框架中,AndroidManifest xml文件具有量占到手机用广的5745%,已经超过非智能手机成为我国手 非常重要的作用,其采用了XML标签格式.描述了应用程序机用户使用最广泛的通讯丁具,其中有57.81%的用户通过移 的名字、版本、权限和引用的库文件等信息。
在对恶意代码动终端进行互联网应片j。
伴随于机病毒感染数量的快速增长 进行分析时,通过对该文件进行研究,可以得到其运行的权以及恶意攻击者攻击手段的不断提高,有39 85%的用户感 限设置等信息.分析出恶意代码的主要功能。
染过手机病毒,已经成为移动终端面临的最大安全威胁有 由于apk文件中AndroidManirest.xml是经过编译的.需29 55%的手机用户使用塞班操作系统,使其成为恶意攻击者 要对其进行反编译才能进行分析。
目前常用的反编译L县是的攻击重点,但安卓、lOS等移动智能终端操作系统发展迅速, ApkTool,能将一个apk文件分解H{smali代码和里面的xml文面临的安全威胁小断增加.感染比例也在持续上升。
网站浏 件,并且签名之后打包还原。
我们分析基于安卓平台的恶意览已经成为移动终端病毒传播的主要途径,移动终端病毒具 代码时.可以使用ApkTool对apk文件进行反编译,执行命令有更强的趋利性,各类软件论坛、市场和下载网站成为移动 行apktool bat d<源文件)(目标目录>,即可将反编译后的终端病毒传播的新途径”…。
AndmidManifest xml拷贝到目标目录,以便对其进行分析。
4基于安卓平台恶意代码的逆向分析技术 通过对反编译后的AndroidManifest xml文件进行分析,我 逆向分析技术是指将应用程序进行反汇编,通过分析反 们发现其主要包括以下几个部分.一是<uses-permission>标 签.其主要功能是请求一个安全授权,应用程序必须被授于犷编代码来理解应用程序的功能,即在不执行应用程序的情 万方数据 石丽该权限,程序包才能正确的操作;二是<application>标签, public void sendSms0 (表示每一个应用程序的组件及其属性;三是<activity>标签, String str=getStateVal(); if 0”Y”.equals(str))主要应用于用户交互的机制;四是<receiver>标签,主要用于 { SmsManager IocalSmsManager=SmsManager.getDefauh0;接收数据变化或发生行为;五是<service>标签,主要包括在 Intent loealIntent=new Intent():后台任意时刻都可以运行的组件14】。
PendingIntent localPendingIntentl=PendingIntent. getBroadeast(this,0。
localIntent.O): 在进行恶意代码分析时,主要对<uses—permission>标签 PendingIntent IoealPendingIntent2=nail; IoealSmsManager.sendTextMessage(”1066185829”,null。
”921X1”,包含的参数进行分析,如果包含其基本功能不需要的权限, loealPendingIntentI,localPendingIntent2);极有可能是恶意代码。
如某基于安卓平台的日历软件<USES— save(); lpermission>标签中包含如下信息: l <use¥一permi‘ssi。
on
android:name=”
android.I)ermiSSl’On. INTERNET”,> 4.3.2启动Activity <uses—permt。
ssl。
on
android:name=“
android.1)ermisslon. Activity是Android最基本的应用程序组件,任何一个 ACCESS—COARSE—I。
OCATION”,> <uses—permissl。
on
android:name=”
android.I)ermi8sl‘on. Android应用程序都可以看作一组任务这里每一个任务就可以 RESTART二PACKAGES”,> 称作一个Activity,用于呈现数据并与用户进行交互。
恶意攻击 <uses—permiSSl‘On
android:name=”
android.I’ermisslon. RECEIVE—SMS”,> 者实现连接网络和盗取敏感信息等恶意行为,需要通过使用独 <uses—permt‘ssl’on
android:name=”
android.I)ermi851。
on. SEND SMS”,> 立类来实现Activity,即通过
android.app.Activity.startActivity函数 <uses—perml’ssl。
on
android:name=”
android.I)ermiSSl。
On. 来实现各种业务功能,这就为我们进行分析提供了依据吲。
SET_WALLPAPER”,> 4.3.3启动后台服务 我们通过分析发现
android.permission.RECEIVE—SMS表 后台服务功能相当于没有界面的Activity,可以不需要用示允许应用程序去监听短消息并对其进行处理,与该应用程 户直接参与而长时间运行,当一个服务启动后,可以借助各序基本功能不符,极有可能是恶意代码。
恶意代码常用到的 类接口与其进行通信。
在实际应用中,常常需要等待系统或<uses-permission>参数,如表1所示。
· 其它应用发出指令,于是出现了Broadcast Receiver组件,每 表1参数功能表 个Broadcast Receiver组件都可以接收一种或若干种Intent作参数 功能INTERNET 允许应用打开网络套接口 为触发事件,当一个Broadcast Receiver组件被触发后,系统ACCESS——FINE—,LOCATION 允许应用访问精确性的定位(GPS) 就会通知相应程序。
由于服务功能具有静默运行等特点,用RECEIVE—BOOT_COMPLETED 允许应用接收在系统完成启动后发出的 ACTlON—BOOT—COMPLETED广播信息 户不易发现,恶意攻击者通常会利用
android.content.Context.ACCESS——NETWORK—.STATE 允许应用访fnJ网络上的信息 允许应用去监听短消息并对其进行处理 startServiee函数来启动后台服务{71。
RECElVE—SMSBL LrET0f’TH 允许应用左连接蓝牙设备 4.3.4拨打电话SEND SMS 允许应用发送短信 拨打电话是恶意攻击者实施攻击的一种重要手段,可以4.3 classes.dex文件 通过定义ITelephony类实现。
通过调用lTelephony类的dial 安卓应用程序的主要代码包括在classes.dex文件中,该 函数可以实现直拨指定电话号码,例如某具有自动拨打电话功文件是
源码编译后生成的java字节码,与AndroidManifest.xml 能的恶意代码中,通过.
上一篇:
安卓未来的发展与应用 PDF
下一篇:
系统中主要发电机的电力系统稳定器