恶意通信检测方法、装置、计算机设备和存储介质与流程

文档序号:21360952发布日期:2020-07-04 04:34阅读:298来源:国知局
恶意通信检测方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种恶意通信检测方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,涌现出了各种各样的软件,其中包括侵害用户合法权益的恶意软件。恶意软件通常会将自身的恶意通信行为隐藏在大量的访问请求中。在传统方式中,通常是根据恶意软件样本去识别恶意通信。但是这种识别恶意通信的方式容易被攻击者绕过,由此导致从大量访问请求中检测恶意通信的准确性较低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高恶意通信检测准确性的恶意通信检测方法、装置、计算机设备和存储介质。

一种恶意通信检测方法,所述方法包括:

获取预设时间段内多个访问请求对应的请求数据;

对所述请求数据进行特征提取,得到多个维度的请求特征;

将所述多个维度的请求特征输入恶意检测模型,所述恶意检测模型包括历史检测模型和同类检测模型;

通过所述历史检测模型对所述请求特征进行恶意检测,得到第一检测结果;

通过所述同类检测模型对所述请求特征进行恶意检测,得到第二检测结果;

对所述第一检测结果和所述第二检测结果进行校正处理,得到恶意通信检测结果。

一种恶意通信检测装置,所述装置包括:

数据获取模块,用于获取预设时间段内多个访问请求对应的请求数据;

特征提取模块,用于对所述请求数据进行特征提取,得到多个维度的请求特征;

模型调用模块,用于将所述多个维度的请求特征输入恶意检测模型,所述恶意检测模型包括历史检测模型和同类检测模型;

恶意检测模块,用于通过所述历史检测模型对所述请求特征进行恶意检测,得到第一检测结果;通过所述同类检测模型对所述请求特征进行恶意检测,得到第二检测结果;

结果校正模块,用于对所述第一检测结果和所述第二检测结果进行校正处理,得到恶意通信检测结果。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取预设时间段内多个访问请求对应的请求数据;

对所述请求数据进行特征提取,得到多个维度的请求特征;

将所述多个维度的请求特征输入恶意检测模型,所述恶意检测模型包括历史检测模型和同类检测模型;

通过所述历史检测模型对所述请求特征进行恶意检测,得到第一检测结果;

通过所述同类检测模型对所述请求特征进行恶意检测,得到第二检测结果;

对所述第一检测结果和所述第二检测结果进行校正处理,得到恶意通信检测结果。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取预设时间段内多个访问请求对应的请求数据;

对所述请求数据进行特征提取,得到多个维度的请求特征;

将所述多个维度的请求特征输入恶意检测模型,所述恶意检测模型包括历史检测模型和同类检测模型;

通过所述历史检测模型对所述请求特征进行恶意检测,得到第一检测结果;

通过所述同类检测模型对所述请求特征进行恶意检测,得到第二检测结果;

对所述第一检测结果和所述第二检测结果进行校正处理,得到恶意通信检测结果。

上述恶意通信检测方法、装置、计算机设备和存储介质,通过对预设时间段内多个访问请求对应的请求数据进行特征提取,得到多个维度的请求特征;将多个维度的请求特征输入包括历史检测模型和同类检测模型的恶意检测模型,分别对多维的请求特征进行恶意检测,不再依赖于已知的恶意软件样本,提高了恶意通信检测的准确性,不容易被攻击者绕过。并且对第一检测结果和第二检测结果进行校正处理,综合得到恶意通信检测结果,有效的提高了从大量访问请求中检测恶意通信的准确性。

附图说明

图1为一个实施例中恶意通信检测方法的应用环境图;

图2为一个实施例中恶意通信检测方法的流程示意图;

图3为另一个实施例中恶意通信检测方法的流程示意图;

图4为一个实施例中通过历史检测模型进行恶意检测的示意图;

图5为再一个实施例中恶意通信检测方法的流程示意图;

图6为又一个实施例中恶意通信检测方法的流程示意图;

图7为一个实施例中展示恶意通信提示信息的界面示意图;

图8为一个实施例中恶意通信检测装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的恶意通信检测方法,可以应用于如图1所示的应用环境中。其中,终端102可以通过网络向外部服务器106发送访问请求,以此与外部服务器106进行通信。在终端102与外部服务器106的通信过程中,内部服务器104可以通过交换机108获取终端102向外部服务器106通信的访问请求。内部服务器104可以获取预设时间段内多个访问请求对应的请求数据。内部服务器104可以对请求数据进行特征提取,得到多个维度的请求特征。内部服务器104将多个维度的请求特征输入恶意检测模型,恶意检测模型包括历史检测模型和同类检测模型,通过历史检测模型对请求特征进行恶意检测,得到第一检测结果,通过同类检测模型对请求特征进行恶意检测,得到第二检测结果。内部服务器104对第一检测结果和第二检测结果进行校正处理,得到恶意通信检测结果。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。内部服务器104可以是部署在用户集群内部的服务器,内部服务器104具体可以用独立的服务器或者是多个服务器组成的服务器集群来实现。外部服务器106可以是用户集群以外的服务器,外部服务器106也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种恶意通信检测方法,以该方法应用于图1中的内部服务器104为例进行说明,包括以下步骤:

步骤202,获取预设时间段内多个访问请求对应的请求数据。

内部服务器可以是部署在用户集群内部的服务器,内部服务器可以是用户集群对应部署的独立服务器,也可以是包括两个或两个以上服务器的服务器集群。用户集群是指包括至少两个用户的集群,用户集群中的用户可以有对应的终端。用户集群可以是多种领域内的集群。例如,用户集群具体可以是企业集群、学校集群以及社区集群等。

用户集群对应的终端通常需要进行向外通信,访问外部数据。例如,当终端需要浏览网页时,终端可以生成并发送对应的访问请求,从而获取网页数据。而终端中的恶意软件通常会将恶意通信行为隐藏在终端的正常通信行为中,不容易被发现。恶意软件会在未经用户许可的情况下,通过恶意通信侵害用户的合法权益。恶意通信是由恶意软件触发的,与外部服务器之间进行的直接或间接侵害用户终端合法权益的通信行为。例如,apt(advancedpersistentthreat,高级可持续威胁攻击)恶意软件可以通过恶意通信行为,对用户集群对应的终端进行持续有效的攻击活动。因此,需要准确的检测出终端发出的大量访问请求中隐藏的恶意通信。

用户集群内部可以在交换机处部署有探针,内部服务器可以通过探针获取终端发出的访问请求。当终端需要访问数据时,终端可以根据预设规则生成对应的访问请求。具体的,终端可以基于http(hypertexttransferprotocol,超文本传输协议)协议生成访问请求,访问获取对应网页数据。访问请求对应的请求数据具体可以包括请求行、请求头以及请求体等。

当访问请求经过交换机时,内部服务器可以通过部署在交换机处的探针获取终端发送的访问请求,得到访问请求对应的请求数据。内部服务器可以获取预设时间段内一个或多个终端发送的多个访问请求对应的请求数据。其中,预设时间段可以是根据实际检测需求预先设置的时间长度。预设时间段可以设置为一个常数。例如,预设时间段可以设置为一个小时。预设时间段还可以设置为一个变量。例如,预设时间段可以根据访问请求的数量,在不同时间设置不同长度的时间段。当访问请求数量较多时,预设时间段的长度可以设置较短。当访问请求数量较少时,预设时间段的长度可以设置较长,从而在保证恶意通信检测有效性和准确性的同时,还可以节省内部服务器的检测资源。内部服务器可以获取预设时间段内终端发送的多个访问请求对应的请求数据,针对多个访问请求进行恶意通信检测。

步骤204,对请求数据进行特征提取,得到多个维度的请求特征。

内部服务器可以获取预设时间段内每个访问请求对应的请求数据,对每个访问请求对应的请求数据进行特征提取,得到访问请求对应的多个维度的请求特征。具体的,内部服务器可以读取访问请求对应的请求数据,请求数据中具体可以包括请求方法、请求url(uniformresourcelocator,统一资源定位符)、http协议及版本、报文头以及报文体等。内部服务器可以对请求数据进行特征提取,得到访问请求对应的多维度的请求特征。请求特征具体可以包括但不限于访问行为特征、请求长度特征、请求结构特征、请求的熵特征以及请求时间特征等。

每个维度的请求特征可以包括多种特征数据。例如,访问行为特征具体可以包括是否有httpreferer(引用来源)、是否有cookie、访问服务是否常见、ua(useragent,用户代理)是否常见以及url是否常见等。请求长度特征具体可以包括请求长度、url长度、url参数长度、请求头长度以及请求体长度等。请求结构特征具体可以包括url参数名平均长度、url参数值平均长度、请求头名平均长度以及请求头值平均长度等。请求时间特征具体可以包括上一分钟请求数以及上一分钟外发字节数等。内部服务器根据提取出的多个维度的请求特征,能够充分、准确的反映访问请求的数据特征,从而更加准确的检测多个访问请求中隐藏的恶意通信。

步骤206,将多个维度的请求特征输入恶意检测模型,恶意检测模型包括历史检测模型和同类检测模型。

内部服务器可以调用恶意检测模型,将多个维度的请求特征输入恶意检测模型,通过恶意检测模型对多个访问请求中的恶意通信进行检测。具体的,恶意检测模型可以是根据实际需求预先建立、训练并配置在内部服务器中的,以便内部服务器调用恶意检测模型对访问请求对应的请求特征进行恶意检测。恶意检测模型可以是基于恶意检测算法建立的无监督检测模型,恶意检测算法可以是多种检测算法中的至少一种。例如,恶意检测算法具体可以是maha-svd(singularvaluedecomposition,奇异值分解)算法、孤立森林(isolationforest)算法等算法中的至少一种。

恶意检测模型具体可以包括历史检测模型和同类检测模型,历史检测模型和同类检测模型是分别基于不同的请求数据训练得到的。历史检测模型和同类检测模型分别对应的恶意检测算法可以是相同的,也可以是不同的。内部服务器可以调用恶意检测模型,根据恶意检测模型包括的历史检测模型和同类检测模型对请求特征进行恶意检测。

步骤208,通过历史检测模型对请求特征进行恶意检测,得到第一检测结果,

步骤210,通过同类检测模型对请求特征进行恶意检测,得到第二检测结果。

内部服务器可以将提取到的请求特征输入调用的恶意检测模型,通过恶意检测模型对请求特征进行恶意检测。具体的,恶意检测模型可以包括历史检测模型和同类检测模型。内部服务器可以分别将请求特征输入至历史检测模型和同类检测模型。内部服务器可以通过历史检测模型对请求特征进行恶意检测,得到历史检测模型输出的第一检测结果。通过同类检测模型对输入的请求特征进行恶意检测,得到同类检测模型输出的第二检测结果。第一检测结果和第二检测结果中可以包括或者不包括多个访问请求中检测为恶意通信的访问请求。

内部服务器可以单线程依次通过历史检测模型或同类检测模型分别对请求特征进行恶意检测,内部服务器还可以调用多线程,根据历史检测模型和同类检测模型并行对请求特征进行恶意检测。内部服务器可以调用基于机器学习的历史检测模型和同类检测模型对请求特征进行恶意检测,不再依赖于已知的恶意软件样本,不容易被攻击者绕过,也不需要人工分析和更新恶意软件特点,有效的节省了人力成本和时间成本,提高了恶意通信检测的准确性。

步骤212,对第一检测结果和第二检测结果进行校正处理,得到恶意通信检测结果。

内部服务器可以获取预先设置的校正策略,内部服务器可以根据预设的校正策略,对第一检测结果和第二检测结果进行校正处理。其中,校正策略可以是用户根据实际检测结果需求确定的。根据实际需求的不同,第一检测结果对应的校正策略与第二检测结果对应的校正策略可以是相同的,也可以是不同的。校正策略具体可以是静态策略,也可以是动态策略。内部服务器根据校正策略对第一检测结果和第二检测结果进行校正处理,进一步提高了检测结果的准确性。

内部服务器可以根据校正后的第一检测结果以及校正后的第二检测结果,综合确定恶意通信检测结果。当预设时间段内多个访问请求中存在隐藏的恶意通信请求时,恶意通信检测结果可以包括内部服务器从多个访问请求中检测出的恶意通信请求。当预设时间段内多个访问请求中不存在隐藏的恶意通信请求时,恶意通信检测结果就不包括恶意通信请求。

在本实施例中,内部服务器可以获取预设时间段内多个访问请求对应的请求数据,对请求数据进行特征提取,得到多个维度的请求特征,并将多个维度的请求特征输入恶意检测模型,通过恶意检测模型对请求特征进行恶意检测,不再依赖于已知恶意软件样本,不容易被攻击者绕过,也不需要维护恶意软件特点,节省了人力成本和时间成本。恶意检测模型包括历史检测模型和同类检测模型,通过历史检测模型和同类检测模型分别对请求特征进行恶意检测,有效的提高了检测结果的准确性。内部服务器还对第一检测结果和第二检测结果进行校正处理,根据校正后的第一检测结果和第二检测结果确定恶意通信检测结果,进一步提高检测结果的准确性,从而有效的提高了从大量访问请求中检测恶意通信的准确性。

在一个实施例中,如图3所示,提供了一种恶意通信检测方法,具体包括以下步骤:

步骤302,获取预设时间段内多个访问请求对应的请求数据,请求数据包括用户代理数据。

步骤304,根据用户代理数据将多个访问请求划分为多个请求集合。

步骤306,获取请求集合中访问请求之间的关联关系。

步骤308,根据关联关系对请求集合进行标签标记。

步骤310,根据请求集合对应的标签对访问请求进行过滤,得到待测请求。

步骤312,对待测请求对应的待测请求数据进行特征提取,得到多个维度的请求特征。

步骤314,将多个维度的请求特征输入恶意检测模型,恶意检测模型包括历史检测模型和同类检测模型。

步骤316,通过历史检测模型对请求特征进行恶意检测,得到第一检测结果。

步骤318,通过同类检测模型对请求特征进行恶意检测,得到第二检测结果。

步骤320,对第一检测结果和第二检测结果进行校正处理,得到恶意通信检测结果。

在获取到预设时间段内多个访问请求对应的请求数据之后,内部服务器可以对获取到的多个访问请求进行过滤,得到待测请求。内部服务器可以对待测请求对应的待测请求数据进行特征提取,得到待测请求所对应多个维度的请求特征。内部服务器通过对多个访问请求进行过滤,筛除了多个访问请求中可以确定的非恶意访问请求,减少了非恶意访问请求对恶意检测的干扰,有效的提高了恶意通信检测的准确性,减少了内部服务器需要进行恶意检测的数据量,节省了内部服务器所需消耗的资源。

具体的,当内部服务器为独立服务器时,内部服务器可以获取预设时间段内所有的访问请求。当内部服务器为包括两个或两个以上服务器的服务器集群时,内部服务器可以根据每一个服务器对应的访问请求分别进行过滤。内部服务器可以读取请求数据中包括的用户代理(ua)数据,用户代理数据可以记载在访问请求对应的请求头中。用户代理数据是一个特殊字符串头,内部服务器可以通过用户代理数据识别对应终端使用的操作系统及版本、浏览器及版本、浏览器渲染引擎、浏览器语言以及浏览器插件等。内部服务器可以根据访问请求对应的用户代理数据,将多个访问请求划分为两个或两个以上的请求集合。内部服务器具体可以将用户代理数据相同的访问请求划分在同一请求集合中。

内部服务器可以获取请求集合中访问请求之间的关联关系。具体的,在多个访问请求中,一些访问请求是当用户主动访问页面时,触发生成的访问请求。而另一些访问请求可以是基于访问请求响应后,浏览器自行触发访问请求,以此自动获取页面数据。例如,当终端根据用户操作获取html(hypertextmarkuplanguage,超级文本标记语言)页面后,浏览器可以自行触发访问请求,自动获取html页面对应的图片、脚本以及css(cascadingstylesheets,层叠样式表)数据等。基于部分主访问请求触发的子访问请求,与主访问请求之间存在关联关系。在多个访问请求中,还可以包括不是由用户产生的访问请求。例如,终端中的反病毒软件基于更新查询所生成的访问请求。这些访问请求通常是独立请求,不存在与其他访问请求之间的关联关系。

在一个实施例中,内部服务器可以将请求集合中每个访问请求对应的访问记录记作节点。用户或终端原始触发的访问记录记作主节点,基于主节点生成的访问记录记作子节点。内部服务器可以根据主节点与所对应子节点之间的关联关系,将主节点与子节点用一条边连接起来,得到包括主节点、子节点以及主节点与对应子节点之间的边的访问关系图。

具体的,内部服务器可以读取请求集合中访问请求对应的请求头,内部服务器识别访问请求对应的请求头中的“content-type”字段,当字段值为html,javascript,css或者flash中的任何一个时,内部服务器可以将对应的节点记作主节点,从而识别出请求集合中的所有主节点。内部服务器可以获取请求集合中节点对应的引用来源,包括节点对应的referer值或者origin域,内部服务器可以将节点对应的引用来源与主节点对应的host值进行匹配。当匹配成功时,确定该节点为主节点对应的子节点,建立主节点与子节点之间的关联关系。可以理解的,一个节点可以是其他主节点对应的子节点,也可以是其他子节点对应的主节点。

内部服务器可以根据访问请求之间的关联关系对请求集合进行标签标记。具体的,内部服务器可以根据请求集合中访问请求之间的关联关系,将请求集合标记为“独立集合”或“关联集合”。可以理解的,内部服务器还可以用其他一种或多种可以相互区别的标签对请求集合进行标记。例如,内部服务器还可以将请求集合标记为“backgroud”或“brower”。内部服务器可以根据请求集合对应的标签,对访问请求进行过滤,得到待测请求。内部服务器可以根据请求集合对应的标签,过滤掉被标签标记为“关联集合”的请求集合,相关联的访问请求通常是由用户触发的正常通信。内部服务器可以将被标记为“独立集合”的请求集合中的访问请求记作待测请求。内部服务器可以根据关联关系对划分出的每个请求集合进行标签标记,根据标记的标签对多个请求集合进行过滤,得到待测请求。内部服务器对待测请求对应的待测请求数据进行特征提取,根据提取到的请求特征进行恶意检测,得到“独立集合”中的访问请求对应的恶意通信检测结果。

在本实施例中,内部服务器可以根据请求数据中的用户代理数据,将多个访问请求划分为多个请求集合,根据请求集合中访问请求之间的关联关系对请求集合进行标签标记,根据请求集合对应的标签对访问请求进行过滤,从而有效的减少了内部服务器进行恶意检测的数据量,节省了内部服务器检测所消耗的资源,提高了恶意检测效率。同时,避免了非恶意访问请求对恶意检测的干扰,有效的提高了在大量访问请求中检测恶意通信的准确性。

在一个实施例中,上述根据关联关系对请求集合进行标签标记的步骤包括:根据关联关系确定请求集合中不存在对应子节点的主节点作为独立节点;统计请求集合对应的总节点数以及独立节点数;当独立节点数与总节点数之间的比值大于预设阈值时,将请求集合标记为独立集合。

内部服务器可以根据请求集合中访问请求之间的关联关系,将请求集合中不存在对应子节点的主节点记作独立节点。独立节点对应的访问记录是在请求集合中独立存在的,不存在由独立节点所产生的访问请求。内部服务器可以统计请求集合中所有节点所对应的总节点数,以及独立节点所对应的独立节点数。内部服务器可以将统计的独立节点数与总节点数进行商运算,计算独立节点数与总节点数之间的比值。内部服务器可以将独立节点数与总节点数之间的比值与预设阈值进行比对。预设阈值可以是用户根据实际需求预先设置的占比阈值。

由于正常情况下,预设时间段内非恶意软件自行产生的独立节点占比相对较小,而恶意通信通常是独立的访问请求。因此,当独立节点数与总节点数之间的比值小于或等于预设阈值时,确定请求集合中独立节点相对较少,表示访问请求中大部分是由用户触发的访问请求,较少独立节点可能为非恶意软件自行产生的访问请求,例如非恶意软件产生的更新查询请求等,不需要对该请求集合进行恶意检测。内部服务器可以将请求集合标记为“关联集合”。当独立节点数与总节点数之间的比值大于预设阈值时,确定请求集合中独立节点相对较多,表示访问请求中很可能存在恶意通信。内部服务器可以将该请求集合标记为“独立集合”,将独立集合中的访问请求记作待测请求,对待测请求对应的待测请求数据进行恶意检测。

在本实施例中,内部服务器根据请求集合中访问请求之间的关联关系,确定不存在对应子节点的主节点作为独立节点,统计请求集合对应的总节点数以及独立节点数。当独立节点数与总节点数之间的比值大于预设阈值时,内部服务器可以将对应的请求集合标记为独立集合,对独立集合中的访问请求进行恶意检测,从而对大量的访问请求进行过滤,有效的减少了内部服务器进行恶意检测的数据量,节省了内部服务器检测所消耗的资源,提高了恶意检测效率。同时,避免了非恶意访问请求对恶意检测的干扰,有效的提高了在大量访问请求中检测恶意通信的准确性。

在一个实施例中,在获取预设时间段内多个访问请求对应的请求数据之后,上述恶意通信检测方法还包括:统计多个访问请求各自对应的资源定位符;根据资源定位符的数量对资源定位符进行排序,得到资源定位符序列;将位于资源定位符序列预设位置的资源定位符记作待删定位符,删除包括待删定位符的请求数据,得到待测请求数据。

内部服务器在获取到预设时间段内多个访问请求对应的请求数据之后,还可以从请求数据中读取多个访问请求各自对应的资源定位符,资源定位符具体可以是访问请求对应的统一资源定位符(url)。内部服务器可以统计多个访问请求各自对应的资源定位符,对相同的资源定位符进行计数,得到多个资源定位符各自对应的数量。内部服务器可以根据资源定位符的数量,对资源定位符进行排序,得到资源定位符序列。内部服务器可以根据资源定位符的数量大小,从小到大或者从大到小排序得到资源定位符序列。资源定位符序列可以清楚、直接的表示出预设时间段内访问请求对应资源定位符的频次。

内部服务器可以获取位于资源定位符序列预设位置的资源定位符,将位于预设位置的资源定位符记作待删定位符。其中,预设位置可以是用户根据实际需求预先设置的序列位置。例如,当资源定位符序列是从大到小排序时,预设位置可以设置为序列前三。内部服务器可以从资源定位符序列的预设位置获取在预设时间段内高频出现的资源定位符,预设位置的资源定位符为用户集群终端高频访问的资源定位符,该资源定位符对应的访问请求通常为非恶意访问请求。内部服务器可以删除包括待删定位符的请求数据,得到待测请求数据。内部服务器可以根据待测请求数据对待测请求进行恶意检测。

在本实施例中,内部服务器通过统计多个访问请求各自对应的资源定位符,根据资源定位符的数量对资源定位符进行排序,得到资源定位符序列。内部服务器可以删除包括位于预设位置的待删定位符的请求数据,得到过滤后的待测请求数据,从而有效的减少了内部服务器进行恶意检测的数据量,节省了内部服务器检测所消耗的资源,提高了恶意检测效率。同时,避免了非恶意访问请求对恶意检测的干扰,有效的提高了在大量访问请求中检测恶意通信的准确性。

在一个实施例中,由于恶意通信通常是与外部服务器进行通信。因此,内部服务器在获取到预设时间段内的多个访问请求之后,可以识别访问请求的通信对象。当用户集群对应终端发出的访问请求是向外部服务器进行的通信时,内部服务器可以筛选出向外通信的访问请求进行恶意检测。当访问请求是访问用户集群对应的内部数据时,内部服务器可以删除对应的访问请求。以此对预设时间段内的访问请求进行过滤,减少内部服务器进行恶意检测的数据量,节省了内部服务器检测所消耗的资源,提高了恶意检测效率。同时,避免了非恶意访问请求对恶意检测的干扰,有效的提高了在大量访问请求中检测恶意通信的准确性。

在一个实施例中,内部服务器获取到预设时间段内的多个访问请求之后,内部服务器可以先识别访问请求的通信对象,筛选出向外部服务器通信的访问请求。内部服务器可以继续统计向外访问请求对应的资源定位符,根据排列的资源定位符序列删除包括位于预设位置的待删定位符的请求数据,得到删除后的请求数据。内部服务器可以根据请求数据中的用户代理数据将访问请求划分为多个请求集合,根据请求集合中访问请求之间的关联关系对访问请求进行过滤,得到过滤后的目标请求数据。内部服务器可以对目标请求数据进行特征提取,根据提取到的请求特征进行恶意检测,得到恶意通信检测结果。

在本实施例中,内部服务器获取到预设时间段内多个访问请求对应的请求数据之后,可以通过多种过滤方式对请求数据进行预处理,对预设时间段内的访问请求进行层层过滤,从而有效的减少了内部服务器进行恶意检测的数据量,节省了内部服务器检测所消耗的资源,提高了恶意检测效率。同时,避免了非恶意访问请求对恶意检测的干扰,有效的提高了在大量访问请求中检测恶意通信的准确性。

在一个实施例中,上述恶意通信检测方法还包括:获取历史时间段内非恶意通信请求对应的请求数据;根据非恶意通信请求对应的请求数据,对标准恶意检测模型进行训练,得到历史检测模型。

内部服务器可以获取同一内部服务器历史时间段内非恶意通信请求对应的请求数据。历史时间段是指相较于预设时间段之前的一段历史时间长度,历史时间段的长度可以根据实际需求进行设置。例如,历史时间段可以是历史最近一周时间。内部服务器可以获取历史时间段内已经检测出的非恶意通信请求,根据非恶意通信请求对应的请求数据对标准恶意检测模型进行训练。其中,标准恶意检测模型是指根据恶意检测算法建立的恶意检测模型。恶意检测算法可以是多种检测算法中的至少一种。例如,恶意检测算法具体可以是maha-svd(singularvaluedecomposition,奇异值分解)算法、孤立森林(isolationforest)算法等。内部服务器可以根据历史时间段内非恶意通信请求对应的请求数据对标准恶意检测模型进行训练,直到训练后的模型精度达到预设要求,则确定训练后的标准恶意检测模型为历史检测模型。

在本实施例中,内部服务器可以获取历史时间段内非恶意通信请求对应的请求数据,根据历史时间段内非恶意通信请求对应的请求数据对标准恶意检测模型进行训练,得到历史检测模型,有助于内部服务器调用历史检测模型对待测请求数据进行恶意检测。相较于传统基于已知恶意软件样本进行恶意检测,本实施例中通过机器学习模型进行恶意检测,不需要依赖恶意软件样本,不容易被攻击者绕过,节省了维护恶意软件样本的人力成本和时间成本,有效的提高了恶意通信检测的准确性。

在一个实施例中,内部服务器还可以获取预设时间段内访问请求对应的同类请求。其中,预设时间段与上述实施例中获取多个访问请求对应请求数据的预设时间段相同。内部服务器可以获取与多个访问请求类型相同的同类请求,根据预设时间段内同类请求对应的同类请求数据对标准恶意检测模型进行训练,直到训练后的标准恶意检测模型到达预设精度,得到同类检测模型。同类检测模型采用的恶意检测算法与历史检测模型可以是相同的,也可以是不同的。内部服务器可以根据同类检测模型对待测请求数据进行恶意检测,通过相同时间段内的同类请求数据与待测请求数据进行比对,得到恶意通信检测结果。

在本实施例中,内部服务器可以获取相同时间段内同类请求对应的同类请求数据,根据同类请求数据对标准恶意检测模型进行训练,得到同类检测模型,有助于内部服务器调用同类检测模型对待测请求数据进行恶意检测。相较于传统基于已知恶意软件样本进行恶意检测,本实施例中通过机器学习模型进行恶意检测,不需要依赖恶意软件样本,不容易被攻击者绕过,节省了维护恶意软件样本的人力成本和时间成本,有效的提高了恶意通信检测的准确性。

在一个实施例中,上述通过历史检测模型对请求特征进行恶意检测,得到第一检测结果的步骤包括:根据多维度的请求特征生成请求特征矩阵;将请求特征矩阵输入历史检测模型,通过历史检测模型比对请求特征与历史特征之间的特征相似度;根据特征相似度确定第一检测结果。

内部服务器可以根据从待测请求数据中提取出的多维度的请求特征生成请求特征矩阵,将请求特征矩阵输入至历史检测模型中。历史检测模型是根据同一内部服务器在历史时间段内非恶意通信请求的请求数据所对应的历史请求特征训练得到的。如图4所示,图4为一个实施例中通过历史检测模型进行恶意检测的示意图。内部服务器可以通过历史检测模型对请求特征矩阵进行预处理。具体的,预处理方式可以包括去噪处理,内部服务器可以过滤掉请求特征矩阵中的噪声数据。内部服务器具体可以通过多种方式对请求特征矩阵进行去噪处理。例如,内部服务器可以通过rpca(robustprincipalcomponentanalysis,鲁棒性主成分分析)对请求特征矩阵进行去噪处理,从而避免噪声数据对恶意检测的干扰,有效的提高了恶意通信检测的准确性。

内部服务器可以通过历史检测模型对请求特征矩阵进行相似度比对,比对得到请求特征与历史特征之间的特征相似度。具体的,历史检测模型中包括同一内部服务器在历史时间段内历史请求对应的历史特征。内部服务器可以通过多种方式比对请求特征与历史特征之间的特征相似度。例如,内部服务器可以通过svd(singularvaluedecomposition,奇异值分解)分解请求特征矩阵,计算请求特征与历史特征之间的特征相似度。其中,特征相似度具体可以通过计算马氏距离(mahalanobisdistance)表示。

内部服务器可以根据请求特征与历史特征之间的特征相似度,对请求特征对应的访问请求进行恶意性评价。恶意性评价具体可以通过打恶意分值或者置信度的方式来表示。恶意分值具体可以是百分制的。当请求特征与历史特征之间的特征相似度越低,则请求特征对应访问请求的恶意分值越高,表示访问请求越有可能是恶意通信请求。反之,则请求特征对应访问请求的恶意分值越低。内部服务器可以根据访问请求对应的恶意分值确定恶意通信请求。内部服务器可以对恶意分值进行归一化处理,得到历史检测模型输出的第一检测结果。第一检测结果具体可以包括所有访问请求各自对应的恶意分值,也可以包括确定为恶意通信请求对应的请求数据。

在本实施例中,内部服务器可以根据多个维度的请求特征生成请求特征矩阵,将请求特征矩阵输入至历史检测模型中,通过历史检测模型比对请求特征与历史特征之间的特征相似度,根据特征相似度确定第一检测结果,从而更加准确的从大量访问请求中检测出隐藏的恶意通信请求,有效的提高了恶意通信检测的准确性。

在一个实施例中,内部服务器还可以将多个维度的请求特征输入至同类检测模型,通过同类检测模型比对请求特征与相同时间段内的同类特征之间的特征相似度,根据特征相似度确定第二检测结果。当基于相同的恶意检测算法建立历史检测模型和同类检测模型时,同类检测模型的恶意检测过程与上述实施例中历史检测模型的恶意检测过程较为相似,故在此不再赘述。

在一个实施例中,如图5所示,提供了一种恶意通信检测方法,具体包括以下步骤:

步骤502,获取预设时间段内多个访问请求对应的请求数据。

步骤504,对请求数据进行特征提取,得到多个维度的请求特征。

步骤506,将多个维度的请求特征输入恶意检测模型,恶意检测模型包括历史检测模型和同类检测模型。

步骤508,通过历史检测模型对请求特征进行恶意检测,得到第一检测结果;通过同类检测模型对请求特征进行恶意检测,得到第二检测结果。

步骤510,获取预设的校正策略,根据校正策略对第一检测结果和第二检测结果进行校正处理,得到第一校正结果和第二校正结果。

步骤512,根据第一校正结果与第二校正结果确定恶意通信检测结果。

当内部服务器调用历史检测模型和同类检测模型对请求特征进行恶意检测,得到第一检测结果和第二检测结果之后,内部服务器还可以对第一检测结果和第二检测结果进行校正处理。具体的,第一检测结果和第二检测结果中可以包括一个或多个检测出的恶意通信请求。内部服务器可以获取预设的校正策略,校正策略可以是用户根据实际运行需求预先设置的策略,校正策略可以是动态策略,也可以是静态策略。例如,内部服务器可以根据校正策略删除检测结果中上一分钟请求书大于预设值的访问请求。校正策略还可以包括白名单,白名单中记载有非恶意的ua。内部服务器可以删除检测结果中包括白名单所记载ua的访问请求。以此对恶意检测模型输出的检测结果进行校正处理,从而进一步提高了恶意通信检测结果的准确性。

基于实际运行需求,第一检测结果和第二检测结果对应的校正策略可以是相同的,内部服务器可以根据相同的校正策略对第一检测结果和第二检测结果进行校正处理。第一检测结果和第二检测结果对应的校正策略也可以是不同的。预设的校正策略中可以包括第一校正策略和第二校正策略。内部服务器可以根据第一校正策略对第一检测结果进行校正,得到第一校正结果。根据第二校正策略对第二检测结果进行校正,得到第二校正结果。

内部服务器可以根据第一校正结果和第二校正结果确定恶意通信检测结果。具体的,内部服务器可以将第一校正结果与第二校正结果进行匹配,匹配第一校正结果与第二校正结果中一致的访问请求,得到第一校正结果与第二校正结果的交集,确定匹配一致的访问请求为恶意通信请求,得到恶意通信检测结果。在其中一个实施例中,恶意通信检测过程中的任何一个检测结果都可以不包括为恶意通信的访问请求。

在本实施例中,内部服务器可以获取预设的校正策略,根据校正策略对第一检测结果和第二检测结果进行校正处理,根据校正后的第一校正结果和第二校正结果确定恶意通信检测结果,有效的提高了恶意通信检测结果的准确性,提高了在大量访问请求中检测恶意通信的准确性。

在一个实施例中,如图6所示,提供了一种恶意通信检测方法,具体包括以下步骤:

步骤602,获取预设时间段内多个访问请求对应的请求数据,请求数据包括用户代理数据。

内部服务器获取到访问请求之后,可以筛选出发送向外部服务器的访问请求。内部服务器还可以统计多个访问请求各自对应的资源定位符;根据资源定位符的数量对资源定位符进行排序,得到资源定位符序列;将位于资源定位符序列预设位置的资源定位符记作待删定位符,删除包括待删定位符的请求数据,得到待测请求数据。

步骤604,根据用户代理数据将多个访问请求划分为多个请求集合。

步骤606,获取请求集合中访问请求之间的关联关系。

步骤608,根据关联关系对请求集合进行标签标记。

步骤610,根据请求集合对应的标签对访问请求进行过滤,得到待测请求。

步骤612,对待测请求对应的待测请求数据进行特征提取,得到多个维度的请求特征。

步骤614,将多个维度的请求特征输入恶意检测模型,恶意检测模型包括历史检测模型和同类检测模型。

内部服务器可以预先获取历史时间段内非恶意通信请求对应的请求数据;根据非恶意通信请求对应的请求数据,对标准恶意检测模型进行训练,得到历史检测模型。内部服务器还可以预先获取相同时间段内同类请求对应的同类请求数据;根据同类请求对应的同类请求数据,对标准恶意检测模型进行训练,得到同类检测模型。

步骤616,通过历史检测模型对请求特征进行恶意检测,得到第一检测结果。

内部服务器可以根据多个维度的请求特征生成请求特征矩阵;将请求特征矩阵输入历史检测模型,通过历史检测模型比对请求特征与历史特征之间的特征相似度;根据特征相似度确定第一检测结果。

步骤618,根据校正策略对第一检测结果进行校正处理,得到第一校正结果。

步骤620,通过同类检测模型对请求特征进行恶意检测,得到第二检测结果。

步骤622,根据校正策略对第二检测结果进行校正处理,得到第二校正结果。

步骤624,根据第一校正结果和第二校正结果确定恶意通信检测结果。

步骤626,对恶意通信检测结果进行归一化处理,生成恶意通信提示信息。

步骤628,将恶意通信提示信息发送至对应的终端,使得终端基于显示界面展示恶意通信提示信息。

内部服务器通过对预设时间段内的多个访问请求进行恶意检测,得到恶意通信检测结果之后,内部服务器可以对恶意通信检测结果进行归一化处理,生成恶意通信提示信息。恶意通信提示信息可以是统一的可视化信息。如图7所示,图7为一个实施例中展示恶意通信提示信息的界面示意图。内部服务器可以将恶意通信提示信息发送至用户集群内对应的终端,从而指示终端基于显示界面展示恶意通信提示信息,恶意通信提示信息中可以包括恶意通信请求对应的部分或全部请求数据。具体的,内部服务器生成恶意通信提示信息之后,可以将恶意通信提示信息写回es(elasticsearch,分布式全文搜索引擎)、kafka(分布式发布订阅消息系统)或者mysql(关系型数据库管理系统)等,以便终端展示恶意通信提示信息。

在本实施例中,内部服务器从大量访问请求中准确的检测出恶意通信检测结果之后,可以对恶意通信检测结果进行归一化处理,生成恶意通信提示信息,并把恶意通信提示信息发送至对应的终端,使得终端基于显示界面展示恶意通信提示信息,便于用户清楚、直观的得到恶意通信检测结果。

本申请还提供一种应用场景,该应用场景应用上述的恶意通信检测方法。具体地,该恶意通信检测方法可以应用于企业中。企业终端通常允许向外浏览网页,并且在浏览过程中会产生大量的指向外部服务器的访问请求,企业终端中的恶意软件可以隐藏恶意通信在访问请求中。基于该恶意通信检测方法,可以在企业内部署内部服务器,当访问请求经过交换机时,内部服务器可以通过探针获取访问请求。内部服务器可以获取预设时间段内多个访问请求对应的请求数据,内部服务器可以对请求数据进行特征提取,得到多个维度的请求特征。内部服务器调用恶意检测模型,将多个维度的请求特征输入恶意检测模型。恶意检测模型包括历史检测模型和同类检测模型,通过历史检测模型对请求特征进行恶意检测,得到第一检测结果,通过同类检测模型对请求特征进行恶意检测,得到第二检测结果。内部服务器对第一检测结果和第二检测结果进行校正处理,得到恶意通信检测结果,将恶意通信检测结果发送至企业对应的终端,以便企业用户及时发现终端中因此杨的恶意通信,防止恶意软件通过恶意通信侵害企业用户的合法权益。

应该理解的是,虽然图2、3、5、6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、5、6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种恶意通信检测装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:数据获取模块802、特征提取模块804、模型调用模块806、恶意检测模块808和结果校正模块810,其中:

数据获取模块802,用于获取预设时间段内多个访问请求对应的请求数据。

特征提取模块804,用于对请求数据进行特征提取,得到多个维度的请求特征。

模型调用模块806,用于将多个维度的请求特征输入恶意检测模型,恶意检测模型包括历史检测模型和同类检测模型。

恶意检测模块808,用于通过历史检测模型对请求特征进行恶意检测,得到第一检测结果;通过同类检测模型对请求特征进行恶意检测,得到第二检测结果。

结果校正模块810,用于对第一检测结果和第二检测结果进行校正处理,得到恶意通信检测结果。

在一个实施例中,请求数据包括用户代理数据,上述特征提取模块804还用于根据用户代理数据将多个访问请求划分为多个请求集合;获取请求集合中访问请求之间的关联关系;根据关联关系对请求集合进行标签标记;根据请求集合对应的标签对访问请求进行过滤,得到待测请求;对待测请求对应的待测请求数据进行特征提取。

在一个实施例中,上述特征提取模块804还用于根据关联关系确定请求集合中不存在对应子节点的主节点作为独立节点;统计请求集合对应的总节点数以及独立节点数;当独立节点数与总节点数之间的比值大于预设阈值时,将请求集合标记为独立集合。

在一个实施例中,上述数据获取模块802还用于统计多个访问请求各自对应的资源定位符;根据资源定位符的数量对资源定位符进行排序,得到资源定位符序列;将位于资源定位符序列预设位置的资源定位符记作待删定位符,删除包括待删定位符的请求数据,得到待测请求数据。

在一个实施例中,上述恶意通信检测装置还包括模型训练模块,用于获取历史时间段内非恶意通信请求对应的请求数据;根据非恶意通信请求对应的请求数据,对标准恶意检测模型进行训练,得到历史检测模型。

在一个实施例中,上述恶意检测模块808还用于根据多个维度的请求特征生成请求特征矩阵;将请求特征矩阵输入历史检测模型,通过历史检测模型比对请求特征与历史特征之间的特征相似度;根据特征相似度确定第一检测结果。

在一个实施例中,上述结果校正模块810还用于获取预设的校正策略,根据校正策略对第一检测结果和第二检测结果进行校正处理,得到第一校正结果和第二校正结果;根据第一校正结果与第二校正结果确定恶意通信检测结果。

在一个实施例中,上述恶意通信检测装置还包括提示模块,用于对恶意通信检测结果进行归一化处理,生成恶意通信提示信息;将恶意通信提示信息发送至对应的终端,使得终端基于显示界面展示恶意通信提示信息。

关于恶意通信检测装置的具体限定可以参见上文中对于恶意通信检测方法的限定,在此不再赘述。上述恶意通信检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储恶意通信检测数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种恶意通信检测方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各恶意通信检测方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各恶意通信检测方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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