如何构建入门级IDS (如何构建入门克隆)

教程大全 2025-07-16 00:56:26 浏览

IDS作为网络安全产品受到各大企业的关注,但是因为IDS产品价格居高致使许多中小型企业没有能力购进如此昂贵的系统,它们的精力会放在路由器、防火墙以及3层以上交换机的加固上;大中型企业虽然很多已经上了IDS产品,但IDS天然的缺陷导致其似乎无所作为。但IDS作为企业来说是一个必需的过程,那么我们如何才能利用少量的资金来达到自己的安全防护效果呢?本文简单讲述了如何构建入门级IDS系统。

其实IDS的技术手段并不很神秘,接下来我们用一种“顺藤摸瓜”的脉络,看看构建入门级IDS需要哪些步骤。从市场分布、入手难易的角度来看,选择NIDS作为范例进行部署,比较地恰当。本文以完全的Windows平台来贯穿整个入侵检测流程,由于篇幅所限,以定性分析角度来陈述。

如何构建入门克隆

预备知识

IDS:Intrusion Detection System(入侵检测系统),通过收集网络系统信息来进行入侵检测分析的软件与硬件的智能组合。

对IDS进行标准化工作的两个组织:作为国际互联网标准的制定者IETF的Intrusion Detection Working Group(IDWG,入侵检测工作组)和Common Intrusion Detection Framework(CIDF,通用入侵检测框架)。

IDS分类:Network IDS(基于网络)、Host-Based IDS(基于主机)、Hybrid IDS(混合式)、Consoles IDS(控制台)、File Integrity Checkers(文件完整性检查器)、Honeypots(蜜罐)。事件产生系统

根据CIDF阐述入侵检测系统(IDS)的通用模型思想,具备所有要素、最简单的入侵检测组件。根据CIDF规范,将IDS需要分析的数据统称为Event(事件),Event既可能是网络中的Data Packets(数据包),也可能是从System Log等其他方式得到的Information(信息)。

没有数据流进(或数据被采集),IDS就是无根之木,完全无用武之地。

作为IDS的基层组织,事件产生系统大可施展拳脚,它收集被定义的所有事件,然后一股脑地传到其它组件里。在Windows环境下,目前比较基本的做法是使用Winpcap和Windump。

大家知道,对于事件产生和事件分析系统来说,眼下流行采用Linux和Unix平台的软件和程序;其实在Windows平台中,也有类似Libpcap(是Unix或Linux从内核捕获网络数据包的必备软件)的工具即Winpcap。

Winpcap是一套免费的, 基于Windows的网络接口API,把网卡设置为“混杂”模式,然后循环处理网络捕获的数据包。其技术实现简单,可移植性强,与网卡无关,但效率不高,适合在100 mbps以下的网络

相应的基于Windows的网络嗅探工具是Windump(是Linux/Unix平台的Tcpdump在Windows上的移植版),这个软件必须基于Winpcap接口(这里有人形象地称Winpcap为:数据嗅探驱动程序)。使用Windump,它能把匹配规则的数据包的包头给显示出来。你能使用这个工具去查找网络问题或者去监视网络上的状况,可以在一定程度上有效监控来自网络上的安全和不安全的行为。

这两个软件在网上都可以免费地找到,读者还可以查看相关软件使用教程。

下面大略介绍一下建立事件探测及采集的步骤

1、装配软件和硬件系统。根据网络繁忙程度决定是否采用普通兼容机或性能较高的专用 服务器 ;安装nt核心的Windows操作系统,推荐使用Windows Server 2003企业版,如果条件不满足也可使用Windows 2000 advanced Server。分区格式建议为ntfs格式。

2、服务器的空间划分要合理有效,执行程序的安装、数据日志的存储,两者空间最好分别放置在不同分区。

3、Winpcap的简单实现。首先安装它的驱动程序,可以到它的主页或镜像站点下载Winpcap auto-installer (driver+dlls),直接安装。

注:如果用Winpcap做开发,还需要下载 developer’s pack。

Winpcap 包括三个模块:第一个模块NPF(netgroup packet filter),是一个VXD(虚拟设备驱动程序)文件。其功能是过滤数据包,并把这些包完好无损地传给用户态模块。第二个模块packet.dll为win32平台提供了一个公共接口,架构在packet.dll之上,提供了更方便、更直接的编程方法。第三个模块 wpcap.dll不依赖于任何操作系统,是底层的动态链接库,提供了高层、抽象的函数。具体使用说明在各大网站上都有涉及,如何更好利用Winpcap需要较强的C环境编程能力。

4、Windump的创建。安装后,在Windows命令提示符模式下运行,用户自己可以查看网络状态,恕不赘述。

如果没有软件兼容性问题、安装和配置正确的话,构建入门级IDS中的第一步,事件探测及采集已能实现。

事件分析系统

由于我们的网络大都用交换式以太网交换机连接,所以建立事件分析系统的目的是实现对多种网络防火墙设备的探测,以及多种采集方式(如基于Snmp、Syslog数据信息的采集)日志的支持,并提供一定的事件日志处理,统计、分析和查询功能。

事件分析系统是IDS的核心模块,主要功能是对各种事件进行分析,从中发现违反安全策略的行为,如何建立是重点也是难点。如果自己能或与人合作编写软件系统,就需要做好严谨的前期开发准备,如对网络协议、黑客攻击、系统漏洞有着比较清晰的认识,接着开始制定规则和策略,它应该基于标准的技术标准和规范,然后优化算法以提高执行效率,建立检测模型,可以模拟进行攻击及分析过程。

事件分析系统把检测引擎驻留在监视网段中,一般通过三种技术手段进行分析:模式匹配、协议分析和行为分析。当检测到某种误用模式时,产生对应的警告信息并发送给响应系统。目前来看,使用协议分析是实时检测的最好方式。

这个系统一种可能的方式是由协议分析器作为主体,可以在现成的、开放式的协议分析工具包基础上来构建;协议分析器可以显示分组级网络传输流,基于网络协议规则的警告进行自动分析来快速探测攻击的存在;由此,网络程序员和管理员可监控并分析网络活动,从而主动检测并定位故障。用户可以尝试一下一个叫ethereal的免费网络协议分析器,它支持Windows系统。用户可以对由事件产生系统抓取后保存在硬盘上的数据进行分析。你能交互式地浏览抓取到的数据包,查看每一个数据包的摘要和详细信息。Ethereal有多种强大的特征,如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。

响应系统

响应系统是面向人、物的交互系统,可以说是整个系统的中转站和协调站。人即是系统管理员、物是其他所有组件。详细说来,响应系统这个协调员要做的事很多:按照预置定义的方式,记录安全事件、产生报警信息(如E-mail形式)、记录附加日志、隔离入侵者、终止进程、禁止受害者的端口和服务、甚至反戈一击;可以采取人工响应和自动响应(基于机器的响应),两者结合起来会比较好。

响应系统的设计要素

(1) 接受自事件产生系统经事件分析系统过滤、分析、重建后的事件警报信息,然后交互给用户(管理员)查询并做出规则判断和采取管理行为。

(2) 给管理员提供管理事件数据库系统的一个接口,可以修改规则库、根据不同网络环境情况配置安全策略、读写数据库系统。

(3)作用于前端系统时,可管理事件产生、分析系统(合称事件探测器),对该系统采集、探测、分析的事件进行分类、筛选,可针对不同安全状况,重新对安全规则进行洗牌。

响应系统和事件探测器通常是以应用程序的形式实现。

设计思路:响应系统可分为两个程序部分,监听和控制。 监听部分绑定某个空闲端口,接收从事件探测器发出的分析结果和其他信息,并转化存储文件到事件数据库系统中,作为管理员可根据用户权限调用来只读、修改以及特别的操作。控制部分可用GTK+来编写gui,开发出较为直观的图形用户界面,目的主要是给用户一个更方便友好的界面来浏览警告信息。

事件数据库系统

在Windows平台下,虽然Access更易掌握,但采用SQL Server 2000构建会比Access有效,而且并不是很难入手,此系统主要功能:记录、存储、重排事件信息,可供管理员调用查看和对攻击审查取证使用。

此系统构造相对简单,只需利用到数据库软件的一些基本功能。

要协调各组件之间的有目的通信,各组件就必须能正确理解相互之间传递的各种数据的语义。可参考CIDF的通信机制,构建3层模型。注意各个组件之间的互操作性,保证安全、高效、顺畅。

整合在后续的工作中会不断进行,各个组件的功能也会不断完善。我们已经成功构建入门级IDS系统。满足网络条件的话,试试亲手做做自己的奶酪吧,有一种不可名状的劳作后的甜蜜。

【编辑推荐】


Linux下环境搭建 怎么配置编译器

编译器:GCC编译器可以用来编译C和C++源程序,C编译器通过文件的后缀来判断是C程序还是C++程序。 一般来说C源文件的后缀为“.C”,而C++源文件的后缀为“.C”或“C++”。 但GCC编译器只能编译C++源程序,不能与使用的库连接,因此用G++来完成C++程序的编译与连接,该程序会自动调用GCC来编译。 Linux里环境变量的设置,有如下几种方法:(1)直接在终端里输入export后面加要设的变量,例如QT:ExportQTDIR=$PWD/qt-2.3.2其中,pwd是用来显当前路径的命令,在其前面加上$,则表示QT的目标目录在当前目录下的“qt-2.3.2”里,当然“$PWD”也可以用绝对路径来代替。 这种方法所设的环境变量在下次开机后不再有效,而且换个shell也不会有效,只是临时的。 (2)在etc/Profile里添加环境变量,比如:exportQTDIR=/usrexportLD_LIBRARY_PATH=$QTDIR/libexportQT_QWS_FONTDIR=$QTDIR/lib/fontsexportQWS_DISPLAY=LinuxFb:/dev/fb0(3)修改,如果需要给某个用户权限使用这些环境变量,只需修改其个人用户家目录下的文件就可以了。 (4)用以上面两种方法设置好环境变量后记得重启以上使用QT为例

如何组建raid系统?

raid 1使用至少2块硬盘,数据在另一个盘上有备份,从而使数据更加安全。 raid 0 使用至少2块硬盘,某个程序或文件的数据分段分别在两块硬盘上读写,从而使速度加快,但安全性不能与 raid 1 相比。 RAID5:分布式奇偶校验的独立磁盘结构从它的示意图上可以看到,它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。 RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。 因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。 RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。 这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。 硬盘的利用率为n-1。 但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。 RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。 而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。 在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

怎么创建自己的外汇交易系统?

创建交易系统的主要需要从下面几上方面来进行:1.选择时间框架,在创建交易系统时,要清楚你自己是做日内交易还是波段交易者。 不同的交易类型对时间框架重点不一样。 2.选择一项用于确认新趋势的指标。 尽可能早的确认或发现趋势是我们创建交易系统的目的之一,为了达到这个目的我们得找到一种合适指标。 在目前我们用的最多的趋势指标中移动均线是用的最为广泛的一种。 在利用均线来做趋势指标时至少得采用两条:一条快线,一条为慢线。 简单的理论就是快线穿越慢线时进行交易,这是均线交叉系统的基础,也是确认新趋势最简单的方法。 3.选择一种验证趋势信号的指标。 这个指标的目的是过滤掉一些虚假的信号,以免被虚假的信号误导,验证确认新趋势的指标发出来的信号。 这样的指标有很多 ,但是用的最多的是MACD,KDJ,RSI等。 4.确定你承受的风险与进出场点位。 这里的风险是你单笔交易能承受的风险。 在进场点位的选择上,最好是等到K线收盘价出了之后才进场是最好的,这时候的指标已经确立。 在出场点位的选择上你可以选择移动止损的方法,也可以给自己设定一个固定的利润目标,你也可以根据指标是否反转而选择出场时机。 5.制定自己的交易规则,并且利用你的系统进行不断的验证。 交易系统建好之后还要进行一段时间的测试自己的系统是否合理。 当经过测试后,觉得可行,那么在以后的交易中就要严格遵守它。 其实在创建交易系统的时候,主要目的是两个,首先是尽可能早的发现新的趋势;系统应该能够避免市场发出的错误信号。 这两点是结合在一起有些困难。 在实际交易中无论在什么情况下,还是要根据形势对操作思路作出适当的调整。 未来不是一成不变的。 下面我可以举例为你提供一个简单的交易系统:一、交易设置。 1.在日线图上进行波段交易。 2.快线为周期5的移动均线,慢线为周期10的移动均线,都以收盘价计算3.随机振荡指标KDJ(参数10.3.3)4.相对强弱指数RSI参数为14二、交易规则1.止损30点;2.进场原则: ①做多条件:快线上穿慢线并且KDJ指标线向上,但是如果一条指标位于超买区则放弃。 RSI指数小于50②做空条件:快线下穿慢线,KDJ指标向下。 但是如果其中一条指标线位于超卖区则放弃。 ③离场原则,当快线反穿慢线或者RSI反穿50时交易结束。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐