一种应用程序风险操作识别方法及装置与流程

文档序号:16210383发布日期:2018-12-08 07:39阅读:236来源:国知局
一种应用程序风险操作识别方法及装置与流程

本申请涉及网络安全技术领域,特别涉及一种应用程序风险操作识别方法及装置。



背景技术:

目前,通常会使用基于数据流和控制流结合的分析方法进行病毒扫描和/或漏洞分析,如,较为常见的污点分析技术。所谓污点分析技术,即是指在基于数据流的分析基础上定义控制流的开始点和结束点,利用数据流和控制流分析的相关技术进行分析。

然而,相关技术中使用的基于数据流和控制流的分析方法,虽然能够极大的提高静态分析的分析精确度和发现问题的能力,但自身却也存在一些缺陷和不足之处。

具体的,在使用基于数据流和控制流的分析方法进行数据分析时,在针对接收到的数据进行数据分析的过程中,查找的各个控制节点必须是一条连续的主路径上的控制节点,当上述接收到的数据对应的最后一个控制节点之后还关联有分支路径时,那么,则不能使用相关的基于数据流和控制流的分析方法进行分析,例如,相关技术中采用指定字符串进行数据追踪时,若后续的分支路径中触发另一种操作,上述指定字符串在上述触发的另一种操作中不存在时,则不能采用上述指定字符串针对分支路径中触发的另一种操作进行后续的追踪。此时,就需要具有丰富分析经验的分析人员,对后续的、与上述接收到的数据没有直接关联的分支路径进行人工分析,这样,就会导致分析效率不高,进一步的,可能由于分析工作量过大的原因,导致分析人员分析不全面而产生漏报,进而影响最终的分析结果。

综上所述,需要设计一种应用程序风险操作识别方法及装置,以弥补相关技术中存在的缺陷和不足之处。



技术实现要素:

本申请实施例提供一种应用程序风险操作识别方法及装置,用以解决相关技术中存在的分析效率不高,以及由于分析人员分析不全面而产生漏报,进而影响最终的分析结果的问题。

本申请实施例提供的具体技术方案如下:

第一方面,一种应用程序风险操作识别方法,包括:

获取应用程序对应的控制流程图,其中,所述控制流程图包括指令执行顺序,所述控制流程图还包括入口命令,所述入口命令包括从所述应用程序之外向所述应用程序导入数据的命令;

获取所述入口命令对应的至少一条主路径,其中,所述主路径包括入口命令对应的起始节点与结束节点之间的路径;

确定所述至少一条主路径对应的分支区域,其中,所述分支区域包括所述主路径对应的结束节点之后的至少一条分支路径;

确定所述分支区域中存在符合识别规则的操作,从而判断所述应用程序存在风险操作。

较佳的,获取应用程序对应的控制流程图,具体包括:

获取应用程序对应的可执行文件,并对所述可执行文件进行反编译和解析处理,得到相应的控制流程图。

较佳的,获取应用程序对应的可执行文件,并对所述可执行文件进行反编译和解析处理,得到相应的控制流程图,具体包括:

获取指定的应用程序对应的可执行文件,并使用相应的反编译工具对所述可执行文件进行反编译处理,获得包含控制流消息的中间代码;

对所述中间代码进行解析处理,绘制与所述中间代码对应的控制流程图。

较佳的,获取所入口命令对应的至少一条主路径,具体包括:

获取所述控制流程图中至少一个指定的入口命令;

针对所述控制流程图中的至少一个指定的入口命令分别执行以下操作:

根据一个指定的入口命令,将所述一个指定的入口命令作为起始节点,并采用追踪的方式从所述起始节点开始进行追踪,直至追踪操作完成的结束节点为止;

将所述起始节点与所述结束节点之间的路径确定为所述一个指定的入口命令对应的主路径。

较佳的,所述符合识别规则的操作至少包括以下一种或任意组合:

发送含有敏感信息的短信的操作;

不预先询问而直接安装应用程序的操作;

不预先询问而直接下载文件的操作;

向指定的网络地址发送敏感信息的操作。

第二方面,一种应用程序风险操作识别方法,包括:

获取应用程序对应的控制流程图,并将所述控制流程图呈现给用户,其中,所述控制流程图包括指令执行顺序,所述控制流程图还包括入口命令,所述入口命令包括从所述应用程序之外向所述应用程序导入数据的命令;

根据用户指示,获取所述入口命令对应的至少一条主路径,并将所述至少一条主路径呈现给用户,其中,所述主路径包括入口命令对应的起始节点与结束节点之间的路径;

根据用户指示,确定所述至少一条主路径对应的分支区域,并将所述至少一条主路径对应的分支区域呈现给用户,其中,所述分支区域包括所述主路径对应的结束节点之后的至少一条分支路径;

根据用户指示,确定所述分支区域中存在符合识别规则的操作,从而判断所述应用程序存在风险操作,并将判断结果呈现给用户。

第三方面,一种应用程序风险操作识别装置,包括:

第一获取单元,用于获取应用程序对应的控制流程图,其中,所述控制流程图包括指令执行顺序,所述控制流程图还包括入口命令,所述入口命令包括从所述应用程序之外向所述应用程序导入数据的命令;

第二获取单元,用于获取所述入口命令对应的至少一条主路径,其中,所述主路径包括入口命令对应的起始节点与结束节点之间的路径;

确定单元,用于确定所述至少一条主路径对应的分支区域,其中,所述分支区域包括所述主路径对应的结束节点之后的至少一条分支路径;

判断单元,用于确定所述分支区域中存在符合识别规则的操作,从而判断所述应用程序存在风险操作。

较佳的,在获取应用程序对应的控制流程图时,所述第一获取单元具体用于:

获取应用程序对应的可执行文件,并对所述可执行文件进行反编译和解析处理,得到相应的控制流程图。

较佳的,在获取应用程序对应的可执行文件,并对所述可执行文件进行反编译和解析处理,得到相应的控制流程图时,所述第一获取单元具体用于:

获取指定的应用程序对应的可执行文件,并使用相应的反编译工具对所述可执行文件进行反编译处理,获得包含控制流消息的中间代码;

对所述中间代码进行解析处理,绘制与所述中间代码对应的控制流程图。

较佳的,在获取所述控制流程图中的入口命令对应的至少一条主路径时,所述第二获取单元具体用于:

获取所述控制流程图中至少一个指定的入口命令;

针对所述控制流程图中的至少一个指定的入口命令分别执行以下操作:

根据一个指定的入口命令,将所述一个指定的入口命令作为起始节点,并采用追踪的方式从所述起始节点开始进行追踪,直至追踪操作完成的结束节点为止;

将所述起始节点与所述结束节点之间的路径确定为所述一个指定的入口命令对应的主路径。

较佳的,所述符合识别规则的操作至少包括以下一种或任意组合:

发送含有敏感信息的短信的操作;

不预先询问而直接安装应用程序的操作;

不预先询问而直接下载文件的操作;

向指定的网络地址发送敏感信息的操作。

第四方面,一种应用程序风险操作识别装置,包括:

第一获取单元,用于获取应用程序对应的控制流程图,并将所述控制流程图呈现给用户,其中,所述控制流程图包括指令执行顺序,所述控制流程图还包括入口命令,所述入口命令包括从所述应用程序之外向所述应用程序导入数据的命令;

第二获取单元,用于根据用户指示,获取所述入口命令对应的至少一条主路径,并将所述至少一条主路径呈现给用户,其中,所述主路径包括入口命令对应的起始节点与结束节点之间的路径;

确定单元,用于根据用户指示,确定所述至少一条主路径对应的分支区域,并将所述至少一条主路径对应的分支区域呈现给用户,其中,所述分支区域包括所述主路径对应的结束节点之后的至少一条分支路径;

判断单元,用于根据用户指示,确定所述分支区域中存在符合识别规则的操作,从而判断所述应用程序存在风险操作,并将判断结果呈现给用户。

第五方面,一种存储介质,存储有用于应用程序风险操作识别的程序,所述程序被处理器运行时,执行以下步骤:

获取应用程序对应的控制流程图,其中,所述控制流程图包括指令执行顺序,所述控制流程图还包括入口命令,所述入口命令包括从所述应用程序之外向所述应用程序导入数据的命令;

获取所述入口命令对应的至少一条主路径,其中,所述主路径包括入口命令对应的起始节点与结束节点之间的路径;

确定所述至少一条主路径对应的分支区域,其中,所述分支区域包括所述主路径对应的结束节点之后的至少一条分支路径;

确定所述分支区域中存在符合识别规则的操作,从而判断所述应用程序存在风险操作。

第六方面,一种通信装置,包括一个或多个处理器;以及

一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行上述第一方面中任一项所述的方法。

第七方面,一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行上述第一方面中任一项所述的方法。

第八方面,一种应用程序风险操作识别方法,其中,所述应用程序包括多个命令,识别方法包括:

从所述多个命令中,确定从所述应用程序之外向所述应用程序导入数据的导入命令;

获取与所述导入命令对应的导入数据;

从所述多个命令中,获取操作所述导入数据的操作命令;

从所述多个命令中,确定所述操作命令之后的命令序列为目标命令序列;

确定所述目标命令序列中存在符合识别规则的操作,从而判断所述应用程序存在风险操作。

较佳的,确定所述操作命令之后的命令序列为目标命令序列包括:

确定所述操作命令之后的顺序执行的命令序列为目标命令序列。

本申请有益效果如下:

综上所述,本申请实施例中,在进行风险操作识别的过程中,获取应用程序对应的控制流程图,其中,上述控制流程图包括指令执行顺序,上述控制流程图还包括入口命令,上述入口命令包括从上述应用程序之外向上述应用程序导入数据的命令;获取上述入口命令对应的至少一条主路径,其中,上述主路径包括入口命令对应的起始节点与结束节点之间的路径;确定上述至少一条主路径对应的分支区域,其中,上述分支区域包括上述主路径对应的结束节点之后的至少一条分支路径;确定上述分支区域中存在符合识别规则的操作,从而判断上述应用程序存在风险操作。采用上述风险操作识别方法,确定主路径对应的分支区域,并对分支区域进行分析判断,那么,无论主路径中执行的操作与该主路径对应的分支路径中执行的操作之间是否存在直接的关联关系,都可以筛选出可能存在风险操作的分支区域。

附图说明

图1为本申请实施例中,一种应用程序风险操作识别方法的详细流程图;

图2为本申请实施例中,对应用程序对应的APK文件进行反编译处理后,得到的应用程序对应的中间代码的示意图;

图3为本申请实施例中,对应用程序对应的中间代码进行解析处理,得到的与上述中间代码对应的控制流程图;

图4为本申请实施例中,另一种应用程序风险操作识别方法的详细流程图;

图5为本申请实施例中,第三种应用程序风险操作识别方法的详细流程图;

图6为本申请实施例中,一种应用程序风险操作识别装置的结构示意图;

图7为本申请实施例中,另一种应用程序风险操作识别装置的结构示意图。

具体实施方式

为了解决相关技术中存在的分析效率不高,以及由于分析不全面而产生漏报,进而影响最终的分析结果的问题。本申请实施例中提供了一种应用程序风险操作识别方法及装置。该方法为:获取应用程序对应的控制流程图;获取上述控制流程图中的入口命令对应的至少一条主路径,其中,上述入口命令包括从上述应用程序之外向上述应用程序导入数据的命令,上述主路径包括入口命令对应的起始节点与结束节点之间的路径;确定上述至少一条主路径对应的分支区域,其中,上述分支区域包括上述主路径对应的结束节点之后的至少一条分支路径;确定上述分支区域中存在符合识别规则的操作,从而判断上述应用程序存在风险操作。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了便于理解本申请实施例介绍的技术方案,现给出部分术语的定义:

1、病毒检测:通过检测等手段,对指定的远程或者本地终端中安装的应用程序进行检测,发现疑似病毒应用程序的一种检测行为。

2、漏洞扫描:通过扫描等手段,对指定的远程或者本地终端系统的安全脆弱性进行扫描,发现可利用的漏洞的一种安全检测行为。

3、APK文件:APK是Android Package的缩写,即Android安装包(apk)。

4、APK反编译:通过使用apk反编译工具将apk文件中的源文件和资源反编译出来。

下面将通过具体实施例对本申请的方案进行详细描述,当然,本申请并不限于以下实施例。

例如,假设某一款购物应用程序由于设计缺陷等原因存在漏洞;当用户使用上述购物应用程序浏览购物信息时,攻击者可能会利用漏洞诱导用户打开指定的页面,或者利用漏洞控制用户终端执行一些风险操作,进而给用户带来信息泄露或者财产损失。那么,此时,就需要针对上述购物应用程序进行风险操作识别判断,以定位上述购物应用程序中存在的漏洞的位置。

为了对应用程序进行风险识别/漏洞扫描,根据本申请一个实施例,提供一种应用程序风险操作识别方法,如图1所示,该方法的详细流程如下:

步骤100:获取应用程序对应的控制流程图。

较佳的,获取待检测的应用程序对应的可执行文件,并对上述可执行文件进行反编译和解析处理,得到相应的控制流程图。

具体的,在执行步骤100时,获取指定的应用程序对应的可执行文件,并使用相应的反编译工具对上述可执行文件进行反编译处理,获得包含控制流消息的中间代码,以及对上述中间代码代码进行解析处理,以绘制与上述中间代码对应的控制流程图,其中,上述控制流程图包括指令执行顺序,上述控制流程图还包括入口命令,上述入口命令包括从上述应用程序之外向上述应用程序导入数据的命令。

本申请实时中,以Android应用程序为例说明,Android应用程序对应的可执行文件为对应的安卓安装包(Android Package,APK)。例如,假设某购物应用程序对应的APK文件为xxx.apk,那么,在确定需要针对上述购物应用程序进行风险操作识别时,首先,需要获取上述购物应用程序对应的APK文件(xxx.apk文件),并使用相应的APK反编译工具对获取到的xxx.apk文件进行反编译处理,得到包含控制流消息的中间代码,以及针对反编译后得到的中间代码进行解析处理,得到相应的控制流程图。

实际应用中,由于每个Android应用程序都存在一个与之对应的APK文件,终端在安装一个Android应用程序时,需要使用上述一个Android应用程序对应的APK文件进行安装操作。那么,根据本申请一个实施例,就可以使用APK反编译工具(如,dex2jar等),针对指定的应用程序对应的APK文件进行反编译处理,获得该指定的应用程序对应的中间代码,进一步的,在获取到指定的应用程序对应的中间代码之后,对上述获取到指定的应用程序对应的中间代码进行解析处理,以绘制与上述获取到的指定的应用程序对应的中间代码对应的控制流程图。也即是说,控制流程图是一个过程或程序的抽象表现。控制流程图中的入口命令,包括执行了从指定的应用程序之外向该指定的应用程序内部导入数据的操作的命令。如,通过指定的应用程序接收一个外部命令、通过指定的应用程序读取一份文件等等。

其中,上述绘制出的与获取到的指定的应用程序对应的中间代码对应的控制流程图中,每一个控制节点中包含的语句都是不可跳转的,通常将一个控制节点称之为一个基本块,而基本块之间的连接关系是通过程序转移指令,例如跳转语句形成的。

例如,假设本申请实施例中,针对获取到的某购物应用程序对应的APK文件进行反编译处理后,得到的中间代码如图2所示。那么,参阅图3所示,针对图2中所示的,上述购物应用程序对应的中间代码进行解析处理,以得到与上述购物应用对应的中间代码对应的控制流程图,其中,P1为上述控制流程图中的第一个控制节点,P4为满足P3判断条件的控制节点,P12为不满足P3判断条件的控制节点,P7为满足P6判断条件的控制节点,P11为不满足P6判断条件的控制节点,P10为上述控制流程图中的最后一个控制节点。

步骤110:分别确定上述控制流程图中每一个入口命令对应的主路径,获得主路径集合。

具体的,获取上述控制流程图中的入口命令对应的至少一条主路径,其中,上述入口命令包括从上述应用程序之外向上述应用程序导入数据(即输入数据)的命令,上述主路径包括入口命令对应的起始节点与结束节点之间的路径。

实际应用中,在执行步骤110时,获取上述控制流程图中至少一个指定的入口命令,并针对上述控制流程图中每一个指定的入口命令分别执行以下操作:根据一个指定的入口命令,将上述一个指定的入口命令作为起始节点,并采用追踪的方式从上述起始节点开始进行追踪,直至追踪操作完成的结束节点为止,将上述起始节点与上述结束节点之间的路径确定为上述一个指定的入口命令对应的主路径。

当然,本申请实施例中,可以采用但不限于字符串追踪的方法进行追踪操作。

实际应用中,所谓入口命令指的是执行了从指定的应用程序之外向该指定的应用程序内部导入数据的操作的命令,入口命令是一个指令。如,通过指定的应用程序接收一个外部命令、通过指定的应用程序读取一份文件等等。

本申请实施例中,从上述控制流图中分别确定各个入口命令对应的主路径,具体的,针对每一个入口命令分别执行以下操作:根据一个入口命令确定执行上述一个入口命令的整体执行过程,并基于已确定的执行上述一个入口命令的整体执行过程,从上述控制流程图中确定出上述一个入口命令对应的主路径。即本申请实施例中,一条主路径对应一个入口命令的整体执行过程。

例如,假设绘制出的控制流程图为:P1->P2->……->P7->P8->P9->P10,P2为入口命令1对应的起始节点,P5为执行完入口命令1的节点(即结束节点),那么,确定出执行入口命令1对应的整体执行过程为:P2->P3->P4->P5,根据执行入口命令1对应的整体执行过程,即可确定出入口命令1对应的主路径为:P2->P3->P4->P5。

又例如,假设绘制出的控制流程图为:P1->P2->……->P7->P8->P9->P10,P7为入口命令2对应的起始节点,P9为执行完入口命令2的节点(即结束节点),那么,确定出执行入口命令2对应的整体执行过程为:P7->P8->P9,根据执行入口命令2对应的整体执行过程,即可确定出入口命令2对应的主路径为:P7->P8->P9。

本申请实施例中,所谓主路径,指的是入口命令对应的起始节点与执行上述入口命令的最后一个节点之间的路径,具体的,可以采用但不限于字符串跟踪的方式,从一个入口命令对应的起始节点开始,跟踪指定的字符串直至该指定的字符串在某一节点消失时,将上述一个入口命令对应的起始节点与上述指定的字符串消失的节点之间的路径确定为上述一个入口命令对应的主路径。

例如,假设入口命令1为通过指定的应用程序从网络接收数据的操作,且上述接收到的数据中携带有一个手机号码(如,138****0123),那么,就可以采用跟踪“138****0123”的方式,确定“138****0123”消失的一个控制节点/操作指令,并将开始读取“138****0123”的节点与“138****0123”消失的节点之间的路径确定为与入口命令1对应的主路径1。

又例如,假设入口命令2为通过指定的应用程序从存储区域中读取一个文件(如,123.doc),那么,就可以采用跟踪“123.doc”的方式,确定“123.doc”消失的一个控制节点,并将开始读取“123.doc”文件的节点与“123.doc”消失的节点之间的路径确定为与入口命令2对应的主路径2。

进一步的,在执行完从上述控制流程图中确定每一个入口命令对应的主路径之后,根据确定出的各个主路径,获得一个主路径集合。

例如,假设根据入口命令1确定出的主路径为主路径1,根据入口命令2确定出的主路径为主路径2,……,根据入口命令N确定出的主路径为主路径N,那么,就可以根据确定出的各个主路径,获得一个主路径集合,如,(主路径1,主路径2,……,主路径N),其中,N为大于等于2的正整数。

步骤120:确定上述至少一条主路径对应的分支区域,其中,上述分支区域包括上述主路径对应的结束节点之后的至少一条分支路径。

实际应用中,分别确定上述主路径集合包含的每一条主路径分别对应的分支区域。上述主路径集合包含的每一条主路径分别对应一个起始节点和结束节点,针对一条主路径而言,从上述一条主路径对应的结束节点之后的其他节点区域中,确定出分支区域,其中,上述分支区域包括上述主路径对应的结束节点之后的至少一条分支路径,分支区域中执行的操作与对应的主路径中执行的操作之间不存在直接的关联关系。

例如,假设入口命令1对应的在控制流程图中的主路径1为:P2->P3->P4->P5->P6,那么,P2为入口命令1在控制流程图中的主路径1对应的起始节点,P6为入口命令1在控制流程图中的主路径1对应的结束节点。

又例如,假设入口命令2对应的在控制流程图中的主路径2为:P8->P9->P10,那么,P8为入口命令1在控制流程图中的主路径对应的起始节点,P10为入口命令2在控制流程图中的主路径2对应的结束节点。

本申请实施例中,针对上述主路径集合包含的每一条主路径,分别执行以下操作:将一条主路径对应的结束节点之后的部分或全部分支路径确定为分支区域。具体的,由于每一条主路径均对应一个不同的入口命令,每一条主路径亦均是采用跟踪不同字符串的方式获得的,那么,针对上述主路径集合包含的任一主路径而言,在字符串消失的节点之后的分支路径中,均可能存在与上述任一主路径对应的结束节点相连接的分支路径,而在分支路径中仍可能存在与该字符串无直接关联的其他操作。

例如,假设针对某应用程序对应的可执行文件进行反编译后得到相应的中间代码,对上述中间代码进行解析处理后,得到的控制流程图为:P1->P2->……->P7->P8->P9->P10。采用追踪字符串(如,123)得到的主路径1为:P2>P3->P4,根据追踪文件名称(如,123.doc)“123.doc”得到的主路径2为:P6>P7->P8,那么,由此可知,针对主路径1而言,P4之后还存在与P4相连接的分支路径,如,P5->……->P9->P10;针对主路径2而言,P8之后还存在与P8相连接的分支路径,如,P9->P10。

当然,本申请实施例中,一条主路径对应的分支区域可以为该一条主路径对应的结束节点之后的所有区域,也可以为该一条主路径对应的结束节点之后的指定的分支区域。

例如,假设一条主路径对应的分支区域为该一条主路径对应的结束节点之后的所有区域,控制流程图为:P1->P2->……->Pm-1->Pm,控制流程图中存在的主路径1为:P1->P2>P3,那么,主路径1对应的分支区域为P4->……->Pm-1->Pm,其中,m为大于等于5的正整数。

又例如,假设一条主路径对应的分支区域为该一条主路径对应的结束节点之后的5个分支节点,控制流程图2为P1->P2->……->Pm-1->Pm,控制流程图中存在的主路径2为:P4->P5->P6>P7->P8->P9,那么,主路径2对应的分支区域为:P10->P11->P12>P13->P14,其中,m为大于等于14的正整数。

步骤130:分别判断已确定出的各个分支区域中是否存在符合识别规则的操作,在判定存在符合识别规则的操作的分支区域时,确定上述符合识别规则的操作的分支区域中存在风险操作。

实际应用中,确定上述分支区域中存在符合识别规则的操作,从而判断上述应用程序存在风险操作。

具体的,本申请实施例中,在确定出上述主路径集合包含的每一条主路径分别对应的分支区域之后,针对已确定出的每一个分支区域,分别执行以下操作:判断一个分支区域中是否存在符合识别规则的操作,在判定上述一个分支区域中存在符合识别规则的操作时,对该一个分支区域进行进一步的分析检测。

例如,假设主路径集合为:(主路径1,主路径2,主路径3),其中,已确定出的主路径1对应的分支区域为分支区域1,主路径2对应的分支区域为分支区域2,主路径3对应的结束节点为控制流程图中最后一个节点,那么,就可以分别判断分支区域1和分支区域2中是否存在符合识别规则的操作,若判定分支区域1中不存在符合识别规则的操作,而分支区域2中存在符合识别规则的操作,则确定分支区域2中存在风险操作。

当然,上述符合识别规则的操作包括但不限于以下情况中的任意一种或组合:

第一种情况为:分支区域中存在发送包含有敏感信息的短信的操作。

例如,假设采用跟踪手机号码(如,138****0123)确定的主路径为主路径1,且主路径1对应的分支区域为分支区域1,那么,若分支区域1内的各个路径点中,至少一个路径点执行了向某一接收端发送短信的操作,且该短信中包含有“通信录名单”的敏感信息时,则判定分支区域1中存在发送包含有敏感信息的短信的操作,从而确定分支区域1中存在风险操作。

第二种情况为:分支区域中存在不预先询问而直接安装应用程序的操作。

例如,假设采用跟踪字符串(如,AAA)确定的主路径为主路径2,且主路径2对应的分支区域为分支区域2,那么,若确定分支区域2内的各个路径点中,至少一个路径点执行了安装“XX软件”的操作,且在安装“XX软件”之前未询问用户是否进行安装,则判定分支区域2中存在不预先询问而直接安装应用程序的操作,从而确定分支区域2中存在风险操作。

第三种情况为:分支区域中存在不预先询问而下载文件的操作。

例如,假设采用跟踪字符串(如,BBB)确定的主路径为主路径3,且主路径对应的分支区域为分支区域3,那么,若确定分支区域3内的各个路径点中,至少一个路径点执行了下载“XX文件”的操作,且在下载“XX文件”之前未询问用户是否进行下载,则判定分支区域3中存在不预先询问而直接下载文件的操作,从而确定分支区域3中存在风险操作。

第四种情况为:分支区域中存在向指定的网络地址发送敏感信息的操作。

例如,假设采用跟踪网络地址(如,http://xxx.com)确定的主路径为主路径4,且主路径4对应的分支区域为分支区域4,那么,若确定分支区域4内的各个路径点中,至少一个路径点执行了向“http://xxx.com”发送信息的操作,且该信息中包含有“某应用程序的登录账号及登录密码”的敏感信息,则判定分支区域4中存在向指定网络地址发送敏感信息的操作,从而确定分支区域4中存在风险操作。

综上所述,采用本申请提供的风险操作识别方法,无论主路径中执行的操作与该主路径对应的分支路径中执行的操作之间是否存在直接的关联关系,都可以筛选出可能存在风险操作的分支区域。

下面将对本申请实施例在实际业务场景中的应用作进一步详细说明,具体的,根据本申请一个实施例,提供另一种应用程序风险操作识别方法,如图4所示,该方法的详细流程如下:

步骤400:获取应用程序对应的控制流程图,并将上述控制流程图呈现给用户,其中,上述控制流程图包括指令执行顺序,上述控制流程图还包括入口命令,上述入口命令包括从上述应用程序之外向上述应用程序导入数据的命令。

实际应用中,首先需要获取应用程序对应的可执行文件。

例如,假设服务器对终端X中安装的某购物应用程序进行风险操作识别,那么,需要获取该购物应用程序对应的可执行文件(如,Android安装包)。

然后,在接收到用户触发的反编译指令时,对上述可执行文件进行反编译处理,接收到用户触发的解析指令时,对上述中间代码进行解析处理,得到相应的控制流程图,并将上述控制流程图呈现给用户。

例如,假设服务器在获取到上述购物应用程序对应的APK文件后,服务器会通过终端向用户展示是否对上述购物应用程序对应的APK文件进行反编译处理,服务器在接收到用户触发的对上述APK文件进行反编译指令时,使用相应的反编译工具对上述APK文件进行反编译处理,得到相应的中间代码,并通过终终端向用户展示是否对上述中间代码进行解析处理,服务器在接收到对上述中间代码进行解析处理的指令时,对上述中间代码进行解析处理,得到与上述APK文件对应的控制流程图为:P1->P2->……->P7->P8->P9->P10,并将上述控制流程图通过终端展示给用户。

步骤410:根据用户指示,获取上述入口命令对应的至少一条主路径,并将上述至少一条主路径呈现给用户,其中,上述主路径包括入口命令对应的起始节点与结束节点之间的路径。

较佳的,确定上述控制流程图中每一个入口命令对应的主路径,获得主路径集合。

例如,假设服务器将对APK文件进行反编译和解析处理后得到的控制流程图通过终端展示给用户后,提示用户是否需要获取上述控制流图中包含的各入口命令对应的主路径,在接收到用户触发的获取各入口命令分别对应的主路径的指示时,获取入口命令1对应的主路径1(如,P1->P2->P3),入口命令2对应的主路径2(如,P2->P3->P4->P5)和入口命令3对应的主路径3(如,P7->P8)。

步骤420:根据用户指示,确定上述至少一条主路径对应的分支区域,并将上述至少一条主路径对应的分支区域呈现给用户,其中,上述分支区域包括上述主路径对应的结束节点之后的至少一条分支路径。

步骤430:根据用户指示,确定上述分支区域中存在符合识别规则的操作,从而判断上述应用程序存在风险操作,并将判断结果呈现给用户。

实际应用中,根据用户指示,分别针对上述主路径集合中包含的每一主路径执行以下操作:确定一条主路径对应的分支区域,并判断上述分支区域中是否存在符合识别规则的操作,在判定上述分支路径中存在符合识别规则的操作时,确定上述分支路径中存在风险操作。

例如,假设服务器针对入口命令1对应的主路径1(如,P1->P2->P3),首先,需要确定主路径1对应的分支区域(如,P4->P5->……->P9);然后,判断P4->P5->……->P9中包含的每一个控制节点中是否存在发送包含敏感信息的短信的操作,不预先询问而直接安装应用程序的操作,不预先询问而下载文件的操作等等,若判定P5中存在发送包含敏感信息的操作,则确定主路径1(P1->P2->P3)对应的分支区域(P4->P5->……->P9)中存在风险操作。

根据本申请一个实施例,提供一种应用程序风险操作识别方法,其中,上述应用程序包括多个命令,如图5所示,该方法的详细流程如下:

步骤500:从上述多个命令中,确定从上述应用程序之外向上述应用程序导入数据的导入命令。

步骤510:获取与上述导入命令对应的导入数据。

步骤520:从上述多个命令中,获取操作上述导入数据的操作命令。

步骤530:从上述多个命令中,确定上述操作命令之后的命令序列为目标命令序列。

较佳的,从上述多个命令中,确定上述操作命令之后的顺序执行的命令序列为目标命令序列。

步骤540:确定上述目标命令序列中存在符合识别规则的操作,从而判断上述应用程序存在风险操作。

基于上述实施例,参阅图6所示,本申请实施例中,一种应用程序风险操作识别装置,至少包括第一获取单元60,第二获取单元61,确定单元62以及判断单元63,其中,

第一获取单元60,用于获取应用程序对应的控制流程图;

第二获取单元61,用于获取所述控制流程图中的入口命令对应的至少一条主路径,其中,所述入口命令包括从所述应用程序之外向所述应用程序导入数据的命令,所述主路径包括入口命令对应的起始节点与结束节点之间的路径;

确定单元62,用于确定所述至少一条主路径对应的分支区域,其中,所述分支区域包括所述主路径对应的结束节点之后的至少一条分支路径;

判断单元63,用于确定所述分支区域中存在符合识别规则的操作,从而判断所述应用程序存在风险操作。

较佳的,在获取应用程序对应的控制流程图时,所述第一获取单元60具体用于:

获取应用程序对应的可执行文件,并对所述可执行文件进行反编译和解析处理,得到相应的控制流程图。

较佳的,在获取应用程序对应的可执行文件,并对所述可执行文件进行反编译和解析处理,得到相应的控制流程图时,所述第一获取单元60具体用于:

获取指定的应用程序对应的可执行文件,并使用相应的反编译工具对所述可执行文件进行反编译处理,获得包含控制流消息的中间代码;

对所述中间代码进行解析处理,绘制与所述中间代码对应的控制流程图。

较佳的,在获取所述控制流程图中的入口命令对应的至少一条主路径时,所述第二获取单元61具体用于:

获取所述控制流程图中至少一个指定的入口命令;

针对所述控制流程图中的至少一个指定的入口命令分别执行以下操作:

根据一个指定的入口命令,将所述一个指定的入口命令作为起始节点,并采用追踪的方式从所述起始节点开始进行追踪,直至追踪操作完成的结束节点为止;

将所述起始节点与所述结束节点之间的路径确定为所述一个指定的入口命令对应的主路径。

较佳的,所述符合识别规则的操作至少包括以下一种或任意组合:

发送含有敏感信息的短信的操作;

不预先询问而直接安装应用程序的操作;

不预先询问而直接下载文件的操作;

向指定的网络地址发送敏感信息的操作。

基于上述实施例,参阅图7所示,本申请实施例中,另一种应用程序风险操作识别装置,至少包括第一获取单元70,第二获取单元71,确定单元72以及判断单元73,其中,

第一获取单元70,用于获取应用程序对应的控制流程图,并将所述控制流程图呈现给用户;

第二获取单元71,用于根据用户指示,获取所述控制流程图中的入口命令对应的至少一条主路径,并将所述至少一条主路径呈现给用户,其中,所述入口命令包括从所述应用程序之外向所述应用程序导入数据的命令,所述主路径包括入口命令对应的起始节点与结束节点之间的路径;

确定单元72,用于根据用户指示,确定所述至少一条主路径对应的分支区域,并将所述至少一条主路径对应的分支区域呈现给用户,其中,所述分支区域包括所述主路径对应的结束节点之后的至少一条分支路径;

判断单元73,用于根据用户指示,确定所述分支区域中存在符合识别规则的操作,从而判断所述应用程序存在风险操作,并将判断结果呈现给用户。

综上所述,本申请实施例中,在进行风险操作识别的过程中,获取应用程序对应的控制流程图,其中,上述控制流程图包括指令执行顺序,上述控制流程图还包括入口命令,上述入口命令包括从上述应用程序之外向上述应用程序导入数据的命令;获取上述入口命令对应的至少一条主路径,其中,上述主路径包括入口命令对应的起始节点与结束节点之间的路径;确定上述至少一条主路径对应的分支区域,其中,上述分支区域包括上述主路径对应的结束节点之后的至少一条分支路径;确定上述分支区域中存在符合识别规则的操作,从而判断上述应用程序存在风险操作。采用上述风险操作识别方法,确定主路径对应的分支区域,并对分支区域进行分析判断,那么,无论主路径中执行的操作与该主路径对应的分支路径中执行的操作之间是否存在直接的关联关系,都可以筛选出可能存在风险操作的分支区域。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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