Android恶意软件检测方法分析
作者:甘露 曹帮琴
来源:《无线互联科技》2016年第07
        要:文章首先就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恶意软件检测方法
android属于什么软件
        2.1 字节码静态检测技术
        这种静态检测技术主要是通ASM字节码处理框架进行解析,可以追踪到恶意程序中的静态动作,并对行为标注出来。实施这种技术的主要步骤有:(1)手机用户对APK文件的MD5值进行计算,和已分析的程序库进行对比,如果APK文件的MD5值存在于已分析的程序库中,证明检测通过了,进行下一步。(2)解压APK分组文件,得到classes.dex文件和AndroidManifest.Xml数据文件。(3)利用dex2jar工具把classes.dex文件转化为jar分组文件,利用AXMLPrinter2工具把l文件进行反编译。(4)对jar分组文件和反编译后的l文件进行分析,排除其中的危险权限,然后进行下一步。(5)检测反编译后的Java文件,如果检测出来恶意文件,提示手机用户选择性处理恶意文件,可以删除或者隔离恶意文件。(6)导出检测结果到已分析程序库中,完成静态检测分
析。
        2.2 动态检测技术
        动态分析检测过程一般比较复杂,周期比较长,它需要进行一系列的准备工作,而且运行效率不明显。在这里提到的动态检测技术主要是利用是trace工具记录系统,把调用行为记录在日志文件中,同时对wireshark网络数据分组文件进行跟踪分析,最终对两组文件结合分析。其具体步骤有这样几点:(1)准备工作。首先启动手机桌面上的模拟器,当软件在模拟器上运行时,可以调试网络、音频、视频等功能,对存储的文件翻阅一遍。(2)在手机上安装下载tracewireshark工具;监控应用在运行过程中的动态行为,包括发送的网络数据和系统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恶意软件检测方法会逐渐完善,制定完善的恶意软件标准,动态检测和静态检测方法更加自动化、智能化。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。