核心内容摘要
R星每日大赛:动漫mrds,点燃你的二次元热血!
摘 要互联网的普及已经深深的影响了整个世界使得整个世界变得更加的紧密。
虽然给生活在地球村的人带来了便利但是也威胁到了人们的日常。
因此入侵检测系统作为一个具有主动性和实时性的安全措施对入侵检测的研究起到十分重要的作用。
它主要是通过收集和分析计算机外部和内部的信息判断是否有可疑的入侵的现象来完成对入侵的警告和达到防御的作用使得网络入侵的伤害减少到最低的程度。
本课题主要论述了基于Linux系统下介绍了入侵检测系统的概念。
从入侵检测系统的结构和运行流程方面对Snort做了深入的解析来对相关的规则做了扩展和实现。
在设计中用Lipacp对网络数据包进行获取snort作为入侵探测器对数据包进行实时的解析。
用MySQL数据库用于存储入侵检测的日志。
用Apache作为HTTP的服务器用BASE作为基于Web入侵事件数据库分析台用Barnyard将报警日志存入到数据库中。
在这其中为实现BASE用Apache为其提供网络的服务同时BASE作为查看分析MySQL数据库的分析台。
最后对调试的结果进行记录和
总结。
关键词Snort入侵检测IDS网络安全1 入侵检测与Snort概述入侵检测是计算机从网络中获取接收的数据然后对收集到的信息对其检测[1]。
如有发现对主机用户有威胁的攻击和入侵现象则系统会通过软硬件结合的方式主动的为主机提供全方位的保护。
在众多的入侵检测安全管理工具中Snort是目前最主流和具有应用前景的系统。
1入侵检测系统概念入侵检查是对防火墙防火墙的合理补充可以帮助系统应对网络攻击并扩展了系统管理员的安全管理功能包括安全审核监视攻击识别和响应以增强信息安全基础架构的完整性。
它从计算机网络系统中的若干关键点收集信息并分析这些信息确定网络中是否有违反安全策略的行为和遭到袭击的迹象[2]。
对于入侵检测系统而言最重要的是如何对其进行检测。
一般分类为异常检测误用检测。
根据信息来源的不同可以分为主机入侵检测系统HIDS和网络入侵检测系统NIDS[3]。
HIDS根据主机系统的系统日志和审计记录来进行检测分析。
NIDS是根据网络的数据包来分析的。
HIDS的部署比较的麻烦所以花费代价很大而部署比较的简单有较低的成本。
HIDS有特定监视行为的功能但是太过依赖于主机的日志。
NIDS具有更好的实时性和可移植性。
但是缺点是无法检测大量的数据。
所以完整的入侵检测系统需要主机和网络两种系统合二为一。
2 Snort系统Snort是一个由C语言开发的免费的开源的软件和基于Lipacp的轻量级网络入侵检测系统。
它可以在多个不同的平台进行跨平台的部署像Linux和Windows系统。
并且可以对数据和规则等功能同时的进行来检测可能存在的危险。
由于Snort是开源的所以开发者们可以随意的对Snort的源码进行二次的开发不断扩充了Snort的功能。
对于使用者来说变得更加的简单和方便。
Snort的典型运行环境如图
1所示[4]。
3 Snort的特点Snort具有多平台性和扩展性的入侵检测系统由于从网络获取数据所以Snort被定义为基于网络的入侵检测。
针对每一种入侵行为都提炼出它的特征并按照规范写成规则从而形成一个规则库将捕获的数据包对照规则库逐一匹配若匹配成功则认为该入侵行为成立[5]。
Snort入侵检测系统的特点如下1Snort系统在多个平台进行部署它具有在不同系统的扩展性2具有实时分析功能和获取网络数据包的能力。
能够对网络入侵做出迅速的反应发出报警提示同时系统还提供多告警的方式。
3Snort具有灵活的日志格式支持Topdump的二进制格式也支持ASCII字符形式也支持XML格式的更便于维护和检查[6]完备的Snort具有强大的功能是任何一款入侵检测系统无法对比的。
如今Snort的发展正值顶峰很多研究人员都在不停的对Snort进行更多的扩充。
不久以后Snort将成为最大的检测系统。
图
1 搭建Snort实体图2 需求分析与总体设计本章主要通过系统的分析决定模块的分割与各模块之间的关系说明功能结构的设计并明确说明各功能模块所要完成的工作提供系统整个设计和功能结构的设计。
最后各模块的特定设计流程主要商务活动和系统的主要设计部分详细信息数据库表的设计基础并决定表的结构和特定内容。
1 必要功能需求分析功能的需求分析是一个项目最基础的工作它指的是确定系统的需要哪些必备的功能。
然后根据必要功能对这些功能模块进行开发。
本文根据项目调查的结果实现了以下的功能1获取网络数据包。
作为网络检测的第一步也是最基础的一步。
它是整个系统运行的前提网络数据包被Lipacp包获取之后被分析检测是否存在含有威胁的特征。
2分析数据包信息。
分析数据信息是整个系统中最重要的模块。
它是整个系统的核心部分主要功能是检查和分析捕获的数据路径以验证入侵的风险。
3对威胁的行为告警。
检测数据和捕获数据原本用户是无法看到入侵检测的情况所以需要通过告警信息来展示是否已将入侵的信息检测到。
4对检测信息的保存模块。
入侵检测到的信息并不能直接检测就丢弃后面需要调用其数据和做分析所以需要将其存入到数据库中这样用户需要信息时可以从数据库中直接观看为后续统计和显示数据作了铺垫。
2 数据库的设计该系统采用MySQL作为数据库。
由于检测和分析的数据包存储在数据库中因此有必要根据数据包信息设计数据库表。
表单的域和协议头有关信息对应。
分别对四种网络协议进行分析同时建立对应的数据库表分别为ARP、ICMP、UDP、IP、TCP等表。
下图
1是各个表的关系示意图。
其中signature包括规则形式的报告通知信息如果按类型分类它会指示诸如报告类型的主要编号报告类型报告类型的主要信息报告优先级版本号以及报告类型等字段。
event表示的是告警的元数据的信息Sid和cid共同作为主码告警事件发生的系统时间等字段。
图
1 数据库模型图
3 Snort的整体框架Snort的体系结构是由数据包获取模块、预处理模块、检测模块和报警模块4个插件构成的体系的结构如图
2所示图
2 体系结构图3 SIDS的详细设计与实现Snort本身是一个非常优灵活的入侵检测系统它可以根据用户的需求来对系统进行扩展构成一个丰富和全面的入侵检测系统。
但是扩充的同时也增加了系统完成的复杂度。
本文选择的是基于Linux下搭建来更好的显示Snort全面的功能。
1 SIDS实现方案构建SIDS需要根据运行环境的不同而选择不同的实现方式。
Snort系统可以只有一个嗅探模式只获取到以二进制显示的数据格式。
也可以用文本编辑器gedit来查看。
但是这样数据并没有被保存在下来只能在启动Snort时才能看到。
Snort停止运行时就看不到入侵数据的信息但是这样体验是很不好的。
对于这样状态可以选择带有其软件扩展的系统。
例如可以选择一个数据库软件和分析台软件将嗅探器获取的数据传送给数据库软件然后再有数据库传给分析台。
这样入侵数据不仅被保存下来而且用户可以更加清晰的看到入侵检测的情况。
这样大大减轻了数据的繁杂度增加对数据处理的灵活性。
根据用户的选择网络入侵检测系统一般有如下几种组合方式1如果仅仅是获取数据包只要安装一个Snort单独的嗅探器来进行测试。
2安装嗅探器和一个日志保存系统。
3单个嗅探器和管理员系统。
4安装一个数据库软件和分析控制台的嗅探器。
为了让网络入侵检测系统的功能更加的全面除了必要的硬件设施软件方面就选择带有数据库和分析台的第四个组合。
在此系统中有4台主机分别取名为A,B,C,D计算机。
然后还一个主机为E的计算机连接在计算机D的网络上与D可以在网络上联通。
计算机D不仅仅是一台主机同时还是带有BASE、MySQL和Apache等软件的一个Snort嗅探器的服务器的Centos7的系统。
最后一个主机为F的计算机是在外网上的。
它可以对内网内的任何一台主机发动攻击。
在系统拓扑图
1中为每一个设备都设置了别名方便在接下来的设计和实现系统的步骤。
图
1 带有数据库和web分析台的嗅探器部署方式按照系统拓扑图需要实现以下的功能第一SIDS需要能够检测对内网中被攻击的主机。
第二是将被攻击的日志记录通过Barnyard储存到数据库MySQL中这样管理员可以清晰看到数据。
可以安装phpMyAdmin它是一款开源的的数据库管理工具有助于对数据进行分析和研究。
根据用户需要选择不同启动模式同时可以对数据进行编辑、删除等功能。
更加的贴近用户。
4系统测试与检测结果分析完成上述所有功能的配置后要为SnortIDS做最后的检测的测试。
首先要自己编辑一个规则然后通过编写的规则于规则库中的规则相互匹配产生告警信息然后将告警信息简单的分析的结果存入数据库中。
规则如下alert icmp any any - any any (msg:“ICMP Packet Detected”; sid:1000003; rev:1;)通过这个规则可以检测到ICMP包检测到的同时给出提示信息“ICMP Packet Detected”。
1搜集入侵数据规则设置完之后用内部局域网的三台主机分别是主机A、主机B和主机C作为本次测试的主机作为入侵的源地址。
在计算机D中输入以下命令snort -i eth0 -c /etc/snort/snort.conf -A fast//Snort系统启动入侵检测模式在计算机C的命令行中输入以下命令Ping
192.
168.
1
148这个命令的意思是使主机C一直发送TTL的ICMP数据包给主机D这些ICMP数据包被SIDS将收到的数据包视为入侵信息然后将这些告警信息存入到数据库中。
2检测与解析BASE查看入侵信息的方式有很多种分别查看不同方面的内容比如时间、源IP、数据包内容等通过对数据的查看管理员可以取得有关攻击的所有信息[17]。
下面罗列几项查看方式对数据进行分析并以此作为测试的方法。
1总计信息的展示进入BASE的首页如图
1右侧所示是得到3种协议的数据的比例。
页面包括侦测器全部、单项警告数、全部警告数、来源IP地址、目的IP地址、传输情况、单一IP连接数等对数据处理的信息。
如图
1右侧表示的是有连接的同一攻击18次一共有8269次检测到的入侵都是由ICMP产生的包对于其他的协议可以根据不同的需求来获取。
图
1 统计信息查询2详细数据信息查询点击任意一条入侵信查看如图
2显示有ID、时间标记、来源地址、目的地址和通讯级别这些的信息。
作为管理员为了找到入侵的来源。
可以在“通讯级别”找到通过这个找到来源的入侵。
图
2 详细查看入侵数据的信息4图表分析方式大量的数据显示并不能直观的反应出入侵信息的分析对于用户来说需要逐个的统计。
这里提供了图表显示的方法。
功能也十分的强大。
如图
4和
5。
可以图表的方式、图表的形状、X和Y轴的参数以及名称。
图
4 图表查看方式的选项图
5 图表查看方式的种类选择图表的形状是有很多样式的比如圆形、线形、饼状形等。
图表的方式也有很多种比如时间和警告数、来源IP和警告数、目的IP和警告数等。
如图
4和
5。
用户可以根据具体的需求来确定选择的图表。
从以上入侵数据的查看和分析中可以看出依据规则捕获数据是很准确的对入侵数据的内容分析也是很全面的[19]。
3 本章小结本章主要讲的是对Snort入侵检测系统整体功能的测试上一章主要是完成一个模块测试一个模块而这一章是对整个系统测试。
结 论IDS可以在多个平台进行设计和部署由于互联网的快速的普及网络入侵的危险对用户的威胁也就越来越大了所以人们对Windows下的入侵检测有了深入了研究和发现但是在其他平台下的研究不并没有达到一定的程度。
本文选择了在Linux系统下设计和实现IDS入侵检测系统研究内容如下1本文首先介绍下互联网信息安全的状态用户面临网络入侵的威胁。
然后由此产生的网络入侵检测Snort的技术同时提出了Snort系统的一些问题和不足。
2根据SIDS系统设计了整体的结构和编写了用于入侵检测的规则。
为详细设计Snort系统做了准备。
3介绍SIDS系统完备的设计和实现。
同时对单一系统进行了功能的扩充让系统的功能更加的完善从而提高了入侵检测的效率和用户使用系统的快捷。
本文在实现阶段对于每一个步骤的完成都进行了测试。
确保了系统在正确的情况下运行。
虽然SIDS已经有了很多优点但是随着技术的不发展功能的不断补强还有很多地方需要完善1由于互联网的数据量和维度特别的大增加了入侵检测的负担使得效率越来越低针对这样的情况将机器学习和深度学习运用到入侵检测得到相对于的模型提高了检测的效率。
2Snort系统本身的匹配算法BM有不足之处由于匹配算法的不足这样也会使得检测的效率降低所以针对BM算法的不足对BM算法进行优化。
文章底部可以获取博主的联系方式获取源码、查看详细的视频演示或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。
对于本系统我们提供全方位的支持包括修改时间和标题以及完整的安装、部署、运行和调试服务确保系统能在你的电脑上顺利运行。