网络入侵检测Python

特征选取

在所给的数据集上,将每个特征的数据映射称为一组数字,相同的标称型映射为相同的数,并进行相关性分析,即可得到各特征的相关性表.

操作 网络协议 备用字符串5 目的端口 网络应用协议 备用字符串6
事件类型 0.52 0.35 0.39 -0.44 0.44 0.18

在特征选取的过程当中,攻击行为与设备IP相关性很高。但在现实当中,设备IP显然不是一个有效特征,因为每台设备都有被攻击的风险。假如某台服务器十分重要,那么我们自然应该给这台设备增强防护,提高模型中判断行为性质的阈值。当然还有很多特征和设备有关,所以我在这儿不一一列举。
所以我选择了一些关于网络访问行为中产生的数据作为主要特征,就是表1中所选取的。操作行为与事件类型相关度高达0.52,因为在网络攻击中,大多需要上传、执行等操作;网络协议和网络应用协议这两个特征的相关度也很高,因为很多攻击是基于网络协议漏洞进行,所以某种特定系列攻击与协议类型高度相关,在后续的实验当中,发现网络应用协议和网络协议两者取一即可,并根据模型收敛速度,选择了网络应用协议;目的端口决定了访问服务的功能,而某些特定服务才是攻击者攻击的目标;备用字符串6是访问者IP所在地,备用字符串5是网络行为类型,访问者IP所在地主要考虑到国外攻击,而网络行为类型也和操作行为类似,但是在后续的实验当中发现这两个特征对模型性能的影响微乎其微,所以不选他们.
最后,经过实验分析,选定了操作,网络应用协议,目的端口三个特征.

BP算法

BP神经网络

BP神经网络模型是在当前人工神经网络基础上使用梯度下降优化算法进行数据集训练,是目前应用最广泛的模型之一.相比于其他神经网络模型,其网络更加成熟,结构更简单,分为输入层,隐藏层和输出层三个部分.
4.

Dropout正则化方法

Dropout正则化是神经网络当中常用的避免模型过拟合的方法。Dropout正则化方法是将隐藏层的 N 个神经元在每次训练的迭代过程中, 以概率P (一般P=0.5) 随机暂时删除部分神经元, 用余下的 (1-P) * N 个神经元所构成的网络进行训练。
节点的随机丢弃首先是根据定义好的概率P进行选择要删除的节点,强制将其激活值置为0,根据概率P生成二项分布的向量 (由0和1构成),0表示节点被暂时删除,连接断开,1表示节点被保留,将向量q^(n) 与上层的输出q^(n )相乘得到x1^(n)作为这层的输入, 用于BP神经网络的训练,达到随机丢弃的效果.

模型结构

在本次实验中所建立的模型是Dropout正则化改进后的bp神经网络,两层全连接层,一层Dropout层,模型信息如下:
(fc1): Linear(in_features=1842, out_features=128, bias=True)
(drop): Dropout(p=0.4, inplace=

  • 6
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值