当前位置: 首页 > 专利查询>肖银皓专利>正文

一种识别过权应用程序的方法技术

技术编号:21953148 阅读:16 留言:0更新日期:2019-08-24 17:59
本发明专利技术公开了一种识别过权应用程序的方法,本发明专利技术所述方法允许更灵活的权限分配机制,本发明专利技术的过权检测方法全程全自动执行,并因为深度学习加入的原因具有自我进化自我学习的功能,极大程度地降低了用户的压力,相比起以往的权限管理系统只是简单查验系统配置文件如Manifest/XML,从源代码/二进制入手更灵活地让用户或安全管理员定义权限数量且打破以往的权限静态化管理模式,每个应用程序每次运行都会经过一次审查,使得应用程序不能永久获得某一权限。

A Method of Identifying Overweight Applications

【技术实现步骤摘要】
一种识别过权应用程序的方法
本专利技术属于计算机
,尤其涉及一种识别过权应用程序的方法。
技术介绍
目前,应用程序的功能越来越多样化,不同的权限请求变得越来越普遍,然而当前许多权限管理平台已无法满足复杂的权限检查要求。公开号为CN109670768A的专利公开了一种多业务域的权限管理方法,应用于权限管理平台,权限管理平台包括多个业务域子系统,当接收到客户端发送的访问请求时,调取本地数据库中存储的用户信息表并基于访问请求所携带的用户账号和密码进行用户验证;当验证通过时,获取用户账号对应的用户信息,并基于用户信息,确定用户请求访问的业务域子系统以及在该业务域子系统下赋予的角色和权限项;将确定的业务域子系统、角色和权限项返回至客户端,以供用户进行访问和使用。公开号为CN109447764A的专利公开了一种移动互联网商城管理平台系统,由商品管理平台、促销管理平台、订单管理平台、广告管理平台、报表统计平台、会员管理平台、权限管理平台、系统设置平台、数据库管理平台、补单管理平台组成;所述权限管理平台包括用于查看当前会员权限、重新分配会员权限以及切换用户状态的管理员列表管理模块、用于查询、删除日志列表的管理员日志管理模块和用于添加角色并选择所述角色需开通权限的角色管理模块;所述角色管理模块与所述管理员列表管理模块相通讯。现有的权限管理平台存在如下一些缺陷:1、目前的权限管理平台对于权限设置过于粗粒度,许多权限不能细粒粒度地划分及分配,导致某些应用程序需要请求冗余的权限才能完成工作。2、目前的权限管理平台几乎没有对权限有审查制度,这些平台是基于默认应用程序提供商都是诚实的前提来进行权限分配。3、目前的权限管理平台存在静态化管理模式,一旦一个应用程序被授予某种权限,应用程序则能够永久地拥有权限,直到用户特意终止权限的续签。4、目前的权限管理平台缺乏智能地管理机制,每个应用所有的权限都需要用户一一去判断及授权,极大地增加了用户的负担。5、目前的权限管理平台在划分权限的时候不能做到去耦合,不同权限之间可能存在线性或非线性的相关关系;一旦一个应用程序被拒绝某权限A,它能够通过权限B和C去完成权限A才能完成的工作。
技术实现思路
本专利技术的目的在于提供一种能够克服上述技术问题的识别过权应用程序的方法,本专利技术所述方法包括以下步骤:步骤1、创建一个应用程序控制流图CFG生成模块;创建一个应用程序数据流图DFG生成模块;创建一个基于自然语言处理NLP的应用程序简介解析模块;创建一个基于人工智能分类器ML/AI的过权判断模块;创建一个总体过权判断模块;应用程序CFG生成模块能够支持源代码和二进制两种控制流图生成模式;应用程序DFG生成模块能够支持源代码和二进制两种数据流图生成模式;步骤1.1、基于NLP的应用程序简介解析模块能够支持源至少中文或英文的解析;步骤1.2、基于ML/AI的过权判断模块支持控制流图和数据流图输出的数据作为输入;步骤1.3、总体过权判断模块将自然语言处理模块和卷积神经网络处理模块输出结果进行综合判断。步骤2、在平台运行阶段,应用程序CFG生成模块运行步骤如下:步骤2.1、接收一个应用程序作为输入;步骤2.2、如输入的应用程序为源代码模式,模块则会判断源代码为哪种编程语言编写,并调用对应解析器进行语义解析;步骤2.3、在解析器成功解析出所有的语义结构后,模块将会寻找所有的跳转语句,例如条件判断语句,循环语句;步骤2.4、模块会根据跳转语句将代码分成代码块;步骤2.5、模块将会用深度优先搜索算法将代码块连成树状图,每个代码块为图中的一个节点;步骤2.6、上述步骤2.2中当输入的应用程序为二进制模式,模块则会通过二进制头判断二进制哪种指令集(如x86,ARM,或MIPS),在调用相应的解析器对二进制进行反汇编解析;步骤2.7、在解析器成功解析出所有的语义结构后,模块将会寻找所有的跳转语句,例如JMP,BR;步骤2.8、模块会根据跳转语句将代码分成代码块;步骤2.9、模块将会用深度优先搜索算法将代码块连成树状图,每个代码块为图中的一个节点,此树状图即为CFG;步骤2.10、模块将输出生成的CFG。步骤3、在平台运行阶段,应用程序DFG生成模块运行步骤如下:步骤3.1、接收一个应用程序作为输入;步骤3.2、如输入的应用程序为源代码模式,模块则会判断源代码为哪种编程语言编写,并调用对应解析器进行语义解析;步骤3.3、在解析器成功解析出所有的语义结构后,模块将会寻找所有的变量;步骤3.4、模块将会用利用污点追踪算法将数据所在的代码模块连城树状图,每个代码块为图中的一个节点;步骤3.5、上述步骤3.2中,当输入的应用程序为二进制模式,模块则会通过二进制头判断二进制哪种指令集(如x86,ARM,或MIPS),在调用相应的解析器对二进制进行反汇编解析;步骤3.6、在解析器成功解析出所有的语义结构后,模块将会寻找所有的变量;步骤3.7、模块将会用利用污点追踪算法将数据所在的代码模块连成树状图,每个代码块为图中的一个节点,树状图即为DFG;步骤3.8、模块将输出生成的DFG。步骤4、在平台运行阶段,基于NLP的应用程序简介分析模块运行步骤如下:步骤4.1、接收一个应用程序的介绍作为输入;步骤4.2、判断介绍的语言种类,并判断语言类别,调用相应的语言解析器,将语句中的各个部分按照语言学的语法进行分割(如主谓宾);步骤4.3、训练一个NLP算法识别判断简介中应用程序所需要的权限;NLP算法能够是但不局限于循环神经网络(RNN)、隐式狄利克雷分布(LDA)算法;步骤4.4、判断完成后,模块会将判断出的所需权限按照向量输出,向量由n个二进制(0或1)数字所组成,如果第i个数字为1则表示应用程序需要第i个权限,0则表示不需要;n表示权限的总数。步骤5、在平台运行阶段,基于ML/AI的过权判断模块运行步骤如下:步骤5.1、接收一个应用程序的CFG和DFG作为输入,CFG和DFG由上述CFG生成模块和DFG生成模块所生成;步骤5.2、当输入为CFG,模块将每个CFG中的节点提取k个特征,这些特征能够是但不仅限于赋值指令的数量,定义指令的数量,系统调用的数量,从而形成m*k维特征举证;m为节点的数量;步骤5.3、模块对CFG求出m*m维邻接矩阵,并对邻接矩阵做必要的转化,这些转换能够是但不局限于改变再置、SVD分解、Gram-Schmidt正交化;在平台运行阶段,总体过权判断模块运行如下:步骤5.4、当输入为DFG,模块将每个DFG中的节点提取q个特征,这些特征能够是但不仅限于数据类型、数据所在内存中占有空间、数据有效范围、数据有效时间,从而形成m*q维特征举证;此处m为节点的数量;步骤5.5、模块对DFG求出m*m维邻接矩阵,并对邻接矩阵做必要的转化,这些转换能够是但不局限于改变再置、SVD分解、Gram-Schmidt正交化;步骤5.6、模块将步骤5.2与步骤5.3及步骤5.4与步骤5.5产生的矩阵做矩阵乘法,得到新的矩阵,并将新的矩阵作为输入放进ML/AI模型进行判断;步骤5.7、判断完成后,模块会将判断出的所需权限按照向量输出,向量由n个二进制(0或1)数字所组成,如果第i个数字为1则表示应用程序需要第i个权限,0则表示不需要;n表本文档来自技高网
...

【技术保护点】
1.一种识别过权应用程序的方法,其特征在于,包括以下步骤:步骤1、创建一个应用程序控制流图CFG生成模块;创建一个应用程序数据流图DFG生成模块;创建一个基于自然语言处理NLP的应用程序简介解析模块;创建一个基于人工智能分类器ML/AI的过权判断模块;创建一个总体过权判断模块;应用程序CFG生成模块能够支持源代码和二进制两种控制流图生成模式;应用程序DFG生成模块能够支持源代码和二进制两种数据流图生成模式;步骤2、在平台运行阶段,应用程序CFG生成模块运行步骤;步骤3、在平台运行阶段,应用程序DFG生成模块运行步骤;步骤4、在平台运行阶段,基于NLP的应用程序简介分析模块运行步骤;步骤5、在平台运行阶段,基于ML/AI的过权判断模块运行步骤;步骤6、在平台运行阶段,总体过权判断模块运行步骤。

【技术特征摘要】
1.一种识别过权应用程序的方法,其特征在于,包括以下步骤:步骤1、创建一个应用程序控制流图CFG生成模块;创建一个应用程序数据流图DFG生成模块;创建一个基于自然语言处理NLP的应用程序简介解析模块;创建一个基于人工智能分类器ML/AI的过权判断模块;创建一个总体过权判断模块;应用程序CFG生成模块能够支持源代码和二进制两种控制流图生成模式;应用程序DFG生成模块能够支持源代码和二进制两种数据流图生成模式;步骤2、在平台运行阶段,应用程序CFG生成模块运行步骤;步骤3、在平台运行阶段,应用程序DFG生成模块运行步骤;步骤4、在平台运行阶段,基于NLP的应用程序简介分析模块运行步骤;步骤5、在平台运行阶段,基于ML/AI的过权判断模块运行步骤;步骤6、在平台运行阶段,总体过权判断模块运行步骤。2.根据权利要求1所述的一种识别过权应用程序的方法,其特征在于,所述步骤1包括以下步骤:步骤1.1、基于NLP的应用程序简介解析模块能够支持源至少中文或英文的解析;步骤1.2、基于ML/AI的过权判断模块支持控制流图和数据流图输出的数据作为输入;步骤1.3、总体过权判断模块将自然语言处理模块和卷积神经网络处理模块输出结果进行综合判断。3.根据权利要求1所述的一种识别过权应用程序的方法,其特征在于,所述步骤2包括以下步骤:步骤2.1、接收一个应用程序作为输入;步骤2.2、当输入的应用程序为源代码模式,模块则会判断源代码为哪种编程语言编写,并调用对应解析器进行语义解析;步骤2.3、在解析器成功解析出所有的语义结构后,模块将会寻找所有的跳转语句;步骤2.4、模块会根据跳转语句将代码分成代码块;步骤2.5、模块将会用深度优先搜索算法将代码块连成树状图,每个代码块为图中的一个节点;步骤2.6、上述步骤2.2中,输入的应用程序为二进制模式,模块则会通过二进制头判断二进制哪种指令集,在调用相应的解析器对二进制进行反汇编解析;步骤2.7、在解析器成功解析出所有的语义结构后,模块将会寻找所有的跳转语句;步骤2.8、模块会根据跳转语句将代码分成代码块;步骤2.9、模块将会用深度优先搜索算法将代码块连成树状图,每个代码块为图中的一个节点,树状图即为CFG;步骤2.10、模块将输出生成的CFG。4.根据权利要求1所述的一种识别过权应用程序的方法,其特征在于,所述步骤3包括以下步骤:步骤3.1、接收一个应用程序作为输入;步骤3.2、当输入的应用程序为源代码模式,模块则会判断源代码为哪种编程语言编写,并调用对应解析器进行语义解析;步骤3.3、在解析器成功解析出所有的语义结构后,模块将会寻找所有的变量;步骤3.4、模块将会用利用污点追踪算法将数据所在的代码模块连城树状图,每个代码块为图中的一个节点;步骤3.5、上述步骤3.2中如果输入的应用程序为二进制模式,模块则会通过二进制头判断二进制哪种指令...

【专利技术属性】
技术研发人员:肖银皓
申请(专利权)人:肖银皓
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1