应用程序动态分析的方法及装置与流程

文档序号:12467727阅读:399来源:国知局
应用程序动态分析的方法及装置与流程

本发明涉及互联网技术领域,具体涉及一种应用程序动态分析的方法及装置。



背景技术:

随着应用程序的大量普及,应用市场上出现了各式各样的应用程序,为了保护用户的利益,就需要检测这些应用程序的行为是否合乎规则。然而,面对海量的应用,如何高效、准确的检测应用程序的行为并做出合理判断成了迫切的需求。

针对这些应用程序,国内的安全厂商开发出了相应的产品,然而这些厂商只是针对某个具体的方面,比如:检测恶意的应用、检测该应用程序是否加固等,但尚未有针对应用程序行为分析的动态检测方案,因此,现有技术中缺少一种对应用程序的行为进行动态分析的方法。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用程序动态分析的方法和相应的应用程序动态分析的装置。

根据本发明的一个方面,提供了一种应用程序动态分析的方法,方法包括:

获取待分析的应用程序的安装包文件;

将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据;

对行为数据进行分析,得到分析结果。

根据本发明的另一方面,提供了一种应用程序动态分析的装置,装置包括:

获取模块,用于获取待分析的应用程序的安装包文件;

行为数据收集模块,用于将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据;

分析模块,用于对行为数据进行分析,得到分析结果。

根据本发明提供的方案,在获取待分析的应用程序的安装包文件后,将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据,对行为数据进行分析,得到分析结果,从而能够全面的监测和分析应用程序的运行行为,并使用户可以依据分析结果决定是否对应用程序进行调整。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的应用程序动态分析的方法的流程示意图;

图2示出了根据本发明另一个实施例的应用程序动态分析的方法的流程示意图;

图3示出了根据本发明一个实施例的应用程序动态分析的装置的结构示意图;

图4示出了根据本发明另一个实施例的应用程序动态分析的装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的应用程序动态分析的方法的流程示意图。如图1所示,该方法包括以下步骤:

步骤S100,获取待分析的应用程序的安装包文件。

在本发明实施例中,待分析的应用程序的安装包文件可以是客户端上传的安装包文件,也可以从网站下载的或者本地的应用程序的安装包文件,例如,应用程序的开发商在开发出新的应用程序后,在将应用程序上市前,可以通过客户端所提供的上传文件的入口,上传应用程序的安装包文件,以对应用程序的安装包文件进行行为动态分析;当然,普通用户在从应用商店等下载了某个应用程序的安装包文件之后,也可以通过客户端所提供的上传文件的入口,上传应用程序的安装包文件,以对应用程序的安装包文件进行行为动态分析。

步骤S101,将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据。

在获取到安装包文件之后,就可以将安装包文件放入到沙箱中,在沙箱中运行该安装包文件,并对安装包文件运行过程中产生的行为数据进行收集,以作为后续分析的分析对象。这里在沙箱中运行安装包文件可以避免对真实系统产生影响。

步骤S102,对行为数据进行分析,得到分析结果。

在收集到安装包文件运行过程中产生的行为数据之后,对收集到的行为数据进行分析,其中,对行为数据进行分析具体为:对数据行为进行敏感行为分析、恶意行为分析、行为趋势分析、权限分析和/或行为分类分析。其中,敏感行为分析可以用于分析安装包文件运行时是否对敏感数据进行操作,例如,读取敏感数据;恶意行为分析可以用于分析安装包文件运行时是否发生有欺诈等行为;权限分析指分析安装包文件运行时涉及到哪些权限,例如,修改、删除等。当然,并不限于上述分析,本领域技术人员可以根据实际需要进行其他行为分析。

根据本发明上述实施例提供的方法,在获取待分析的应用程序的安装包文件后,将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据,对行为数据进行分析,得到分析结果,从而能够全面的监测和分析应用程序的运行行为,并使用户可以依据分析结果决定是否对应用程序进行调整。

图2示出了根据本发明另一个实施例的应用程序动态分析的方法的流程示意图。如图2所示,该方法包括以下步骤:

步骤S200,获取待分析的应用程序的安装包文件。

在本发明实施例中,待分析的应用程序的安装包文件可以是客户端上传的安装包文件,也可以从网站下载的或者本地的应用程序的安装包文件,例如,应用程序的开发商在开发出新的应用程序后,在将应用程序上市前,可以通过客户端所提供的上传文件的入口,上传应用程序的安装包文件,以对应用程序的安装包文件进行行为动态分析;当然,普通用户在从应用商店等下载了某个应用程序的安装包文件之后,也可以通过客户端所提供的上传文件的入口,上传应用程序的安装包文件,以对应用程序的安装包文件进行行为动态分析。这里的应用程序可以是移动应用程序或非移动应用程序。

步骤S201,判断安装包文件是否经过加壳处理,若是,则执行步骤S202;若否,则执行步骤S203。

应用程序开发完成后,可能会对应用程序的安装包文件进行加壳处理,这主要是为了对抗逆向工程和代码注入攻击。但是也因为安装包文件被加壳给在进行程序行为分析的过程中带来了极大的困难,因此在获取到安装包文件之后,还需要判断安装包文件是否经过加壳处理。

一般来说加固厂商采用的加固方案是确定的并且在经过其加固的安装包文件中具有该加固厂商的标识,因此,可以通过对安装包文件进行脚本解析处理,判断安装包文件中是否包含加固厂商标识和加固方案来确定安装包文件是否被加壳处理。

步骤S202,对安装包文件进行脱壳处理。

在判断出安装包文件经过加壳处理之后,可以对安装包文件进行脱壳处理,以便于后续的分析处理,具体的脱壳方法这里不做详细介绍。

步骤S203,对安装包文件进行插桩处理。

在对安装包文件进行脱壳处理之后,或者,判断出安装包文件未经过加壳处理之后,还可以对安装包文件进行插桩处理,在安装包文件的代码中插入一段代码或者节点等,以在运行安装包文件时,得到对应的行为数据。需要说明的是该步骤是可选的,在一些实施例中,可不对安装包文件进行插桩处理。

步骤S204,将安装包文件放入沙箱中运行,利用污点分析和/或钩子技术收集经过内核轻量化处理后的应用模拟器运行安装包文件过程中产生的行为数据。

沙箱中设有应用模拟器,用于运行安装包文件,本发明实施例中应用模拟器的内核是经过轻量化处理的,经过轻量化处理后的应用模拟器的运行速度被提高了,而且还提高获取行为数据的准确率。

另外,本发明实施例可以通过代码覆盖技术触发经过内核轻量化处理后的应用模拟器自动运行安装包文件,而无需人工手动控制应用模拟器,输入对应的操作,实现了安装包文件运行的全自动化。在安装包文件运行过程中,可以利用污点分析和/或钩子(Hook)技术来收集经过内核轻量化处理后的应用模拟器运行安装包文件过程中产生的行为数据。其中,污点分析是指针对一安装包文件,定义一个起始点和一个结束点形成污染序列,通过跟踪污染序列进行污点分析,分析安装包文件是否被污染。钩子技术可以对安装包文件运行时指定行为进行监控,收集安装包文件运行过程中产生的行为数据。

行为数据包括以下数据中的一种或多种:运行日志、运行截图、传输数据。举例说明,文件读取操作和文件写入操作时可以生成运行日志。

步骤S205,将行为数据输入到预先设置的行为数据模型中,对行为数据进行分析,得到分析结果。

在收集到安装包文件运行过程中产生的行为数据之后,可以将行为数据输入到预先设置的行为数据模型中,对收集到的行为数据进行分析,具体地,通过将收集到行为数据与行为数据模型中的行为特征进行比对,可以得到相应的分析结果。其中,对行为数据进行分析具体为:对数据行为进行敏感行为分析、恶意行为分析、行为趋势分析、权限分析和/或行为分类分析。其中,敏感行为分析可以用于分析安装包文件运行时是否对敏感数据进行操作,例如,读取敏感数据;恶意行为分析可以用于分析安装包文件运行时是否发生有欺诈等行为;权限分析指分析安装包文件运行时涉及到哪些权限,例如,修改、删除等。当然,并不限于上述分析,本领域技术人员可以根据实际需要进行其他行为分析。

行为数据模型是通过对应用特征库中的行为特征进行训练得到的,行为特征是指已确定行为类型的行为数据,具体指,某行为数据是恶意行为数据或者非恶意行为数据,敏感行为数据或非敏感数据等。

本发明的行为数据模型是通过批量学习模式或增量学习模式训练得到的。批量学习模式指每隔预设时间段对该预设时间段之前收集的行为数据进行训练,从而在每个预设时间段得到一行为数据模型,其中预设时间段可以是一小时或一天,本领域技术人员可以根据实际应用的需要进行设置,在此不作具体限定;增量学习模式指收集行为数据,对收集的行为数据进行训练,并通过接口将训练的结果学习到预设时间段之前得到的行为数据模型,从而在每个预设时间段得到新的行为数据模型。采用增量学习模式可以实时地将收集的行为数据学习到行为数据模型,减少了机器学习训练的工作量,并且能够快速获得行为数据模型。

在本发明的一种可选实施方式中,还可以通过模式匹配方式对行为数据进行分析,得到分析结果,其中,可以预先设置相应的模式,例如,恶意模式、敏感模式等等,并且,预先设定各模式的匹配规则,在得到行为数据后,利用各模式的匹配规则对行为数据进行分析,得到分析结果。

在得到分析结果之后,可以将分析结果展示给用户,供用户根据分析结果对应用程序的安装包文件进行处理;此外,分析结果可以被存储到应用特征库,作为行为数据模型或模式匹配的训练数据源。

根据本发明上述实施例提供的方法,在获取待分析的应用程序的安装包文件后,判断安装包文件是否经过加壳处理,若是,则对安装包文件进行脱壳处理,便于后续收集行为数据,对安装包文件进行插桩处理,可以有针对性的收集行为数据,将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据,将收集到的行为数据输入到预先设置的行为数据模型中,对行为数据进行分析,得到分析结果,从而能够全面的监测和分析应用程序的运行行为,并使用户可以依据分析结果决定是否对应用程序进行调整。

图3示出了根据本发明一个实施例的应用程序动态分析的装置的结构示意图。如图3所示,该装置包括:获取模块310、行为数据收集模块320和分析模块330。

获取模块310,用于获取待分析的应用程序的安装包文件。

在本发明实施例中,待分析的应用程序的安装包文件可以是客户端上传的安装包文件,也可以从网站下载的或者本地的应用程序的安装包文件,例如,应用程序的开发商在开发出新的应用程序后,在将应用程序上市前,可以通过客户端所提供的上传文件的入口,上传应用程序的安装包文件,以对应用程序的安装包文件进行行为动态分析;当然,普通用户在从应用商店等下载了某个应用程序的安装包文件之后,也可以通过客户端所提供的上传文件的入口,上传应用程序的安装包文件,以对应用程序的安装包文件进行行为动态分析。

行为数据收集模块320,用于将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据。

在获取到安装包文件之后,就可以将安装包文件放入到沙箱中,在沙箱中运行该安装包文件,并对安装包文件运行过程中产生的行为数据进行收集,以作为后续分析的分析对象。这里在沙箱中运行安装包文件可以避免对真实系统产生影响。

分析模块330,用于对行为数据进行分析,得到分析结果。

根据本发明上述实施例提供的装置,在获取待分析的应用程序的安装包文件后,将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据,对行为数据进行分析,得到分析结果,从而能够全面的监测和分析应用程序的运行行为,并使用户可以依据分析结果决定是否对应用程序进行调整。

图4示出了根据本发明另一个实施例的应用程序动态分析的装置的结构示意图。如图4所示,该装置包括:获取模块410、行为数据收集模块420和分析模块430。

获取模块410,用于获取待分析的应用程序的安装包文件。其中,应用程序为移动应用程序或非移动应用程序。

行为数据收集模块420,用于将安装包文件放入沙箱中运行,利用污点分析和/或钩子技术收集经过内核轻量化处理后的应用模拟器运行安装包文件过程中产生的行为数据。

其中,行为数据包括以下数据中的一种或多种:运行日志、运行截图、传输数据。

具体地,行为数据收集模块420包括:触发单元421,用于通过代码覆盖技术触发经过内核轻量化处理后的应用模拟器自动运行安装包文件。

行为数据收集单元422,用于利用污点分析和/或钩子技术收集运行安装包文件过程中产生的行为数据。

分析模块430,用于对行为数据进行分析,得到分析结果。

其中,分析模块430具体用于:对行为数据进行敏感行为分析、恶意行为分析、行为趋势分析、权限分析和/或行为分类分析。

此外,分析模块430进一步用于:将行为数据输入到预先设置的行为数据模型中,对行为数据进行分析,得到分析结果,其中,行为数据模型是对应用特征库中的行为特征进行训练得到的。

或者,分析模块430进一步用于:通过模式匹配方式对行为数据进行分析,得到分析结果。

此外,装置还包括:脱壳处理模块440,用于判断安装包文件是否经过加壳处理,在判断出安装包文件经过加壳处理的情况下,对安装包文件进行脱壳处理。

具体地,脱壳处理模块440进一步用于:对安装包文件进行脚本解析处理,判断安装包文件中是否包含加固厂商标识和加固方案。

应用程序开发完成后,还可能会对应用程序的安装包文件进行加壳处理,这主要是为了对抗逆向工程和代码注入攻击。但是也因为安装包文件被加壳给在进行程序行为分析的过程中带来了极大的困难,因此在获取到安装包文件之后,还需要判断安装包文件是否经过加壳处理。

一般来说加固厂商采用的加固方案是确定的并且在经过其加固的安装包文件中具有该加固厂商的标识,因此,可以通过对安装包文件进行脚本解析处理,判断安装包文件中是否包含加固厂商标识和加固方案来确定安装包文件是否被加壳处理。

该装置还包括:插桩处理模块450,用于对安装包文件进行插桩处理。

在对安装包文件进行脱壳处理之后,或者,判断出安装包文件未经过加壳处理之后,还可以对安装包文件进行插桩处理,在安装包文件的代码中插入一段代码或者节点等,以在运行安装包文件时,得到对应的行为数据。

根据本发明上述实施例提供的装置,在获取待分析的应用程序的安装包文件后,判断安装包文件是否经过加壳处理,若是,则对安装包文件进行脱壳处理,便于后续收集行为数据,对安装包文件进行插桩处理,可以有针对性的收集行为数据,将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据,将行为数据输入到行为数据模型中,对行为数据进行分析,得到分析结果,从而能够全面的监测和分析应用程序的运行行为,并使用户可以依据分析结果决定是否对应用程序进行调整。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应该被理解和认定为覆盖了所有这些其他变型或修改。

本领域技术人员应当理解,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。此外,本发明也不针对任何特定编程语言,应当明白,可以利用各种编程语言实现本发明描述的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

需要注意的是,尽管在上面的说明中详细描述了应用程序动态分析的装置的若干模块,但是这种划分仅仅是示例性的,并非是强制性的。本领域的技术人员可以理解,实际上,可以对实施例中的模块进行自适应性地改变,将实施例中的多个模块组合成一个模块,也可将一个模块划分成多个模块。

此外,尽管在附图中以特定顺序描述了本发明实施操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。可以省略某些步骤,将多个步骤合并为一个步骤执行,或者将一个步骤分成多个步骤执行。

综上,应用本发明的应用程序动态分析的方法及装置,在获取待分析的应用程序的安装包文件后,将安装包文件放入沙箱中运行,收集安装包文件在运行过程中产生的行为数据,对行为数据进行分析,得到分析结果,从而能够全面的监测和分析应用程序的运行行为,并使用户可以依据分析结果决定是否对应用程序进行调整。

以上对本发明的方法和具体实施方法进行了详细的介绍,并给出了相应的实施例。当然,除上述实施例外,本发明还可以有其它实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明所要保护的范围之内。

本发明公开了:A1、一种应用程序动态分析的方法,其中,所述方法包括:

获取待分析的应用程序的安装包文件;

将所述安装包文件放入沙箱中运行,收集所述安装包文件在运行过程中产生的行为数据;

对所述行为数据进行分析,得到分析结果。

A2、根据A1所述的方法,其中,所述收集所述安装包文件在运行过程中产生的行为数据进一步包括:

利用污点分析和/或钩子技术收集经过内核轻量化处理后的应用模拟器运行所述安装包文件过程中产生的行为数据。

A3、根据A2所述的方法,其中,所述经过内核轻量化处理后的应用模拟器运行所述安装包文件具体为:通过代码覆盖技术触发经过内核轻量化处理后的应用模拟器自动运行所述安装包文件。

A4、根据A1-A3任一项所述的方法,其中,在将所述安装包文件放入沙箱中运行之前,所述方法还包括:

判断所述安装包文件是否经过加壳处理;

若是,则对所述安装包文件进行脱壳处理。

A5、根据A4所述的方法,其中,所述判断所述安装包文件是否经过加壳处理进一步包括:

对所述安装包文件进行脚本解析处理,判断所述安装包文件中是否包含加固厂商标识和加固方案。

A6、根据A4所述的方法,其中,在对所述安装包文件进行脱壳处理后,所述方法还包括:

对所述安装包文件进行插桩处理。

A7、根据A1-A3任一项所述的方法,其中,所述对所述行为数据进行分析具体包括:对所述行为数据进行敏感行为分析、恶意行为分析、行为趋势分析、权限分析和/或行为分类分析。

A8、根据A1-A3任一项所述的方法,其中,所述对所述行为数据进行分析,得到分析结果进一步包括:

将所述行为数据输入到预先设置的行为数据模型中,对所述行为数据进行分析,得到分析结果,其中,所述行为数据模型是对应用特征库中的行为特征进行训练得到的。

A9、根据A1-A3任一项所述的方法,其中,所述对所述行为数据进行分析,得到分析结果进一步包括:

通过模式匹配方式对所述行为数据进行分析,得到分析结果。

A10、根据A1-A3任一项所述的方法,其中,所述行为数据包括以下数据中的一种或多种:运行日志、运行截图、传输数据。

A11、根据A1-A3任一项所述的方法,其中,所述应用程序为移动应用程序或非移动应用程序。

本发明还公开了:B12、一种应用程序动态分析的装置,其中,所述装置包括:

获取模块,用于获取待分析的应用程序的安装包文件;

行为数据收集模块,用于将所述安装包文件放入沙箱中运行,收集所述安装包文件在运行过程中产生的行为数据;

分析模块,用于对所述行为数据进行分析,得到分析结果。

B13、根据B12所述的装置,其中,所述行为数据收集模块进一步用于:利用污点分析和/或钩子技术收集经过内核轻量化处理后的应用模拟器运行所述安装包文件过程中产生的行为数据。

B14、根据B13所述的装置,其中,所述行为数据收集模块包括:触发单元,用于通过代码覆盖技术触发经过内核轻量化处理后的应用模拟器自动运行所述安装包文件;

行为数据收集单元,用于利用污点分析和/或钩子技术收集运行所述安装包文件过程中产生的行为数据。

B15、根据B12-B14任一项所述的装置,其中,所述装置还包括:脱壳处理模块,用于判断所述安装包文件是否经过加壳处理,在判断出所述安装包文件经过加壳处理的情况下,对所述安装包文件进行脱壳处理。

B16、根据B15所述的装置,其中,所述脱壳处理模块进一步用于:对所述安装包文件进行脚本解析处理,判断所述安装包文件中是否包含加固厂商标识和加固方案。

B17、根据B15所述的装置,其中,所述装置还包括:插桩处理模块,用于对所述安装包文件进行插桩处理。

B18、根据B12-B14任一项所述的装置,其中,所述分析模块具体用于:对所述行为数据进行敏感行为分析、恶意行为分析、行为趋势分析、权限分析和/或行为分类分析。

B19、根据B12-B14任一项所述的装置,其中,所述分析模块进一步用于:将所述行为数据输入到预先设置的行为数据模型中,对所述行为数据进行分析,得到分析结果,其中,所述行为数据模型是对应用特征库中的行为特征进行训练得到的。

B20、根据B12-B14任一项所述的装置,其中,所述分析模块进一步用于:通过模式匹配方式对所述行为数据进行分析,得到分析结果。

B21、根据B12-B14任一项所述的装置,其中,所述行为数据包括以下数据中的一种或多种:运行日志、运行截图、传输数据。

B22、根据B12-B14任一项所述的装置,其中,所述应用程序为移动应用程序或非移动应用程序。

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