WinPcap 包括三个模块:第一个模块NPF(Netgroup Packet Filter),是一个VxD(虚拟设备驱动程序)文件。其功能是过滤数据包,并把这些包完好无损地传给用户态模块。第二个模块packet.dll为Win32平台提供了一个公共接口,架构在packet.dll之上,提供了更方便、更直接的编程方法。第三个模块 Wpcap.dll不依赖于任何操作系统,是底层的动态链接库,提供了高层、抽象的函数。具体使用说明在各大网站上都有涉及,如何更好利用Winpcap需要较强的C环境编程能力。 4. WinDump的创建。安装后,在Windows命令提示符模式下运行,用户自己可以查看网络状态,恕不赘述。 如果没有软件兼容性问题、安装和配置正确的话,事件探测及采集已能实现。 事件分析系统 由于我们的网络大都用交换式以太网交换机连接,所以建立事件分析系统的目的是实现对多种网络防火墙设备的探测,以及多种采集方式(如基于Snmp、Syslog数据信息的采集)日志的支持,并提供一定的事件日志处理,统计、分析和查询功能。 事件分析系统是IDS的核心模块,主要功能是对各种事件进行分析,从中发现违反安全策略的行为,如何建立是重点也是难点。如果自己能或与人合作编写软件系统,就需要做好严谨的前期开发准备,如对网络协议、黑客攻击、系统漏洞有着比较清晰的认识,接着开始制定规则和策略,它应该基于标准的技术标准和规范,然后优化算法以提高执行效率,建立检测模型,可以模拟进行攻击及分析过程。 事件分析系统把检测引擎驻留在监视网段中,一般通过三种技术手段进行分析:模式匹配、协议分析和行为分析。当检测到某种误用模式时,产生对应的警告信息并发送给响应系统。目前来看,使用协议分析是实时检测的最好方式。 这个系统一种可能的方式是由协议分析器作为主体,可以在现成的、开放式的协议分析工具包基础上来构建;协议分析器可以显示分组级网络传输流,基于网络协议规则的警告进行自动分析来快速探测攻击的存在;由此,网络程序员和管理员可监控并分析网络活动,从而主动检测并定位故障。用户可以尝试一下一个叫Ethereal的免费网络协议分析器,它支持Windows系统。用户可以对由事件产生系统抓取后保存在硬盘上的数据进行分析。你能交互式地浏览抓取到的数据包,查看每一个数据包的摘要和详细信息。Ethereal有多种强大的特征,如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。 响应系统 响应系统是面向人、物的交互系统,可以说是整个系统的中转站和协调站。人即是系统管理员、物是其他所有组件。 详细说来,响应系统这个协调员要做的事很多:按照预置定义的方式,记录安全事件、产生报警信息(如E-mail形式)、记录附加日志、隔离入侵者、终止进程、禁止受害者的端口和服务、甚至反戈一击;可以采取人工响应和自动响应(基于机器的响应),两者结合起来会比较好。 响应系统的设计要素: 1. 接受自事件产生系统经事件分析系统过滤、分析、重建后的事件警报信息,然后交互给用户(管理员)查询并做出规则判断和采取管理行为。 2. 给管理员提供管理事件数据库系统的一个接口,可以修改规则库、根据不同网络环境情况配置安全策略、读写数据库系统。 3. 作用于前端系统时,可管理事件产生、分析系统(合称事件探测器),对该系统采集、探测、分析的事件进行分类、筛选,可针对不同安全状况,重新对安全规则进行洗牌。 响应系统和事件探测器通常是以应用程序的形式实现。 设计思路:响应系统可分为两个程序部分,监听和控制。 监听部分绑定某个空闲端口,接收从事件探测器发出的分析结果和其他信息,并转化存储文件到事件数据库系统中,作为管理员可根据用户权限调用来只读、修改以及特别的操作。控制部分可用GTK+来编写GUI,开发出较为直观的图形用户界面,目的主要是给用户一个更方便友好的界面来浏览警告信息。 事件数据库系统 在Windows平台下,虽然Access更易掌握,但采用SQL Server 2000构建会比Access有效,而且并不是很难入手,相关使用方法参见《Microsoft SQL Server 2000 联机丛书中文版》(2004)。 此系统主要功能:记录、存储、重排事件信息,可供管理员调用查看和对攻击审查取证使用。 此系统构造相对简单,只需利用到数据库软件的一些基本功能。 要协调各组件之间的有目的通信,各组件就必须能正确理解相互之间传递的各种数据的语义。可参考CIDF的通信机制,构建3层模型。注意各个组件之间的互操作性,保证安全、高效、顺畅。 整合在后续的工作中会不断进行,各个组件的功能也会不断完善。一个基本的、基于Windows平台的IDS框架就构建完毕。满足网络条件的话,试试亲手做做自己的奶酪吧,有一种不可名状的劳作后的甜蜜。