本发明涉及计算机技术领域,尤其涉及一种数据检测方法及系统。
背景技术:
近年来,随着网页web应用的广泛使用,web安全问题也日益突出,web后门入侵已经成为web应用中普遍存在的安全隐患之一。针对web后门入侵进行了一系列检测手段的研究与应用。
现有技术中通常采用如下几种方式进行检测:
方式一、构造带有危险标记的外部参数提供给待检测网站文件,然后判断待检测网站文件在运行过程中是否执行待危险标记的外部参数,若执行,确定待检测网站文件为后门文件,这种方式显然需要大量的程序操作,且已知的危险参数有限,使得确定后门文件的准确性较低。
方式二、如果超文本传输协议(hypertexttransferprotocol,http)登陆行为都是针对一个页面进行的,并且第一个请求包的响应包对应为登陆框,并且请求包的顺序为获取get请求、传递post请求、get请求,则判定服务器端的该页面为网页后门,显然方式二中只是针对登录场景的请求顺序来判定后门请求,判别场景有限,准确性仍旧较低。
方式三、获取待检测网站在第一统计时长内被访问的统一资源定位符(uniformresourcelocator,url),得到包含url的第一集合;获取待检测网站在第一统计时长之后的第二统计时长内被访问的url,得到包含url的第二集合;将第二集合中包含的且第一集合中未包含的url确定为可疑url;判断通过上述可疑url请求网页得到的网页代码中是否包含预先确定的后门指纹;若是,判定待检测网站存在后门程序。这种方式需要获得大量的url,存在漏判,准确性也是较低的。
综上可知,现有技术中存在电子设备在确定后门入侵时准确性较低的技术问题。
技术实现要素:
本发明实施例提供一种数据检测方法及系统,用以解决现有技术中存在的确定后门入侵时准确性较低的技术问题。
第一方面,本发明实施例提供一种数据检测方法,包括:
获取待检测请求数据,所述待检测请求数据为采用预设传输协议的请求数据;基于训练后的支持向量机svm模型对所述待检测请求数据进行检测,获得检测值;其中,所述训练后的svm模型为根据历史请求数据集合训练所确定的、用于识别异常请求数据的模型;确定所述检测值小于预设阈值,输出用于表征所述待检测请求数据为异常请求数据的检测结果。
在一种可能的实现方式中,在所述获取待检测请求数据之前,所述方法还包括:
获取包括至少两条历史异常请求数据的历史请求数据集合;
对所述历史请求数据集合中的每条历史请求数据进行词法分割,获得与所述历史请求数据集合对应的m个关键词及每个关键词对应的关键词特征信息,所述关键词特征信息包括相应关键词的出现次数,m为大于等于1的整数;
基于所述历史请求数据集合、所述m个关键词及每个关键词对应的关键词特征信息对待训练svm模型进行训练,获得训练后的svm模型。
在一种可能的实现方式中,在确定所述历史请求数据集合之前,所述方法还包括:获取历史标签样本集合,所述历史标签样本集合中每个历史标签样本对应一条历史请求数据;基于所述历史标签样本集合,确定所述历史请求数据集合。
在一种可能的实现方式中,所述基于所述历史请求数据集合、所述m个关键词及每个关键词对应的关键词特征信息对待训练svm模型进行训练,获得训练后的svm模型,包括:
基于所述关键词特征信息,确定所述m个关键词中出现次数从高到低排序后的前n个关键词作为特征关键词;其中,n为小于等于m的整数;
将所述历史请求数据集合中的每条历史请求数据与所述n个特征关键词进行匹配,获得多个n维特征向量,所述n维特征向量的个数与所述历史请求数据集合中的历史请求数据的条数相关;
基于所述多个n维特征向量对待训练svm模型进行训练,获得训练后的svm模型。
在一种可能的实现方式中,所述基于训练后的支持向量机svm模型对所述待检测请求数据进行检测,获得检测值,包括:对所述待检测请求数据进行词法分割,获得与所述待检测请求数据对应的至少一个关键词;将所述至少一个关键词与所述n个特征关键词进行匹配,获得与所述待检测请求数据对应的预测特征向量;将所述预设特征向量输入所述训练后的svm模型,获得检测值。
第二方面,本发明实施例提供一种数据检测系统,包括:
第一获取模块,用于获取待检测请求数据,所述待检测请求数据为采用预设传输协议的请求数据;
检测模块,用于基于训练后的支持向量机svm模型对所述待检测请求数据进行检测,获得检测值;其中,所述训练后的svm模型为根据历史请求数据集合训练所确定的、用于识别异常请求数据的模型;
输出模块,用于确定所述检测值小于预设阈值,输出用于表征所述待检测请求数据为异常请求数据的检测结果。
在一种可能的实现方式中,所述系统还包括:
第二获取模块,用于在获取待检测请求数据之前,获取包括至少两条历史异常请求数据的历史请求数据集合;
分割模块,用于对所述历史请求数据集合中的每条历史请求数据进行词法分割,获得与所述历史请求数据集合对应的m个关键词及每个关键词对应的关键词特征信息,所述关键词特征信息包括相应关键词的出现次数,m为大于等于1的整数;
训练模块,用于基于所述历史请求数据集合、所述m个关键词及每个关键词对应的关键词特征信息对待训练svm模型进行训练,获得训练后的svm模型。
在一种可能的实现方式中,所述系统还包括:
第三获取模块,用于在确定历史请求数据集合之前,获取历史标签样本集合,所述历史标签样本集合中每个历史标签样本对应一条历史请求数据;
确定模块,用于基于所述历史标签样本集合,确定所述历史请求数据集合
在一种可能的实现方式中,所述训练模块具体用于:
基于所述关键词特征信息,确定所述m个关键词中出现次数从高到低排序后的前n个关键词作为特征关键词;其中,n为小于等于m的正整数;
将所述历史请求数据集合中的每条历史请求数据与所述n个特征关键词进行匹配,获得多个n维特征向量,所述n维特征向量的个数与所述历史请求数据集合中的历史请求数据的条数相关;
基于所述多个n维特征向量对待训练svm模型进行训练,获得训练后的svm模型。
在一种可能的实现方式中,所述检测模块具体用于:
对所述待检测请求数据进行词法分割,获得与所述待检测请求数据对应的至少一个关键词;
将所述至少一个关键词与所述n个特征关键词进行匹配,获得与所述待检测请求数据对应的预测特征向量;
将所述预设特征向量输入所述训练后的svm模型,获得检测值。
第三方面,本发明实施例提供一种计算机装置,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如第一方面所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
本发明实施例中,通过训练后的支持向量机svm模型对待检测请求数据进行检测,获得检测值,其中,训练后的svm模型为根据历史请求数据集合训练所确定的、用于识别异常请求数据的模型;然后若检测值小于预设阈值,则输出用于表征待检测请求数据为异常请求数据的检测结果。即本发明实施例中是通过训练后的svm模型对待检测请求数据进行检测的,而由于svm模型由历史请求数据集合训练确定,因此准确性较高。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的一种数据检测方法的流程示意图;
图2为本发明实施例中提供的一种数据检测系统的结构示意图;
图3为本发明实施例中提供一种计算机装置的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
首先,对本发明实施例的整体思路进行简单的介绍。
本发明实施例中识别web后门入侵时可以分为三个阶段:
数据分析阶段:获取历史标签样本集合,然后根据历史标签样本集合确定历史请求数据集合,根据历史请求数据集合可以得到n个特征关键词,当然,随着历史标签样本的不断丰富,特征关键词也可以进行不断的更新和丰富的。
模型训练阶段:可以根据历史请求数据集合,利用关键词匹配方法,构造特征向量对支持向量机(supportvectormachine,svm)模型进行训练,得到具有识别异常请求数据能力的svm模型。
数据检测阶段:利用关键词匹配方法,构建与待检测请求数据对应的预测特征向量,然后将该预测特征向量输入训练后的svm模型,判断待检测请求数据是否为异常请求数据,即后门请求数据,进一步地,也可以判断待检测请求数据对应的web是否存在后门漏洞。
下面结合附图对本发明优选的实施方式进行详细说明。
实施例一
请参见图1,本发明实施例提供一种数据检测方法,可以应用于数据检测系统,其中,数据检测方法的过程可以描述如下:
s101:获取待检测请求数据,待检测请求数据为采用预设传输协议的请求数据;
s102:基于训练后的支持向量机svm模型对待检测请求数据进行检测,获得检测值;其中,训练后的svm模型为根据历史请求数据集合训练所确定的、用于识别异常请求数据的模型;
s103:确定检测值小于预设阈值,输出用于表征待检测请求数据为异常请求数据的检测结果。
svm模型是一个有监督的学习模型,通常可以用来进行模式识别、分类、以及回归分析。本发明实施例中可以通过历史标签样本集合对svm模型进行训练,使其具有识别异常请求数据的功能。
因此,在s101,即获取待检测请求数据之前,可以先通过但不仅限于以下方式对待训练的svm模型进行训练,以获得训练后的svm模型。
在一种可能的实现方式中,可以获取历史标签样本集合,比如web应用请求数据包等,由于一个历史标签样本中可能会有包括用户密码、证件号码等涉及用户隐私的敏感数据,因此,一个历史标签样本对应的一条历史请求数据可以为脱敏后的历史请求数据,即为除去涉及用户隐私的敏感数据外的数据。
根据历史标签样本集合,可以确定历史请求数据集合。
其中,历史请求数据集合可能包括至少两条历史异常请求数据,历史异常请求数据可以是web已经遭受过的被检测存储的后门入侵的数据。
举例来说,假设一个历史标签样本对应的一条脱敏的历史请求数据,如超文本传输协议(hypertexttransferprotocol,http)请求,其对应的一段源数据可以为“folderpath=d%3a%5cgonghui%5c&submit=go”。
在获取历史请求数据集合之后,可以对历史请求数据集合中的每条历史请求数据进行词法分割,获得与历史请求数据集合对应的m个关键词及每个关键词对应的关键词特征信息,关键词特征信息包括相应关键词的出现次数,m为大于等于1的整数。
下面以对一条历史请求数据进行词法分割为例。
仍沿用上述举例,即历史请求数据对应的一段源数据为:
folderpath=d%3a%5cgonghui%5c&submit=go
对其进行词法分割时,可以使用分隔符,如上述源数据中的“=”、“&”。分割后可以得到关键词分别为“folderpath”、“d%3a%5cgonghui%5c”、“submit”、“go”。当然,在实际应用中,分隔符也可以根据实际需要进行设定,本发明实施例中不作限制。
对历史请求数据集合中的每条历史请求数据可以按照上述方式进行词法分割,获得m个关键词,由于m个关键词中可能出现重复,因此,每个关键词都有其对应的关键词特征信息,其中,关键词特征信息可以包括相应关键词的重复出现次数。
进而可以根据历史请求数据集合、m个关键词及每个关键词对应的关键词特征信息对待训练svm模型进行训练,获得训练后的svm模型。
在一种可能的实现方式中,由于m个关键词中每个关键词都有其对应的重复出现个数,因此,可以按照重复出现次数从高到低对m个关键词进行排序,然后可以确定排序后的m个关键词中的前n个关键词作为特征关键词,其中,n为小于等于m的整数。
举例来说,假设m为100,即在对历史请求数据集合中的每个历史请求数据进行词法分割后,共获得100个关键词,且这100个关键词中每个关键词都对应其重复出现的次数。
可以根据需求,在按照重复出现次数从高到低对这100个关键词排序后,确定前n个关键词作为特征关键词,假设n为50,如表1所示。
表1
表1中的特征关键词是从正常历史请求数据和异常历史请求数据中提炼出来的,其中,100个关键词的前50个关键词中包括25个正样本特征关键词和25个负样本特征关键词。正样本关键词可以是对正常历史请求数据进行词法分割后得到的,相应地,负样本关键词可以是对异常历史请求数据进行词法分割后得到的。
在实际应用中,n的取值可以按照实际需求进行不断的更新。而由于web后门入侵行为的周期较短、变化多、变异较快,因此可以根据需要不断的根据新的请求行为来丰富更新特征关键词。
而由于在对每条历史请求数据进行词法分割时,都有其对应的多个关键词。因此,在获得n个特征关键词后,可以用每条历史请求数据对应的多个关键词与n个特征关键词进行匹配,相同时匹配结果可以设置为“1”,若每条历史请求数据对应的多个关键词中的一个关键词在n个特征关键词中找不到对应的关键词,则匹配结果可以设置为“0”,进而可以得到多个n维特征向量,且每个n维特征向量上的分量为“1”或“0”。n维特征向量的个数与历史请求数据集合中的历史请求数据的条数相关,即一个历史请求数据可以对应一个n维特征向量。
进而可以将得到的多个n维特征向量输入待训练svm模型进行训练,获得训练后的svm模型。
在实际应用中,对待训练svm模型的训练可以理解为构建svm优化函数,可以根据获得的多个n维特征向量利用序列最小优化(sequentialminimaloptimization,smo)算法求解svm优化函数的相关参数,进而实现对待训练svm模型的训练,具体计算过程可以参见现有技术,本发明实施例不作赘述。
在s101中,可以获取待检测请求数据,待检测请求数据为采用预设传输协议的请求数据,预设传输协议可以为超文本传输协议等,对应的待检测请求数据可以为http请求数据。
在获得待检测请求数据后,可以进入s102,即可以根据通过上述方式训练后得到的svm模型对待检测请求数据进行检测,获得检测值;其中,训练后的svm模型为根据历史请求数据集合训练所确定的、用于识别异常请求数据的模型。其中,检测值的范围可以为[-1,1]中的任意值。
在一种可能的实现方式中,基于训练后的支持向量机svm模型对待检测请求数据进行检测,获得检测值,可以通过以下方式进行。
首先,可以对获得的待检测请求数据进行词法分割,词法分割的过程与上述对历史请求数据进行词法分割的过程类似,本发明不再赘述。
在对待检测请求数据进行词法分割后,可以获得与待检测请求数据对应的至少一个关键词。
然后,可以将至少一个关键词与通过上述方式得到的n个特征关键词进行匹配,获得与待检测请求数据对应的预测特征向量,其中,匹配过程及获得预测特征向量的过程与前述获得多个n维特征向量过程类似,需要说明的是,预测特征向量也是n维的。
将预设特征向量输入训练后的svm模型,获得检测值。
进而可以进入s103,即可以判断检测值是否小于预设阈值,若小于,则表明待检测请求数据为异常请求数据,可以输出相应的检测结果。
本发明实施例中,由于检测值的范围可以在[-1,1],因此,预设阈值也可以根据需要设定为[-1,1]中的任意值。比如,设置预设阈值为0,若检测值为-0.3,显然-0.3<0,这时,可以判定待检测请求数据为异常请求数据,即该待检测请求数据可能存在web后门入侵,可以输出相应的检测结果。
综上所述,本发明实施例的一个或者多个技术方案,具有如下技术效果或者优点:
第一、本发明实施例中,通过训练后的支持向量机svm模型对待检测请求数据进行检测,获得检测值,其中,训练后的svm模型为根据历史请求数据集合训练所确定的、用于识别异常请求数据的模型;然后若检测值小于预设阈值,则输出用于表征待检测请求数据为异常请求数据的检测结果。即本发明实施例中是通过训练后的svm模型对待检测请求数据进行检测的,而由于svm模型由历史请求数据集合训练确定,因此准确性较高。
第二、由于本发明实施例中,请通过对待检测请求进行分析来识别后门行为,因此,降低了数据获取的难度,且降低了对计算性能的依赖。
第三、本发明实施例中使用了svm模型,使得检测过程自动化,判断结果准确、实时、鲁棒性好。
实施例二
请参见图2,本发明实施例提供一种数据检测系统,包括第一获取模块21、检测模块22和输出模块23。
其中,第一获取模块21,用于获取待检测请求数据,所述待检测请求数据为采用预设传输协议的请求数据;
检测模块22,用于基于训练后的支持向量机svm模型对所述待检测请求数据进行检测,获得检测值;其中,所述训练后的svm模型为根据历史请求数据集合训练所确定的、用于识别异常请求数据的模型;
输出模块23,用于确定所述检测值小于预设阈值,输出用于表征所述待检测请求数据为异常请求数据的检测结果。
在一种可能的实现方式中,所述系统还包括:
第二获取模块,用于在获取待检测请求数据之前,获取包括至少两条历史异常请求数据的历史请求数据集合;
分割模块,用于对所述历史请求数据集合中的每条历史请求数据进行词法分割,获得与所述历史请求数据集合对应的m个关键词及每个关键词对应的关键词特征信息,所述关键词特征信息包括相应关键词的出现次数,m为大于等于1的整数;
训练模块,用于基于所述历史请求数据集合、所述m个关键词及每个关键词对应的关键词特征信息对待训练svm模型进行训练,获得训练后的svm模型。
在一种可能的实现方式中,所述系统还包括:
第三获取模块,用于在确定历史请求数据集合之前,获取历史标签样本集合,所述历史标签样本集合中每个历史标签样本对应一条历史请求数据;
确定模块,用于基于所述历史标签样本集合,确定所述历史请求数据集合
在一种可能的实现方式中,所述训练模块具体用于:
基于所述关键词特征信息,确定所述m个关键词中出现次数从高到低排序后的前n个关键词作为特征关键词;其中,n为小于等于m的正整数;
将所述历史请求数据集合中的每条历史请求数据与所述n个特征关键词进行匹配,获得多个n维特征向量,所述n维特征向量的个数与所述历史请求数据集合中的历史请求数据的条数相关;
基于所述多个n维特征向量对待训练svm模型进行训练,获得训练后的svm模型。
在一种可能的实现方式中,所述检测模块22具体用于:
对所述待检测请求数据进行词法分割,获得与所述待检测请求数据对应的至少一个关键词;
将所述至少一个关键词与所述n个特征关键词进行匹配,获得与所述待检测请求数据对应的预测特征向量;
将所述预设特征向量输入所述训练后的svm模型,获得检测值。
实施例三
请参见图3,基于同一发明构思,本发明实施例中提供一种计算机装置,包括至少一个处理器31,以及与所述至少一个处理器31通信连接的存储器32和通信接口33,图3中以示出一个处理器31为例。
其中,所述存储器32存储有可被所述至少一个处理器31执行的指令,所述至少一个处理器31通过执行所述存储器32存储的指令,利用所述通信接口33执行如实施例一中所述的方法。
实施例四
基于同一发明构思,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如实施例一所述的方法。
在具体的实施过程中,计算机可读存储介质包括:通用串行总线闪存盘(universalserialbusflashdrive,usb)、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的存储介质。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。