CN113094709B - 风险应用的检测方法、装置和服务器 - Google Patents
风险应用的检测方法、装置和服务器 Download PDFInfo
- Publication number
- CN113094709B CN113094709B CN202110405184.XA CN202110405184A CN113094709B CN 113094709 B CN113094709 B CN 113094709B CN 202110405184 A CN202110405184 A CN 202110405184A CN 113094709 B CN113094709 B CN 113094709B
- Authority
- CN
- China
- Prior art keywords
- path
- application
- api
- preset
- sample
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 153
- 238000012549 training Methods 0.000 claims abstract description 80
- 238000000034 method Methods 0.000 claims abstract description 68
- 239000013598 vector Substances 0.000 claims abstract description 54
- 230000003068 static effect Effects 0.000 claims abstract description 38
- 238000004458 analytical method Methods 0.000 claims abstract description 37
- 238000013145 classification model Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims abstract description 32
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 83
- 230000006870 function Effects 0.000 claims description 44
- 238000012216 screening Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 description 33
- 238000004891 communication Methods 0.000 description 18
- 230000007704 transition Effects 0.000 description 12
- 230000006399 behavior Effects 0.000 description 11
- 238000012360 testing method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000005309 stochastic process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/29—Graphical models, e.g. Bayesian networks
- G06F18/295—Markov models or related models, e.g. semi-Markov models; Markov random fields; Networks embedding Markov models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
Abstract
本说明书提供了风险应用的检测方法、装置和服务器。基于该方法,具体实施前,可以先利用正样本路径集、负样本路径集训练得到相应的预设的第一路径处理模型、预设的第二路径处理模型、预设的分类模型;具体实施时,可以先对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;再调用预设的第一路径处理模型、预设的第二路径处理模型,处理上述API调用路径,得到并利用API调用路径的可疑度参数,构建出关于目标应用的可疑度特征向量;调用预设的分类模型处理可疑度特征向量,确定出目标应用是否为风险应用。从而可以精准、高效地检测并识别出注入有少量恶意代码的风险应用。
Description
技术领域
本说明书属于人工智能技术领域,尤其涉及风险应用的检测方法、装置和服务器。
背景技术
在进行风险应用(例如,恶意的安卓软件等)检测时,现有方法大多是从应用整体的角度出发,对应用的整体代码进行特征提取,来判断该应用是否属于风险应用。
但是,一些风险应用为了避免被检测识别到,会采用在应用代码中注入少量的恶意代码的方式,利用应用中的大部分的正常代码的整体特征来隐藏少部分的恶意代码的局部特征。从而导致基于现有方法无法准确地检测识别出上述风险应用,出现漏检。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书提供了一种风险应用的检测方法、装置和服务器,可以精准、高效地检测并识别出注入有少量恶意代码的风险应用,减少检测误差。
本说明书提供了一种风险应用的检测方法,包括:
获取待检测的目标应用;
通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;
调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;
根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;
调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用。
在一个实施例中,通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径,包括:
对所述目标应用进行预设的静态分析,得到目标应用的函数调用图;
根据预设的关键API集,在所述目标应用的函数调用图中,确定出基于目标应用的关键API;
从所述目标应用的函数调用图中,提取出涉及关键API的多个API调用路径。
在一个实施例中,所述预设的第一路径处理模型包括预先基于负样本路径集训练得到的隐马尔可夫模型;所述预设的第二路径处理模型包括预先基于正样本路径集训练得到的隐马尔可夫模型。
在一个实施例中,调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数,包括:
按照以下方式得到多个API调用路径中的当前API调用路径的可疑度参数:
调用预设的第一路径处理模型处理当前API调用路径,得到对应的第一预测概率;调用预设的第二路径处理模型处理当前API调用路径,得到对应的第二预测概率;
将第一预测概率与第二预测概率相除得到的商,确定为当前API调用路径的可疑度参数。
在一个实施例中,所述预设的关键API集按照以下方式建立:
获取多个样本应用;其中,所述多个样本应用包括正常样本应用和风险样本应用;
对所述正常样本应用进行静态分析,以建立正样本路径集;对所述风险样本应用进行静态分析,以建立负样本路径集;
根据所述负样本路径集,统计得到各个API基于风险样本应用的统计特征参数;根据所述正样本路径集,统计得到各个API基于正常样本应用的统计特征参数;
通过比较同一个API基于风险样本应用的统计特征参数和基于正常样本应用的统计特征参数,筛选出基于风险样本应用的统计特征参数大于基于正常样本应用的统计特征参数的API作为关键API,以建立预设的关键API集。
在一个实施例中,根据所述负样本路径集,统计得到各个API基于风险样本应用的统计特征参数,包括:
按照以下方式根据所述负样本路径集,统计当前API基于风险样本应用的统计特征参数:
根据所述负样本路径集,统计当前API被风险样本应用调用的次数与API被风险样本应用调用的总次数的比值,作为第一统计参数;
根据所述负样本路径集,统计风险样本应用的总数与调用了当前API的风险样本应用数的比值,作为第二统计参数;
根据预设的处理规则,处理所述第二统计参数,得到对应的第三统计参数;
计算第一统计参数与第三统计参数的比值,作为所述当前API基于风险样本应用的统计特征参数。
在一个实施例中,所述预设的第一路径处理模型按照以下方式建立:
构建初始的第一路径处理模型;
从所述负样本路径集中筛选出涉及关键API的API调用路径,以得到第一类负样本训练集;
利用所述第一类负样本训练集,训练所述初始的第一路径处理模型,以得到预设的第一路径处理模型。
在一个实施例中,所述预设的第二路径处理模型按照以下方式建立:
构建初始的第二路径处理模型;
从所述正样本路径集中筛选出涉及关键API的API调用路径,以得到第一类正样本训练集;
利用所述第一类正样本训练集,训练所述初始的第二路径处理模型,以得到预设的第二路径处理模型。
在一个实施例中,所述预设的分类模型按照以下方式建立:
根据所述正样本路径,构建第二类正样本训练集;其中,第二类正样本训练集包括多个正样本路径组,所述正样本路径组对应一个正常样本应用,所述正样本路径组包含有基于正常样本应用的涉及关键API的API调用路径;
根据所述负样本路径,构建第二类负样本训练集;其中,第二类负样本训练集包括多个负样本路径组,所述负样本路径组对应一个风险样本应用,所述负样本路径组包含有基于风险样本应用的涉及关键API的API调用路径;
根据所述第二类正样本训练集、所述第二类负样本训练,训练初始的分类模型,以得到预设的分类模型。
在一个实施例中,所述目标应用包括重打包应用。
本说明书还提供了一种风险应用的检测装置,包括:
获取模块,用于获取待检测的目标应用;
确定模块,用于通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;
第一调用模块,用于调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;
构建模块,用于根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;
第二调用模块,用于调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用。
本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现所述风险应用的检测方法的相关步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述风险应用的检测方法的相关步骤。
本说明书提供的风险应用的检测方法、装置和服务器,具体实施前,可以预先利用正样本路径集、负样本路径集分别训练得到符合要求的预设的第一路径处理模型、预设的第二路径处理模型,以及预设的分类模型;具体实施时,可以先通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;再通过组合使用预设的第一路径处理模型、预设的第二路径处理模型,处理上述多个API调用路径,得到针对API调用路径的可疑度参数;再利用所得到的多个API调用路径的可疑度参数,构建出关于目标应用的可疑度特征向量;进而可以调用预设的分类模型通过处理可疑度特征向量,来确定目标应用是否为风险应用。从而可以精准、高效地检测并识别出注入有少量恶意代码的风险应用,减少检测误差,提高风险应用的检测精度,保护用户的数据安全。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的风险应用的检测方法的系统的结构组成的一个实施例的示意图;
图2是本说明书的一个实施例提供的风险应用的检测方法的流程示意图;
图3是本说明书的一个实施例提供的服务器的结构组成示意图;
图4是本说明书的一个实施例提供的风险应用的检测装置的结构组成示意图;
图5是在一个场景示例中,应用本说明书实施例提供的风险应用的检测方法的一种实施例的示意图;
图6是在一个场景示例中,应用本说明书实施例提供的风险应用的检测方法的一种实施例的示意图;
图7是在一个场景示例中,应用本说明书实施例提供的风险应用的检测方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例提供一种风险应用的检测方法,所述风险应用的检测方法具体可以应用于包含有服务器和检测终端的系统中。具体的,可以参阅图1所示。服务器和检测终端可以通过有线或无线的方式相连,以进行具体的数据交互。
在本实施例中,所述服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能,负责检测并判断应用是否属于风险应用的服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器所包含的服务器数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在本实施例中,所述检测终端具体可以包括布设于业务平台的接口端,能够实现数据采集、数据传输等功能,负责搜索接入业务平台的待检测应用并反馈给服务器的前端设备。
在本实施例中,具体实施时,检测终端会监测业务平台新接入的应用,并将新接入的应用确定为待检测的目标应用,将该目标应用提供给服务器。相应的,服务器可以获取上述待检测的目标应用。
首先,服务器可以通过对该目标应用进行预设的静态分析,确定出基于该目标应用的关键API,以及涉及上述关键API的多个API调用路径。
其中,上述API(Application Programming Interface,应用程序接口)具体可以理解为一些预先定义的函数,或指软件系统不同组成部分衔接的约定。通常可以用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,允许用户在无访问源码,或不理解内部工作机制的细节的情况下,进行相应访问。
上述关键API具体可以理解为预先基于大量样本数据所确定出的,被恶意样本应用(可以记为负样本应用)的调用程度相对要高于被正常样本应用(可以记为正样本应用)的调用程度,具有相对较好的代表性的API。
具体的,服务器可以先在不运行该目标应用的前提下,通过解析目标应用的代码数据,并对代码数据进行相应的静态分析,从而可以以相对较低的处理成本,高效、安全地得到较为全面、完整的目标应用的函数调用图。接着,服务器可以根据预设的关键API集,通过匹配比对,在上述目标应用的函数调用图中确定出基于目标应用的关键API。其中,上述预设的关键API集包含有多个关键API的标识信息。具体的,服务器可以通过检索函数调用图中出现的API的标识信息,找出与预设的关键API集中所包含的标识信息匹配的API,确定为基于目标应用的关键API。服务器再从函数调用图中,有针对性地提取出涉及关键API的多个API调用路径,以便进行后续处理。
接着,服务器可以调用预设的第一路径处理模型、预设的第二路径处理模型,处理上述多个API调用路径,以得到多个API调用路径中的各个API调用路径的可疑度参数。
其中,上述预设的第一路径处理模型具体可以理解为一种预先基于负样本路径集训练得到的,用于预测输入的调用路径是否被恶意应用调用的隐马尔可夫模型。
上述预设的第二路径处理模型具体可以理解为一种预先基于正样本路径集训练得到的,用于预测输入的调用路径是否被正常应用调用的隐马尔可夫模型。
具体的,服务器可以将多个API调用路径中的各个API调用路径分别输入至预设的第一路径处理模型中进行处理,以输出与各个API调用路径对应的第一预测概率。其中,上述第一预测概率用于表征所对应的API调用路径被恶意应用调用的可能性。同时,服务器还将上述各个API调用路径分别输入至预设的第二路径处理模型中进行处理,以输出与各个API调用路径对应的第二预测概率。其中,上述第二预测概率用于表征所对应的API调用路径被正常应用调用的可能性。接着,服务器可以将对应同一个API调用路径的第一预测概率与第二预测概率相除所得到的商,作为该API调用路径的可疑度参数。从而可以得到基于目标应用的涉及关键API的各个API调用路径的可疑度参数。
进一步,服务器可以根据预设的组合规则,组合上述多个API调用路径的可疑度参数,得到一个向量数据,作为针对该目标应用的可疑度特征向量。
然后,服务器可以将上述可疑度特征向量输出至预设的分类模型中进行处理,以输出得到对应的处理结果。
其中,上述预设的分类模型具体可以理解为一种预先基于样本数据训练得到的能够根据所输入的应用的可疑度特征向量,预测出该应用是否属于风险应用(或者称恶意应用)的分类器。
进而,服务器可以根据上述处理结果,确定出待检测的目标应用是否为风险应用。
在确定目标应用属于风险应用的情况下,服务器可以生成并向检测终端发送对应的风险提示信息。检测终端可以接收并响应该风险提示信息,阻止在业务平台上继续安装或运行该目标应用,以及目标应用在业务平台上发起的数据处理操作,并及时地清除该目标应用,以保护业务平台上的数据安全。
在确定目标应用不属于风险应用的情况下,服务器可以生成并向检测终端发送对应的安全确认信息。检测终端可以接收并响应该安全确认信息,允许在业务平台上继续安装或运行该目标应用,以及该目标应用在业务平台上发起的数据处理操作。
通过上述系统,可以组合利用预先训练好的预设的第一路径处理模型、预设的第二路径处理模型,和预设的分类模型,通过确定并利用针对目标应用的可疑度特征向量,准确地确定出该目标应用是否属于风险应用。从而可以精准、高效地检测并识别出注入有少量恶意代码的风险应用,减少检测误差,提高风险应用的检测精度,保护业务平台的数据安全。
参阅图2所示,本说明书实施例提供了一种风险应用的检测方法。具体实施时,该方法可以包括以下内容:
S201:获取待检测的目标应用;
S202:通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;
S203:调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;
S204:根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;
S205:调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用。
通过上述实施例,通过组合利用预先训练好的预设的第一路径处理模型、预设的第二路径处理模型,和预设的分类模型,来检测目标应用是否属于风险应用,可以较为精准、高效地检测并识别出注入有少量恶意代码的、容易被漏检的风险应用,从而可以有效地减少检测误差,提高风险应用的检测精度,保护数据安全。
在一些实施例中,上述目标应用具体可以理解为待检测判断是否是存在安全性风险,会对数据安全构成威胁的风险应用(或者称恶意应用)的应用文件。具体的,上述目标应用可以一种基于安卓系统的APP,也可以是一种基于Windows系统的exe文件等。
进一步,上述目标应用还可以包括基于现有的检测方法相对较难检测识别出,容易被漏检的,可能注入有少量恶意代码的重打包应用等。
通过上述实施例,可以应用本说明书所提供的风险应用的检测方法对多种不同类型的目标应用进行检测识别。
在一些实施例中,上述风险应用的检测方法具体可以应用于系统侧的服务器。也可以应用于用户侧终端设备,例如,用户所使用的智能手机、台式电脑、平板电脑等。
在一些实施例中,上述通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径,具体实施时,可以包括以下内容:
S1:对所述目标应用进行预设的静态分析,得到目标应用的函数调用图;
S2:根据预设的关键API集,在所述目标应用的函数调用图中,确定出基于目标应用的关键API;
S3:从所述目标应用的函数调用图中,提取出涉及关键API的多个API调用路径。
通过上述实施例,采用静态分析的处理方式,可以在不实际运行目标应用的前提下,以较低的数据处理成本,获得较为全面、准确的目标应用的函数调用图;进而可以基于上述目标应用的函数调用图以及预设的API集,有针对性提取得到效果较好的涉及基于目标应用的关键API的多个API调用路径,以进行后续处理。
在一些实施例中,上述预设的静态分析具体可以理解为在不运行应用的前提下,通过分析应用的代码数据,并进行类似静态测试的处理,来得到关于该应用较为全面的函数调用图。
通过上述预设静态分析来处理目标应用,一方面,由于不需要真正地运行该目标应用,可以有效地避免存在风险的目标应用在运行时对系统数据安全的威胁;另一方面,相比于采用动态测试的方式来处理目标应用,由于不需要再另外进行端口的部署和监测,也不需要进行大数据量样本测试,从而可以有效地降低数据处理成本;再一方面,基于目标应用的代码数据进行静态分析,可以基于源端代码层来还原出该目标应用运行时所可能出现各种API的调用情况,从而可以得到相对更加全面、完整的目标应用的函数调用图。
在一些实施例中,上述预设的API集具体可以包含有多个关键API的标识信息。上述关键API具体可以理解为预先基于大量样本数据所确定出的,被负样本应用的调用程度相对要高于被正样本应用的调用程度,具有相对较好的代表性的API。关于预设的API集的获取,后续将另作说明。
在一些实施例中,上述根据预设的关键API集,在所述目标应用的函数调用图中,确定出基于目标应用的关键API,具体实施时,可以包括:根据预设的关键API集,检索所述函数调用图中的API的标识信息;从函数调用图中找出与预设的关键API集中所包含的关键API标识信息相同API,确定为基于目标应用的关键API。
在一些实施例中,进一步可以从函数调用图中有针对性地提取出涉及基于目标应用的关键API的多个API调用路径,以便后续使用。这样后续数据处理时,只需要对上述多个涉及关键API的API调用路径进行处理,而不需要在对函数调用图中所出现的所有调用路径进行处理,从而可以有助于地降低后续的数据处理量,提高后续的处理效率。
在一些实施例中,所述预设的第一路径处理模型具体可以包括预先基于负样本路径集训练得到的隐马尔可夫模型;所述预设的第二路径处理模型具体可以包括预先基于正样本路径集训练得到的隐马尔可夫模型。关于预设的第一路径处理模型、预设的第二路径处理模型的建立方式,后续将另作说明。
具体实施时,上述预设的第一路径处理模型具体可以用于根据输入的API调用路径,预测出该API调用路径属于被风险应用调用的路径的第一预测概率。上述预设的第二路径处理模型具体可以用于根据输入的API调用路径预测出该API调用路径属于被正常应用调用的路径的第二预测概率。
其中,上述正样本路径集包含有多个被正样本应用(或者称,正常样本应用)调用的样本路径。上述负样本路径集包含有多个被负样本应用(或者称,风险样本应用、恶意样本应用等)调用的样本路径。
通过上述实施例,基于上述预设的第一路径处理模型和预设的第二路径处理模型,可以准确地确定出输入的各个API调用路径分别属于被风险应用调用的路径的第一预测概率,以及被正常应用调用的路径的第二预测概率。
在一些实施例中,上述隐马尔可夫模型(Hidden Markov Model,HMM)具体可以理解为一种用于描述一个含有隐含未知参数的马尔可夫过程的统计模型。通常,隐马尔可夫模型可以是一个双重随机过程,即具有一定状态数的隐马尔可夫链和显示随机函数集。
在一些实施例中,上述调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数,具体实施时,可以包括以下内容:按照以下方式得到多个API调用路径中的当前API调用路径的可疑度参数:
S1:调用预设的第一路径处理模型处理当前API调用路径,得到对应的第一预测概率;调用预设的第二路径处理模型处理当前API调用路径,得到对应的第二预测概率;
S2:将第一预测概率与第二预测概率相除得到的商,确定为当前API调用路径的可疑度参数。
按照上述确定当前API调用路径的可疑度参数的方式来处理其他的API调用路径,可以得到各个API调用路径的可疑度参数。
通过上述实施例,组合利用预设的第一路径处理模型和预设的第二路径处理模型,可以得到针对涉及关键API的API调用路径的准确度较高的可疑度参数。
在一些实施例中,上述可疑度参数具体可以理解为一种用于描述API调用路径被风险应用所调用的可疑程度的特征参数。通常,如果一个API调用路径的可疑度参数的数值越大表明所对应的API调用路径越可疑,越有可能是被风险应用所调用的。
在一些实施例中,上述根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量,具体实施时,可以包括:根据预设的组合规则,组合并拼接上述多个API调用路径的可疑度参数,得到一个包含有多个向量元素的向量数据,作为关于目标应用的可疑度特征向量。
其中,每一个向量元素对应一个API调用路径的可疑度参数。上述可疑度特征向量具体可以理解为用于表征目标应用基于API的调用行为所反映出的可疑特征的向量数据。
在一些实施例中,具体组合并拼接上述多个API调用路径的可疑度参数时,还可以根据预设的组合规则,基于不同API调用路径的重要性程度,为不同API调用路径的可疑度参数设置对应的权重参数;再根据多个API调用路径的可疑度参数和对应的权重参数,来生成针对目标应用的可疑特征向量。
在一些实施例中,所述预设的关键API集可以按照以下方式建立:
S1:获取多个样本应用;其中,所述多个样本应用包括正常样本应用和风险样本应用;
S2:对所述正常样本应用进行静态分析,以建立正样本路径集;对所述风险样本应用进行静态分析,以建立负样本路径集;
S3:根据所述负样本路径集,统计得到各个API基于风险样本应用的统计特征参数;根据所述正样本路径集,统计得到各个API基于正常样本应用的统计特征参数;
S4:通过比较同一个API基于风险样本应用的统计特征参数和基于正常样本应用的统计特征参数,筛选出基于风险样本应用的统计特征参数大于基于正常样本应用的统计特征参数的API作为关键API,以建立预设的关键API集。
通过上述实施例,可以获取并根据相应的正样本路径集和负样本路径集,建立得到符合要求的预设的关键API集。
在一些实施例中,具体实施时,还可以每间隔预设的时间段,将该预设的时间段中检测过的应用提取出来作为更新的样本应用;进而可以根据上述更新的样本应用,对预设的关键API集进行更新处理,以得到相对更加准确、全面的预设的关键API集。
在一些实施例中,所获取的多个样本应用可以是标注后的样本应用。具体的,上述多个样本应用可以包括被标注为正常样本应用的不存在预设风险的样本应用,以及被标注为风险样本应用的存在预设风险的样本应用。
在一些实施例中,具体实施时,可以针对正常样本应用进行静态分析,以获取正常样本应用的函数调用图;再从正常样本应用的函数调用图中提取出多个API调用路径,以建立得到正样本路径集。类似的,可以针对风险样本应用进行静态分析,以获取风险样本应用的函数调用图;再从风险样本应用的函数调用图中提取出多个API调用路径,以建立得到负样本路径集。
在一些实施例中,上述根据所述负样本路径集,统计得到各个API基于风险样本应用的统计特征参数,具体实施时,可以包括:按照以下方式根据所述负样本路径集,统计当前API基于风险样本应用的统计特征参数:
S1:根据所述负样本路径集,统计当前API被风险样本应用(或者称负样本应用)调用的次数与API被风险样本应用调用的总次数的比值,作为第一统计参数;
S2:根据所述负样本路径集,统计风险样本应用的总数与调用了当前API的风险样本应用数的比值,作为第二统计参数;
S3:根据预设的处理规则,处理所述第二统计参数,得到对应的第三统计参数;
S4:计算第一统计参数与第三统计参数的比值,作为所述当前API基于风险样本应用的统计特征参数。
按照上述计算当前API基于风险样本应用的统计特征参数的方式,可以分别计算得到各个API基于风险样本应用的统计特征参数。
通过上述实施例,基于统计学的原理,可以计算得到能够反映出各个API被风险样本应用调用的调用特征的基于风险样本应用的统计特征参数。
在一些实施例中,具体实施时,可以将上述第一统计参数记为:TF-。处理所述第二统计参数,包括:对第二统计参数取以10为底的对数,得到对应的第三统计参数,记为:IDF-。进一步,可以按照以下算式计算出对应的基于风险样本应用的统计特征参数:TF-/IDF-。
在一些实施例中,类似的,上述根据所述正样本路径集,统计得到各个API基于正常样本应用的统计特征参数,具体实施时,可以包括以下内容:
S1:根据所述正样本路径集,统计当前API被正常样本应用(或者称正样本应用)调用的次数与API被正常样本应用调用的总次数的比值,作为第四统计参数(可以记为:TF+);
S2:根据所述正样本路径集,统计正常样本应用的总数与调用了当前API的正常样本应用数的比值,作为第五统计参数;
S3:根据预设的处理规则,处理所述第五统计参数,得到对应的第六统计参数(可以记为:IDF+);
S4:计算第四统计参数与第六统计参数的比值,作为所述当前API基于正常样本应用的统计特征参数(例如,TF+/IDF+)。
按照上述计算当前API基于正常样本应用的统计特征参数的方式,可以分别计算得到各个API基于正常样本应用的统计特征参数。
通过上述实施例,可以基于统计的原理,计算得到能够反映出各个API被正常样本应用调用的调用特征的基于正常样本应用的统计特征参数。
在一些实施例中,具体实施时,可以将同一个API的基于风险样本应用的统计特征参数(TF-/IDF-),与基于正常样本应用的统计特征参数(TF+/IDF+)进行比较,得到相应的比较结果;根据比较结果,将基于风险样本应用的统计特征参数大于基于正常样本应用的统计特征参数的API筛选出来作为关键API。进一步,可以获取所筛选出关键API的标识信息,建立得到预设的关键API集。
在一些实施例中,所述预设的第一路径处理模型具体可以按照以下方式建立得到:
S1:构建初始的第一路径处理模型;
S2:从所述负样本路径集中筛选出涉及关键API的API调用路径,以得到第一类负样本训练集;
S3:利用所述第一类负样本训练集,训练所述初始的第一路径处理模型,以得到预设的第一路径处理模型。
通过上述实施例,可以先基于负样本路径集,筛选得到第一类负样本训练集;再利用上述第一类负样本训练集训练得到精度较高、效果较好的预设的第一路径处理模型。
在一些实施例中,上述初始的第一路径处理模型具体可以包括两个初始的状态集合以及三个初始的概率矩阵。
具体的,上述两个初始的状态集合可以包括:初始的隐状态集合和初始的显状态集合。
其中,上述隐状态集合中所保存的多个隐状态之间马尔可夫性质,上述隐状态是马尔可夫模型中实际所隐含的状态,且通常无法通过直接观测而得到。上述显状态集合所保存的显状态可以是与隐状态相关联的,可通过直接观测得到。
在本实施例中,上述显状态的选择具体可以为API调用,隐状态的选择具体可以为API调用所属的family(族)。其中,上述family具体可以理解为一种相对类、包更高层级的种类。
上述初始的概率矩阵具体可以包括:初始的状态转移矩阵、初始的发射矩阵和初始的初始矩阵。
其中,上述状态转移矩阵用于描述隐状态之间的转换概率,上述发射矩阵用于描述所有隐状态到所有显状态之间的输出概率,上述初始矩阵用于描述隐状态在初始时刻的概率矩阵。
具体实施时,可以按照以下方式构建初始的状态转移矩阵:将路径上的API调用抽象为对应的family;然后统计family到family的频数,并进行归一化,作为初始的状态转移矩阵。
具体实施时,可以按照以下方式构建初始的发射矩阵:统计所有路径上的各个API调用的频数;然后以family将API调用分类,并将API调用的频数归一化,得到初始的发射矩阵。
具体实施时,可以按照以下方式构建初始的初始矩阵:统计API调用所属family出现的频数,并进行归一化,得到初始的初始矩阵。
在一些实施例中,利用所述第一类负样本训练集,训练所述初始的第一路径处理模型,具体实施时,可以包括:从第一类正样本训练集中抽取涉及关键API的API调用路径,并基于该调用路径生成对应的测试序列(例如,测试序列O:O1O2O3…Ot);再将上述测试序列输入至初始的第一路径处理模型中,输出相应的测试概率;通过采用Baum-Welch算法和/或Reversed Viterbi算法,不断地调整初始的第一路径处理模型中的模型参数(包括三个概率矩阵),以使得输出的测试概率尽可能大。
通过上述方式,不断地利用基于第一类负样本训练集所得到的测试序列输入模型,并调整模型参数,以逐步逼近并达到最优解,从而可以得到训练好的预设的第一路径处理模型。
在一些实施例中,类似的,所述预设的第二路径处理模型具体可以按照以下方式建立得到:
S1:构建初始的第二路径处理模型;
S2:从所述正样本路径集中筛选出涉及关键API的API调用路径,以得到第一类正样本训练集;
S3:利用所述第一类正样本训练集,训练所述初始的第二路径处理模型,以得到预设的第二路径处理模型。
通过上述实施例,可以先基于正样本路径集,筛选得到第一类正样本训练集;再利用上述第一类正样本训练集,训练得到精度较高、效果较好的预设的第二路径处理模型。
关于初始的第二路径处理模型的构建,以及利用第一类正样本训练集训练初始的第二路径处理模型的过程可以参阅关于初始的第一路径处理模型的实施例,在此不做赘述。
在一些实施例中,所述预设的分类模型具体可以按照以下方式建立得到:
S1:根据所述正样本路径,构建第二类正样本训练集;其中,第二类正样本训练集包括多个正样本路径组,所述正样本路径组对应一个正常样本应用,所述正样本路径组包含有基于正常样本应用的涉及关键API的API调用路径;
S2:根据所述负样本路径,构建第二类负样本训练集;其中,第二类负样本训练集包括多个负样本路径组,所述负样本路径组对应一个风险样本应用,所述负样本路径组包含有基于风险样本应用的涉及关键API的API调用路径;
S3:根据所述第二类正样本训练集、所述第二类负样本训练,训练初始的分类模型,以得到预设的分类模型。
通过实施例,可以构建并利用第二类正样本训练集和第二类负样本训练集,训练得到精度较高、效果较好的预设的分类模型。
在一些实施例中,上述根据所述第二类正样本训练集、所述第二类负样本训练,训练初始的分类模型,具体实施时,可以包括:从第二类正样本训练集中随机抽取正样本路径组,并进行标注,得到标注后的训练数据;同时,从第二类负样本训练集中随机抽取负样本路径组,并进行标注,得到标注后的训练数据。从上述标注后的训练数据中提取出相应的标注后的特征向量;进而可以利用上述标注后的特征向量训练初始的分类模型,以得到符合要求的预设的分类模型。
在一些实施例中,具体标注时,可以在所抽取的正样本路径组上设置对应正样本应用的正标签,例如“0”;在所抽取的负样本路径组上设置对应负样本应用的负标签,例如“1”,以完成相关标注,得到标注后的训练数据。
在一些实施例中,上述目标应用具体还可以包括重打包应用。具体实施时,可以应用本说明书所提供的风险应用的检测方法处理检测难度较大的重打包应用,以及精准地检测并识别出被注入了少量恶意代码的存在风险的重打包应用。
由上可见,基于本说明书实施例提供的风险应用的检测方法,具体实施前,可以预先利用正样本路径集、负样本路径集分别训练得到符合要求的预设的第一路径处理模型、预设的第二路径处理模型,以及预设的分类模型;具体实施时,可以先通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;再通过调用预设的第一路径处理模型、预设的第二路径处理模型,处理上述多个API调用路径,得到并利用对应的多个API调用路径的可疑度参数,构建出关于目标应用的可疑度特征向量;进而可以调用预设的分类模型通过处理可疑度特征向量,确定出目标应用是否为风险应用。从而可以精准、高效地检测并识别出注入有少量恶意代码的风险应用,减少检测误差,提高风险应用的检测精度,保护用户的数据安全。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取待检测的目标应用;通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用。
为了能够更加准确地完成上述指令,参阅图3所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口301、处理器302以及存储器303,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口301,具体可以用于获取待检测的目标应用。
所述处理器302,具体可以用于通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用。
所述存储器303,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口301可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器302可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器303可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述风险应用的检测方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取待检测的目标应用;通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图4所示,在软件层面上,本说明书实施例还提供了一种风险应用的检测装置,该装置具体可以包括以下的结构模块:
获取模块401,具体可以用于获取待检测的目标应用;
确定模块402,具体可以用于通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;
第一调用模块403,具体可以用于调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;
构建模块404,具体可以用于根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;
第二调用模块405,具体可以用于调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,基于本说明书实施例提供的风险应用的检测装置,可以较为精准、高效地检测并识别出注入有少量恶意代码的风险应用,减少检测误差,提高风险应用的检测精度,保护用户的数据安全。
在一个具体的场景示例中,可以应用本说明书所提供的风险应用的检测方法实现重打包恶意软件(一种风险应用)检测和识别。具体实施过程,可以参阅以下内容。
在本场景示例中,通过研究发现:现有的安卓恶意软件检测结果中大多数漏报的案例都是由重打包恶意软件造成的。而对于重打包的恶意应用提取特征时,现有的方案主要站在整个应用的角度提取特征,但是由于重打包恶意软件中恶意代码是通过注入形成的,恶意代码只占全部代码的一小部分,使得应用的整体行为特征会掩盖恶意代码的行为特征,这是造成漏报一个重要原因。
在本场景示例中,针对上述问题,提供了一种重打包安卓恶意软件检测方法。可以参阅图5所示,一种重打包安卓恶意软件检测方法,具体实施时,可以包括以下过程:首先,收集正常应用数据集和恶意应用数据集,并通过进行静态分析获取这些应用中的API调用;分别统计分析这些API调用在正常应用数据集和恶意应用数据集中的TF和IDF。如果API调用在恶意软件数据集中的TF/IDF大于在正常应用数据集中的TF/IDF,则该API调用被选为关键API调用。并且,通过静态分析,获取正常应用数据集中所有应用的关键API调用的路径,构建正常关键API调用路径集。
可选的,隐马尔可夫模型的训练过程包括:构建隐马尔可夫模型的三个矩阵,即状态转移矩阵、发射矩阵和初始矩阵。将正常关键API调用路径集输入隐马尔可夫模型中进行训练,训练得到的就是正常的隐马尔可夫模型(例如,预设的第二路径处理模型)。同理,针对恶意应用数据集,执行相同的操作,可以训练得到恶意的隐马尔可夫模型(例如,预设的第一路径处理模型)。
可选的,路径可疑度的分析过程可以包括:将路径输入训练得到的正常隐马尔可夫模型和恶意隐马尔可夫模型,输出会是这条路径在正常应用数据集和恶意应用数据集中分别出现的概率,恶意应用数据集中出现的概率除以正常应用数据集中出现的概率则为这条路径的可疑度,可疑度越高,说明这条路径更有可能表征的是恶意行为。
可选的,分类器的学习过程包括:静态分析获取正常应用和恶意应用的函数调用图,从图中提取关键API调用的路径,将这些路径输入训练好的正常和恶意隐马尔可夫模型中计算对应的可疑度,分析可疑度构建特征向量,从正常应用中提取的特征向量的标签为0,从恶意应用中提取的特征向量的标签为1,将这些特征向量输入机器学习模型进行训练。
可选的,检测恶意软件的过程包括:给定待检测应用,静态分析获取应用的函数调用图,从图中提取关键API调用的路径,将这些路径输入训练好的正常和恶意隐马尔可夫模型中计算对应的可疑度,分析可疑度构建特征向量,将特征向量输入训练好的分类器进行分类,输出为1则为重打包恶意应用,否则为正常应用。
参阅图6所示,隐马尔可夫模型可以用五个结构元素来描述,包括:2个状态集合和3个概率矩阵。
其中,2个状态包括隐状态和显状态。隐状态之间满足马尔可夫性质,是马尔可夫模型中实际所隐含的状态,这些状态通常无法通过直接观测而得到。显状态与隐状态相关联,可通过直接观测而得到。在本发明中,显状态的选择为关键API调用,隐状态的选择为API调用所属的family。
3个概率矩阵包括状态转移矩阵、发射矩阵和初始矩阵。状态转移矩阵描述的是隐状态之间的转换概率,发射矩阵描述的是所有隐状态到所有显状态之间的输出概率,初始矩阵描述的是隐状态在初始时刻的概率矩阵。
具体的,初始的状态转移矩阵的构建步骤包括:将路径上的API调用抽象为对应的family,然后统计family到family的频数并归一化作为初始的状态转移矩阵。
初始的发射矩阵的构建步骤可以包括:统计所有路径上的各个API调用的频数,然后以family将API调用分类,并将API调用的频数归一化,即为初始的发射矩阵。
初始的初始矩阵的构建步骤可以包括:统计API调用所属family出现的频数并归一化,即为初始矩阵。
具体训练时,例如给定观测序列O=O1O2O3…Ot(即关键API调用路径集)和模型的初始参数(状态转移矩阵,发射矩阵,初始矩阵),如何调整这些参数以使观测序列O=O1O2O3…Ot的概率尽可能的大,通常使用Baum-Welch算法以及Reversed Viterbi算法解决。训练的目的就是一步一步的调整参数,当达到最优时,即为训练好的隐马尔可夫模型。
参阅图7所示,首先静态分析获取正常应用和恶意应用的函数调用图,从图中提取关键API调用的路径,将这些路径输入训练好的正常和恶意隐马尔可夫模型中计算对应的可疑度,分析可疑度构建特征向量,从正常应用中提取的特征向量的标签为0,从恶意应用中提取的特征向量的标签为1,将这些特征向量输入机器学习模型进行训练。
路径可疑度的计算过程可以包括:将路径输入训练得到的正常隐马尔可夫模型和恶意隐马尔可夫模型,输出会是这条路径在正常应用数据集和恶意应用数据集中分别出现的概率,概率的计算方式可以采用前向算法。恶意应用数据集中出现的概率除以正常应用数据集中出现的概率则为这条路径的可疑度,可疑度越高,说明这条路径更有可能表征的是恶意行为。
计算出一条关键路径的可疑度之后,将这个可疑度分配给路径中的每一个关键API调用。给定一个应用,在计算出这个应用所有关键路径的可疑度之后,将可疑度分配给相应的关键API调用。最后计算每个关键API调用的平均可疑度,这些平均可疑度会作为特征向量来训练一个分类器。
在上述场景示例中,通过分析安卓正常应用和恶意应用之间API调用的频数来选择和恶意行为更相关的关键API调用,构建关键API调用集之后,可以只关注这些关键API调用相关的行为来检测恶意软件,应用的行为是通过静态分析提取到的函数调用图来表征的。给定正常应用数据集,首先提取出所有应用的函数调用图,然后分析调用图中关键API调用的相关路径,针对这些路径训练一个正常的隐马尔可夫模型。同样的,给定恶意应用数据集,提取出关键API调用的路径之后,训练一个恶意的隐马尔可夫模型。这两个模型会用来计算待检测应用中关键路径的可疑度,一条路径在恶意应用中出现的概率越高,并且在正常应用中出现的概率越低,这条路径越有可能表征的是恶意行为。通过分析这些可疑度来构建特征向量,训练一个分类器以此来检测恶意软件。与现有的重打包恶意软件检测方法对比,可以通过更细粒度的行为表征来检测恶意软件,从而可以较为精细地区分出重打包恶意软件中隐藏的恶意行为,并查找出对应的恶意代码。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (11)
1.一种风险应用的检测方法,其特征在于,包括:
获取待检测的目标应用;
通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;
调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;所述预设的第一路径处理模型包括预先基于负样本路径集训练得到的隐马尔可夫模型;所述预设的第二路径处理模型包括预先基于正样本路径集训练得到的隐马尔可夫模型;
根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;
调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用;
其中,调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数,包括:按照以下方式得到多个API调用路径中的当前API调用路径的可疑度参数:调用预设的第一路径处理模型处理当前API调用路径,得到对应的第一预测概率;调用预设的第二路径处理模型处理当前API调用路径,得到对应的第二预测概率;将第一预测概率与第二预测概率相除得到的商,确定为当前API调用路径的可疑度参数。
2.根据权利要求1所述的方法,其特征在于,通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径,包括:
对所述目标应用进行预设的静态分析,得到目标应用的函数调用图;
根据预设的关键API集,在所述目标应用的函数调用图中,确定出基于目标应用的关键API;
从所述目标应用的函数调用图中,提取出涉及关键API的多个API调用路径。
3.根据权利要求2所述的方法,其特征在于,所述预设的关键API集按照以下方式建立:
获取多个样本应用;其中,所述多个样本应用包括正常样本应用和风险样本应用;
对所述正常样本应用进行静态分析,以建立正样本路径集;对所述风险样本应用进行静态分析,以建立负样本路径集;
根据所述负样本路径集,统计得到各个API基于风险样本应用的统计特征参数;根据所述正样本路径集,统计得到各个API基于正常样本应用的统计特征参数;
通过比较同一个API基于风险样本应用的统计特征参数和基于正常样本应用的统计特征参数,筛选出基于风险样本应用的统计特征参数大于基于正常样本应用的统计特征参数的API作为关键API,以建立预设的关键API集。
4.根据权利要求3所述的方法,其特征在于,根据所述负样本路径集,统计得到各个API基于风险样本应用的统计特征参数,包括:
按照以下方式根据所述负样本路径集,统计当前API基于风险样本应用的统计特征参数:
根据所述负样本路径集,统计当前API被风险样本应用调用的次数与API被风险样本应用调用的总次数的比值,作为第一统计参数;
根据所述负样本路径集,统计风险样本应用的总数与调用了当前API的风险样本应用数的比值,作为第二统计参数;
根据预设的处理规则,处理所述第二统计参数,得到对应的第三统计参数;
计算第一统计参数与第三统计参数的比值,作为所述当前API基于风险样本应用的统计特征参数。
5.根据权利要求3所述的方法,其特征在于,所述预设的第一路径处理模型按照以下方式建立:
构建初始的第一路径处理模型;
从所述负样本路径集中筛选出涉及关键API的API调用路径,以得到第一类负样本训练集;
利用所述第一类负样本训练集,训练所述初始的第一路径处理模型,以得到预设的第一路径处理模型。
6.根据权利要求5所述的方法,其特征在于,所述预设的第二路径处理模型按照以下方式建立:
构建初始的第二路径处理模型;
从所述正样本路径集中筛选出涉及关键API的API调用路径,以得到第一类正样本训练集;
利用所述第一类正样本训练集,训练所述初始的第二路径处理模型,以得到预设的第二路径处理模型。
7.根据权利要求6所述的方法,其特征在于,所述预设的分类模型按照以下方式建立:
根据所述正样本路径,构建第二类正样本训练集;其中,第二类正样本训练集包括多个正样本路径组,所述正样本路径组对应一个正常样本应用,所述正样本路径组包含有基于正常样本应用的涉及关键API的API调用路径;
根据所述负样本路径,构建第二类负样本训练集;其中,第二类负样本训练集包括多个负样本路径组,所述负样本路径组对应一个风险样本应用,所述负样本路径组包含有基于风险样本应用的涉及关键API的API调用路径;
根据所述第二类正样本训练集、所述第二类负样本训练,训练初始的分类模型,以得到预设的分类模型。
8.根据权利要求1所述的方法,其特征在于,所述目标应用包括重打包应用。
9.一种风险应用的检测装置,其特征在于,包括:
获取模块,用于获取待检测的目标应用;
确定模块,用于通过对目标应用进行预设的静态分析,确定出基于目标应用的关键API,以及涉及关键API的多个API调用路径;
第一调用模块,用于调用预设的第一路径处理模型、预设的第二路径处理模型,处理所述多个API调用路径,得到多个API调用路径的可疑度参数;所述预设的第一路径处理模型包括预先基于负样本路径集训练得到的隐马尔可夫模型;所述预设的第二路径处理模型包括预先基于正样本路径集训练得到的隐马尔可夫模型;
构建模块,用于根据所述多个API调用路径的可疑度参数,构建关于目标应用的可疑度特征向量;
第二调用模块,用于调用预设的分类模型处理所述可疑度特征向量,以确定所述目标应用是否为风险应用;
其中,第一调用模块具体用于按照以下方式得到多个API调用路径中的当前API调用路径的可疑度参数:调用预设的第一路径处理模型处理当前API调用路径,得到对应的第一预测概率;调用预设的第二路径处理模型处理当前API调用路径,得到对应的第二预测概率;将第一预测概率与第二预测概率相除得到的商,确定为当前API调用路径的可疑度参数。
10.一种服务器,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110405184.XA CN113094709B (zh) | 2021-04-15 | 2021-04-15 | 风险应用的检测方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110405184.XA CN113094709B (zh) | 2021-04-15 | 2021-04-15 | 风险应用的检测方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094709A CN113094709A (zh) | 2021-07-09 |
CN113094709B true CN113094709B (zh) | 2024-04-05 |
Family
ID=76677821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110405184.XA Active CN113094709B (zh) | 2021-04-15 | 2021-04-15 | 风险应用的检测方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094709B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617393A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 一种基于支持向量机的移动互联网恶意应用软件检测方法 |
CN106709332A (zh) * | 2016-12-13 | 2017-05-24 | 江苏通付盾科技有限公司 | 应用检测的方法及装置 |
CN109684840A (zh) * | 2018-12-20 | 2019-04-26 | 西安电子科技大学 | 基于敏感调用路径的Android恶意软件检测方法 |
CN110069926A (zh) * | 2019-04-11 | 2019-07-30 | 南京邮电大学 | Android重打包应用的恶意代码定位方法、存储介质和终端 |
CN111523117A (zh) * | 2020-04-10 | 2020-08-11 | 西安电子科技大学 | 一种安卓恶意软件检测和恶意代码定位系统及方法 |
-
2021
- 2021-04-15 CN CN202110405184.XA patent/CN113094709B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617393A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 一种基于支持向量机的移动互联网恶意应用软件检测方法 |
CN106709332A (zh) * | 2016-12-13 | 2017-05-24 | 江苏通付盾科技有限公司 | 应用检测的方法及装置 |
CN109684840A (zh) * | 2018-12-20 | 2019-04-26 | 西安电子科技大学 | 基于敏感调用路径的Android恶意软件检测方法 |
CN110069926A (zh) * | 2019-04-11 | 2019-07-30 | 南京邮电大学 | Android重打包应用的恶意代码定位方法、存储介质和终端 |
CN111523117A (zh) * | 2020-04-10 | 2020-08-11 | 西安电子科技大学 | 一种安卓恶意软件检测和恶意代码定位系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113094709A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | A two-layered permission-based android malware detection scheme | |
Sayadi et al. | Customized machine learning-based hardware-assisted malware detection in embedded devices | |
KR101789962B1 (ko) | 이동 디바이스에서 거동 분석 동작들을 수행함으로써 애플리케이션 상태들을 추론하기 위한 방법 및 시스템 | |
CN109241740B (zh) | 恶意软件基准测试集生成方法及装置 | |
US9774614B2 (en) | Methods and systems for side channel analysis detection and protection | |
US9686023B2 (en) | Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors | |
US10505960B2 (en) | Malware detection by exploiting malware re-composition variations using feature evolutions and confusions | |
US10021123B2 (en) | Customized network traffic models to detect application anomalies | |
CN109478218A (zh) | 用于分类执行会话的装置和方法 | |
CN110442712B (zh) | 风险的确定方法、装置、服务器和文本审理系统 | |
CN107329894B (zh) | 应用程序系统测试方法、装置及电子设备 | |
US10255434B2 (en) | Detecting software attacks on processes in computing devices | |
CN104885099A (zh) | 使用推升式决策树桩和联合特征选择及剔选算法来对移动设备行为进行高效分类的方法和系统 | |
Kurniawan et al. | Android anomaly detection system using machine learning classification | |
US20200344261A1 (en) | Method of application malware detection based on dynamic api extraction, and readable medium and apparatus for performing the method | |
KR101444308B1 (ko) | 정보 유출 조기 경보 시스템 | |
CN106998336B (zh) | 渠道中的用户检测方法和装置 | |
CN106301979B (zh) | 检测异常渠道的方法和系统 | |
Bernardi et al. | A fuzzy-based process mining approach for dynamic malware detection | |
CN116340934A (zh) | 终端异常行为检测方法、装置、设备及存储介质 | |
CN114070642A (zh) | 网络安全检测方法、系统、设备及存储介质 | |
CN113094709B (zh) | 风险应用的检测方法、装置和服务器 | |
Congyi et al. | Method for detecting Android malware based on ensemble learning | |
CN115659351A (zh) | 一种基于大数据办公的信息安全分析方法、系统及设备 | |
CN113656314A (zh) | 压力测试处理方法及装置 |
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 |