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利用改进型的卷积神经网络算法,把归一化后的数据集使用构建神经网络输入层、卷积层进行特征学习,并使用bn层加速网络收敛,最后经过全连接获得数据模型。
[0016]
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
[0017]
通过web系统的历史访问的样本数据进行训练,并针对新的访问数据进行判别,使得防御方式不再局限于固有规则的设定,防御机制能不断自我修正和进化;从而提升web访问意图的判断能力,提高系统安全性。
[0018]
识别模型的不确定性和代码不可跟踪,可以让黑客摸不清其防御机制。
附图说明
[0019]
图1是基于深度学习检测恶意访问的方法流程图。
具体实施方式
[0020]
为使本发明的目的、技术方案和优点更加清楚,下面将结合实施例及附图对本发明作进一步详细的描述。
[0021]
本发明的目的是web安全防护工作上迫切需要一种可以进行自我“进化”的防御手段,以面对日新月异的层出不穷的恶意请求进行判别和防御。通过在本领域进行改进过的深度学习来模拟或实现人类的学习行为,不断自我积累和学习恶意访问的攻击手段,使之不断改善防护能力。
[0022]
如图1所示,本发明提供基于深度学习检测恶意访问的方法,包括以下步骤:
[0023]
步骤10建立数据分析维度;
[0024]
以访问者的ip地址、ip属地、访问频次、平均访问时长、url长度、参数偏离度、特殊字符占比作为分析维度;
[0025]
通过访问者ip地址ip地址ip属地访问频次平均访问时长url长度参数偏离度特殊字符占形成数据集t
′u[0026][0027]
步骤20收集样本数据并进行清洗(包括但不限于:ssrf、xss、ddos、sql注入等等),根据访问信息把样本进行分类;
[0028]
步骤30构建深度学习的训练集和测试集,并把训练集参数和测试集参数归一化处理;
[0029]
把参数进行归一化,其中,xi∈rn,yi∈{+1,-1},i=1,2,...8,yi为类标记,当它等于+1时候为正例,当它为-1时候为负例;其中,xi表示参数的类型,有多少个xi就有多少个参
数类型;r为实数;y表示参数属于正样本还是负样本,y1是1,y2是-1。
[0030]
步骤40利用改进型的卷积神经网络(convolutional neural networks,cnn)算法,把归一化后的数据集使用构建神经网络输入层、卷积层进行特征学习,并使用bn层加速网络收敛,最后经过全连接获得数据模型;
[0031]
把归一化后的数据集t
′u按8∶2分开为训练集t
′1和测试集t
′2,通过使用构建神经网络输入层、卷积层进行特征学习,并使用bn层加速网络收敛,最后经过全连接获得数据模型
[0032]
d=fdense(f
max
(f
cov
(t
′1),f
bn
(t
′1)),t
′2)
[0033]
其中,f
dense
是全链接层函数,f
max
是池化层函数,f
cov
是卷积层函数,f
bn
是归一化函数。
[0034]
【实施例】
[0035]
为便于阅读和理解,实施例以python编程语言进行实现:
[0036]
1#加载数据集
[0037]
2 xdata,ydata=data.load_data()
[0038]
3 x_data=preprocessing.scale(xdata)
[0039]
4 x_data=np.expand_dims(x_data,axis=2)
[0040]
5 dim=len(x_data[0])
[0041]
6 y_len=len(ydata)
[0042]
7 model=sequential()
[0043]
8#构建输入层、卷积层
[0044]
9 model.add(conv1d(4,3,input_shape=(dim,1),padding=
′
same
′
,activation=
′
relu
′
,use_bias=true))
[0045]
10#利用bn算法,加速收敛
[0046]
11 model.add(batchnormalization())
[0047]
12#构建最大池化层
[0048]
13 model.add(maxpooling1d(3))
[0049]
14#构建全连接层
[0050]
15 model.add(dense(4,activation=
′
relu
′
))
[0051]
16 model.add(dense(1,activation=
′
sigmoid
′
))
[0052]
17#获得训练模型
[0053]
18 model.compile(loss=
′
binary_crossentropy
′
,optimizer=
′
sgd
′
,metrics=[
′
accuracy
′
])
[0054]
19model.fit(x_data,y_label,batch_size=20,epochs=600)
[0055]
20 model.save(
″
cnn1.h5
″
)。
[0056]
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
技术特征:
1.一种基于深度学习检测恶意访问的方法,其特征在于,所述方法通过深度学习算法来判断访问是否含有恶意信息;具体包括以下步骤:步骤a建立数据分析维度;步骤b收集样本数据并进行清洗,根据访问信息把样本进行分类;步骤c构建深度学习的训练集和测试集,并把训练集参数和测试集参数归一化处理;步骤d利用改进型的卷积神经网络算法,把归一化后的数据集使用构建神经网络输入层、卷积层进行特征学习,并使用bn层加速网络收敛,最后经过全连接获得数据模型。2.根据权利要求1所述的基于深度学习检测恶意访问的方法,其特征在于,所述步骤a中以访问者的ip地址、ip属地、访问频次、平均访问时长、url长度、参数偏离度、特殊字符占比作为分析维度。3.根据权利要求1所述的基于深度学习检测恶意访问的方法,其特征在于,所述访问信息分为恶意访问信息和正常访问信息,把恶意访问信息作为正样本,把正常访问作为负样本。4.根据权利要求1或2所述的基于深度学习检测恶意访问的方法,其特征在于,所述步骤a具体包括通过访问者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时候为负例;其中,x
i
表示参数的类型,有多少个x
i
就有多少个参数类型;r为实数;y表示参数属于正样本还是负样本。6.根据权利要求1所述的基于深度学习检测恶意访问的方法,其特征在于,所述步骤d中把归一化后的数据集t
′
u
按8∶2分开为训练集t1′
和测试集t
′2,通过使用构建神经网络输入层、卷积层进行特征学习,并使用bn层加速网络收敛,最后经过全连接获得数据模型dd=f
dense
(f
max
(f
cov
(t1′
),f
bn
(t1′
)),t2′
)其中,f
dense
是全链接层函数,f
max
是池化层函数,f
cov
是卷积层函数,f
bn
是归一化函数。
技术总结
本发明公开了一种基于深度学习检测恶意访问的方法,该方法通过深度学习算法来判断访问是否含有恶意信息;具体包括:建立数据分析维度;收集样本数据并进行清洗,根据访问信息把样本进行分类;构建深度学习的训练集和测试集,并把训练集参数和测试集参数归一化处理;利用改进型的卷积神经网络算法,把归一化后的数据集使用构建神经网络输入层、卷积层进行特征学习,并使用BN层加速网络收敛,最后经过全连接获得数据模型。本发明提供的方法防御方式不再局限于固有规则的设定,防御机制能不断自我修正和进化;识别模型的不确定性和代码不可跟踪,可以让黑客摸不清其防御机制。可以让黑客摸不清其防御机制。可以让黑客摸不清其防御机制。
技术研发人员:罗杰武 江志成 邓之伟 罗键英
受保护的技术使用者:长讯通信服务有限公司
技术研发日:2021.12.08
技术公布日:2022/3/8