Android恶意软件检测方法分析

2016-05-30 14:41甘露曹帮琴
无线互联科技 2016年7期
关键词:检测

甘露 曹帮琴

摘 要:文章首先就Android恶意软件的安装和触发特点进行分析,通过分析Android平台中的恶意行为,制定了Android恶意代码检测方案。结合Android平台的特点,分析了现有的恶意软件检测行为,并指出了现有Android恶意软件检测方法的不足和未来发展趋势。

关键词:Android;恶意软件;检测

当前恶意检测方法主要包含静态分析和动态检测技术,静态分析主要是利用程序自身的静态结构、代码来判断其是否具有恶意性,其中涉及反编译、静态系统调用、逆向分析和模式匹配等相关技术。而动态检测主要是通过手机监视程序来对恶意行为进行检测监视。但是这两种技术在判断恶意软件时,仍然存在一些缺陷,没有充分结合实际应用中恶意软件变种、升级等问题。基于Android恶意软件的特征情况,本文提出了静态的综合检测方法以及动态分析技术,更好地解决Android系统的安全问题。

1 Android恶意软件的基本特征

为深入了解Android恶意软件的特征,文章从软件的安装方式、触发方式以及恶意负载种类等几个方面进行描述,同时为后文中检测Android恶意软件提供技术基础。

1.1 安装方式

Android恶意软件通常在形式上比较吸引用户注意,伪装成一些实用软件,进而让手机用户下载安装,迅速蔓延传播。恶意软件在手机中的安装传播方式主要分为三种:重打包下载、更新包下载、偷渡软件下载以及其他方式进入手机。

1.1.1 重打包下载

在一些流行的软件中植入恶意代码,然后进行重新编译,提供给Android手机软件官方市场,这种恶意软件隐藏特征非常强,很难分辨出来,,它们挂上合法安全的命名,具有欺骗性,在软件安装时运用了代码混淆技术和运行时解密技术。

1.1.2 更新包下载

在下载手机中已有的软件更新包时,恶意软件会在apk文件中植入恶意代码,运行更新包时,通过运行动态获取并下载安装恶意代码,一般运用静态扫描无法检测出更新包中的恶意负载。

1.1.3 偷渡软件下载

利用未开发的软件吸引用户在不安全的小网站中下载安装偷渡软件,其实这些偷渡软件就是伪装后的恶意软件,对手机Android系统存在很大的威胁。

1.1.4 其他方式

利用间谍软件安装入Android手机系统中,伪装成手机常用软件,但是没有伪装应用的实际功能,山寨软件,在软件中隐藏软件的恶意功能。

1.2 触发方式

当恶意软件进入Android手机系统中,一般通过这两种方式进行触发:诱导用户点击、媒体系统。

1.2.1 诱导用户点击

当恶意代码隐藏在重打包应用进入手机中,会伪装成某些重要功能诱导用户点击程序,进而触发恶意软件,导致恶意软件自动运行。

1.2.2 媒体系统

媒体系统主要包括手机中自带的广播系统、短信软件、音乐电影等软件。恶意代码可以隐藏在某段音频视频中,当用户播放广播、音乐或视频时,就会触发恶意软件;还有一种方式是通过短信发送给手机用户一段網址信息,用户点击网址时,就会自动跳转到恶意软件中,触发运行恶意负载。

1.3 恶意负载种类

Android恶意软件的恶意负载种类主要分为这样几类:提升特权、远程操控、恶意吸取话费、盗取隐私信息以及自我保护。

1.3.1 提升特权

提升特权主要表现在恶意软件可以自行突破手机的运行权限,恶意软件利用各种不同的Root攻击程序对Android系统本身的Root权限进行攻击、偷渡,从而提高Root权限,在攻击的过程中使用了代码混淆技术和代码加密技术,使Android系统静态分析恶意代码的难度提高了,有的恶意代码还会混淆伪装在手机自带的软件中。恶意软件除了利用ROOT攻击程序之外,还会利用Android系统本身的漏洞混淆安全清理吗,提升Android系统特权。

1.3.2 远程操控

当一些恶意软件进入手机中后,可以利用远程操控系统对手机进行远程操控,更新系统中的恶意负载,把系统信息传输会恶意软件总部。恶意软件中最常用的远程操控模式是利用http网络接收服务器控制指令,因此可以发现恶意软件只有在有网络的时候才能实现远程操控,可以增加网络服务器的隐蔽性,实行加密,从而抵挡恶意软件的远程操控。

1.3.3 恶意吸取话费

恶意软件提前在手机中植入花费吸取代码,然后利用SP服务强行吸取手机用户的话费,同时恶意软件还可以隐藏掉服务商的通信短信,秘密扣除掉手机中的话费。利用远程操控可以增值号码中的一些无用服务,提高话费使用数额。

1.3.4 盗取隐私信息

通过盗取隐私模块对手机中的通讯录、短信、录音、音频视频信息和一些隐私数据进行盗取,通过盗取这些隐私信息实现进一步价值。例如:在盗取到手机用户的通讯录后,可以利用朋友间的信任骗取大量钱财。在渗透入手机系统后,可以进一步篡改Android系统漏洞,实现APT的持续攻击,。因此,窃取手机信息对恶意软件来说非常重要。在实际应用中,一定要注意保密,对一些重要信息资料进行加密处理,一旦发生恶意软件入侵,及时清除掉手机信息。

1.3.5 自我保护

目前,很多Android恶意软件利用商业级代码保护技术实现自我保护,加大了Android平台静态分析的难度,把符号信息和Android代码文件混淆在一起,恶意软件利用木马工具实现了动态代码解密,同时加固本身的代码信息,恶意软件还会利用Android平台的在线服务和预装应用中的漏洞,对自身进行保护。

通过对恶意软件的特征进行分析得知,各种恶意软件技术在不断更新换代,Android平台也在高速发展,随着Android平台的进化特征,恶意软件也能不断进化自身保护能力,恶意软件攻击者会利用各种混淆测试技术和反监控技术对Android平台的恶意软件检测进行自我保护。

2 Android恶意软件检测方法

2.1 字节码静态检测技术

这种静态检测技术主要是通ASM字节码处理框架进行解析,可以追踪到恶意程序中的静态动作,并对行为标注出来。实施这种技术的主要步骤有:(1)手机用户对APK文件的MD5值进行计算,和已分析的程序库进行对比,如果APK文件的MD5值存在于已分析的程序库中,证明检测通过了,进行下一步。(2)解压APK分组文件,得到classes.dex文件和AndroidManifest.Xml数据文件。(3)利用dex2jar工具把classes.dex文件转化为jar分组文件,利用AXMLPrinter2工具把AndroidManifest.xml文件进行反编译。(4)对jar分组文件和反编译后的AndroidManifest.xml文件进行分析,排除其中的危险权限,然后进行下一步。(5)检测反编译后的Java文件,如果检测出来恶意文件,提示手机用户选择性处理恶意文件,可以删除或者隔离恶意文件。(6)导出检测结果到已分析程序库中,完成静态检测分析。

2.2 动态检测技术

动态分析检测过程一般比较复杂,周期比较长,它需要进行一系列的准备工作,而且运行效率不明显。在这里提到的动态检测技术主要是利用是trace工具记录系统,把调用行为记录在日志文件中,同时对wireshark网络数据分组文件进行跟踪分析,最终对两组文件结合分析。其具体步骤有这样几点:(1)准备工作。首先启动手机桌面上的模拟器,当软件在模拟器上运行时,可以调试网络、音频、视频等功能,对存储的文件翻阅一遍。(2)在手机上安装下载trace和wireshark工具;监控应用在运行过程中的动态行为,包括发送的网络数据和系统API。利用trace记录工具,把调用行为记录在日志文件上。(3)安装下载应用并且启动mokeyrunner工具。当应用在运行时,mokeyrunner工具可以自行运行并模拟手机用户的运行动作。(4)收集日志文件记录和网络数据分组文件记录。当mokeyrunner工具运行完成之后,就会把运行数据存储在文件记录中,当网络开启后,也会wireshark网络数据分组文件记录下来,对这些文件记录进行分析,确定恶意软件的行为,并对恶意软件进行清除。

3 恶意软件检测行为

3.1 权限分析

对系统中敏感行为的危险权限进行分析,对比出恶意软件和正常软件的权限特点,对带有危险权限的软件进行扫描分析,筛选出其中的恶意行为和潜在威胁,然后进行下一步分析检测。对不存在危险权限的应用程序不需要进行扫描分析,直接视为正常程序。但是在检测中仍然存在缺陷,恶意软件可以自行提升特权,不需要受到权限限制,不用申请权限,漏过检测。

3.2 动态行为分析

动态行为分析为了不受恶意代码的混淆,主要对恶意软件的动态、行为和实施方式进行检测。classes.dex文件是应用程序的主要代码,所以可以对其进行反编译,然后在总结分析Java文件。恶意行为主要包括窃取隐私行为、远程操控行为和吸取花费的行为,针对这些恶意行为,可以采取语意分析行为和污点跟踪行为。对用户意图和行为语义进行抽取,在设计Android平台时,可以采用交互密集型设计方法,把用户的行为意图和自动化可度量的程序结合分析,从而识别恶意行为。污点跟踪主要是利用污点源跟踪污点,捕获污点输出信息。

3.3 静态分析

在应用不允许代码时运用静态分析,通过使用控制流分析、语义分析以及数据流分析技术对Android系统文件进行分析检测,这种分析技术在运行起来更加快速,效率比较高,结果准确,但是针对恶意软件的代码混淆技术和代码加密技术,很难识别恶意代码,从而产生技术漏洞。

4 Android恶意软件检测方法的不足之处和发展趋势

虽然目前Android恶意软件检测在实际运用中取得一些实践成果,但是在在运行时仍然存在一些不足。主要体现在这些方面:(1)检测恶意软件缺少标准。(2)动态检测方法不够智能化,需要人为判断;(3)恶意软件的代码混淆和加密技术逐渐成熟,导致静态分析中的反编译难度加大,难以识别各种恶意代码。随着科学技术的发展进步,未来的Android恶意软件检测方法会逐渐完善,制定完善的恶意软件标准,动态检测和静态检测方法更加自动化、智能化。

[参考文献]

[1]冯博,戴航,慕德俊.Android惡意软件检测方法研究[J].计算机技术与发展,2014(2):149-152.

[2]文伟平,梅瑞,宁戈,等.Android恶意软件检测技术分析和应用研究[J].通信学报,2014(8):78-85,94.

[3]彭国军,李晶雯,孙润康,等.Android恶意软件检测研究与进展[J].武汉大学学报:理学版,2015(1):21-33.

Analysis on AndroidMalware Detection Method

Gan Lu, Cao Bangqin

(Xinyang Vocational and Technical College, Xinyang 464000, China)

Abstract: The article first Androidmalware installed and trigger characteristics were analyzed, and the analysis of the Androidplatform that malicious behavior, made the Androidmalicious code detection scheme. According to the characteristics of the Androidplatform, this paper analyzes the existing malware detection behavior, and points out the shortages of the existing Androidmalware detection method and the future development trend.

Key words: Android; malicious software; detection

猜你喜欢
检测
“不等式”检测题
“一元一次不等式”检测题
“一元一次不等式组”检测题
“几何图形”检测题
“角”检测题