异常程序行为检测方法、装置与流程

文档序号:19744915发布日期:2020-01-21 18:11阅读:167来源:国知局
异常程序行为检测方法、装置与流程
本申请涉及计算机及通信
技术领域
,特别涉及一种异常程序行为检测方法、装置。
背景技术
:由于当今各行各业的信息化、智能化建设越来越普及,用户对程序服务的性能要求不断提高,程序服务的整体构架也日渐复杂。在日常测试阶段,仅仅靠人工查看日志或监控数据,难以发现潜藏在程序行为中的问题,因此,方便快捷的检测出异常程序行为具有十分重要的意义。技术实现要素:本申请旨在提供一种异常程序行为检测方法、装置,其能够方便的检测出异常程序行为。根据本申请实施例的一个方面,提供了一种异常程序行为检测方法,包括:从程序行为数据中获取程序行为特征数据;对所述程序行为特征数据进行聚类,得到离群特征数据;将所述离群特征数据输入至用于进行程序行为识别的机器学习模型中;根据所述机器学习模型的输出结果,确定异常的程序行为数据。根据本申请实施例的一个方面,提供了一种异常程序行为检测装置,包括:获取模块,用于从程序行为数据中获取程序行为特征数据;聚类模块,用于对所述程序行为特征数据进行聚类,得到离群特征数据;识别模块,用于将所述离群特征数据输入至用于进行程序行为识别的机器学习模型中,并根据所述机器学习模型的输出结果,确定异常的程序行为数据。在本申请的一些实施例中,基于前述方案,所述识别模块配置为:从所述程序行为特征数据中获取除所述离群特征数据以外的程序行为特征数据作为第一正常数据集;根据所述第一正常数据集中的程序行为特征数据对所述机器学习模型进行训练。在本申请的一些实施例中,基于前述方案,所述识别模块还配置为:根据所述机器学习模型的输出结果,识别异常的程序行为特征数据;将所述异常的程序行为特征数据与预设特征进行匹配;根据所述异常的程序行为特征数据中与所述预设特征不匹配的程序行为特征数据,确定异常的程序行为数据。在本申请的一些实施例中,基于前述方案,所述识别模块还配置为:将所述异常的程序行为特征数据中与所述预设特征不匹配的程序行为特征数据发送给用户进行人工检测;接收未通过人工检测的程序行为特征数据,基于所述未通过人工检测的程序行为特征数据确定异常的程序行为数据。在本申请的一些实施例中,基于前述方案,所述获取模块配置为:响应程序检测请求,获取所述程序检测请求针对的目标应用程序所对应的程序行为数据;从所述目标应用程序所对应的程序行为数据中提取出所述程序行为特征数据。在本申请的一些实施例中,基于前述方案,所述获取模块还配置为:在接收到所述程序检测请求后,将所述程序检测请求针对的目标应用程序所对应的程序行为数据存储在至少两个缓存区域中;从至少一个所述缓存区域中获取所述程序行为数据。在本申请的一些实施例中,基于前述方案,所述获取模块还配置为:将所述程序行为数据转换成预定格式的预处理数据;从所述预处理数据中提取出所述程序行为特征数据。在本申请的一些实施例中,基于前述方案,所述获取模块还配置为:所述程序行为特征数据,包括以下任一或多个的组合:程序行为时长、程序行为结果和程序行为的连续性。在本申请的一些实施例中,基于前述方案,所述异常程序行为检测装置还包括:发送模块,用于获取所述异常的程序行为数据所对应的程序信息,将所述程序信息发送给用户。根据本申请实施例的一个方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行上任一项所述的方法。根据本申请实施例的一个方面,提供了一种电子装置,包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如上任一项所述的方法。本申请的实施例提供的技术方案可以包括以下有益效果:在本申请的一些实施例所提供的技术方案中,通过从程序行为数据中获取程序行为特征数据,对程序行为特征数据进行聚类,得到离群特征数据,而离群特征数据具有异常的可能,因此可以再将离群特征数据输入至用于进行程序行为识别的机器学习模型中,对离群特征数据进行筛选,最后根据机器学习模型的输出结果,确定异常的程序行为数据,相比于现有技术中仅仅靠人工查找异常行为数据,更加方便快捷。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。图1a示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;图1b示出了可以应用本申请一个实施例的技术方案的数据共享系统的示意图;图1c示出了可以应用本申请一个实施例的区块链所在的节点存储程序行为数据的示意图;图2示意性示出了根据本申请的一个实施例的异常程序行为检测方法的流程图;图3示意性示出了根据本申请的一个实施例的从程序行为数据中获取程序行为特征数据的流程图;图4示意性示出了根据本申请的一个实施例的通过机器学习模型的输出结果,确定异常的程序行为数据的流程图;图5示意性示出了根据本申请的一个实施例的异常程序行为检测方法的流程图;图6示意性示出了根据本申请的一个实施例的异常程序行为检测装置的框图;图7是根据一示例性实施例示出的一种异常程序行为检测装置的硬件图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。图1a示出了可以应用本申请实施例的技术方案的示例性系统架构1a00的示意图。如图1a所示,系统架构1a00可以包括终端设备101(终端设备可以为智能手机、平板电脑、便携式计算机、台式计算机中的一种或多种)、网络102、服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线通信链路、无线通信链路等等。应该理解,图1a中的终端设备101、网络102、服务器103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备101、网络102和服务器103。比如服务器103可以是多个服务器组成的服务器集群等。在本申请的一个实施例中,服务器103可以获取终端设备101中运行的程序的程序行为数据,服务器103也可以获取服务器103本身或其他服务器中运行的程序的程序行为数据,程序行为数据可以通过现有的性能分析工具采集。服务器103通过从程序行为数据中获取程序行为特征数据,对程序行为特征数据进行聚类,得到离群特征数据,而离群特征数据具有异常的可能,因此可以再将离群特征数据输入至用于进行程序行为识别的机器学习模型中,对离群特征数据进行筛选,最后根据机器学习模型的输出结果,确定异常的程序行为数据,相比于现有技术中仅仅靠人工查找异常行为数据,更加方便快捷。需要说明的是,本申请实施例所提供的异常程序行为检测方法一般由服务器103执行,相应地,异常程序行为检测装置一般设置于服务器103中。但是,在本申请的其它实施例中,终端设备101也可以与服务器103具有相似的功能,从而执行本申请实施例所提供的异常程序行为检测方法。图1b示出了可以应用本申请一个实施例的技术方案的数据共享系统1b00的示意图。参见图1b所示的数据共享系统,数据共享系统1b00是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点104,多个节点104可以是指数据共享系统中各个客户端。每个节点104在进行正常工作可以接收到程序行为数据,并基于接收到的程序行为数据维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到程序行为数据时,数据共享系统中的其他节点便根据共识算法获取该程序行为数据,将该程序行为数据作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为ip(internetprotocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以ip地址为例进行说明。节点名称节点标识节点1117.114.151.174节点2117.116.189.145……节点n119.123.789.258数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有程序行为数据特征值、版本号、时间戳和难度值,区块主体中存储有程序行为数据;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的程序行为数据特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中程序行为数据的安全性。在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到程序行为数据时,对程序行为数据进行校验,完成校验后,将程序行为数据存储至内存池中,并更新其用于记录程序行为数据的哈希树;之后,将更新时间戳更新为接收到程序行为数据的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:sha256(sha256(version+prev_hash+merkle_root+ntime+nbits+x))<target其中,sha256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为程序行为数据的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;target为特征值阈值,该特征值阈值可以根据nbits确定得到。这样,当计算得到满足上述公式的随机数时,便可将程序行为数据对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中,再从区块链中获取程序行为数据,以执行该异常程序行为检测方法。以下对本申请实施例的技术方案的实现细节进行详细阐述:图2示意性示出了根据本申请的一个实施例的异常程序行为检测方法的流程图,该异常程序行为检测方法的执行主体可以是服务器,比如可以是图1中所示的服务器103。参照图2所示,该异常程序行为检测方法至少包括步骤s210至步骤s240,详细介绍如下:在步骤s210中,从程序行为数据中获取程序行为特征数据。在本申请的一个实施例中,程序行为数据为所要检测的目标应用程序的程序行为数据,程序行为数据可以通过现有的性能分析工具采集。可以同时使用多种性能分析工具采集程序行为数据,使采集程序行为数据的效率更高。性能分析工具采集到的数据中还包括程序行为数据,性能分析工具采集到的程序行为数据可用于检测异常的程序行为数据。在本申请的一个实施例中,程序行为特征数据可以包括以下任一或多个的组合:程序行为时长、程序行为结果和程序行为的连续性。在该实施例中,程序行为时长可以为所要检测的目标应用程序整体的运行时长,目标应用程序的程序行为时长如果超过为其设定的时长阈值,则确认出现异常的程序行为数据。程序行为时长还可以为目标应用程序中部分程序的运行时长,目标应用程序中部分程序的程序行为时长如果超过为其设定的时长阈值,则认为可能出现异常的程序行为数据。在该实施例中,检测目标应用程序时,向目标应用程序输入测试数据,目标应用程序输出程序行为结果。将目标应用程序输出的程序行为结果与目标应用程序应该输出的正确结果比较。通过比较程序行为结果与正确结果是否相同,检测目标应用程序在运行中是否发生错误,从而分析出是否有可能出现异常的程序行为数据。在该实施例中,程序行为的连续性为目标应用程序在运行时是否按照设定步骤运行,如果目标应用程序在运行时按照设定步骤运行,没有遗漏步骤,则认为程序行为连续,则可以确认没有出现异常的程序行为数据;如果目标应用程序在运行时没有按照设定步骤运行,遗漏步骤,则认为程序行为不连续,则可能出现异常的程序行为数据。在本申请的一个实施例中,可以预设程序行为特征数据和关键字对照表,获取程序行为数据中的关键字,查找程序行为特征数据和关键字对照表,找到程序行为数据中的关键字对应的程序行为特征数据。程序行为特征数据和关键字的对应关系,可以根据需要设定。在本申请的一个实施例中,程序行为特征数据可以有多种,对于一种程序行为特征数据,获取该种程序行为特征数据的历史数据,获取该种程序行为特征数据的历史数据中包含的相同字符,将这些相同字符作为该种程序行为特征数据对应的关键字。在本申请的一个实施例中,程序行为特征数据可以有多种,对于每种程序行为特征数据,获取该种程序行为特征数据的历史数据中包含的相同字符,舍弃该种程序行为特征数据的相同字符中与多种程序行为特征数据的相同字符中相同的字符,得到该种程序行为特征数据对应的关键字。通过查找每种程序行为特征数据中,与其他种类程序行为特征数据的区别字符,可以更快的得到异常的程序行为数据。在本申请的一个实施例中,可以从程序行为数据的设定位置中获取程序行为特征数据,其中,设定位置可以有多个,程序行为特征数据也可以有多种,每个设定位置中的程序行为特征数据对应设定种类的程序行为特征数据。在本申请的一个实施例中,如图3所示,前述步骤s210中从程序行为数据中获取程序行为特征数据的过程,可以包括步骤s310与步骤s320:在步骤s310中,响应程序检测请求,获取程序检测请求针对的目标应用程序所对应的程序行为数据。在本申请的一个实施例中,可以预先采集多个应用程序的程序行为数据,当接收到用户发起对目标应用程序的检测请求之后,响应程序检测请求,再从预先采集的多个应用程序的程序行为数据中获取目标应用程序所对应的程序行为数据,相比于接收到用户发起对目标应用程序的检测请求之后,再去采集目标应用程序所对应的程序行为数据,预先采集程序行为数据可以节省检测程序所花费的时间。在本申请的一个实施例中,可以将预先采集的多个应用程序的程序行为数据转换成预定格式的预处理数据,从预处理数据中提取目标应用程序所对应的。可以使用性能分析工具采集程序行为数据,为了使采集到的程序行为数据更加全面,也为了提高采集程序行为数据的速度,可以使用多种性能分析工具采集程序行为数据。由于采集程序行为数据的工具不同,采集到的程序行为数据的格式也可能不同,将不同格式的程序行为数据都转换成预定格式,更有利于后续对程序行为数据的处理。预定格式可以为现有的性能分析工具采集的程序行为数据的格式中的一种或多种。在本申请的一个实施例中,可以将预先采集的多个应用程序的程序行为数据中,同一个应用程序的程序行为数据转换成同一格式,方便后续对该应用程序的程序行为数据的处理。在本申请的一个实施例中,获取程序检测请求针对的目标应用程序所对应的程序行为数据之后,可以将程序检测请求针对的目标应用程序所对应的程序行为数据存储在至少两个缓存区域中,从至少一个缓存区域中获取程序检测请求针对的目标应用程序所对应的程序行为数据。在该实施例中,从多个缓存区域中提取目标应用程序所对应的程序行为数据,可以从每个缓存区域中提取目标应用程序所对应的部分程序行为数据,可以缩短提取目标应用程序所对应的程序行为数据的时间。在该实施例中,将程序检测请求针对的目标应用程序所对应的程序行为数据存储在至少两个缓存区域中,每个缓存区域中都有完整的目标应用程序所对应的程序行为数据,在其中一个缓存区域中的程序行为数据被用于检测目标应用程序后,其他缓存区域中的目标应用程序所对应的程序行为数据仍可以被调用,其他用户仍可以对目标应用程序进行检测。继续参照图3,在步骤s320中,从目标应用程序所对应的程序行为数据中提取出程序行为特征数据。在图3的实施例中,响应程序检测请求后,再获取程序检测请求针对的目标应用程序所对应的程序行为数据,再从目标应用程序所对应的程序行为数据中提取出程序行为特征数据。目标应用程序可以有一个或多个,在接收到程序检测请求后,只获取程序检测请求针对的目标应用程序所对应的程序行为数据,可以避免获取多余的程序行为数据,有利于提高程序检测的效率。在本申请的一个实施例中,可以对提取出的程序行为特征数据进行规范化处理。可以对程序行为特征数据进行归一化处理、降维处理等,增强可比性,也方便后续对程序行为特征数据的处理。继续参照图2,在步骤s220中,对程序行为特征数据进行聚类,得到离群特征数据。在本申请的一个实施例中,可以对程序行为特征数据进行无监督聚类,得到的离群特征数据可能是异常的程序行为特征数据。在本申请的一个实施例中,对程序行为特征数据进行无监督聚类时,将分布稀疏且离密度高的程序行为特征数据群较远的程序行为特征数据作为离群特征数据。在本申请的一个实施例中,无监督聚类可以通过基于局部密度的lof算法(localoutlierfactor,局部离群因子检测方法)、dbscan算法(density-basedspatialclusteringofapplicationswithnoise,基于密度的噪声应用空间聚类)、孤立森林算法等实现。在本申请的一个实施例中,可以对程序行为特征数据进行半监督聚类或有监督聚类,根据预设特征对程序行为特征数据进行聚类,得到的离群特征数据可能是异常的程序行为数据。在本申请的一个实施例中,有监督聚类可以通过随机森林算法、深度学习等方法实现。在步骤s230中,将离群特征数据输入至用于进行程序行为识别的机器学习模型中。在本申请的一个实施例中,在将离群特征数据输入至机器学习模型中之前,可以从程序行为特征数据中获取除离群特征数据以外的程序行为特征数据作为第一正常数据集,根据第一正常数据集中的程序行为特征数据对机器学习模型进行训练。在该实施例中,使用从程序行为特征数据中的第一正常数据集对机器学习模型进行训练,不必获取其他程序行为特征数据对机器学习模型进行训练,简化了程序检测的过程,提高了程序检测的效率。在本申请的一个实施例中,机器学习模型可以通过以下过程预先训练:获取第一正常数据集中的程序行为特征数据,第一正常数据集中的每个程序行为特征数据对应的程序行为数据是否异常已知,对于第一正常数据集中的每个程序行为特征数据,将该程序行为特征数据输入机器学习模型,得到机器学习模型输出的该程序行为特征数据对应的程序行为数据是否异常的结果。比较输出的结果与已知的该程序行为特征数据对应的程序行为数据是否异常的结果,如果不一致,调整机器学习模型,使得输出的结果与该程序行为特征数据对应的程序行为数据是否异常的结果一致。在步骤s240中,根据机器学习模型的输出结果,确定异常的程序行为数据。在本申请的一个实施例中,机器学习模型的输出结果可以为程序行为特征数据对应的程序行为数据是否异常。在该实施例中,由于得到的离群特征数据对应的程序行为数据可能异常,也有可能是正常的,通过机器学习模型对可能异常的程序行为数据进行筛选,进一步确认离群特征数据对应的程序行为数据是否异常,避免将正常的程序行为数据误判为异常的程序行为数据。在该实施例中,通过从程序行为数据中获取程序行为特征数据,对程序行为特征数据进行聚类,得到离群特征数据,离群特征数据对应的程序行为数据有异常的可能。再将离群特征数据输入至用于进行程序行为识别的机器学习模型中,对离群特征数据对应的程序行为数据进行筛选,最后根据机器学习模型的输出结果,确定异常的程序行为数据,相比于现有技术中仅仅靠人工查找异常行为数据,更加方便快捷。在本申请的一个实施例中,如图4所示,可以通过步骤s410至步骤s430来根据机器学习模型的输出结果,确定异常的程序行为数据:在步骤s410中,根据机器学习模型的输出结果,识别异常的程序行为特征数据。在本申请的一个实施例中,机器学习模型的输出结果可以为程序行为特征数据是否异常。在本申请的一个实施例中,机器学习模型可以通过以下过程预先训练:获取第一正常数据集中的程序行为特征数据,第一正常数据集中的每个程序行为特征数据都不是异常,对于第一正常数据集中的每个程序行为特征数据,将该程序行为特征数据输入机器学习模型,得到机器学习模型输出的该程序行为特征数据是否异常的结果。检验输出的该程序行为特征数据是否异常的结果是否为不是异常,如果是异常,调整机器学习模型,使得输出的该程序行为特征数据是否异常的结果不是异常。在该实施例中,由于得到的离群特征数据对应的程序行为数据可能异常,也有可能是正常的,通过机器学习模型对可能异常的程序行为数据进行筛选,进一步确认离群特征数据对应的程序行为数据是否异常,避免将正常的程序行为数据误判为异常的程序行为数据。在本申请的一个实施例中,离群特征数据输入机器学习模型后,机器学习模型为离群特征数据分配标签,根据标签识别离群特征数据是否是异常的程序行为特征数据。在本申请的一个实施例中,识别异常的程序特征行为数据之后,从程序行为特征数据中获取除异常的程序行为特征数据以外的程序行为数据,将程序行为特征数据中除异常的程序行为特征数据以外的程序行为特征数据加入第一正常数据集,根据第一正常数据集中的程序行为特征数据对机器学习模型进行训练。在该实施例中,通过对程序行为识别的机器学习模型进一步训练,使得程序行为识别的机器学习模型的输出更加准确。继续参照图4,在步骤s420中,将异常的程序行为特征数据与预设特征进行匹配。在本申请的一个实施例中,可以将异常的程序行为特征数据按照预设特征进行有监督聚类的方式,来实现将异常的程序行为特征数据与预设特征进行匹配的过程。在本申请的一个实施例中,预设特征可以包括以下任一或多个的组合:程序行为时长在为其设定的时长阈值内、程序行为结果正确和程序行为连续。在步骤s430中,根据异常的程序行为特征数据中与预设特征不匹配的程序行为特征数据,确定异常的程序行为数据。在该实施例中,根据机器学习模型的输出结果,识别异常的程序行为特征数据,为了提高程序检测的准确性,将异常的程序行为特征数据中与预设特征不匹配的程序行为特征数据,确定为异常的程序行为特征数据,确定异常的程序行为特征数据对应的程序行为数据为异常的程序行为数据,使异常的程序行为数据的确定更加准确。在本申请的一个实施例中,与预设特征不匹配,即程序行为时长不在为其设定的时长阈值内、程序行为结果不正确或程序行为不连续。在本申请的一个实施例中,可以将异常的程序行为特征数据中与预设特征不匹配的程序行为特征数据对应的程序行为数据,确定为异常的程序行为数据。在本申请的一个实施例中,还可以将异常的程序行为特征数据中与预设特征不匹配的程序行为特征数据发送给用户进行人工检测,接收未通过人工检测的程序行为特征数据,基于未通过人工检测的程序行为特征数据确定异常的程序行为数据。在该实施例中,用户对异常的程序行为特征数据中与预设特征不匹配的程序行为特征数据进一步筛选,更加准确的找到异常的程序行为特征数据,进而更加准确的找到异常的程序行为数据。在本申请的一个实施例中,确定异常的程序行为数据之后,从程序行为数据中获取除异常的程序行为数据以外的程序行为数据,将程序行为数据中除异常的程序行为数据以外的程序行为数据中的程序行为特征数据加入第一正常数据集,根据第一正常数据集中的程序行为特征数据对机器学习模型进行训练。在该实施例中,通过使用确定的异常的程序行为数据中的程序行为特征数据对机器学习模型进一步训练,使得程序行为识别的机器学习模型的输出更加准确。在本申请的一个实施例中,在确定异常的程序行为数据之后,获取异常的程序行为数据所对应的程序信息,将程序信息发送给用户。在本申请的一个实施例中,将异常的程序行为数据所对应的程序信息、异常的程序行为数据和异常的程序行为特征数据发送给用户,使用户了解异常的程序行为数据的具体情况。在本申请的一个实施例中,可以对异常程序行为数据进行分析,可以根据应用程序的程序行为数据和异常的程序行为数据所对应的程序信息,得到异常的程序行为数据出现的原因和建议的解决办法,将异常的程序行为数据所对应的程序信息、异常的程序行为数据、异常的程序行为特征数据、异常的程序行为数据出现的原因和建议的解决办法形成分析报告发送给用户,使用户了解应该如何修复异常的程序行为数据。图5示意性示出了根据本申请的一个实施例的异常程序行为检测方法的流程图,该异常程序行为检测方法的执行主体可以是服务器,比如可以是图1中所示的服务器103。参照图5所示,该异常程序行为检测方法至少包括步骤s510至步骤s520,详细介绍如下:在步骤s510中,采集程序行为数据,对程序行为数据进行预处理后存储至分布式数据库中。在本申请的一个实施例中,可以使用多种现有的性能分析工具采集程序行为数据,将多种性能分析工具采集的程序行为数据转换成预定格式后,发送至多个分布式数据库中分布存储。由于将程序行为数据发送至多个分布式数据库中分布存储,比将程序行为数据发送至一个数据库中存储时,每个分布数据库中的数据更少,调用分布式数据库中存储的程序行为数据更快,提高了程序检测的效率。在本申请的一个实施例中,分布式数据库中不同的数据库可以存储相同的程序行为数据,在用户检测某些程序行为数据时,分布式数据库中仍有相同的程序行为数据作为备用,其他用户可以调用这些备用的程序行为数据进行检测。在本申请的一个实施例中,采集的程序行为数据可以为多个,也可以只采集目标应用程序的程序行为数据。在步骤s520中,响应用户发起的程序检测请求,从分布式数据库中获取程序检测请求针对的目标应用程序所对应的程序行为数据。在本申请的一个实施例中,可以从一个分布式数据库中获取程序检测请求针对的目标应用程序所对应的程序行为数据。也可以从多个分布式数据库中获取目标应用程序所对应的程序行为数据,从每个分布式数据库中获取目标应用程序所对应的部分程序行为数据,比从一个分布式数据库中获取目标应用程序所对应的全部程序行为数据更加快速。在步骤s530中,从目标应用程序所对应的程序行为数据中获取程序行为特征数据。在步骤s540中,对获取的程序行为特征数据进行预处理。在本申请的一个实施例中,对获取的程序行为特征数据进行预处理可以为对获取的程序行为特征数据进行归一化处理、降维处理,增强程序行为特征数据的可比性。在步骤s550中,对预处理后的程序行为特征数据进行无监督聚类分析,将离群特征数据的集合作为预异常程序行为特征数据集,将预处理后的程序行为特征数据中除离群特征数据以外的程序行为特征数据集合,作为预正常程序行为特征数据集。在本申请的一个实施例中,预异常程序行为特征数据集中的离群特征数据,可能是异常的程序行为特征数据。将预正常程序行为特征数据集中的数据确认为正常的程序行为特征数据。在步骤s560中,根据预正常程序行为特征数据集中的程序行为特征数据对机器学习模型进行训练。在步骤s570中,将预异常程序行为特征数据集中的程序行为特征数据输入机器学习模型中,得到机器学习模型输出的正常程序行为特征数据集合和异常程序行为特征数据集合。在步骤s580中,将正常程序行为特征数据集中的程序行为特征数据加入预正常程序行为特征数据集。在步骤s590中,将异常程序行为特征数据集中的程序行为特征数据发送给用户以用于人工检测,获得未通过人工检测的程序行为特征数据对应的程序行为数据作为异常的程序行为数据。在该实施例中,通过对程序行为数据的程序行为特征数据进行分析,找到异常程序行为特征数据集合,再对异常的程序行为数据集合中的程序行为数据进行人工检测,相比于现有的直接从程序行为数据中人工检测异常的程序行为数据更加方便快捷。需要说明的是,图5只是示意性的给出了本申请一个实施例的异常程序行为检测方法的步骤,该用户发起的程序检测任务是分布式任务,步骤s510至步骤s590之间相互独立,可以单独执行步骤s510至步骤s590中的任意一个步骤。以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的异常程序行为检测方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的异常程序行为检测方法的实施例。图6示意性示出了根据本申请的一个实施例的异常程序行为检测装置的框图。参照图6所示,根据本申请的一个实施例的异常程序行为检测装置600,包括获取模块601、聚类模块602和识别模块603。在本申请的一些实施例中,基于前述方案,获取模块601,用于从程序行为数据中获取程序行为特征数据;聚类模块602,用于对程序行为特征数据进行聚类,得到离群特征数据;识别模块603,用于将离群特征数据输入至用于进行程序行为识别的机器学习模型中,并根据机器学习模型的输出结果,确定异常的程序行为数据。在本申请的一些实施例中,基于前述方案,识别模块603配置为:从程序行为特征数据中获取除离群特征数据以外的程序行为特征数据作为第一正常数据集;根据第一正常数据集中的程序行为特征数据对机器学习模型进行训练。在本申请的一些实施例中,基于前述方案,识别模块603还配置为:根据机器学习模型的输出结果,识别异常的程序行为特征数据;将异常的程序行为特征数据与预设特征进行匹配;根据异常的程序行为特征数据中与预设特征不匹配的程序行为特征数据,确定异常的程序行为数据。在本申请的一些实施例中,基于前述方案,识别模块603还配置为:将异常的程序行为特征数据中与预设特征不匹配的程序行为特征数据发送给用户进行人工检测;接收未通过人工检测的程序行为特征数据,基于未通过人工检测的程序行为特征数据确定异常的程序行为数据。在本申请的一些实施例中,基于前述方案,获取模块601配置为:响应程序检测请求,获取程序检测请求针对的目标应用程序所对应的程序行为数据;从目标应用程序所对应的程序行为数据中提取出程序行为特征数据。在本申请的一些实施例中,基于前述方案,获取模块601还配置为:在接收到程序检测请求后,将程序检测请求针对的目标应用程序所对应的程序行为数据存储在至少两个缓存区域中;从至少一个缓存区域中获取程序行为数据。在本申请的一些实施例中,基于前述方案,获取模块601还配置为:将程序行为数据转换成预定格式的预处理数据;从预处理数据中提取出程序行为特征数据。在本申请的一些实施例中,基于前述方案,获取模块601还配置为:程序行为特征数据,包括以下任一或多个的组合:程序行为时长、程序行为结果和程序行为的连续性。在本申请的一些实施例中,基于前述方案,异常程序行为检测装置还包括:发送模块,用于获取异常的程序行为数据所对应的程序信息,将程序信息发送给用户。所属
技术领域
的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。下面参照图7来描述根据本申请的这种实施方式的电子设备70。图7显示的电子设备70仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。如图7所示,电子设备70以通用计算设备的形式表现。电子设备70的组件可以包括但不限于:上述至少一个处理单元71、上述至少一个存储单元72、连接不同系统组件(包括存储单元72和处理单元71)的总线73、显示单元74。其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元71执行,使得所述处理单元71执行本说明书上述“实施例方法”部分中描述的根据本申请各种示例性实施方式的步骤。存储单元72可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(rom)723。存储单元72还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线73可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。电子设备70也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备70交互的设备通信,和/或与使得该电子设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口75进行。并且,电子设备70还可以通过网络适配器76与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器76通过总线73与电子设备70的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。根据本申请一个实施例,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。根据本申请一个实施例,还提供了一种用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。此外,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本申请的范围仅由所附的权利要求来限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1