英语原文共 14 页
基于机器学习算法的网络入侵检测系统
Vipin Das 1, Vijaya Pathak2, Sattvik Sharma3, Sreevathsan4, MVVNS.Srikanth5, Gireesh Kumar T 6
1,2,3,4,5,6 Amrita Vishwa Vidyapeetham,Coimbatore-641105,Tamil Nadu,India
{1das4all, 2vijayapathak90, 3sattviksharma, 4sreevathsan.ravi, 5mvvnssrikanth 6gireeshkumart}@gmail.com
摘要
网络和系统安全性在当前的数据通信环境中至关重要。黑客和入侵者可以创建许多成功的尝试,通过未经授权的入侵导致网络和Web服务崩溃。防御这些威胁的新威胁和相关解决方案与安全系统的发展一起出现。入侵检测系统(IDS)是这些解决方案之一。入侵检测系统的主要功能是保护资源免受威胁。它分析和预测用户的行为,然后这些行为将被视为攻击或正常行为。我们使用粗糙集理论(RST)和支持向量机(SVM)来检测网络入侵。首先,从网络捕获数据包,RST用于预处理数据并减小维度。 RST选择的功能将分别发送到SVM模型进行学习和测试。该方法有效地降低了数据的空间密度。实验将结果与主成分分析(PCA)进行比较,结果表明RST和SVM模式可以降低误报率并提高准确率。
关键词:入侵检测系统, 粗糙集理论, 支持向量机, 主成分分析
INTRODUCTION
入侵检测系统(IDS)是一种软件或硬件系统,可自动监控和分析计算机网络中发生的事件,以检测恶意活动。 由于网络中发生的攻击严重性急剧增加,入侵检测系统已成为大多数组织安全基础设施的必要补充。
入侵检测允许组织保护其系统免受随着网络连接的增加和对信息系统的依赖而带来的威胁。 鉴于现代网络安全威胁的级别和性质,安全专业人员的问题不应该是是否使用入侵检测,而是可以使用哪些入侵检测功能和功能。
入侵是由以下原因引起的:攻击者访问系统,系统的授权用户试图获得未授权的额外权限,授权用户滥用授予他们的权限。
入侵检测系统(IDS)采用基于网络或主机的方法来识别和偏转攻击。 在任何一种情况下,这些产品都会查找通常表示恶意或可疑意图的攻击签名(特定模式)。 当IDS在网络流量中查找这些模式时,它就是基于网络的(图1)。 当IDS在日志文件中查找攻击签名时,它是基于主机的。
已经开发了各种算法来识别不同类型的网络入侵; 然而,没有启发式来确认其结果的准确性。 除非可以获得简明的性能测量,否则无法报告网络入侵检测系统识别恶意源的能力的确切有效性。我们正在考虑的三种主要方法是Paxson的Bro,Leckie等人的机器人方法和Jung等人的扫描检测顺序假设检验。
Figure 1. Overview of NIDS
本文的结构如下。 该领域的相关工作将在第2节中讨论。第3节概述了各种机器学习算法。 建议的系统在第4节中描述。第5节概述了特征提取和选择过程。 第6节提供了有关所用分类程序的信息。 第7节提供了性能和实验结果。 最后,结论的讨论在第8节中提供。
RELATED WORKS
-
- Bro NIDS
Paxson的Bro [8]监控进入和离开目标网络的数据包流量。 如果源对可配置的服务列表进行N次连接尝试失败,则将源标识为扫描程序。 如果连接未应答或者生成TCP重置响应,则认为连接已失败。 对于其他服务,Bro记录所有连接尝试的信息。 如果这些服务的连接尝试次数超过N,则此源也将标识为扫描程序。 服务列表和N在Bro实现的各种策略脚本中配置。 这些策略还可以包含众所周知的攻击类型的签名Probabilistic Approach
Leckie等[12]使用概率模型来区分扫描源和普通用户。该算法以理论为基础建模,即更频繁访问的目的地更可能是活动主机,而较少访问的目的地可能是不存在的主机。对非常见主机的访问很可能是由旨在探索目的地可用性的扫描程序生成的,并且对公共主机的访问很可能是经常使用的。该理想允许针对目标网络中的特定目的地的每次访问生成正常度量。通过假设攻击者同样可能访问目标网络内的任何源,也可以计算出不规则的度量。概率
方法为每个访问目标网络的源提供了正常的概率
源pnorm和基于它访问的目的地Di的攻击源patt的概率。如果patt(Di)gt; pnorm(Di),则源被认为是攻击者。普通用户访问每个集合Di的概率是该集合中的每个dj来自普通用户的概率。与尝试很少接收任何连接尝试的主机相比,尝试接收来自许多其他源的流量的主机更可能是目标网络中的真实主机。 dj是正常访问的概率与已访问该主机的其他源的数量直接相关。对攻击源生成Di的概率进行了类似的计算。为了计算patt(dj),每个被访问的目的地地址被认为是随机访问:访问目标网络内的任何目的地的概率同样可能。源作为主机的概率
scanner是所有主机访问是随机访问的概率。对于每个新的目的地访问源,更新Di的and并且网络内的访问分布是
相应调整。如果访问的新目标集更可能来自攻击源而不是普通源,则源被识别为主机扫描程序。否则,系统在更新攻击和正常概率并再次测试扫描行为之前等待或进行下一次访问尝试。在识别出潜在的扫描仪之后,使用过滤算法来移除访问端口80和21的源。这些服务分别是HTTP和FTP。过滤技术旨在消除由于过度使用这些流行端口而可能产生的常见误报。过滤这些服务预计不会对生成的结果产生重大影响,因为通常会扫描80以外的端口。该算法还可用于检测端口扫描仪。与访问不受欢迎的端口相比,对流行端口的访问不那么可疑的相同理论可用于生成正常和攻击端口使用可能性。
Sequential Hypothesis Testing
Jung等[11]的方法使用顺序假设检验来对远程主机进行分类。访问目标网络的任何源都可以被识别为两个假设之一:当远程源是普通用户时为H0,或者当远程源是扫描器时为H1。该模型背后的主要理论是观察到良性和恶意用户在成功的连接尝试中所占的比例不同。对连接尝试失败的本地主机具有大量访问权限的源更可能是扫描程序。具有一小部分失败的访问连接的源可能是良性的。使用该想法,根据该尝试的成功或失败的连接结果来评估由远程源对目标网络中的目的地做出的每个连接尝试Yi。使用由该源做出的所有连接尝试Yi的似然比来计算作为扫描仪L(Y)的源的似然比。每个Yi的似然比计算为给定源是扫描器的连接结果的概率与给定源是良性的连接结果的概率的比率。然后将L(Y)与预先选择的eta;0和eta;1阈值进行比较。 如果L(Y)ge;eta;1,则将源识别为扫描仪(H1)。 否则,如果L(Y)le;eta;0,则源作为良性用户(H0)滞后。 如果似然比未达到任一阈值,则结果仍然未知且状态正在等待决定,直到进行进一步的连接尝试。 该算法主要依赖于预测给定连接是否将建立有用连接的oracle。 在离线系统中,oracle可以是成功连接和交换数据的连接列表。 在在线系统中,可以根据可用的主机地址和目标网络中打开的端口号来估计连接是否成功连接的预测。
MACHINE LEARNING CONCEPTS
机器学习包括许多高级统计方法,用于处理具有多个相关和独立变量的回归和分类任务。 这些方法包括用于回归和分类的支持向量机(SVM),用于分类的朴素贝叶斯和用于回归和分类的k-最近邻(KNN)。
Support Vector Machine (SVM)
该方法通过构造非线性决策边界来执行回归和分类任务。 由于找到这些边界的特征空间的性质,支持向量机在处理各种复杂性的分类和回归任务时可以表现出很大的灵活性。 支持向量模型有几种类型,包括线性,多项式,RBF和S形[14]。
Naive Bayes
这是一种成熟的贝叶斯方法,主要用于执行分类任务。 鉴于其简单性,即自变量在统计上独立的假设,朴素贝叶斯模型是易于使用和解释的有效分类工具。 当独立空间的维度(即输入变量的数量)很高时(朴素的诅咒问题),朴素贝叶斯特别合适。 由于上面给出的原因,Naive Bayes通常可以胜过其他更复杂的分类方法。 存在多种方法用于对输入的条件分布进行建模,包括正态分布,对数正态分布,伽马分布和泊松分布[15]。
k-Nearest Neighbour Algorithm
k-Nearest Neighbors是一种基于记忆的方法,与其他统计方法相比,它不需要训练(即,没有适合的模型)。 它属于原型方法的范畴。 它的作用在于直观的观点,即近距离物体更可能属于同一类别。 因此,在KNN中,预测基于一组原型示例,这些示例用于基于多数投票(用于分类任务)和在一组k最近原型上平均(用于回归)来预测新的(即,看不见的)数据。 (因此名称为k-最近邻居)[13]。
PROPOSED SYSTEM
我们创建了一个NIDS(图2),它将使用SVM检测扫描端口扫描。 它每4秒从网络收集一次数据包。 使用正常数据包和攻击数据包的频率变化,我们使用正常和攻击数据包训练我们的SVM。 所以当一个未知的数据包即将到来SVM可以轻松分类,无论是普通数据包还是攻击数据包。 使用此方法,我们可以正确检测95%的攻击数据包,并向管理员发出警告。 根据管理员决策日志文件的创建和存储以供将来参考。
我们捕获网络中的所有数据包以进行分析。 在两个软件包即WINPCAP和JPCAP的帮助下捕获数据包。 WINPCAP与OS和NIC交互以捕获数据包。 虽然JPCAP是一个java包,它将捕获的数据包从WINPCAP获取到java程序。
Figure 2. Proposed Architecture
Obtain list of network interfaces
Choose network interface for capturing
Listen to network
Figure 3. Packet Capturing
WINPCAP
网络分析的应用依赖于一组适当的原语来捕获数据包,监控网络等等。 WINPCAP提供对较低级别网络层的轻松访问。 它允许程序捕获和传输网络数据包。 WINPCAP是一种允许Win32应用程序直接与网络交互的体系结构。 它包括一系列创新功能,如数据包监控,数据包注入,包括数据包过滤和支持远程数据包捕获。 数据包过滤由内核模式组件(用于选择数据包)和用户模式库(将它们传递到应用程序)组成。 WINPCAP包括一个称为Net group Packet Filter(NPF)和一组用户级库的优化内核模式驱动程序。 WINPCAP可以被不同类型的工具用于网络分析,故障排除,安全和监控。 特别是,依赖于WINPCAP的经典工具是网络和协议分析器,网络监视器,网络入侵检测系统(NIDS)和安全工具。
它是Windows环境中链路层网络访问的行业标准工具。 它允许应用程序绕过协议栈捕获和传输网络数据包,并具有其他有用的功能,包括内核级数据包过滤,网络统计引擎和对远程数据包捕获的支持。
WINPCAP包含一个扩展操作系统以提供低级网络访问的驱动程序,以及一个用于轻松访问低级网络层的库。 WINPCAP的目的是为Win32应用程序提供这种访问; 它提供的设施:
- 捕获原始数据包,包括发往其运行的计算机和其他主机(在共享介质上)交换的数据包。
- 在将数据包分派给应用程序之前,根据用户指定的规则对数据包进行过滤。
- 将原始数据包传输到网络。
- 收集统计数据。
- WINPCAP还支持将捕获的数据包保存到文件,并读取包含已保存数据包的文件。
- 可以使用WINPCAP编写应用程序以捕获网络流量并对其进行分析,或者使用相同的分析代码读取已保存的捕获并对其进行分析。
- WINPCAP包括:
- 为列出的操作系统实现较低级别的库,以与这些驱动程序进行通信。
- libpcap的一个端口,它使用低级库实现提供的API。
- Windows 95/98 / ME和Windows NT系列的驱动程序,它们使用NIDS直接从网络适配器读取数据包.
JPCAP
JPCAP是一个用于捕获和发送网络数据包的java库。 使用JPCAP,我们可以开发应用程序以从网络接口捕获数据包并在java中可视化/分析它们。 我们还可以开发Java应用程序以通过网络接口发送任意数据包。 JPCAP可以捕获以太网,IPv4,IPv6,ARP / RARP,TCP,UDP,IGMP和ICMPv4数据包。
JPCAP使用事件模型来允许用户处理数据包。 为了捕获数据包,用户需要告诉JPCAP要监听哪个网络设备。 选择设备后 我们打开它听。 通过网络的数据包被捕获并存储在指定的文件中。 它还使用户能够为特定协议设置过滤器。
FEATURE EXTRACTION AND SELECTION
-
- Pre-Processing
lt;
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。