基于分层控制的移动应用保护方法研究和设计
2020-08-03肖荣陆晋军马思峻
肖荣 陆晋军 马思峻
摘要:随着移动互联网的飞速发展,移动办公已经成为政府、企业提供业务和服务的最主要的方式。本文研究了一种基于分层保护技术的移动应用安全保护方法,实现对移动应用的多层次的保护。
Abstract: With the rapid development of mobile Internet, mobile application has become the key way for the government and enterprises to provide business and services. In the paper, a method of mobile security protection based on multi-level protection is studied and realized.
关键词:移动应用安全;恶意软件;Hook;ASM;移动设备管理
Key words: mobile application security;malicious software;Hook;ASM;mobile device management
中图分类号:TP316 文献标识码:A 文章编号:1006-4311(2020)21-0176-03
0 引言
随着移动互联网的飞速发展,移动办公日渐兴起,智能手机、Pad等移动设备已经成为企业业务承载和个人日常生活的最主要的载体。在移动设备中,存贮了企业办公所需的邮件、数据、通信录、照片、视频等重要信息。频繁的网络交互以及使用第三方移动应用等,使得移动设备被入侵、被恶意应用程序窃取信息等风险越来越大,给企业、个人的信息安全带来巨大的安全隐患。
企业移动办公面临的风险主要包括以下几个方面:
1 无法定位移动应用故障和性能问题
企业自有移动应用的来源主要包括自有开发和委托第三方开发。移动应用的开发因为技术能力的差异,经常会面临移动应用的开发的质量问题,造成移动应用的闪退、无响应、耗电量高、流量开销大等问题,甚至出现安全风险和隐患,从而导致用户体验下降,故障、性能和安全问题是企业自有移动应用面临的主要问题。
2 使用第三方移动应用带来信息安全问题
移动应用的环境过于开放,使得在使用第三方的移动应用时,容易产生安全隐患,发生数据泄露。根据工信部发布的报告中[1],多款APP涉嫌侵犯用户的隐私,其中主要包括:私自启用设备功能进行窃听、非法访问照片和通信录、偷传移动设备信息等问题。因此,需要对第三方移动应用的进行安全运行环境,限制第三方APP非授权访问移动设备的通信录、语音、摄像头等功能,防止偷取、窃听、篡改用户的信息,保障移动环境下的企业移动办公的安全[2]。
3 移动设备丢失造成数据泄密问题
移动性、便携性是移动办公的最大优势,但同时也使移动设备存在丢失的风险。一旦包含敏感信息的政务、企业移动办公的设备丢失,则可能造成信息泄露,并可能成为被攻击的漏洞。
因此,对政务、企业的移动办公的安全防护,重点在于保障移动应用安全、移动运行环境安全和移动设备安全。
3.1 基于Hook技术的安全运行环境
Hook技术是一种用于监控Windows系统消息的技术。Hook技术能够在功能函数执行前,过滤一些关键函数调用,使得系统先执行自己的挂钩函数,从而达到监控系统函数调用,改变被钩函数功能的目的。
根据操作系统访问权限的不同,Hook技术主要分为两种不同的类型:内核级Hook和用户级Hook。其中,用户级Hook工作在操作系统的用户层,主要通过动态链接库注入和导入地址表的方式進行Hook,即将动态链接库注入到用户空间进程,修改导入地址表,将截取的目标函数的地址修改为钩子函数的地址进而达到Hook的目的。(图1)
基于Android平台Hook技术的研究主要集中在用户级Hook。根据不同运行时体系结构,搜索目标函数在内存中的入口地址,通过修改目标函数方法结构体中函数地址值,进行Dex Hook函数加载及函数Hook,完成运行时Hook过程。通过Hook技术实现对Android终端的安全保护,混合支持Android Dalvik和Android ART虚拟机[3],实现智能终端的安全保护。通过动态获取目标函数修改目标内存块的读取权限,将该内存块存储的目标函数入口地址替换成自定义函数地址,当应用调用目标函数时,最终会执行自定义函数,自定义函数中加入了安全保护代码,执行结束后再跳转到原有目标函数入口地址,从而实现将应用程序中的目标函数入口地址改变为钩子函数的地址达到Hook的目的。
通过Hook技术,可以对需要使用的第三方应用进行防护,对于移动设备中重要的系统级调用进行保护,通过Hook对这些系统级调用进行加“壳”保护,使用自定义的函数,来进行授权、执行、记录等操作,可以禁止第三方应用私自调用这些功能和接口,并对每一次系统级调用进行记录,从而防止第三方移动应用非法窃取移动设备上的用户数据隐私,并保留可以进行系统安全审计和追溯的痕迹。
3.2 面向切面编程技术的移动应用监控
基于字节码增强方法,使用面向切面编程技术,对已有应用的Android源代码进行预编译处理,在应用编译打包时,实现在不需要源代码的情况下,给程序动态统一添加探针代码,实现对已有的移动应用增加移动应用实时监控能力,实现移动应用的业务逻辑和系统监控保护服务的分离。
基于字节码增强方法,通过java rewriter重写jar包,匹配类名和方法名注入替换类和替换方法。具体如图2。
在被监测的移动应用侧,在Java虚拟机中部署Agent代理,应用程序加载入JVM时,Agent使用Java字节码操纵框架ASM修改加载入JVM的Class類,动态插入采集应用程序运行时各种事件和测量值的代码,新增代码执行获取各项数据后发送至监控平台侧。
通过遵循ASM方法[4],建立字节码转换适配器Class Visitor Factory,在Class Visitor Factory中创建类适配器Class Adapter,并在类适配器Class Adapter中创建类方法转换工厂Method Visitor Factory,类方法转换工厂中创建Method Visitor对象,Method Visitor对象实现on Method Enter方法,on Method Enter方法调用Invocation Dispatcher类的invoke函数。
其中,上述java rewriter重写jar包,具体如下:Invoke函数负责替换Android SDK和第三方类库,使用Decorator模式按照顺序替换应用管理、Activity(页面)、异步任务、剪贴板、USB、蓝牙等安全保护相关的类,对应的Class Visitor分别为Package Manager Class Visitor、Activity Class Visitor、Async Task Class Visitor、Clipboard Service Class Visitor、Device Manager Class Visitor、Location Manager Class Visitor,这些类使用ASM技术替换需要移动应用安全保护的类和方法,重写jar包中包含配置文件说明原有方法和替换方法的对应关系和替换方式,Jvm加载原有类的方法时,根据方法名在配置文件进行查找,如果发现有替换的方法,就替换原有方法的字节码,替换的字节码中包含原有代码的执行逻辑和新增的安全保护代码。
通过面向切面的编程技术,可以有效的监控移动应用,对移动应用中的内存、数据库、线程以及特定的函数的使用情况,可以进行感知和分析,进而进行调用链分析。在移动应用出现问题的时候,可以进行相应的代码段定位,从而实现移动应用的精确的故障诊断,可以有效的改善移动应用的质量,提升移动应用的安全性。
3.3 移动应用分层安全保护框架
为了保证政务、企业移动办公的移动应用安全、移动运行环境安全和移动设备安全。可以从操作系统内核层、虚拟机层和应用层提供混合保护机制。在内核层,进行内核函数的交互控制;在JVM层,监控移动应用的故障和性能;在应用层,基于MDM协议,对移动应用进行设备和应用的远程管理。移动办公安全的混合保护框架如图3所示。
3.3.1 基于内核层的保护
内核层是移动应用最终通过与操作系统内核的交互实现其功能,在内核层,通过Hook技术,对重要的方法进行重构,从而可以构建移动办公安全保护壳。通过Hook技术,实现移动应用与内核层交互的调用方法保护,包括文件读取、数据加密、网络控制等功能。
通过Hook技术,还能在内核层对移动设备的各种硬件驱动进行管理,如录音、摄像头、Wifi、蓝牙、USB等,从内核层安全实时的响应管理平台下发的各种策略。
3.3.2 基于JVM的保护
在JVM层,通过字节码增强方法,基于面向切面的编程技术,未移动应用加载探针,可以在虚拟机层面的函数方法上进行监控,对移动应用进行实时数据的采集,及时准确发现移动应用的故障和性能,并进行精确定位问题代码。
通过利用移动应用的监控,对涉及的多级函数调用进行调用链分析,可以及时发现和预警移动应用存在的安全和性能问题。
3.3.3 基于应用层的保护
在应用层,基于MDM移动设备管理协议,可以对在使用层面对移动应用进行控制,通过移动应用的名单制管理,控制企业允许使用的各种应用,未得到授权的移动应用在移动设备上将被禁止运行,对非授权的移动应用,企业可以进行远程静默删除。
此外,在应用层,可以远程进行锁屏、恢复出厂设置、更改密码和数据擦除等,在设备丢失等情况下,保护终端设备的数据安全。
4 结束语
随着移动互联网的飞速发展,移动办公已经成为政务、企业开展业务和服务的最主要的方式。随身携带的设备、无处不在的网络、不同来源的应用,使得政务、企业的关键业务和核心数据也必然将面临更多的风险。通过对移动办公进行分层混合保护管理,加强对企业自有移动应用的监控、对第三方移动应用安全的使用限制、对设备上的数据安全有效的管理,实现对移动办公的全方位、多层次的保护,具有十分重要的价值和社会效益。
参考文献:
[1]关于侵害用户权益行为的APP通报(2020年第一批)[EB/OL]. 2020-05-15.http://www.miit.gov.cn/n1146290/n1146402/c7911974/content.html.
[2]徐震,张妍. 面向政务领域移动办公的安全移动终端防护技术分析与研究[J].保密科学技术,2020(3):7-11.
[3]侯留洋,罗森林,潘丽敏,张笈.融合多特征的Android 恶意软件检测方法[J].信息网络安全,2020(1):67-74.
[4]程龙,李冶.应用ASM修改JAVA字节码[J].信息与电脑(理论版),2011(5):124-126.