news 2026/4/16 12:58:13

Linux平台下智能入侵检测系统设计与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux平台下智能入侵检测系统设计与实现

摘 要

互联网的普及已经深深的影响了整个世界,使得整个世界变得更加的紧密。虽然给生活在地球村的人带来了便利,但是也威胁到了人们的日常。因此入侵检测系统作为一个具有主动性和实时性的安全措施,对入侵检测的研究起到十分重要的作用。它主要是通过收集和分析计算机外部和内部的信息,判断是否有可疑的入侵的现象,来完成对入侵的警告和达到防御的作用,使得网络入侵的伤害减少到最低的程度。
本课题主要论述了基于Linux系统下,介绍了入侵检测系统的概念。从入侵检测系统的结构和运行流程方面对Snort做了深入的解析来对相关的规则做了扩展和实现。在设计中用Lipacp对网络数据包进行获取,snort作为入侵探测器对数据包进行实时的解析。用MySQL数据库用于存储入侵检测的日志。用Apache作为HTTP的服务器,用BASE作为基于Web入侵事件数据库分析台,用Barnyard将报警日志存入到数据库中。在这其中为实现BASE,用Apache为其提供网络的服务,同时BASE作为查看分析MySQL数据库的分析台。最后对调试的结果进行记录和总结。
关键词:Snort;入侵检测;IDS;网络安全

1 入侵检测与Snort概述

入侵检测是计算机从网络中获取接收的数据,然后对收集到的信息对其检测[1]。如有发现对主机用户有威胁的攻击和入侵现象,则系统会通过软硬件结合的方式,主动的为主机提供全方位的保护。在众多的入侵检测安全管理工具中,Snort是目前最主流和具有应用前景的系统。
1.1入侵检测系统概念
入侵检查是对防火墙(防火墙)的合理补充,可以帮助系统应对网络攻击,并扩展了系统管理员的安全管理功能(包括安全审核,监视,攻击识别和响应),以增强信息安全基础架构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,确定网络中是否有违反安全策略的行为和遭到袭击的迹象[2]。
对于入侵检测系统而言,最重要的是如何对其进行检测。 一般分类为异常检测误用检测。根据信息来源的不同,可以分为主机入侵检测系统(HIDS)和网络入侵检测系统(NIDS)[3]。HIDS根据主机系统的系统日志和审计记录来进行检测分析。NIDS是根据网络的数据包来分析的。HIDS的部署比较的麻烦,所以花费代价很大,而部署比较的简单,有较低的成本。HIDS有特定监视行为的功能,但是太过依赖于主机的日志。NIDS具有更好的实时性和可移植性。但是缺点是无法检测大量的数据。所以完整的入侵检测系统需要主机和网络两种系统合二为一。
1.2 Snort系统
Snort是一个由C语言开发的免费的开源的软件和基于Lipacp的轻量级网络入侵检测系统。它可以在多个不同的平台进行跨平台的部署像Linux和Windows系统。并且可以对数据和规则等功能同时的进行,来检测可能存在的危险。由于Snort是开源的,所以开发者们可以随意的对Snort的源码进行二次的开发,不断扩充了Snort的功能。对于使用者来说变得更加的简单和方便。Snort的典型运行环境如图1.1所示[4]。
1.3 Snort的特点
Snort具有多平台性和扩展性的入侵检测系统,由于从网络获取数据,所以Snort被定义为基于网络的入侵检测。针对每一种入侵行为,都提炼出它的特征并按照规范写成规则,从而形成一个规则库,将捕获的数据包对照规则库逐一匹配,若匹配成功,则认为该入侵行为成立[5]。Snort入侵检测系统的
特点如下:
(1)Snort系统在多个平台进行部署,它具有在不同系统的扩展性;
(2)具有实时分析功能和获取网络数据包的能力。能够对网络入侵做出迅速的反应,发出报警提示,同时系统还提供多告警的方式。
(3)Snort具有灵活的日志格式,支持Topdump的二进制格式,也支持ASCII字符形式,也支持XML格式的,更便于维护和检查[6];
完备的Snort具有强大的功能是任何一款入侵检测系统无法对比的。如今Snort的发展正值顶峰,很多研究人员都在不停的对Snort进行更多的扩充。不久以后Snort将成为最大的检测系统。

图1.1 搭建Snort实体图

2 需求分析与总体设计

本章主要通过系统的分析决定模块的分割与各模块之间的关系,说明功能结构的设计,并明确说明各功能模块所要完成的工作,提供系统整个设计和功能结构的设计。最后,各模块的特定设计流程,主要商务活动和系统的主要设计部分,详细信息,数据库表的设计基础,并决定表的结构和特定内容。
2.1 必要功能需求分析
功能的需求分析是一个项目最基础的工作,它指的是确定系统的需要哪些必备的功能。然后根据必要功能对这些功能模块进行开发。本文根据项目调查的结果实现了以下的功能:
(1)获取网络数据包。作为网络检测的第一步,也是最基础的一步。它是整个系统运行的前提,网络数据包被Lipacp包获取之后,被分析检测,是否存在含有威胁的特征。
(2)分析数据包信息。分析数据信息是整个系统中最重要的模块。它是整个系统的核心部分,主要功能是检查和分析捕获的数据路径以验证入侵的风险。
(3)对威胁的行为告警。检测数据和捕获数据,原本用户是无法看到入侵检测的情况,所以需要通过告警信息,来展示是否已将入侵的信息检测到。
(4)对检测信息的保存模块。入侵检测到的信息并不能直接检测就丢弃,后面需要调用其数据和做分析,所以需要将其存入到数据库中,这样用户需要信息时,可以从数据库中直接观看,为后续统计和显示数据作了铺垫。
2.2 数据库的设计
该系统采用MySQL作为数据库。 由于检测和分析的数据包存储在数据库中,因此有必要根据数据包信息设计数据库表。表单的域和协议头有关信息对应。分别对四种网络协议进行分析,同时建立对应的数据库表,分别为ARP、ICMP、UDP、IP、TCP等表。下图2.1是各个表的关系示意图。其中signature包括规则形式的报告通知信息,如果按类型分类,它会指示诸如报告类型的主要编号,报告类型,报告类型的主要信息,报告优先级,版本号以及报告类型等字段。event表示的是告警的元数据的信息,Sid和cid共同作为主码,告警事件发生的系统时间等字段。

图2.1 数据库模型图

2.3 Snort的整体框架
Snort的体系结构是由数据包获取模块、预处理模块、检测模块和报警模块4个插件构成的,体系的结构如图2.2所示:

图2.2 体系结构图

3 SIDS的详细设计与实现

Snort本身是一个非常优灵活的入侵检测系统,它可以根据用户的需求来对系统进行扩展,构成一个丰富和全面的入侵检测系统。但是扩充的同时,也增加了系统完成的复杂度。本文选择的是基于Linux下搭建来更好的显示Snort全面的功能。
3.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的计算机是在外网上的。它可以对内网内的任何一台主机发动攻击。
在系统拓扑图3.1中,为每一个设备都设置了别名,方便在接下来的设计和实现系统的步骤。

图3.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”。
4.1搜集入侵数据
规则设置完之后,用内部局域网的三台主机,分别是主机A、主机B和主机C作为本次测试的主机作为入侵的源地址。在计算机D中,输入以下命令:
snort -i eth0 -c /etc/snort/snort.conf -A fast
//Snort系统启动入侵检测模式
在计算机C的命令行中输入以下命令:
Ping 192.168.17.148
这个命令的意思是使主机C一直发送TTL的ICMP数据包给主机D,这些ICMP数据包被SIDS将收到的数据包视为入侵信息,然后将这些告警信息存入到数据库中。
4.2检测与解析
BASE查看入侵信息的方式有很多种,分别查看不同方面的内容,比如时间、源IP、数据包内容等,通过对数据的查看,管理员可以取得有关攻击的所有信息[17]。下面罗列几项查看方式对数据进行分析,并以此作为测试的方法。
1.总计信息的展示
进入BASE的首页,如图4.1右侧所示是得到3种协议的数据的比例。页面包括侦测器全部、单项警告数、全部警告数、来源IP地址、目的IP地址、传输情况、单一IP连接数等对数据处理的信息。如图4.1右侧表示的是有连接的同一攻击18次,一共有8269次检测到的入侵,都是由ICMP产生的包,对于其他的协议,可以根据不同的需求来获取。

图4.1 统计信息查询
2.详细数据信息查询
点击任意一条入侵信查看如图4.2显示,有ID、时间标记、来源地址、目的地址和通讯级别这些的信息。作为管理员,为了找到入侵的来源。可以在“通讯级别”找到,通过这个找到来源的入侵。

图4.2 详细查看入侵数据的信息
4.图表分析方式
大量的数据显示,并不能直观的反应出入侵信息的分析,对于用户来说需要逐个的统计。这里提供了图表显示的方法。功能也十分的强大。如图4.4和4.5。可以图表的方式、图表的形状、X和Y轴的参数以及名称。

图4.4 图表查看方式的选项

图4.5 图表查看方式的种类选择
图表的形状是有很多样式的,比如圆形、线形、饼状形等。图表的方式也有很多种,比如时间和警告数、来源IP和警告数、目的IP和警告数等。如图4.4和4.5。用户可以根据具体的需求来确定选择的图表。
从以上入侵数据的查看和分析中,可以看出,依据规则捕获数据是很准确的,对入侵数据的内容分析也是很全面的[19]。
4.3 本章小结
本章主要讲的是对Snort入侵检测系统整体功能的测试,上一章主要是完成一个模块测试一个模块,而这一章是对整个系统测试。

结 论

IDS可以在多个平台进行设计和部署,由于互联网的快速的普及,网络入侵的危险对用户的威胁也就越来越大了,所以人们对Windows下的入侵检测有了深入了研究和发现,但是在其他平台下的研究不并没有达到一定的程度。本文选择了在Linux系统下设计和实现IDS入侵检测系统,研究内容如下:
(1)本文首先介绍下互联网信息安全的状态,用户面临网络入侵的威胁。然后由此产生的网络入侵检测(Snort)的技术,同时提出了Snort系统的一些问题和不足。
(2)根据SIDS系统设计了整体的结构和编写了用于入侵检测的规则。为详细设计Snort系统做了准备。
(3)介绍SIDS系统完备的设计和实现。同时对单一系统进行了功能的扩充,让系统的功能更加的完善,从而提高了入侵检测的效率和用户使用系统的快捷。本文在实现阶段,对于每一个步骤的完成,都进行了测试。确保了系统在正确的情况下运行。
虽然SIDS已经有了很多优点,但是随着技术的不发展,功能的不断补强,还有很多地方需要完善:
(1)由于互联网的数据量和维度特别的大,增加了入侵检测的负担,使得效率越来越低,针对这样的情况将机器学习和深度学习运用到入侵检测,得到相对于的模型,提高了检测的效率。
(2)Snort系统本身的匹配算法BM有不足之处,由于匹配算法的不足,这样也会使得检测的效率降低,所以针对BM算法的不足,对BM算法进行优化。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 12:09:40

ue5 设置灯光

目录 DirectionalLight SkyLight PointLight SpotLight 聚光灯的特点: DirectionalLight 太阳光 🌞(最亮的那个) SkyLight 环境光(整体发灰发亮) PointLight 点光源(灯泡) Sp…

作者头像 李华
网站建设 2026/4/14 23:03:44

30岁转行AI不晚!大模型学习全攻略+资料包,码住收藏不迷路,非常详细收藏这一篇就够了

30岁转行AI领域完全可行,跨领域经验和学习能力是优势。AI作为新兴领域提供大量机会。本文提供大模型AI全套学习资源,包括学习路线、640份报告、经典书籍、商业化方案及面试资料,助您系统掌握大模型技术,实现职业转型。资源已上传C…

作者头像 李华
网站建设 2026/4/13 23:44:07

‌TestOps的“测试执行日志分析”:自动聚类失败模式

自动聚类失败模式是TestOps落地的核心引擎,可将故障定位效率提升30%–60%,并显著降低重复缺陷修复成本。其技术基石为“日志向量化 无监督聚类”,在中文日志环境下需结合FST ITN标准化与正则结构化预处理,方可实现高精度聚类。‌…

作者头像 李华
网站建设 2026/4/10 21:12:11

基于PLC的物料自主分拣控制器设计

第二章 物料自主分拣系统的总体设计 2.1物料自主分拣技术 目前,物流行业的高端科技产品(自动化立体仓库、自动分拣机和自动化信息处理以及通讯等)被不断应用于各个领域。自主分拣系统出现在公众眼前是在第一次世界大战之后,美国和日本配送物料所采用的一…

作者头像 李华