一种控制Android应用安全访问网络的方法及系统与流程

文档序号:15587955发布日期:2018-10-02 18:36阅读:191来源:国知局

本发明涉及数据安全领域,具体涉及一种控制android应用安全访问网络的方法及系统。



背景技术:

目前,随着移动网络的发展,智能移动终端设备的增加,尤其是智能手机、平板电脑的使用对人们的工作和生活越来越重要的地位。移动应用呈现平台化和垂直化双向发展趋势,在很短的时间里,不管是应用的数量还是覆盖领域都达到了指数级增长,但是随之而来的各种各样的网络安全问题也呈现增长的趋势,为了解决这些问题,市场上出现了对智能机上app进行管控软件,这些应用一般都是通过vpn功能对整个门户应用内的应用系统进行网络控制,此种方式需要app应用与门户应用内的各个应用系统进行二次开发。例如:

某企业需要对其原有的办公系统实现移动化办公,将所有的应用系统纳入到门户中,在终端上开发出一个app,通过此app访问门户内的所有应用办公系统,用户根据权限访问不同的应用办公系统。这种方式要求,每增加一个应用办公系统,终端app和应用系统就要做二次开发。

从市场上现有软件来看,通过vpn链路服务来控制终端上app网络访问权限,只有加入到vpn链路服务控制白名单中的app才有权限使用vpn链路访问内网资源的技术与本专利比较接近,但其要依赖于vpn链路服务,对第三方应用系统集成有一定的工作量,并且对应用系统接口类型等存在一些限制条件,无形中就增加了用户成本等问题。

以下给出通过vpn网关来控制终端app访问权限实现流程,参见附图1。该技术是目前最为普遍的终端app访问权限控制的一种实现。其技术实现是由vpn网关接收到app访问请求后,通过获取app访问应用服务器的目标地址来判断是否有访问权限,如果有访问权限,则vpn网关会将请求转发给目标应用服务器;如果没有访问权限,则vpn网关直接将此请求拦截。

此种实现方式已被广大开发人员和用户接受和认可,但是它要求用户必须安装vpn,并且只能控制通过vpn的内网应用,而不能控制公网上的应用;另外这种技术要求vpn网关具有强大的数据包分析能力。

本发明从实际需求和应用的角度出发,设计出一个完整的app访问网络控制方案,它主要采用反编译技术,对app原始安装包进行反编译,分析替换每个api接口,增加对要控制的api进行监控,根据用户策略来控制api,并且对数据增加校验等安全机制,最后对app进行重新签名打包等步骤,不需要用户app软件做二次开发,并且不改变用户使用习惯。



技术实现要素:

为解决上述技术问题,本发明提供了一种生成安全android应用安装包的方法,该方法包括以下步骤:。

1)对所android应用安装包进行反编译处理得到反编译文件;

2)逐个分析所述反编译文件,生成一个树状结构类;

3)将api监控接口注入到所述树状结构类的接口中;

4)保存所述树状结构类,生成新的反编译文件;

5)对所述新的反编译文件进行打包,并对其进行签名,生成新的android应用安装包。

优选的,在一个实施例中,所述反编译文件为一个或多个smali语言格式的文件。

优选的,在一个实施例中,所述步骤2)逐个分析所述反编译文件,生成一个树状结构类具体为:

根据android平台sdk的android.jar包,逐个分析所述反编译后的smali语言格式的文件,将所有smali语言格式的文件生成一个smali树状结构类。

优选的,在一个实施例中,所述步骤3)中将api监控接口注入到所述树状结构类的接口中具体为:

在生成的所述smali树状结构类中,根据api监控配置列表,对所述smali树状结构类进行修改,将api监控接口注入到所有的smali树状结构类的接口中。

优选的,在一个实施例中,所述步骤4)保存所述树状结构类,生成新的反编译文件具体为:

将注入所述api监控接口的所述smali树状结构类保存,生成新的smali语言格式文件,并覆盖原有的smali语言格式的文件。

为解决上述技术问题,本发明提供了一种控制android应用安全访问网络的方法,该方法包括以下步骤:

1)通过web管理控制台的应用管理界面上传所述android应用;

2)通过所述生成安全android应用安装包所述的方法生成所述android应用安装包;

3)在应用管理界面中使用推送服务将所述android应用安装包推送到终端设备并安装;

4)将android应用管控策略推送给终端设备管控应用;

5)所述android应用运行时接受所述android应用管控策略的策略控制。

为解决上述技术问题,本发明提供了一种控制android应用安全访问网络的系统,该系统包括:web管理控制台、服务器、业务数据库、终端设备管控应用、终端设备;

其中,业务数据库用于存储:用户信息、终端设备信息、android应用管控策略信息、需要推送的各种数据信息、应用信息、日志信息;

所述服务器根据上述方法执行反编译/注入/签名打包控制服务,生成所述android应用安装包;

该系统执行控制android应用安全访问网络所述的方法。

为解决上述技术问题,本发明提供了一种生成安全android应用安装包的装置,该装置包括:

反编译模块,对所android应用安装包进行反编译处理得到反编译文件;

分析模块,逐个分析所述反编译文件,生成一个树状结构类;

api监控接口注入模块,将api监控接口注入到所述树状结构类的接口中;

反编译文件生成模块,保存所述树状结构类,生成新的反编译文件;

android应用安装包生成模块,对所述新的反编译文件进行打包,并对其进行签名,生成新的android应用安装包。

优选的,在一个实施例中,所述分析模块根据android平台sdk的android.jar包,逐个分析所述反编译后的smali语言格式的文件,将所有smali语言格式的文件生成一个smali树状结构类。

优选的,在一个实施例中,所述api监控接口注入模块在生成的所述smali树状结构类中,根据api监控配置列表,对所述smali树状结构类进行修改,将api监控接口注入到所有的smali树状结构类的接口中。

优选的,在一个实施例中,所述反编译文件生成模块将注入所述api监控接口的所述smali树状结构类保存,生成新的smali语言格式文件,并覆盖原有的smali语言格式的文件。

为解决上述技术问题,本发明提供了一种终端设备,该终端设备安装执行生成安全android应用安装包的方法生成的android应用安装包。

优选的,在一个实施例中,所述android应用运行时接受终端设备管控应用的策略控制。

通过本发明的技术方案取得了以下技术效果:用户不需要对app做二次开发,节约成本;不会影响app原有功能;不会改变用户使用习惯。

附图说明

图1是现有技术中的app访问权限控制流程图

图2是本发明总体架构图

图3是本发明生成app安装包流程图

图4是本发明app访问权限控制流程图

图5是本发明app访问权限控制系统框图

具体实施方式

名词解释:

smali/baksmali:指android系统里的java虚拟机(dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。

mdm:mobiledevicemanagement,移动设备管理,主要指智能手机和平板电脑的管理。

图2展示了本发明的系统架构图。

上图中,本发明的关键是不需要用户app做二次开发,只需将要安装管控的用户app应用通过应用安全监控管理服务处理,经过反编译、策略api注入、重新对其进行签名打包,生成新的用户app安装包即可,将新的用户app安装包分发给用户流程就不再本文的中做说明了。

结合图3,下面将给出生成app安装包的具体流程。

用户app上api监控接口注入技术实现过程中主要有以下几个步骤:

1)将用户整个app进行反编译

采用反编译技术对app安装包进行反编译,主要对安装包中的java层实现接口进行反编译,将classes.dex文件反编译成smali语言格式的文件。

2)逐个分析smali语言格式文件

根据android平台sdk的android.jar包,逐个分析上述反编译后的smali语言格式的文件,将其所有文件生成一个smali树状结构类。

3)将api控制接口注入到api中

在生成的smali树状结构类中,根据api监控配置列表,对smali树状结构进行修改,将api监控接口注入到所有的smali树状结构类的接口中。

4)保存smali语言格式文件

将注入api监控接口的smali树状结构类保存,生成新的smali语言格式文件,并覆盖原有的smali语言格式的文件。

5)签名打包

对上述所有文件进行打包,并使用系统配置的apk签名证书对其进行签名,生成最终的apk安装包。

6)结束。

结合附图4,描述对app应用进行网络访问控制的流程。

用户app运行控制技术实现过程中主要有以下几个步骤:

app启动后,运行到监控api接口时,则根据当前用户的api控制策略判断是否允许执行此接口,如果控制策略允许,则正常执行此接口;否则不执行此接口,退出此执行流程。

结合附图5,描述了该系统包含五部分:web管理控制台、服务器、业务数据库、终端设备管控应用、终端设备用户app。

web管理控制台主要包含用户管理、设备管理、策略管理、应用管理、推送服务。

服务器主要提供用户认证管理服务、终端设备管理服务、策略管理服务、推送管理服务、反编译/注入/签名打包控制服务(及按照附图3所示生成app安装包)、日志管理服务。

终端设备管控应用主要包含(服务器推送的)应用管理、消息管理、用户认证、策略控制、mdm服务。

终端设备用户app主要包含策略控制模块。

业务数据库主要用于户存储用户信息、设备信息、策略信息、推送应用/消息/图片等数据信息、应用信息、日志信息。

本发明的主要业务流程如下:

(1)由管理员将要接受管控的用户app通过web控制台上应用管理界面上传到此系统;

(2)用户app上传成功后,服务器会对其进行反编译、smali文件分析、注入api、保存注入api后的smali文件、签名制作生成用户app新的安装包;

(3)在应用管理界面中使用推送服务将用户app新的安装包推送到终端设备上并安装。

(4)由管理员将用户管控策略下发到终端设备上的终端设备管控应用。

(5)用户app运行后则接受终端设备管控应用的策略,接受其策略控制。

此外,本发明还提供了一种生成安全android应用安装包的装置,该装置包括:

反编译模块,对所android应用安装包进行反编译处理得到反编译文件;

分析模块,逐个分析所述反编译文件,生成一个树状结构类;

api监控接口注入模块,将api监控接口注入到所述树状结构类的接口中;

反编译文件生成模块,保存所述树状结构类,生成新的反编译文件;

android应用安装包生成模块,对所述新的反编译文件进行打包,并对其进行签名,生成新的android应用安装包。

所述分析模块根据android平台sdk的android.jar包,逐个分析所述反编译后的smali语言格式的文件,将所有smali语言格式的文件生成一个smali树状结构类。

所述api监控接口注入模块在生成的所述smali树状结构类中,根据api监控配置列表,对所述smali树状结构类进行修改,将api监控接口注入到所有的smali树状结构类的接口中。

在一个实施例中,所述反编译文件生成模块将注入所述api监控接口的所述smali树状结构类保存,生成新的smali语言格式文件,并覆盖原有的smali语言格式的文件。

此外,本发明还提供了一种终端设备,该终端设备安装执行如附图3所示生成安全android应用安装包的方法生成的android应用安装包。所述终端设备上的android应用运行时接受所述终端设备管控应用下发的android应用管控策略控制。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应保护在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1