一种基于机器学习检测恶意访问的方法与流程

专利查询2023-6-30  95



1.本发明涉及对访问意图进行判别的技术领域,尤其涉及一种基于学习机器学习检测恶意访问的方法。


背景技术:

2.web一种基于超文本的、全球性的、动态交互的、跨平台的分布式图形信息系统,建立在internet上的一种网络服务,为访问者在internet上查找和浏览信息提供了图形化的、易于访问的直观界面。但有部分访问者基于利益驱动,会通过web技术进行信息窃取、攻击服务器等行为。现有的web防火墙、安全防护软件等基于规则匹配的形式对访问者进行访问意图的判别,对规则的设定有较高的要求,亦不能保证规则可以覆盖所有攻击手段,黑客可以通过不断探索和尝试,对规则进行绕过和欺骗。因此现有防护手段有较大的局限性。web安全防护工作上迫切需要一种可以进行自我“进化”的防御手段,以面对日新月异的层出不穷的恶意请求进行判别和防御。通过在本领域进行改进的机器学习来模拟或实现人类的学习行为,不断自我积累和学习恶意访问的攻击手段,使之不断改善防护能力。
3.现有技术方案:
4.现有web防御恶意访问的技术主要利用正则表达式或关键词匹配来校验访问请求,需要预先设定恶意内容,并针对恶意内容进行关键词或者正则表达式进行校验,机械地判断访问请求是否包含恶意内容。如下表1所示:
5.表1
[0006][0007]
现有技术的缺点:
[0008]
对关键词或者正则表达的设定有较高的要求,亦不能保证规则可以覆盖所有攻击内容,黑客可以通过不断探索和尝试,对规则进行绕过和欺骗。例如同样针对admin.php的保护,黑客可以对字符串admin进行字符转义,构造访问请求为http://www.xxx.com/%61%64%6d%69%6e.php,则可以绕过检测机制对admin的保护。


技术实现要素:

[0009]
为解决上述技术问题,本发明的目的是提供一种基于机器学习检测恶意访问的方法,该方法可以进行自我“进化”的防御手段,以面对层出不穷的恶意请求进行判别和防御。通过改进的机器学习来模拟或实现人类的学习行为,不断自我积累和学习恶意访问的攻击手段,使之不断改善防护能力。
[0010]
本发明的目的通过以下的技术方案来实现:
[0011]
一种基于机器学习检测恶意访问的方法,该方法通过机器学习算法来判断访问是
否含有恶意信息;具体包括以下步骤:
[0012]
步骤a建立数据分析维度;
[0013]
步骤b收集样本数据并进行清洗,根据访问信息把样本进行分类;
[0014]
步骤c构建机器学习的训练集和测试集,并把训练集参数和测试集参数归一化处理;
[0015]
步骤d利用改进的支持向量机算法,把归一化后的数据集使用rbf和linear两种核函数进行对比,同时使用“爆破”的方式寻找最优参数组合,获得线性可分的数据模型。
[0016]
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
[0017]
基于机器学习的恶意访问检测方法,通过web系统的历史访问的样本数据进行训练,并针对新的访问数据进行判别。使得防御方式不再局限于固有规则的设定,防御机制能不断自我修正和进化。从而提升web访问意图的判断能力,提高系统安全性。
[0018]
识别模型的不确定性和代码不可跟踪,可以让黑客摸不清其防御机制。
附图说明
[0019]
图1是基于机器学习检测恶意访问的方法流程图。
具体实施方式
[0020]
为使本发明的目的、技术方案和优点更加清楚,下面将结合实施例及附图对本发明作进一步详细的描述。
[0021]
如图1所示,为基于机器学习检测恶意访问的方法,该方法通过机器学习算法来判断访问是否含有恶意信息;具体包括以下步骤:
[0022]
步骤10建立数据分析维度;
[0023]
步骤20收集样本数据并进行清洗,根据访问信息把样本进行分类;
[0024]
步骤30构建机器学习的训练集和测试集,并把训练集参数和测试集参数归一化处理;
[0025]
步骤40利用改进的支持向量机(support vector machines,svm)算法,把归一化后的数据集使用rbf和linear两种核函数进行对比,同时使用“爆破”的方式寻找最优参数组合,获得线性可分的数据模型。
[0026]
上述步骤10中以访问者的ip地址、ip属地、访问频次、平均访问时长、url长度、参数偏离度、特殊字符占比作为分析维度。
[0027]
通过访问者ip地址ip地址ip属地访问频次平均访问时长url长度参数偏离度特殊字符占形成数据集t
′u[0028][0029]
上述步骤20中访问信息分为恶意访问信息和正常访问信息,把恶意访问信息作为正样本,把正常访问作为负样本。
[0030]
把参数进行归一化,其中,xi∈rn,yi∈{+1,-1},i=1,2,...8,yi为类标记,当它等于+1时候为正例,当它为-1时候为负例,再假设训练数据集t
′u是线性可分的;其中,xi表示
参数的类型,有多少个xi就有多少个参数类型;r为实数;y表示参数属于正样本还是负样本。
[0031]
上述步骤40利用改进的支持向量机(support vector machines,svm)算法,把归一化后的数据集t
′u按8∶2分开为训练集t1′
和测试集t2′
,引入惩罚参数c,c>0,通过使用rbf(radial basis function)和linear两种核函数进行对比,同时使用“爆破”的方式寻找最优参数组合,获得线性可分的数据模型
[0032]
d=f
svm
(f
rbf
(c),f
linear
(c),t
′1,t
′2)
[0033]
其中核函数f
rbf
和f
linear
在计算过程中会被反复利用,为了能应付高并发下的实时数据分析,对核函数进行缓存处理,形成f
rbf
和f

linear
。从而提高svm算法的运算性能。最终数据模型为
[0034]
d=f
svm
(f

rbf
(c),f

lineaar
(c),t
′1,t
′2)
[0035]
【实施例】
[0036]
为便于阅读和理解,实施例以python编程语言进行实现:
[0037]
1#加载数据集
[0038]
2xdata,ydata=data.load_data()
[0039]
3#进行归一化处理
[0040]
4x_data=preprocessing.scale(x_data)
[0041]
5#引入随机数组作为惩罚参数,构建参合集合
[0042]
6parameters=[
[0043]
7{
[0044]8‘
c’:random_int_list(1,100,8)
[0045]9‘
kernel:[

rbf’]
[0046]
10},
[0047]
11{
[0048]
12

c’:random_int_list(1,100,8)
[0049]
13

kernel:[

linear’]
[0050]
14},
[0051]
15]
[0052]
16#使用rbf和linear两种核函数进行对比和爆破
[0053]
18clf=gridsearchcv(svm.svc(),parameters,cv=5,n_jobs=8)
[0054]
19clf.fit(x_data,y_label)
[0055]
20#找到最优参数组合,即最优模型
[0056]
21best_model=clf.best_estimator_
[0057]
22#输出模型
[0058]
23joblib.dump(best_model,"svm.m")
[0059]
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

技术特征:
1.一种基于机器学习检测恶意访问的方法,其特征在于,所述方法通过机器学习算法来判断访问是否含有恶意信息;具体包括以下步骤:步骤a建立数据分析维度;步骤b收集样本数据并进行清洗,根据访问信息把样本进行分类;步骤c构建机器学习的训练集和测试集,并把训练集参数和测试集参数归一化处理;步骤d利用改进的支持向量机算法,把归一化后的数据集使用rbf和linear两种核函数进行对比,同时使用“爆破”的方式寻找最优参数组合,获得线性可分的数据模型。2.根据权利要求1所述的基于机器学习检测恶意访问的方法,其特征在于,所述步骤a中以访问者的ip地址、ip属地、访问频次、平均访问时长、url长度、参数偏离度、特殊字符占比作为分析维度。3.根据权利要求1所述的基于机器学习检测恶意访问的方法,其特征在于,所述访问信息分为恶意访问信息和正常访问信息,把恶意访问信息作为正样本,把正常访问作为负样本。4.根据权利要求1所述的基于机器学习检测恶意访问的方法,其特征在于,通过访问者ip地址ip地址ip属地访问频次平均访问时长url长度参数偏离度特殊字符占形成数据集t

u
5.根据权利要求1所述的基于机器学习检测恶意访问的方法,其特征在于,所述步骤c把参数进行归一化,其中,x
i
∈r
n
,y
i
∈{+1,-1},i=1,2,...8,y
i
为类标记,当它等于+1时候为正例,当它为-1时候为负例,再假设训练数据集t

u
是线性可分的;其中,x
i
表示参数的类型,有多少个x
i
就有多少个参数类型;r为实数;y表示参数属于正样本还是负样本。6.根据权利要求1所述的基于机器学习检测恶意访问的方法,其特征在于,所述步骤d中,利用改进的支持向量机算法,把归一化后的数据集t

u
按8∶2分开为训练集t1′
和测试集t2′
,引入惩罚参数c,c>0,通过使用rbf和linear两种核函数进行对比,同时使用爆破的方式寻找最优参数组合,获得线性可分的数据模型d,其中核函数f
rbf
和f
linear
在计算过程中会被反复利用,为了能应付高并发下的实时数据分析,对核函数进行缓存处理形成f

rbf
和f

linear
,从而提高svm算法的运算性能;最终数据模型为d=f
svm
(f

rbf
(c),f

linear
(c),t
′1,t
′2)。

技术总结
本发明公开了一种基于机器学习检测恶意访问的方法,该方法通过机器学习算法来判断访问是否含有恶意信息;具体包括以下步骤:建立数据分析维度;收集样本数据并进行清洗,根据访问信息把样本进行分类;构建机器学习的训练集和测试集,并把训练集参数和测试集参数归一化处理;利用改进的支持向量机算法,把归一化后的数据集使用RBF和Linear两种核函数进行对比,同时使用“爆破”的方式寻找最优参数组合,获得线性可分的数据模型。本发明提供的方法防御方式不再局限于固有规则的设定,防御机制能不断自我修正和进化。识别模型的不确定性和代码不可跟踪,可以让黑客摸不清其防御机制。可以让黑客摸不清其防御机制。可以让黑客摸不清其防御机制。


技术研发人员:罗杰武 张轩瑜 黄腾飞 杨春雷
受保护的技术使用者:长讯通信服务有限公司
技术研发日:2021.12.08
技术公布日:2022/3/8

最新回复(0)