一种命令注入攻击的检测方法、装置及计算机设备制造方法及图纸

技术编号:20369885 阅读:28 留言:0更新日期:2019-02-16 20:03
本申请提供一种命令注入攻击的检测方法、装置及计算机设备,所述方法包括:收集训练样本数据,所述训练样本数据包括存在命令注入攻击的数据和不存在命令注入攻击的数据;对所述训练样本数据进行预处理,获得训练样本标准数据;将所述训练样本标准数据注入检测模型进行训练,获得训练后的检测模型;对待检测样本数据进行预处理,获得检测样本标准数据;将所述检测样本标准数据注入训练后的检测模型,确定所述待检测样本数据的合法性。在本申请实施例中,利用机器学习对样本学习建立模型准确度高,执行速度快的特点,通过搜集的训练样本数据对检测模型进行训练,利用训练后的检测模型对待检测样本数据进行合法性检测,执行速度快,准确率高。

A Detection Method, Device and Computer Equipment for Command Injection Attack

This application provides a detection method, device and computer equipment for command injection attack, the method includes: collecting training sample data, the training sample data includes data with command injection attack and data without command injection attack; preprocessing the training sample data to obtain training sample standard data; and collecting the training sample standard data. Inject the detection model for training, and get the detection model after training; pretreat the test sample data to obtain the standard data of the test sample; inject the standard data of the test sample into the detection model after training to determine the validity of the test sample data. In the embodiment of this application, the machine learning is used to build the model with high accuracy and fast execution speed. The detection model is trained by the collected training sample data. The validity of the tested sample data is tested by the trained detection model. The execution speed is fast and the accuracy is high.

【技术实现步骤摘要】
一种命令注入攻击的检测方法、装置及计算机设备
本申请涉及计算机
,特别涉及一种命令注入攻击的检测方法、装置及计算机设备。
技术介绍
命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。一个恶意黑客可以利用这种攻击方法来非法获取数据或者网络资源。当用户进入一个有命令注入漏洞的网页时,他们的浏览器会通译那个代码,而这样就可能会导致恶意命令掌控该用户的电脑和他们的网络。现有技术中,对命令注入攻击的检测通常通过人工实现,检测效率较低。
技术实现思路
有鉴于此,本申请的目的在于提供一种命令注入攻击的检测方法、装置及计算机设备,以解决现有技术中检测效率较低的技术问题。其具体方案如下:第一方面,本申请实施例提供了一种命令注入攻击的检测方法,包括:收集训练样本数据,所述训练样本数据包括存在命令注入攻击的数据和不存在命令注入攻击的数据;对所述训练样本数据进行预处理,获得训练样本标准数据;将所述训练样本标准数据注入检测模型进行训练,获得训练后的检测模型;对待检测样本数据进行预处理,获得检测样本标准数据;将所述检测样本标准数据注入训练后的检测模型,确定所述待检测样本数据的合法性。优选地,所述训练样本数据为统一资源定位符url;所述对所述训练样本数据进行预处理包括:对所述训练样本数据依次进行解码、泛化处理和词法分割;所述对对待检测样本数据进行预处理包括:对所述训练样本数据依次进行解码、泛化处理和词法分割。优选地,所述泛化处理包括:对解码后的url中的指定字符进行替换,和/或删除注释信息。优选地,所述词法分割包括:对泛化处理后的url进行分割,获得观察序列;对所述观察序列进行去重处理,获得词集。优选地,所述将所述检测样本标准数据注入训练后的检测模型,确定所述待检测样本数据的合法性,包括:将所述检测样本标准数据注入训练后的检测模型,输出检测概率;判断所述检测概率是否大于或等于预设的检测阈值;若所述检测概率大于或等于预设的检测阈值,则确定所述待检测样本数据不是命令注入攻击;若所述检测概率小于预设的检测阈值,则确定所述待检测样本数据为命令注入攻击。第二方面,本申请实施例提供了一种命令注入攻击的检测装置,包括:收集模块,用于收集训练样本数据,所述训练样本数据包括存在命令注入攻击的数据和不存在命令注入攻击的数据;预处理模块,用于对所述训练样本数据进行预处理,获得训练样本标准数据;训练模块,将所述训练样本标准数据注入检测模型进行训练,获得训练后的检测模型;所述预处理模块,还用于对待检测样本数据进行预处理,获得检测样本标准数据;检测模块,用于将所述检测样本标准数据注入训练后的检测模型,确定所述待检测样本数据的合法性。优选地,所述训练样本数据为统一资源定位符url;所述预处理模块,具体用于对所述训练样本数据依次进行解码、泛化处理和词法分割;对所述训练样本数据依次进行解码、泛化处理和词法分割。优选地,所述泛化处理包括:对解码后的url中的指定字符进行替换,和/或删除注释信息。优选地,所述词法分割包括:对泛化处理后的url进行分割,获得观察序列;对所述观察序列进行去重处理,获得词集。第三方面,本申请实施例提供了一种计算机设备,括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述第一方面任一项所述的步骤。在本申请实施例中,利用机器学习对样本学习建立模型准确度高,模糊判断能力强,执行速度快的特点,通过搜集的训练样本数据对检测模型进行训练,利用训练后的检测模型对待检测样本数据进行合法性检测,执行速度快,准确率高。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例提供的一种命令注入攻击的检测方法流程示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图1,图1为本申请实施例提供的一种命令注入攻击的检测方法流程示意图,如图1所示,所述方法包括以下步骤。步骤S101:收集训练样本数据,所述训练样本数据包括存在命令注入攻击的数据和不存在命令注入攻击的数据。收集的训练样本数据用于机器学习,训练样本数据主要包括黑样本和白样本两部分,黑样本即存在命令注入攻击的url,可通过Python爬虫工具从weblog中爬取以及日常积累得到,白样本即不存在命令注入的url,通过Python爬虫工具爬取正常网站获得。收集数据用于建立命令注入检测模型,数据收集越多,包含的命令注入类型越全面,建立的模型越准确。同时考虑到数据重复性,数据收集之后需要简单的去重处理,提高数据的可用性。步骤S102:对所述训练样本数据进行预处理,获得训练样本标准数据。通过分析采集到的url信息可以发现如下特点:样本基本都经过了url编码,有的可能经过了多重编码,因此需进行URL循环解码;url路径结构基本一致,虽然具体路径信息不同,均由字母数字特殊字符来表示,可进行泛化处理;命令注入语句前后两个命令之间包含特殊字符&或|等,可作为检测项。在本申请实施例中,对所述训练样本数据进行预处理包括:对所述训练样本数据依次进行解码、泛化处理和词法分割,下面分别进行介绍。url解码,考虑到样本数据可能进行了url编码,因此首先需要对url解码,提高url参数提取的准确性,url解码可通过Python中unquote等函数实现。例如如下经过了url编码数据:127.0.0.1%26%3b%26ipconfig,解码之后为:127.0.0.1&;&ipconfig。url参数泛化处理,为减少向量空间,提高计算速度和效率,对url参数作泛化处理。具体原则为:将url参数之前的部分替换成U,url中的数字0-9全部替换成O,注释部分直接去掉。词法分割,通过词法分割,可以把攻击载荷序列化成观察序列。词集和词袋模型是机器学习中非常常用的一个数据处理模型,它们用于特征化字符串型数据。具体的对url进行参数提取,由于url不同参数之间存在空格分割,因此可以通过空格区分不同的参数。由url提取参数构成词汇表,通过遍历词汇表,去重处理,即可得到词集。步骤S103:将所述训练样本标准数据注入检测模型进行训练,获得训练后的检测模型。在本申请实施例中,使用hmmlearn进行训练,即可得到训练后的检测模型。hmmlearn是python下的一个HMM实现,是从scikit-learn独立出来的一个项目。将词法分割得到的词集向量M以及对应的长度矩阵M_len输入即可,需要M_len的原因是参数样本的长度可能不一致,所以需要单独输入。步骤S104:对待检测样本数据进行预处理,获得检测样本标准数据。对待检测样本数据进行预处理的方式参见步骤S102。步骤S1本文档来自技高网...

【技术保护点】
1.一种命令注入攻击的检测方法,其特征在于,包括:收集训练样本数据,所述训练样本数据包括存在命令注入攻击的数据和不存在命令注入攻击的数据;对所述训练样本数据进行预处理,获得训练样本标准数据;将所述训练样本标准数据注入检测模型进行训练,获得训练后的检测模型;对待检测样本数据进行预处理,获得检测样本标准数据;将所述检测样本标准数据注入训练后的检测模型,确定所述待检测样本数据的合法性。

【技术特征摘要】
1.一种命令注入攻击的检测方法,其特征在于,包括:收集训练样本数据,所述训练样本数据包括存在命令注入攻击的数据和不存在命令注入攻击的数据;对所述训练样本数据进行预处理,获得训练样本标准数据;将所述训练样本标准数据注入检测模型进行训练,获得训练后的检测模型;对待检测样本数据进行预处理,获得检测样本标准数据;将所述检测样本标准数据注入训练后的检测模型,确定所述待检测样本数据的合法性。2.根据权利要求1所述的方法,其特征在于,所述训练样本数据为统一资源定位符url;所述对所述训练样本数据进行预处理包括:对所述训练样本数据依次进行解码、泛化处理和词法分割;所述对对待检测样本数据进行预处理包括:对所述训练样本数据依次进行解码、泛化处理和词法分割。3.根据权利要求2所述的方法,其特征在于,所述泛化处理包括:对解码后的url中的指定字符进行替换,和/或删除注释信息。4.根据权利要求3所述的方法,其特征在于,所述词法分割包括:对泛化处理后的url进行分割,获得观察序列;对所述观察序列进行去重处理,获得词集。5.根据权利要求1所述的方法,其特征在于,所述将所述检测样本标准数据注入训练后的检测模型,确定所述待检测样本数据的合法性,包括:将所述检测样本标准数据注入训练后的检测模型,输出检测概率;判断所述检测概率是否大于或等于预设的检测阈值;若所述检测概率大于或等于预设的检测阈值,则...

【专利技术属性】
技术研发人员:牛彬
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1