基于应用层漏洞的安卓应用防护技术
2019-04-26王硕锋
文/王硕锋
随着互联网技术的快速发展,移动终端市场和应用市场发展也很迅速,诸多软件广泛应用在生活和工作中的各个方面。目前,安卓手机系统应用最为广泛,在全世界手机市场中占比达到86.1%。但是,安卓系统所具有的不足之处也逐渐显现出来,依据调查资料,在所调查的180款手机软件中,存在安全漏洞的手机应用软件占调查总数的98%。其存在原因主要是由于软件开发人员在开发软件时缺乏安全意识,对其所编写的程序存在安全漏洞而这些应用程序在用户使用过程中被恶意侵入,就可能对用户的个人信息和财产带来巨大的安全隐患。
据此,本文根据现阶段存在的安卓系统漏洞问题,对应用层中的安全漏洞防护措施进行研究,总结出工作内容大致如下:
(1)依据国家信息安全漏洞共享平台(CN-VD)、开源社区获取的安卓应用漏洞相关资料,建立漏洞特征信息库。
(2)在建立的漏洞特征信息库基础上,静态检测安卓应用中是否存在漏洞,并按照判断规则来进行判断。
(3)在判断手机软件存在漏洞前提下,针对不同的漏洞建立漏洞修复模型,根据修复模型通过安全加固形式在应用中植入代码,从而增强手机软件漏洞修复能力。
1 相关工作
1.1 系统架构
目前,安卓手机系统属于开源移动操作系统,其系统构成部分主要分为应用系统、内核系统、框架系统以及系统运行库四个部分。应用系统的主要功能是实现软件页面交互,在我们使用手机软件过程中需要在不同软件间进行切换,当我们每切换一个软件应用时,应用系统可以保证每个软件之间的平稳运行;框架系统的主要功能是为手机软件提供运行环境;系统运行库为安卓应用提供运行中所需的系统库和虚拟机;内核系统的主要功能是保证操作系统内部存储空间,例如对手机CPU进行管理。
1.2 安全漏洞
系统工作人员根据安卓系统的四层架构,将应用漏洞细分为7类,分别为:运行时代码加载漏洞、组件权限泄露漏洞、敏感数据泄露漏洞、Webview组件远程代码执行漏洞、弱随机数漏洞、SQL注入漏洞、Intent注入漏洞。然而,这种分类方式并没有将全部的漏洞形式都涵盖在内。我国在2017年发布了安全漏洞分类标准,在标准中对分类的维度、原则等进行了明确的定义:漏洞的分类应当趋于合理,拥有一定的通用性和扩展性,不可单纯的局限在符合漏洞评估上。
在对手机软件进行安全检测时,主要是通过静态检测方式进行,静态检测是指在手机处于待机状态时,手机检测系统对手机软件应用进行检测的一种方式。静态检测是目前手机安全漏洞检测中效率最高的检测方式,其优点是效率高、实用性强,能够修复绝大部分应用层漏洞。
1.3 安全加固
安全加固是由软件开发人员提出的一种防护应用层漏洞的安卓系统漏洞加固理念,其主要加固方式是通过扫描系统中Dex文件来防止手机漏洞的出现,从而对系统加固起着一定的约束作用。在安全加固方面,陶元旭提出通过手机DexClassLoader文件内存动态加载技术来避免应用程序被逆向解析。但是现阶段这些应用加固理念都没有着眼于特定安全风险防护措施,只是一些通用的安全防护解决方案。
2 软件漏洞
软件漏洞指的是在软件开发人员对开发手机软件时,由于系统本身缘故,程序代码中会存在一定的缺陷,这就是系统的Bug,通常也被成为软件漏洞。而这些漏洞多是由于软件中存在缺陷或是系统安全机制存在问题造成的,如果对其植入病毒就能够对被攻击者的主机形成控制,进而实现在攻击者未授权的状况中私自对被攻击者的系统进行访问和控制,盗取被攻击者设备中的资料。而软件漏洞一般能够分成两种形式:
图1:安全防护系统架构
(1)功能性逻辑缺陷:功能缺陷主要是指软件无法正常运行,其主要表现形式为软件无法正常安装、软件运行错误、软件安装失败等;
(2)安全性逻辑缺陷:安全性逻辑缺陷是软件漏洞中较为严重的一种漏洞,如果不加以解决,一旦被不发分子利用则可能造成用户个人信息泄露。其主要运行机制是黑客通过在手机软件中植入恶意代码,在软件运行时恶意代码自动读取用户个人信息,甚至能够越过属性限制进行信息的发送或调动系统内部的其他功能,并为被攻击者带来巨大的安全威胁。软件漏洞的威胁主要有如下几个方面:
2.1 泄露用户个人信息
某些恶意软件会自动读取用户信息,在未经用户同意的基础上向外界泄露以获取利益。而用户的信息一旦被泄露,不单单会使使用者面临广告和垃圾信息的侵扰,还会面临诈骗的可能性。
2.2 恶意扣费软件
恶意西非软件是指用户在使用软件过程时“恶意扣费”程序自动运行,在用户不知情情况下运行软件扣费程序,并禁止向用户发送扣费信息。另外,恶意代码还会装作各种其他应用,在用户进行安装之后根据预设的指令恶意控制安装者的移动终端设备。
2.3 捆绑软件的安全性
捆绑软件是目前所有应用层漏洞中最为常见的漏洞,其主要是在用户下载软件过程中捆绑程序自动下载某些推广应用软件,有时甚至强制用户安装。而对于移动终端设备的使用者而言,被捆绑安装的软件并不一定是他们所想要安装的,并且这些捆绑安装的软件其安全性也有待商榷。因此,为更完善的保护自身的个人信息和财产,就需要对一些捆绑软件和网站链接等谨慎对待。
3 基于应用层漏洞的安全防护策略
借助在系统中嵌入的安全防护代码,可以主动切断攻击路径,以实现应用层漏洞的主动防御,提升移动应用的安全程度。通过制定安卓应用程序中的安全加载方案,其具体方式是通过加密原始Dex文件,并借助过壳程序展开动态加载,安全防护系统架构如图1所示。其具体防护措施如下:
(1)根据WebView组件的应用风险,通过借助WebView系统组件的集成,设计具有漏洞统一屏蔽程序的接口,例 如 重 写addJavascriptInterface接 口;对 searchBoxJavaBridge、accessibility和accessihilityTraversal等操作接口予以移除。
(2)对于Logcat信息泄露,由于应用可能在Logcat调试过程中对敏感信息进行泄露,所以有必要着眼于Logcat的原理进行跟踪分析,在一些关键节点当中,比如native层的android_util_Log_println_native函数实行重新加载,避免日志信息被泄露。
(3)Zip解压缩文件覆盖风险,攻击者借助检查应用中未命名格式的文件,将文件名中带有“../”进行设计,以突破安卓系统中的沙盒隔离体系。所以应当对ZipEntry类的getName方法展开重新编写,对文件名中带有“../”的文件实行过滤,以实现系统的安全防护。
4 结语
智能手机的普及在为人们的生活带来便捷的同时,也带来了很大的安全隐患,现阶段智能手机的安全防护主要还是靠人们的自我安全认知,主要包括个人信息的防护,不和未知信息交互、对手机运行状况进行关注并日常进行安全检查等。随着移动互联网技术的不断发展,网络攻击的形式也开始变得更加难以防护,而一旦遭遇网络攻击,就需要及时通过终止信息交互和恶意进程的运行来避免损失的扩大,并借助法律武器来维护网络环境的整洁。