CN108614709A - 一种控制Android应用安全访问网络的方法及系统 - Google Patents
一种控制Android应用安全访问网络的方法及系统 Download PDFInfo
- Publication number
- CN108614709A CN108614709A CN201611075729.0A CN201611075729A CN108614709A CN 108614709 A CN108614709 A CN 108614709A CN 201611075729 A CN201611075729 A CN 201611075729A CN 108614709 A CN108614709 A CN 108614709A
- Authority
- CN
- China
- Prior art keywords
- android
- smali
- decompiling
- file
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种控制Android应用安全访问网络的方法及系统,该方法包括以下步骤:通过Web管理控制台的应用管理界面上传所述Android应用;通过反编译生成所述Android应用安装包;在应用管理界面中使用推送服务将所述Android应用安装包推送到终端设备并安装;将Android应用管控策略推送给终端设备管控应用;所述Android应用运行时接受所述Android应用管控策略的策略控制。通过该发明的方案,用户不需要对App做二次开发,节约成本;不会影响App原有功能;不会改变用户使用习惯,方便对Android应用的监控。
Description
技术领域
本发明涉及数据安全领域,具体涉及一种控制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:Mobile Device Management,移动设备管理,主要指智能手机和平板电脑的管理。
图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应用管控策略控制。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应保护在本发明的保护范围之内。
Claims (13)
1.一种生成安全Android应用安装包的方法,该方法包括以下步骤:。
1)对所Android应用安装包进行反编译处理得到反编译文件;
2)逐个分析所述反编译文件,生成一个树状结构类;
3)将API监控接口注入到所述树状结构类的接口中;
4)保存所述树状结构类,生成新的反编译文件;
5)对所述新的反编译文件进行打包,并对其进行签名,生成新的Android应用安装包。
2.根据权利要求1所述的方法,所述反编译文件为一个或多个smali语言格式的文件。
3.根据权利要求2所述的方法,所述步骤2)逐个分析所述反编译文件,生成一个树状结构类具体为:
根据Android平台SDK的android.jar包,逐个分析所述反编译后的smali语言格式的文件,将所有smali语言格式的文件生成一个smali树状结构类。
4.根据权利要求3所述的方法,所述步骤3)中将API监控接口注入到所述树状结构类的接口中具体为:
在生成的所述smali树状结构类中,根据API监控配置列表,对所述smali树状结构类进行修改,将API监控接口注入到所有的smali树状结构类的接口中。
5.根据权利要求4所述的方法,所述步骤4)保存所述树状结构类,生成新的反编译文件具体为:
将注入所述API监控接口的所述smali树状结构类保存,生成新的smali语言格式文件,并覆盖原有的smali语言格式的文件。
6.一种控制Android应用安全访问网络的方法,该方法包括以下步骤:
1)通过Web管理控制台的应用管理界面上传所述Android应用;
2)通过权利要求1-5之一所述的方法生成所述Android应用安装包;
3)在应用管理界面中使用推送服务将所述Android应用安装包推送到终端设备并安装;
4)将Android应用管控策略推送给终端设备管控应用;
5)所述Android应用运行时接受所述Android应用管控策略的策略控制。
7.一种控制Android应用安全访问网络的系统,该系统包括:Web管理控制台、服务器、业务数据库、终端设备管控应用、终端设备;
其中,业务数据库用于存储:用户信息、终端设备信息、Android应用管控策略信息、需要推送的各种数据信息、应用信息、日志信息;
所述服务器根据权利要求1-5之一的方法执行反编译/注入/签名打包控制服务,生成所述Android应用安装包;
该系统执行如权利要求6所述的方法。
8.一种生成安全Android应用安装包的装置,该装置包括:
反编译模块,对所Android应用安装包进行反编译处理得到反编译文件;
分析模块,逐个分析所述反编译文件,生成一个树状结构类;
API监控接口注入模块,将API监控接口注入到所述树状结构类的接口中;
反编译文件生成模块,保存所述树状结构类,生成新的反编译文件;
Android应用安装包生成模块,对所述新的反编译文件进行打包,并对其进行签名,生成新的Android应用安装包。
9.根据权利要求8所述的装置,所述分析模块根据Android平台SDK的android.jar包,逐个分析所述反编译后的smali语言格式的文件,将所有smali语言格式的文件生成一个smali树状结构类。
10.根据权利要求9所述的装置,所述API监控接口注入模块在生成的所述smali树状结构类中,根据API监控配置列表,对所述smali树状结构类进行修改,将API监控接口注入到所有的smali树状结构类的接口中。
11.根据权利要求10所述的装置,所述反编译文件生成模块将注入所述API监控接口的所述smali树状结构类保存,生成新的smali语言格式文件,并覆盖原有的smali语言格式的文件。
12.一种终端设备,该终端设备安装执行如权利要求1-5之一的方法生成的Android应用安装包。
13.根据权利要求12所述的终端设备,所述Android应用运行时接受终端设备管控应用的策略控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611075729.0A CN108614709B (zh) | 2016-11-29 | 2016-11-29 | 一种控制Android应用安全访问网络的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611075729.0A CN108614709B (zh) | 2016-11-29 | 2016-11-29 | 一种控制Android应用安全访问网络的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614709A true CN108614709A (zh) | 2018-10-02 |
CN108614709B CN108614709B (zh) | 2021-08-03 |
Family
ID=63643107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611075729.0A Active CN108614709B (zh) | 2016-11-29 | 2016-11-29 | 一种控制Android应用安全访问网络的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108614709B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188535A (zh) * | 2019-06-10 | 2019-08-30 | 南京领创信息科技有限公司 | 一种基于Android系统实现设备管控的方法 |
CN110896540A (zh) * | 2019-11-21 | 2020-03-20 | 国网辽宁省电力有限公司电力科学研究院 | 移动互联网客户端安全评估工具、方法、计算机设备及存储介质 |
CN112596823A (zh) * | 2020-12-23 | 2021-04-02 | 支付宝(杭州)信息技术有限公司 | 安全管控方法、装置及电子设备 |
CN113420312A (zh) * | 2021-07-08 | 2021-09-21 | 山东云缦智能科技有限公司 | 一种动态控制api接口访问的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365699A (zh) * | 2012-12-21 | 2013-10-23 | 北京安天电子设备有限公司 | 基于apk的系统api和运行时字符串提取方法及系统 |
US20140215564A1 (en) * | 2013-01-25 | 2014-07-31 | International Business Machines Corporation | Indicating organization of visitor on user interface of user engaged in collaborative activity with visitor |
CN103973642A (zh) * | 2013-01-30 | 2014-08-06 | 中国电信股份有限公司 | 实现js应用程序接口安全访问控制的方法与装置 |
CN104331662A (zh) * | 2013-07-22 | 2015-02-04 | 深圳市腾讯计算机系统有限公司 | Android恶意应用检测方法及装置 |
CN105786511A (zh) * | 2016-02-29 | 2016-07-20 | 四川长虹电器股份有限公司 | 终端设备Web应用管理的实现方法 |
CN105930692A (zh) * | 2016-04-20 | 2016-09-07 | 北京鼎源科技有限公司 | 一种Android应用程序的动态脱壳方法 |
CN105988923A (zh) * | 2015-02-09 | 2016-10-05 | 株式会社理光 | 一种录制被测Android程序的用户操作的方法及系统 |
-
2016
- 2016-11-29 CN CN201611075729.0A patent/CN108614709B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365699A (zh) * | 2012-12-21 | 2013-10-23 | 北京安天电子设备有限公司 | 基于apk的系统api和运行时字符串提取方法及系统 |
US20140215564A1 (en) * | 2013-01-25 | 2014-07-31 | International Business Machines Corporation | Indicating organization of visitor on user interface of user engaged in collaborative activity with visitor |
CN103973642A (zh) * | 2013-01-30 | 2014-08-06 | 中国电信股份有限公司 | 实现js应用程序接口安全访问控制的方法与装置 |
CN104331662A (zh) * | 2013-07-22 | 2015-02-04 | 深圳市腾讯计算机系统有限公司 | Android恶意应用检测方法及装置 |
CN105988923A (zh) * | 2015-02-09 | 2016-10-05 | 株式会社理光 | 一种录制被测Android程序的用户操作的方法及系统 |
CN105786511A (zh) * | 2016-02-29 | 2016-07-20 | 四川长虹电器股份有限公司 | 终端设备Web应用管理的实现方法 |
CN105930692A (zh) * | 2016-04-20 | 2016-09-07 | 北京鼎源科技有限公司 | 一种Android应用程序的动态脱壳方法 |
Non-Patent Citations (1)
Title |
---|
王健康 等: "Android应用程序的隐式控制流图构建", 《电子技术》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188535A (zh) * | 2019-06-10 | 2019-08-30 | 南京领创信息科技有限公司 | 一种基于Android系统实现设备管控的方法 |
CN110896540A (zh) * | 2019-11-21 | 2020-03-20 | 国网辽宁省电力有限公司电力科学研究院 | 移动互联网客户端安全评估工具、方法、计算机设备及存储介质 |
CN112596823A (zh) * | 2020-12-23 | 2021-04-02 | 支付宝(杭州)信息技术有限公司 | 安全管控方法、装置及电子设备 |
CN112596823B (zh) * | 2020-12-23 | 2023-03-21 | 支付宝(杭州)信息技术有限公司 | 安全管控方法、装置及电子设备 |
CN113420312A (zh) * | 2021-07-08 | 2021-09-21 | 山东云缦智能科技有限公司 | 一种动态控制api接口访问的方法 |
CN113420312B (zh) * | 2021-07-08 | 2022-04-26 | 山东浪潮超高清视频产业有限公司 | 一种动态控制api接口访问的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108614709B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11714902B2 (en) | Use of an application controller to monitor and control software file and application environments | |
US11936619B2 (en) | Combined security and QOS coordination among devices | |
US10474448B2 (en) | Method and system for providing software updates to local machines | |
US8346923B2 (en) | Methods for identifying an application and controlling its network utilization | |
CN105027493B (zh) | 安全移动应用连接总线 | |
CN105247531B (zh) | 提供受管浏览器 | |
US20080109871A1 (en) | Policy management | |
CN108614709A (zh) | 一种控制Android应用安全访问网络的方法及系统 | |
US10936470B2 (en) | Systems and methods for performance bug and grievance reports for SaaS applications | |
Kumar et al. | Exploring security issues and solutions in cloud computing services–a survey | |
Sahd et al. | Mobile technology risk management | |
Bradatsch et al. | ZTSFC: A Service Function Chaining-Enabled Zero Trust Architecture | |
CN114072798A (zh) | 内联恶意软件检测 | |
US11770361B1 (en) | Cobalt strike beacon HTTP C2 heuristic detection | |
Sentanoe et al. | Vmiguard: Detecting and preventing service integrity violations by malicious insiders using virtual machine introspection | |
US20220385683A1 (en) | Threat management using network traffic to determine security states | |
US20240039952A1 (en) | Cobalt strike beacon https c2 heuristic detection | |
US20240039951A1 (en) | Probing for cobalt strike teamserver detection | |
Marengereke et al. | Cloud based security solution for android smartphones | |
Geissler et al. | Applying security standards to multi agent systems | |
US20230334150A1 (en) | Restricted execution mode for network-accessible devices | |
WO2024025705A1 (en) | Cobalt strike beacon http c2 heuristic detection | |
CN114285631A (zh) | 一种基于安全网关的自动化数据加密系统及其应用 | |
Shivakumar et al. | Digital Workplace Security Framework | |
CN117240495A (zh) | 一种IoT远程RPC安全控制的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |