APP下载

基于虚拟应用技术的Android可视数据防泄漏技术实现

2019-11-30武宗品张嵩李刚魏康威李铭乐

电子技术与软件工程 2019年20期
关键词:数据安全应用程序终端

文/武宗品 张嵩 李刚 魏康威 李铭乐

近年来,移动互联网技术的飞速发展有目共睹,我们可以随时随地的去上网、移动支付、生活缴费、足不出户的网购、观看高清视频等,享受这些移动互联网技术发展带来的便利早已进入我们的日常生活之中,移动互联网技术的发展正深刻影响着我们的生活,技术升级带来的方便与快捷也已远远超出我们的想象,科学技术的飞速发展进步正引领着我们的社会走向深层次变革之中。

调查显示,我国使用移动办公的人数在逐年增加,移动办公也逐渐从大中型企业向中小型企业过渡普及,由此带来的企业可视数据泄露风险也愈发明显,如何防止可视数据泄露越来越受到大多数企业的重视,保护企业的数据安全、使企业可视数据免遭泄露显得更为重要、也更为紧迫,保护企业数据安全更应该成为我们的常态,更是我们义不容辞、不可推卸的责任。

本文基于虚拟应用技术,针对智能终端Android系统上的运行应用程序,实现了一种无须第三方应用开发者介入的、通用的、可定制化的屏幕水印绘制方式,能够使第三方应用程序界面显示可定制的屏幕水印信息,有效地提高了可视数据通过截屏、拍照、录像等方式发生泄漏的难度。

1 可视数据防泄漏需求分析

可视数据指的是运用计算机图形学和图像技术,将存储在计算机或手机上的二进制数据转换为文本、图片显示在屏幕上,以进行交互处理;可视数据可以将复杂、无规律的数据以直观、容易理解的方式展示在人们面前,以便人们更加高效的获取有价值的信息,可视数据是我们与数据信息交流的一种方式。但是可视数据在方便我们使用的同时,也会带来很大的信息安全隐患,对于企业用户来说困扰他们的最大问题就是可视数据的泄露。针对目前市场情况,我们分析了基于Android系统的智能终端可视数据防泄露需求,下面介绍下常见的可视数据泄露途径:

(1)截屏拷贝泄露:这种方式主要是通过使用手机的截屏功能将可视数据保存为图片,这样就可以将可视数据信息以图片的形式泄露出去。

(2)手机拍照泄露:对具有拍摄功能的手机未进行权限管控,导致可视数据信息被他人拍摄泄露出去。

(3)智能终端即时通讯:员工在日常工作中会大量使用即时通讯软件,这样就会导致员工行为不可控,员工可能会通过即时通信软件将存储在智能终端上的可视数据或文档发送给其他公司的人,导致企业数据泄露、商业泄密。

(4)打印数据泄露:通过打印的方式,将企业敏感信息打印为纸质文件,携带出去给他人。

(5)U盘拷贝泄露:通过便携式U盘插入手机上,将手机上的敏感数据拷贝出去以致数据泄露。

针对日常工作中可能遇到的可视数据泄露情形,一方面要从管理方式上考虑如何确保数据不泄露,另一方面要提高数据泄露的复杂度、降低数据泄露后追踪的难度。针对第二点,我们需要在泄露出去的数据上面绘制特有的水印信息,可有效降低数据泄露风险,确保数据外泄后可以追溯到泄露源头,防止数据泄露后被别有用心的人违法利用,提高数据泄露后非法使用的成本,水印可应用于查看图片、打开办公文档、浏览公司内部网页、使用办公软件等场景,保证企业数据安全。

2 技术与设计

2.1 虚拟应用技术实现分析

在不修改第三方应用的前提下,在Android系统上实现对应用的水印覆盖,需要通过虚拟化技术。对现有的虚拟化技术进行了分析和调研:通过将LXC工具移植到移动ARM平台,使用LXC工具创建出多个容器,在每个容器中运行Android系统,实现了一种基于容器的虚拟化解决方案,但是该方案需要修改每个虚拟Android系统源代码,不具有通用性和可移植性;通过修改Linux内核的现有命名空间资源隔离机制,扩展Driver命名空间,以支持多个虚拟化Android系统实例同时运行在一套硬件设备上,但是该方案仍然不便于移植,需要修改系统源码。

本文采用虚拟应用技术是以Android系统framework框架为基础编写的一套第三方应用程序运行所需的virtual framework service(虚拟框架服务),其分为Client代理端和Server服务端;框架的实现基础是Java语言的反射注入和动态代理机制,在Android系统的framework层进行Hook(拦截)系统原生代码,以此接管应用程序的启动、创建、运行流程,具有轻量、便于移植、使用方便的特性。

虚拟应用技术在运行时并不是一个简单的单进程的库,其需要在系统调用到其预先注册在清单文件中的组件之后Hook系统,之后代理ClientApp的四大组件,包括组件生命周期管理等。

在Client App运行进程中我们会调用framework API,这些API最终会通过Binder进程间通信调用到framework service进程所提供的远端服务。在远端服务中比如ActivityManagerService通过持有Client App进程的IBinder Token句柄,通过token也可以让framework service进程中的远端服务调用App进程中的方法。

在虚拟应用环境下,我们需要在Client App和framework services之间需要增加一层自己实现的VirtualAppService。VirtualAppService模拟了framework service的部分功能,而这也是虚拟应用技术实现的关键所在。在虚拟应用中运行的Client App是未在framework service中注册的,虚拟应用则是预先在framework service中注册,因此framework service不能像管理普通应用一样管理运行在虚拟应用中的Client App会话,所以虚拟应用需要创建一套VirtualAppService管理虚拟应用中的Client App会话。

2.2 终端系统总体设计

我们相当于在Android系统上面创建了一个沙盒,总体设计采用分层的设计模式,分为业务逻辑层、应用运行层、虚拟应用服务框架层,下面介绍这三层各自的作用。

业务逻辑层:主要负责配置虚拟应用内的一些DLP(Data leakage prevention)策略,保护虚拟应用内的数据免遭泄露。应用运行层:负责在虚拟应用内运行第三方应用程序,第三方应用程序进程的创建启动运行以及组件的创建启动都是在该层操作,并且构建第三方应用程序的虚拟私有空间。虚拟应用服务框架层:负责提供在虚拟应用内运行的第三方应用程序所需要的各种虚拟服务,在虚拟应用内提供基础设施以便第三方程序的运行。

3 实际应用

以虚拟应用技术作为底层基础框架API,公司组织团队开发出一整套从终端到后台管理的安全盒平台软件系统,形成一整套移动办公模式解决方案。

3.1 安全盒功能模块

3.1.1 用户管理

安全盒平台可以将客户的组织架构信息通过Excel的形式导入,也可以在平台上录入信息。管理员可以对这些用户信息进行增删改查,并对用户的账号密码进行重置。

3.1.2 应用管理

安全盒内使用的应用是管理员控制的。管理员可以上传用户可以使用的应用,并控制应用可以允许哪些用户进行使用。

3.1.3 可定制化屏幕水印

安全盒平台可以根据用户提供的想要显示的水印信息做定制化处理,以满足客户所要求的应用显示水印信息,在安全盒内运行的第三方应用程序的界面上覆盖显示特定水印信息,水印信息可以更新。水印信息定制包括:是否显示IMEI、是否显示用户名、是否显示时间戳、显示的位置等。

3.2 安全盒应用场景

安全盒平台软件是顺应市场需求,面向政务部门等一些对数据安全等级要求比较高的行业,为用户提供一个安全可靠的智能终端使用环境,保证用户数据安全。当前,安全盒平台已经在法院、政府、公安等多个行业进行部署和使用。

4 总结

本文分析了可视数据防泄露需求以及虚拟技术的实现原理,并以此做为底层基础框架开发出了安全盒平台软件系统,实现数据防泄漏功能,解决企业用户在工作中遇到的数据安全防护以及数据防泄漏等问题。

猜你喜欢

数据安全应用程序终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
删除Win10中自带的应用程序
云计算中基于用户隐私的数据安全保护方法
建立激励相容机制保护数据安全
大数据云计算环境下的数据安全
多功能北斗船载终端的开发应用
大数据安全搜索与共享
ABB Elastimold 10kV电缆终端及中间接头
三星电子将开设应用程序下载商店