聚类分析在网络入侵检测中的应用_第1页
聚类分析在网络入侵检测中的应用_第2页
聚类分析在网络入侵检测中的应用_第3页
聚类分析在网络入侵检测中的应用_第4页
聚类分析在网络入侵检测中的应用_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-4"\h\z\u第一章绪论 41.1课题研究的背景与意义 41.1.1什么是web异常检测 41.1.2基于机器学习web异常检测技术 41.2课题研究的内容 5本章小结 5第二章聚类分析概述 52.1什么是聚类分析 52.2基于距离的聚类 62.3基于密度的聚类 62.4本章小结 7第三章Web入侵技术概述 7第四章基于聚类的Web入侵检测实现 84.1开发工具介绍 84.2数据集的选择 84.3数据预处理(标准化) 94.4建立入侵检测模型 104.4.1利用k-means建立聚类 104.4.2利用DBSCAN建立聚类 114.5模型的性能评价 114.6本章小结 125总结 12摘要针对目前网络入侵行为日益严重和检测网络入侵行为日益严重的问题,本文研究的是通过机器学习来提高网络入侵的检测能力。在传统的入侵检测系统(IDS)通常是使用基于某些规则的匹配来对网络入侵行为进行检测,这种检测方式存在不够灵活,对新出现的网络入侵行为检测不准确的缺点。而本文使用机器学习中的聚类算法来进行网络入侵行为的检测,通过对数据集特征化,然后分别利用聚类算法中的K-Means和DBSCAN来构建网络入侵的检测模型,最后将两者之间表现出的实际性能,进行相对深入的细致对比,筛选出性能比较高的算法,来应用到网络入侵的检测中。通过使用像这样的机器学习算法来构建网络入侵检测模型可以有效的弥补传统的IDS的缺点。关键词:机器学习聚类算法入侵检测K-MeansDBSCANAbstractInviewoftheincreasingnetworkintrusionbehaviorandtheincreasinglyseriousproblemofdetectingnetworkintrusionbehavior,thispaperstudiestheabilityofnetworkintrusiondetectionthroughmachinelearning.IntraditionalIntrusionDetectionSystem(IDS),networkintrusionbehaviorisusuallydetectedbyusingcertainrule-basedmatching.Thisdetectionmethodisnotflexibleenoughtodetectinaccuratenetworkintrusionbehavior.Inthispaper,theclusteringalgorithminmachinelearningisusedtodetectthenetworkintrusionbehavior.Bycharacterizingthedataset,thenusingK-MeansandDBSCANintheclusteringalgorithmtoconstructthenetworkintrusiondetectionmodel,andfinallythroughthisTheperformanceofthetwoalgorithmsiscompared,andthealgorithmwithhigherperformanceisselectedtobeappliedtothedetectionofnetworkintrusion.Byusingamachinelearningalgorithmlikethistoconstructanetworkintrusiondetectionmodel,itcaneffectivelycompensatefortheshortcomingsofthetraditionalIDS.Keywords:machinelearningclusteringalgorithmintrusiondetectionK-MeansDBSCAN第一章绪论1.1课题研究的背景与意义现如今,web3.0时代已经来临,网络逐步实现一体化,赋予网络用户极为广阔的自由空间,可以切实满足他们的实际需求。在此背景下,多样化软件应运而生。但是这也产生了严重的安全问题,在以往十年当中,全球前沿的科技企业,例如:谷歌以及Facebook等,均出现过极为恶劣的各类网络安全事件,造成了大量用户数据泄露,从而危害到网络用户自身的财产安全。故而在当前时期,应当致力于推进网络入侵检测工作,实现全面的智能化。本文就基于此,将从聚类分析在网络安全中的应用这个选题出发,借助于聚类算法的作用,积极构建出科学完善的网络入侵检测模型,以此来突出自身的优势。该研究的意义在于随着web技术的持续发展,web的架构将会越来越复杂,面对的攻击也会是千变万化,传统的基于规则的网络入侵检测可能会慢慢消失,网络入侵检测的智能化将会成为主流,该研究将会给未来网络入侵检测的智能提供一个更好的素材。1.1.1什么是web异常检测在解释什么是web异常检测之前,本文首先针对其基本概念,进行大致的阐述:其旨在发现相对特殊的对象,即所谓的离群点。故而通常情况下,异常检测也被人们称之为偏差检测。而web异常检测就是指在众多的指向服务器的链接当中。找到一些和正常链接不同的异常链接并阻断它。来保护服务器设备免受一些不法分子的攻击。1.1.2基于机器学习web异常检测技术通常情况下,以往的web入侵检测技术,主要借助于维护规则集的作用,针对不正当的入侵访问,进行及时有效的拦截。然而,这种方式实则存在某些不足之处,例如:高技术含量的黑客,往往能够绕过硬规则。与此同时,该规则很难承受来源于0day发起的攻击;除此之外,该规则的建立还需耗费极为高昂的经济成本,这无疑加大企业的负担。在此情况下,以相关机器学习技术为基础,而成功构建的新型web入侵检测技术,实则能够针对以往方法的劣势进行及时弥补。从本质上而言,机器学习方法实则可以借助于数量可观的数据,来实现一系列自动化学习等,故而其在现今已经广泛应用于图像领域以及相应的自然语言处理等多样化领域。但是,该方法同样存在某些不足之处。其中尤为关键的即为标签数据的显著短缺,而且趋于多样化,不利于模型的后期学习等相关工作。故而在大部分情况下,该方法基本在不存在任何监督主体形式的环境中进行。通过基于数量可观的正常日志,积极构建出科学合理的模型,再将不符合该模型的数据定义为异常数据。此类思路完全相悖于拦截规则。值得一提的是,拦截规则旨在针对不正当的入侵行为,进行相对精准的识别。1.2课题研究的内容本课题主要研究的是利用机器学习中的聚类算法K-Means和DBSCAN算法,基于KDD-Cup99数据集的作用,来构建网络入侵检测模型,然后对这两个不同的聚类算法所构建的网络入侵检测模型的性能进行比较,筛选出性能比较高的算法。本章小结在本章节中,重点针对本文的基本背景及其实际意义,进行相对深入的细致阐述。以及对web异常检测和机器学习的简单介绍,并且简述了本课题的研究内容,让我们对本课题有一个大概的了解。第二章聚类分析概述2.1什么是聚类分析聚类分析的基本含义为:将相关对象所组成的集合进行细致分组,从而将性质相似的对象归为一类。从这一角度而言,聚类和分类是不同的。相较于分类而言,聚类表现出一定的差异性,其中尤为关键的即为所划分的类必须未知。聚类的本质,在于将海量数据归于相应的类别亦或为簇中,故而在相同簇中所含有的对象,实则表现出极为显著的相似性,反之则表现出相对明显的差异性。基于统计学的角度进行观察,聚类分析实则借助于数据建模的作用,针对现有的相关数据,进行科学得当的简化。事实上,以往的统计聚类分析方法,重点涵盖分解法、动态聚类法以及有重叠聚类等相关类别。值得一提的是,某些以k-均值等核心算法为基准的各类聚类分析工具,在当前时期已经在以SPSS为主的统计分析软件包中,获得相对广泛的实际应用。如果基于机器学习的方面来看,簇实则等同于隐藏模式。而聚类的本质则在于针对簇所表现出的无监督学习行为,进行及时采集。相较于分类而言,聚类表现出尤其显著的差异性,其实则属于观察式学习的范畴。聚类分析实则表现出相对良好的探索性,可基于海量的样本数据,实现科学深入的自动分类。由于各个研究者的采用方法各不相同,故而通过聚类分析一般会获得相异的结论,即使研究对象为同组数据,也是如此。基于日常应用的方面而言,聚类分析实则对于现今的数据挖掘领域至关重要。与此同时,聚类还可被看作为完全独立的工具,针对相关数据的实际分布情况,进行及时采集。通过观察和筛选,来针对某聚簇集合,进行更深层次的细致分析。2.2基于距离的聚类从本质上而言,K-Means聚类算法实则基于空间存在的k个点,来实现后期的聚类工作。并将其中最近的相关对象进行细致归类,借助于迭代的首选,分别更新多样化聚类中心的实际数值,以此来获得最佳效果。对于K-Means算法而言,其所遵循的基本流程大致如下:输入是样本集D={x1,x2,...xm},聚类的簇树k,最大迭代次数N输出是簇划分C={C1,C2,...Ck}1)从数据集D中随机选择k个样本作为初始的k个质心向量:{μ1,μ2,...,μk}2)对于n=1,2,...,Na)将簇划分C初始化为Ct=∅t=1,2...kb)对于i=1,2...m,计算样本xi和各个质心向量μj(j=1,2,...k)的距离:dij=||xi−μj||22,将xi标记最小的为dij所对应的类别λi。此时更新Cλi=Cλi∪{xi}c)对于j=1,2,...,k,对Cj中所有的样本点重新计算新的质心μj=1|Cj|∑x∈Cjxe)如果所有的k个质心向量都没有发生变化,则转到步骤3)3)输出簇划分C={C1,C2,...Ck}一般情况下,K-Means聚类算法通常含有下述基本特征。例如:其在建设过程中相对迅猛,并且极为简洁,尤其适用于大数据集的处理,表现出极为优良的可伸缩性。值得一提的是,对于该类算法而言,其所表现出的时间复杂度实则为O(nkt),在此之中,n意味着数据当中全部集中对象的实际数量,与此同时,t=意味着全部算法迭代的实际次数。除此之外,k意味着簇的实际数量。2.3基于密度的聚类DBSCAN聚类算法与K-Means不同,它是基于聚类的一种算法。它旨在假设类别可以取决于样本分布过程中所表现出的紧密性。由此得知,对于类别完全相同的样本而言,其彼此之间实则表现为紧密结合的关系,将其聚合起来即为聚类类别。在此情况下,只需将全部紧密结合的样本进行细致划分,使其生成多样化类别,即可获得全部聚类类别结果。对于此类算法而言,其关于聚类的基本概念如下:借助于密度可达关系的作用,将能得到和最大密度紧密连接的某特定样本集合,即簇。在上述簇中,能够包含数个核心对象。假设仅仅存在单个核心对象,则意味着簇中存在的其他数量可观的非核心对象样本,均处于该特定核心对象所表现出的ϵ-邻域当中;与此同时,假设存在若干核心对象,则意味着簇中存在的随机核心对象,所表现出的ϵ-邻域当中,必将含有某个除自身以外的核心对象,才能达到紧密结合的效果。值得一提的是,若将全部核心对象所表现出的的ϵ-邻域中,所蕴含的全体样本集合进行紧密组合,必将形成某特定的DBSCAN聚类簇。若想找出该特定的簇样本集合,应当借助于DBSCAN算法的作用。首先,随机采集某尚未分类的核心对象,将其定义为种子。其次,找出全部与之相关联的密度可达的样本集合,即可获得聚类簇。随后重复上述步骤,直至全部核心对象均含有自身的类别。DBSCAN聚类算法的主要特点是:相较于K-means基本方法而言,DBSCAN无需提前知晓后期的簇类数量,并能采集多样化形状的簇类。与此同时,该方法可精准识别相应的噪声点,并且相对于离群点,表现出极为优良的鲁棒性和检测性。如果将DBSCAN和数据库之间进行协同运用,则将能够有效提高现有区域的实际查询速度。2.4本章小结在本章节中,旨在针对K-Means算法以及相应的DBSCAN算法,所表现出的基本概念,进行相对深入的细致阐述。从而为后面的算法建模提供帮助。第三章Web入侵技术概述在当今web应用越来越复杂的时代,不法分子对于web所采取的攻击技术也愈加趋于多样化,下面简单介绍10种高发的web入侵技术:3.1sql注入:即借助于将相关SQL命令径直插入至Web表单即刻提交等手段,诱导服务器执行某些恶意的SQL命令。整体而言,其实则借助于当前的应用程序,将相关SQL命令径直传递至后台数据库引擎是,使其即刻执行。这种行为一般基于数据库当中的漏洞而实现。造成sql注入的原因有很多,其中主要涉及到①类型处理出现差错;②数据库配置表现出的安全性还有待提高;③查询集处理尚不科学;④错误处理并非恰当。这种漏洞会造成数据库信息泄漏,网页篡改,数据库被恶意操作等后果。3.2XSS攻击实则存在于web应用当中,表现为尤为典型的计算机安全漏洞。其可以允许恶意web用户,将不善意的代码径直植入至其他多样化用户的页面当中。通常情况下,XSS能够细分成三种类型,其中包含反射型以及DOM型,此外还涵盖存储型。从本质上而言,XSS危害也特别巨大,甚至能直接盗取各种类型的用户帐号,例如:用户网银帐号等。与此同时,其还能针对尤为关键的企业数据,进行相对精准的控制,其中包含但并不仅限于读取数据以及篡改数据等。除此之外,XSS还能窃取企业尤为关键的商业资料,危害极大。3.3CSRF跨站请求伪造,通常又被人们称之为SessionRiding,其本质在于恶意利用某特定网站。相较于XSS而言,其表现出尤为显著的差异性,详细如下:XSS的攻击对象仅仅为存在于站点之中的海量信任用户,但是对于CSRF来说,其旨在基于一系列伪装,使其自身成为网站信任的用户,以此来发送恶意请求。从这一角度而言,CSRF攻击虽然现今尚未获得相对广泛的实际应用,然而却很容易被人忽视,故而其实则比XSS更加危险。3.4通常情况下,分布式拒绝服务攻击的基本含义为:通过各种类型服务器技术的协同作用,将若干计算机之间进行紧密结合,从而形成性能强大的攻击平台,以此来针对若干目标进行DDoS攻击,这样所造成的攻击威力,将呈现倍数式增长。一般情况下,首先,攻击者会借助于某特定的偷窃帐号,将自身所含的DDoS主控程序,径直安装至某特定的计算机当中,其次,基于预先拟定的时间,将现有的主控程序和数量可观的代理程序之间进行实时通讯。在此情况下,一旦代理程序已经成功接收相关指令,将会即刻发动迅猛攻击。值得一提的是,借助于各种类型服务器技术的协同作用,主控程序可以在数秒的时间内,实现众多代理程序的数千次运行。在这之中,尤为关键的时是DDoS攻击一般借助于网络中相关基本协议的作用,例如:Email协议,故而难以对其进行有效防御,只能在攻击出现的情况下,即刻停止服务来对其进行限制。但若如此,合法用户的请求必将得不到回应,这将会影响到网站获得的经济收益。故而一旦发生大规模的DDoS事件,将会极大耗费原本极为充足的网络资源。3.5SSRF旨在将内部系统作为自身的攻击目标,其同样借助于服务端漏洞而实现。第四章基于聚类的Web入侵检测实现4.1开发工具介绍本文所选择的开发语言为python。这是由于,该语言已经成为现今炙手可热的计算机程序设计语言之一。其本质为脚本语言,表现出极为良好的动态特征,而且还能面向对象。Python自研发之初,旨在编写各种类型的自动化脚本。然而在当前时期,由于版本的持续升级,其新增某些尤为关键的语言功能,故而广泛适用于大规模的项目当中。开发工具使用Anaconda,Anaconda实则为Python的典型发行版本,表现出开源的基本特性,其中涉及到conda等高达180个科学包。由于其中涵盖数量可观的科学包,故而Anaconda一般需要下载相对较大的文件。用户若想节约空间,也能运用Miniconda版本,该版本相对较小。4.2数据集的选择本文旨在采用KDDCUP99数据集。1998年,西方发达国家的美国MIT林肯实验室,曾经研发出此数据集,并且积极构建出适用于自身军事领域的模拟网络环境。在此情况下,该实验室连续收集高达9周的TCPdump(*)网络连接数据以及相应的系统审计数据,从而针对多样化用户以及各种类型的攻击手段,进行科学合理的仿真。值得一提的是,该采集过程细分为两大阶段,详细如下:第一阶段,7周。其涵盖高达5,000,000的网络连接记录;第二阶段,2周。其涵盖高达2,000,000的网络连接记录。在上述内容中所涉及的网络连接,可以看作为基于某特定的时间当中,自始至终而形成的TCP数据包序列。在此期间,数据将会基于预定义协议,完成自源IP地址之初,直至目的IP地址为止的整体传送过程。需要注意的是,任何网络连接均会被系统标记,从而细分成正常以及异常两类。其中,异常类型一共含有4大类别,累计涵盖高达39种攻击类型。4种异常类型分别是:拒绝服务攻击,例如;主要代表来源于远程主机所发出的未授权访问,例如未授权的本地超级用户特权访问,例如端口监视或扫描,例如。在此之后,全球著名学者SalStolfo及其WenkeLee,曾经借助于数据挖掘等多样化技术,针对上述所提及的数据集,进行更深层次的特征分析,以及相对深入的数据预处理工作,以此来组成崭新的数据集,即1999年尤为典型的KDD99数据集。对于此类数据集而言,其旨在基于41个特征值,针对连接(*),进行极为细致的描述:2.normal。其中最后一个字段是用来标记该条数据是正常还是异常的数据。4.3数据预处理(标准化) 因为kddcup99数据集中存在非数值化数据,于是对该数据集进行标准化处理第一步将定义将源文件行中3种协议类型转换成数字标识的函数,代码如下:protocol_list=['tcp','udp','icmp']returnfind_index(input[1],protocol_list)[0]第二步将定义将源文件行中70种网络服务类型转换成数字标识的函数,代码如下:service_list=['aol','auth','bgp','courier','csnet_ns','ctf','daytime','discard','domain','domain_u','echo','eco_i','ecr_i','efs','exec','finger','ftp','ftp_data','gopher','harvest','hostnames','http','http_2784','http_443','http_8001','imap4','IRC','iso_tsap','klogin','kshell','ldap',link','login','mtp','name','netbios_dgm','netbios_ns','netbios_ssn','netstat','nnsp','nntp','ntp_u','other','pm_dump','pop_2','pop_3','printer','private','red_i','remote_job','rje','shell','smtp','sql_net','ssh','sunrpc','supdup','systat','telnet','tftp_u','tim_i','time','urh_i','urp_i','uucp','uucp_path','vmnet','whois','X11','Z39_50']ifinput[2]inservice_list:returnfind_index(input[2],service_list)[0]第三步定义将源文件行中11种网络连接状态转换成数字标识的函数,代码如下:flag_list=['OTH','REJ','RSTO','RSTOS0','RSTR','S0','S1','S2','S3','SF','SH']ifinput[3]inflag_list:returnfind_index(input[3],flag_list)[0]基于源文件行中,将现有的攻击类型,转化为相应的数字标识,以此来实现的函数代码详细如下:#label_list=['normal.','buffer_overflow.','loadmodule.','perl.','neptune.','smurf.',#'guess_passwd.','pod.','teardrop.','portsweep.','ipsweep.','land.','ftp_write.',#'back.','imap.','satan.','phf.','nmap.','multihop.','warezmaster.','warezclient.',#'spy.','rootkit.']globallabel_list#在函数内部使用全局变量并修改它ifinput[41]inlabel_list:returnfind_index(input[41],label_list)[0]else:label_list.append(input[41])returnfind_index(input[41],label_list)[0]到此完成数据的标准化工作,完成模型建立前的准备。4.4建立入侵检测模型4.4.1利用k-means建立聚类借助于sklearn当中所蕴含的K-Means算法,将能针对上述各类数据,进行科学合理的聚类,首先需要对数据进行读取,并且应当借助于pandas模块中涉及的pd函数,针对相关数据进行相应的读取,其基本代码如下:然后调用K-Means进行数据的分析,由于数据并不是二维的,在数据分析完成以后,需要使用sklearn.decomposition模块中的PCA函数对数据进行降维,其次,借助于模块中所涉及的plt函数,针对现有的图进行良好的绘制,对数据进行可视化,因为如果样本数过多,绘制出来的散点图几乎看不出区别,所以绘制下图时只选择了24条数据来进行演示。4.4.2利用DBSCAN建立聚类对于DBSCAN而言,其在积极构建自身模型时,完全等同于K-Means的构建过程。首先需要对数据进行读取,并且应当借助于pandas模块中涉及的pd函数,针对相关数据进行相应的读取,其基本代码如下:然后调用DBSCAN进行数据的分析,由于数据并不是二维的,在数据分析完成以后,需要使用sklearn.decomposition模块中的PCA函数对数据进行降维,其次,借助于模块中所涉及的plt函数,针对现有的图进行良好的绘制,并对数据进行可视化展示。4.5模型的性能评价若K-Means模型以及相应的DBSCAN模型均成功构建,则在此情况下,我们选取100条已经打好标签的数据,放入数据中进行测试,测试结果如下表所示:K-Measn测试结果DBSCAN测试结果由以上的数据测试结果可以看出K-Means的误报率为4%,而dbscan的误报率为%2.1,从这个结果可以看出,在异常检测检测中DBSCAN算法的准确率是要高过K-Means算法的准确率的。4.6本章小结在这一章里面我们完成了数据的标准化,模型的建立,模型的性能对比的工作,并通过对样本检测的误报率的对比,发现了在异常检测这个应用领域里面,相较于K-Means而言,DBSCAN所表现出的精准率相对较高。5总结在本次的课题研究中,首先针对现今尤为典型的web入侵检测技术,进行相对深入的细致阐述,然后又结合机器学习,对本研究课题进行了一个简述。最后分别介绍了研究所用到的工具和算法和数据。通过本次研究,我们以异常检测为切入点,对K-Means和DBSCAN算法在异常检测中性能的高低进行了比较,发现在样本数据一致的情况下,相较于K-Means而言,DBSCAN所表现出的精准率相对较高。至此本课题的研究结束。但是在模型的调试过程中也发现了DBSCAN中的eps和minpts这两个参数非常的难以确定,这也造成了最后的结果数据分析有一定的误差。致谢四年的大学学习生活在即将划上一个句号,而于我的人生来说却仅仅只是一个逗号,我将面对新的征程的开始。本研究及论文是在我的导师梁老师的亲切关怀和耐心的指导下完成的。伟人、名人固然为我所崇拜,可是我更迫切地想要把我的敬意献给给一位平凡的人,我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论