面向Android系统的APP安全加固技术研究*
2021-12-26周元林张常泉邓国印
周元林 , 张常泉 , 邓国印
(江西科技学院,江西 南昌 330098)
随着社会与经济快速发展,移动设备已成为人们生活和工作中的重要组成部分。而占据了“半壁江山”的Android系统,在实际应用过程中经常会出现风险漏洞,这就导致用户个人信息极易被攻击者获取,轻则导致个人信息泄露,重则导致用户经济损失。在信息技术快速发展背景下,就需要结合实际情况制定相应的优化方案,通过合理的方式降低风险发生的概率,进而为用户个人信息与财产安全打下坚实基础。
1 Android平台脆弱性分析
1.1 平台架构的脆弱性
1.1.1 Linux提权攻击风险
在Android系统中,Linux是保证其正常运行的重要组成部分,其管理员账号Root若被攻击者获取,则在用户毫不知情的情况攻击者就可对系统内部的文件进行篡改。尽管Android系统在设计时并未将Root作为功能应用到系统中,但是因为系统自身的原因导致这一问题至今仍未得到解决,这也是Android系统最大的漏洞之一[1]。
1.1.2 非法的系统篡改
因Android系统运行过程中并未将系统镜像加载保护重视起来,用户很容易因一个误操作而导致木马入侵移动设备,这对普通用户来说还不能进行有效防范。
1.1.3 Apk的逆向破解
在Android系统运行的许多软件,在测试过程中发现可利用反编译的方式对其进行逆向分析,这导致系统应用安全风险进一步提高。
1.2 安全机制的脆弱性
1.2.1 伪造的应用签名
虽然在Android系统应用过程中有安全验证技术参与其中,但是Android系统应用的安全验证技术漏洞过于明显,若是攻击者想要对系统进行入侵,那么就可以通过极其简单的方式制造虚假应用签名,以直接避开系统验证。
1.2.2 模糊的权限声明
Android系统的安全机制脆弱性还表现在其权限声明方面,因为在软件安装前系统仅会提示用户是否需要安装,却未给出相应的判断,这就导致用户由于无法认清软件的意图而点击确认后,使得安全风险大大提升,这让病毒木马入侵系统的可能性增大。
1.2.3 作用受限的数据保护机制
在Android系统运行过程中其保护机制存在一定局限性,因为Android系统较为开放,再加上每天庞大的用户使用量,这就导致系统在运行过程中其保护机制只能对数据起到一定保障作用,使得安全风险大大提高。
1.3 运营模式的脆弱性
1.3.1 版本碎片化
Android系统的运行管理模式也存在问题,这一问题也是导致安全风险不断提升的重要原因。通过相关数据总结可以了解到,Android的各个系统版本用户受众群体较为分散,如已经不再提供服务的4.4版本目前还有一定的用户在使用,运营方随着版本不断更迭而对旧版本系统放弃维护,从而导致越来越多的用户在使用旧版本系统时信息被暴露风险更大。
1.3.2 第三方Rom良莠不齐
由于Android系统具有极强的开放性,有着大量第三方Rom供用户选择使用,方便用户选择的同时也带来了许多问题。其中最为明显的问题就是第三方Rom制作水平及职业道德问题,无法很好地辨别,如一些移动设备绑定恶意软件销售,长此以往就会威胁到用户信息安全。
1.3.3 应用市场多样化
现在的Android系统的应用市场“鱼龙混杂”,在正规应用市场中或大型下载网站中因监管不到位,会夹杂一些恶意软件供用户下载使用,有些非正规的应用市场或小的下载站特意提供恶意软件诱导用户安装,这极大影响了整个系统的生态环境。
2 Android系统威胁分析
2.1 平台威胁
2.1.1 恶意刷机威胁
虽然Android系统的用户数量在不断攀升,但是系统本身却并未对自带的威胁进行优化,特别是刷机威胁。因为在Android系统后台仍旧默认刷机的操作方式,这就导致攻击者可以利用这个漏洞获取到用户的移动设备控制权[2]。
2.1.2 Root威胁
在Android系统应用过程中,因部分软件在使用时需用到Root权限,这就导致在身份获取过程中一些攻击者通过记录或入侵的方式控制用户移动设备或系统。
2.2 应用威胁
2.2.1 权限滥用
Android系统在进行APP安装时需要获取大量权限,且权限获取全部由软件方决定,用户要使用就必须接受,无形中信息就被APP获取了。
2.2.2 二次打包
近年来,Android系统经常出现软件在运行过程中会将自带的编码与系统编码相结合,这就使得系统无法对软件进行制约,长此以往用户信息就会被窃取。
2.2.3 逆向分析
由于Android系统的环境较为开放,这就导致攻击者可以利用逆向分析的方法对软件加密环节进行破解,并在破解后植入病毒,病毒生效后就会对系统中的代码进行改编,最终引发严重的安全隐患。
2.3 数据威胁
2.3.1 用户口令窃取
由于Android系统中的软件经常需要用户输入口令,这就导致攻击者会利用漏洞去窃取用户口令。虽然系统已对常见的口令窃取方式进行修复,但是由于不同软件口令获取方式不同,所以其窃取方式也就更加多样化,长此以往不利于风险防控。
2.3.2 隐私数据窃取
由于Android系统的运行环境较为开放,黑客可以利用多种方式对用户移动设备进行入侵和攻击,系统中储存的大量信息会在系统被攻破后遭到窃取,造成严重的安全隐患。
3 平台层安全架构设计
3.1 应用层安全架构设计
3.1.1 应用验证
在发展过程中若要解决应用市场问题,就需要将国内的Android系统应用市场进行规范化管理,并保证每一个第三方应用市场都能够受到实时监管,同时还要使应用市场的操作符合法律规定。
3.1.2 安全登录
在Android系统运行过程中还需要将开发者权利保护问题重视起来,那么在系统优化过程中就需要将口令获取方式进行优化,Android系统可以通过与各应用进行联动的方式来解决传统口令获取存在的问题。例如将传统口令获取改变为生物认证与高强度密码相结合的方式,进而在源头上解决口令盗取问题[3]。
3.1.3 动态加壳保护
在系统安全防护过程中对系统的文件如DEX类文件以及SO库文件保护起来,同时还要对相应的密码与签名进行保护,以避免攻击者在入侵过程中通过二次打包来获取到重要信息。
3.1.4 应用间安全调用
在实际优化过程中为了避免出现安全风险,需要重视应用间的安全调用,以Android Binder为例,若要使应用安全性得到提升,就需要将APPID以及应用秘钥结合起来,通过这样的方式提高安全防护等级[4]。在密钥管理过程中还需要得到密钥管理中心支持,以保证能够在调取过程中对公钥合法性进行检验,最终提升关键数据安全防护。
3.2 数据层安全架构设计
3.2.1 数据安全访问
为了保证数据安全,就需要对数据安全访问进行优化,在实际优化过程中可将密码技术应用起来,以保证在实际应用过程中可以形成数据安全保护链,就算是用户需要对数据进行访问,也需要密钥才能开启下一步操作。但目前密钥管理系统应用具有一定的局限性,若要进一步提高密钥应用安全性,还需要解决密钥依赖问题。
3.2.2 可控数据共享
一般情况下,Android系统在下载了APP后其数据就会被与APP捆绑的其他软件获取,所以为了避免用户信息被泄漏,就需要在实际管理过程中开展可控数据共享结构设计。通过这样的方式来控制被下载APP的信息获取,同时限制被下载APP的信息数据共享传送,进而有效提高安全防护能力。
3.2.3 动态数据销毁
在Android系统运行过程中经常会出现因用户错误操作导致数据丢失的情况,利用“端”与“云”技术,可实现对重要数据的保存,同时将一些敏感的动态数据进行消除,这样就算是APP运行对系统内部数据进行扫描,也无法获取到重要信息,即降低了数据丢失的概率,同时还提高了数据保护能力。
3.3 监管平面安全架构设计
3.3.1 密钥管理
数据安全与密码有着重要联系,为了避免APP在运行过程中非法获取到信息与密码,就可以通过监管平面中心对密钥进行管理,进而有效提高系统应用的安全性,还可以保证APP在控制下合理运行[5]。
3.3.2 移动应用管理
为了保证Android系统下的APP更具安全性,在优化过程中就需要对APP进行区分,那么应用市场就成为控制APP安全的重要组成部分。系统可以将检测环节分配给各应用商店,并在软件安装下载过程中对APP安全性进行分析,同时明确告知用户是否存在安全风险,以及风险出现可能会带来的影响。
3.3.3 移动设备管理
Android系统在优化过程中一定要针对用户无法自行防护的问题进行处理,由于用户不是专业人员,所以对安全防护的重视度也就十分薄弱,那么在系统优化过程中就需要给予用户明确提示,并加强系统对APP的审核能力,进而有效提高用户信息安全性。
4 结语
笔者分析了Android系统在应用过程中存在的问题,同时也提出了相关的设计方法以加强Android系统的安全性。随着技术的不断突破,将为用户提供更好、更安全的系统应用环境,在利用移动设备办公或提供工作便利的同时,避免用户个人信息被非法获取,从而达到保护个人信息与财产安全的目的。