基于主成分分析的支持向量机入侵检测系统

简介: 基于主成分分析的支持向量机入侵检测系统

学习目标:

一、基于主成分分析的支持向量机入侵检测系统


学习内容:

本文针对Knowledge Discovery in Databases Cup’99(KDD)数据集评估了支持向量机(SVM)不同核的性能,并比较了检测精度、检测时间。通过采用将高维数据集缩减为低维数据集的主成分分析(PCA)来减少检测时间。本研究进行的实验表明,支持向量机的高斯径向基函数核具有较高的检测精度。


A. 数据集分析

数据集:KDD

整个 KDDCup‘99 数据集由 4,898,431 条记录组成,其中每条记录包含 41 个特征。我们仅使用 KDDdataset 的 10% 部分用于训练目的和整个 KDDdataset 用于测试。此外,10% KDDCup’99 数据包含 494,069 条记录(每条记录包含 41 个特征),并分为 4 种类型的攻击,探测、拒绝服务 (DOS)、用户到根 (U2R)、根到本地(R2L)


e4aa05e2f4b7424497b818449e96eecf.png


B. 主成分分析 (PCA)–降维

PCA 是通过消除包含最大计算成本的高维空间中不太重要的属性,从而将更有用和相关的属性投影到低维子空间中来实现的。让我们考虑一个长度为“m”且经过“n”次检查的向量,那么给定的数据集可以由矩阵 X 表示为

X(mn)=[X1,X2,X3,...,Xn]


等式1表明 X 的每一列都是一个向量


等式2显示平均均值( μ )对于每个向量

μ=n1Σi1nXij


给定向量与其均值的变化由称为偏差的度量给出,由公式3给出

Φ=Xiμ

两个变量之间的关系程度通过称为协方差的度量来衡量。如果协方差为正,则称这两个变量正相关,如果协方差为负,则称这两个变量负相关,如果协方差为零,则称数据不相关。所以从协方差矩阵中,我们可以实现数据的传播。协方差矩阵( Σ )构造如等式(4)中所示

=n11Σi=1nΦiΦiT=n11Σi=1n(Xiμ)(Xiμ)T


矩阵的转置φ表示为φ^T ,通过计算通过奇异值分解 (SVD) 算法使用的特征向量,在协方差矩阵上执行 PCA 。SVD 定义为复数或实数矩阵 X 的因式分解,使得X= U**S**V,其中 U 和 V 是酉矩阵,即


UTU=UUT=I

I 是单位矩阵,S 是非负实数对角元素的矩形矩阵。为了将系统从 n 维减少到 k 维,我们从 U 中获取前 K 个向量(列)。


C. 支持向量机 (SVM)

支持向量机的目的是通过找到一个超平面来最大化两个类之间的分离边际。让输入输出数据格式如下

(x1,y1),...,(xn,yn),xRm,y{+1,1}


(x 1 , y 1 ),……(x n , y n ) 是训练的数据集,其中每个x i是一个m维实向量,n代表样本数,y属于+1或-1,通过指示点 xi属于哪个类。在线性可分的情况下,超平面对数据集进行分类,如图所示


c0aeda2cdb4e407d9ccd279363c33027.png


核函数

然而,在大多数情况下,数据不是线性可分的,很难找到超平面来对数据进行分类。所以为了解决这个问题,SVM 有不同的核函数。线性不可分问题可以通过选择合适的核函数来解决。应用内核技巧后得到的算法保持不变,除了线性内核 SVM 中的每个点积都被非线性内核函数替换。

主要的非线性 SVM 核函数是

1.径向基核函数:使用的典型径向基核是高斯核。

K(x,y)=exp(γ∣∣xy∣∣)2


其中 x 和 y 是输入向量。如果γ=σ^− 2那么这个核被称为高斯方差核σ^− 2


2.多项式核函数:计算两个向量之间的 d 次多项式核。两个向量之间的相似性由多项式核表示。

K(x,y)=(γ(xTy)+c0)d


γ是斜率,d 是核度,C o是截距。如果内核被认为是同质的C 0 = 0.


数据集预处理–转换

KDDCup’99 数据的示例如图 2所示。转换后,系统将数据集中的文本词转换为数值,如图3所示. 例如,如果“Normal”被映射为 0,则攻击类型,系统使用表 3中提供的转换表将文本转换为数值。



e3119349f4fe4737a748dbdf74b41cb0.png

e7dce46268b446df9b7a9299ab52943f.png


数据集预处理 --特征缩放

转换后,数据集被归一化,使每个特征的数值在同一尺度下。在转换和规范化之后,数据集如图 4所示。进行缩放操作是为了降低复杂性,减少重叠并提高准确性。

398fd0f21f96429598da7873e8c6aed4.png



bcfed7c739fe4998aceae54b53eaf3ab.png


算法过程

两个阶段中,PCA 应用于预处理数据集,以便将高维数据转换为低维数据。通过PCA对训练数据集进行降维后,通过支持向量机算法对预处理后的数据集进行训练,构建训练系统。一旦训练好的系统准备就绪,测试数据集就会被分类,以便在出现攻击时生成警报。通过将 SVM 分类器的预测结果与 KDDCup’99 中的实际结果进行比较来测量准确性,并测量每个测试记录的检测时间。完整的方法在流程图中解释


e01a2bcbf39c4d09b7c97bde17873929.png


核函数对比

进行了两个不同的实验,即 with-PCA 和 without-PCA,以评估 PCA 在检测精度上的性能。C 和伽玛( γ) 是 SVM 非线性核中的两个重要参数。C 参数权衡了决策表面的简单性与训练样本的错误分类。较高的 C 通过将更多样本作为支持向量来正确分类所有测试数据集,而较低的 C 使决策表面平滑。另一方面,参数 Gamma 定义了单个训练样本的影响程度,高值表示接近,低值表示远。


61344317b1fd4b4299273f617616f15e.png


a5589dfb0c4946a98929bca24dfa0613.png


总结

从通过实验获得的结果可以看出,当实施 PCA 时,检测率随着尺寸大小的增加而增加,而检测时间减少。在所有实现的内核中,RBF 内核表现出更好的结果和更好的检测率,并且在基于多项式内核的 SVM 中检测速度更快。


不足

论文中没有和不同的监督机器学习算法(例如 K-Nearest Neighbor’s、J48 决策树、随机森林和带 PCA 和不带 PCA 的朴素贝叶斯)来比较和分析 IDS 检测精度和检测时间。


参考论文

[1] Zhang H, Huang L, Wu C Q, et al. An effective convolutional neural network based on SMOTE and Gaussian mixture model for intrusion detection in imbalanced dataset[J]. Computer Networks, 2020, 177: 107315.


[2] P. Nskh, M. N. Varma and R. R. Naik, “Principle component analysis based intrusion detection system using support vector machine,” 2016 IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT), 2016, pp. 1344-1350, doi: 10.1109/RTEICT.2016.7808050.


[3] Almomani, O. A Feature Selection Model for Network Intrusion Detection System Based on PSO, GWO, FFA and GA Algorithms. Symmetry 2020, 12, 1046. https://doi.org/10.3390/sym12061046


[4] A feature selection algorithm for intrusion detection system based on Moth Flame Optimization Arar Al Tawil and Khair Eddin Sabri Conference: 2021 International Conference on Information Technology (ICIT), Year: 2021, Page 377


DOI: 10.1109/ICIT52682.2021.9491690


[5] de Rosa G H, Rodrigues D, Papa J P. Opytimizer: A nature-inspired python optimizer[J]. arXiv preprint arXiv:1912.13002, 2019.


相关文章
|
22小时前
|
机器学习/深度学习 监控 安全
网络安全产品之认识入侵防御系统
由于网络安全威胁的不断演变和增长。随着网络技术的不断发展和普及,网络攻击的种类和数量也在不断增加,给企业和个人带来了巨大的安全风险。传统的防火墙、入侵检测防护体系等安全产品在面对这些威胁时,存在一定的局限性和不足,无法满足当前网络安全的需求。入侵防御系统(IPS)作为一种主动防御的解决方案应运而生。它可以实时检测和防御网络流量中的恶意攻击和威胁,通过串接的方式部署在网络中,对入侵行为进行实时阻断,从而极大地降低了入侵的危害。
87 1
|
8月前
|
网络协议 安全 Linux
百度搜索:蓝易云【Linux系统下如何在防火墙开放指定端口】
在Linux系统中,防火墙是用于保护计算机安全的重要组成部分。默认情况下,大多数Linux发行版都会自带一个防火墙,如iptables、firewalld等。当我们需要运行特定的应用程序或服务时,需要在防火墙中开放相应的端口。下面就是Linux系统下如何在防火墙开放指定端口的详细步骤。
87 0
|
监控 安全 关系型数据库
CentOS7下部署OSSEC开源主机入侵检测系统(HIDS)并接入到GrayLog
CentOS7下部署OSSEC开源主机入侵检测系统(HIDS)并接入到GrayLog
1927 0
CentOS7下部署OSSEC开源主机入侵检测系统(HIDS)并接入到GrayLog
|
22小时前
|
机器学习/深度学习 运维 监控
|
22小时前
|
机器学习/深度学习 监控 安全
入侵检测系统:实时监测与防范网络攻击
网络攻击频发,防火墙并非万全之策。入侵检测系统(IDS)成为重要补充,监控可疑活动并发出警报。IDS分为网络IDS(NIDS)、主机IDS(HIDS)等类型,分别监控网络流量和主机行为。NIDS部署在边界或内部网络,HIDS关注单台主机安全。IDS结合机器学习能检测异常行为,有效应对已知和未知威胁。在容器安全领域,如德迅蜂巢,通过多锚点监测实现入侵的实时响应和闭环处理,确保业务系统安全,同时具备低影响和高准确性。未来,研究人员将继续借助深度学习等技术提升入侵检测效能。
|
22小时前
|
机器学习/深度学习 运维 监控
|
22小时前
|
数据采集 监控 安全
网络安全产品之认识入侵检测系统
随着计算机网络技术的快速发展和网络攻击的不断增多,单纯的防火墙策略已经无法满足对安全高度敏感的部门的需要,网络的防卫必须采用一种纵深的、多样的手段。因此,入侵检测系统作为新一代安全保障技术,成为了传统安全防护措施的必要、有效的补充。[《安全防御之入侵检测与防范技术》](http://xiejava.ishareread.com/posts/48309864/)介绍了入侵检测技术,今天让我们从入侵检测系统的工作原理、主要功能、主要类型及与入侵防御系统的关系与区别等方面认识入侵检测系统。
51 2
|
8月前
|
关系型数据库 Linux 网络安全
Linux系统下安装mariaDB数据库及防火墙
Linux系统下安装mariaDB数据库及防火墙
121 0
|
22小时前
|
网络协议 Shell Linux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
42 2
|
5月前
|
Linux 网络安全 Nacos
麒麟v10系统,服务连接nacos提示连接不上9848端口是什么问题呢?服务和nacos都在一台机器,防火墙也都关闭了,telnet9848是ok的,但服务启动时就连不上9848。
麒麟v10系统,服务连接nacos提示连接不上9848端口是什么问题呢?服务和nacos都在一台机器,防火墙也都关闭了,telnet9848是ok的,但服务启动时就连不上9848。
248 1