移动规则: 当文本字符串与模式字符不匹配时,根据函数bad-charactershift和good-suffix shift计算出的偏移值,取两者中的大者。 内容来自www.paper51.com 1、存放bad-character shift的数组为BadChar[],则BadChar[c]= min{i| 1 ≤i≤m-1 and x[m-1-i]=c},如果c未在模式字符中出现则BadChar[c]=m(m为x的长度)。 内容来自www.paper51.com 2、存放good-suffix shift的数组为GoodSuffix[],则suff[i]=max{k | y[i-k+1 .. i]=x[m-k.. m-1], 1≤ i < m }。即 suff 是P[0..i]和 T 的最长一般后缀。计算suff数组使得计算GoodSuffix函数变得简洁GoodSuffix[m - 1 - suff[i]]= m - 1–i。 内容来自www.paper51.com
最后取BadChar[c]和GoodSuffix[c]的最大值。 paper51.com 3 系统总体设计 内容来自www.paper51.com 3.1 系统概述 paper51.com 系统构建基于windows操作系统,并且兼容各种windows版本,系统的整体目标是实现一个windows平台下基于规则(基于误用)的网络入侵检测系统,实现基于规则的网络入侵检测,在现有已知的入侵特征下建立规则库,实现数据包地捕获和分析,完成对漏洞攻击和扫描等攻击行为的检测和报告。同时对攻击事件存入数据库,以便事后取证。 http://www.paper51.com 系统基于windows平台构建的基于规则(基于误用)的网络入侵检测系统,能够有效检测入侵事件、防止入侵、安全审计。 paper51.com 系统的开发选择支持国际标准的开发平台类型、系统结构和技术方案,支持跨平台、跨越应用的移植,使系统的硬件环境、通信环境、软件环境相互间依赖程度减至最小,使其各自发挥优势;为使能方便用户开发了一个中央控制台,方便用户管理和使用一系列的功能。 http://www.paper51.com 3.2 系统总体结构框架 http://www.paper51.com
http://www.paper51.com 图3.1系统总体结构框架 内容来自论文无忧网 www.paper51.com 3.3 开发环境 内容来自www.paper51.com
开发系统所采用的语言是C/C++,表3.1是开发系统所用到的相关部件。 copyright paper51.com 表3.1 系统开发软体环境 内容来自论文无忧网 www.paper51.com 部件名称 内容来自论文无忧网 www.paper51.com 软体 copyright paper51.com 系统平台 内容来自论文无忧网 www.paper51.com Microsoft Windows paper51.com 开发工具 内容来自论文无忧网 www.paper51.com VC++ 6.0 内容来自论文无忧网 www.paper51.com 编译环境 copyright paper51.com
VC++ 6.0 paper51.com
运行环境 内容来自www.paper51.com Microsoft Windows 内容来自论文无忧网 www.paper51.com
数据库 paper51.com MYSQL copyright paper51.com
开发包 paper51.com winpcap、libnids copyright paper51.com 4 响应模块设计实现 paper51.com 4.1 规则库设计实现 http://www.paper51.com IDS要有效地捕捉入侵行为,必须拥有一个强大的入侵特征数据库,这就如同公安部门必须拥有健全的罪犯信息库一样。但是,IDS一般所带的特征数据库都比较死板,遇到“变 脸”的入侵行为往往相逢不相识。因此,管理员有必要学会如何创建满足实际需要的特征数据样板,做到万变应万变! paper51.com IDS中的规则(特征)就是指用于判别通讯信息种类的样板数据,通常分为多种,以下是一些典型情况及识别方法: 内容来自www.paper51.com 1、来自保留IP地址的连接企图:可通过检查IP报头(IP header)的来源地址轻易地识别。 copyright paper51.com 2、带有非法TCP 标志联合物的数据包:可通过对比TCP报头中的标志集与已知正确和错误标记联合的不同点来识别。 paper51.com 3、含有特殊病毒信息的Email:可通过对比每封Email的主题信息和病态Email的主题信息来 识别,或者,通过搜索特定名字的附近来识别。 copyright paper51.com 4、查询负载中的DNS缓冲区溢出企图:可通过解析DNS域及检查每个域的长度来识别利用DNS 域的缓冲区溢出企图。 http://www.paper51.com
5、通过对POP3服务器发出上千次同一命令而导致的DOS攻击:通过跟踪记录某个命令连续发出的次数,看看是否超过了预设上限,而发出报警信息。 内容来自论文无忧网 www.paper51.com 6、未登录情况下使用文件和目录命令对FTP服务器的文件访问攻击:通过创建具备状态跟踪的特征样板以监视成功登录的FTP对话、发现未经验证却发命令的入侵企图。 内容来自www.paper51.com 从以上分类可以看出特征的涵盖范围很广,有简单的报头域数值、有高度复杂的连接状态跟踪、有扩展的协议分析。 copyright paper51.com 规则库的建立 内容来自www.paper51.com 报头值的结构比较简单,而且可以很清楚地识别出异常报头信息,因此,特征数据的首席候选人就是它。一个经典的例子是:明显违背RFC793中规定的TCP标准、设置了SYN和FIN标记的TCP数据包。这种数据包被许多入侵软件采用,向防火墙、路由器以及IDS系统发起攻击。 http://www.paper51.com 因为大多数操作系统和应用软件都是在假定RFC被严格遵守的情况下编写的,没有添加针对异常数据的错误处理程序,所以许多包含报头值的漏洞利用都会故意违反RFC的标准定义,明目张胆地揭发被攻击对象的偷工减料行为。许多包含错误代码的不完善软件也会产生违反RFC定义的报头值数据。并非所有的操作系统和应用程序都能全面拥护RFC定义,至少会存在一个方面与RFC不协调。 随着时间推移,执行新功能的协议可能不被包含于现有RFC中。由于以上几种情况,严格基于RFC的IDS特征数据就有可能产生漏报或误报效果。对此,RFC也随着新出现的违反信息而不断进行着更新,我们也有必要定期地回顾或更新存在的特征数据定义。非法报头值是特征数据的一个非常基础的部分,合法但可疑的报头值也同等重要。例如,如果存在到端口31337或27374的可疑连接,就可报警说可能有特洛伊木马在活动;再附加上其他更详细地探测信息,就能够进一步地判断是真马还是假马。 http://www.paper51.com 不同的入侵检测系统有不同的规则库,本系统的规则库结构如表4.1所示。 copyright paper51.com
表4.1 规则库结构 内容来自www.paper51.com 选项名称 内容来自论文无忧网 www.paper51.com 数据库定义名称 copyright paper51.com 意义 copyright paper51.com
规则号 copyright paper51.com rulesid 内容来自论文无忧网 www.paper51.com 用于定义规则的编号 copyright paper51.com IP协议字段值 copyright paper51.com Ip_proto http://www.paper51.com 在规则中上层协议的代码 paper51.com IP上层协议 paper51.com
protocol paper51.com IP上层协议的名称,如“tcp” copyright paper51.com 规则动作 http://www.paper51.com action copyright paper51.com 决定如果匹配该规则将采取的行动 http://www.paper51.com
IP源地址 内容来自www.paper51.com
ip_src 内容来自www.paper51.com 数据包的来源源地址 内容来自论文无忧网 www.paper51.com IP目的地址 copyright paper51.com ip_dst copyright paper51.com 数据包的目的地址 http://www.paper51.com 源端口 copyright paper51.com
sourceport http://www.paper51.com 数据包的来源端口 http://www.paper51.com 目的端口 内容来自论文无忧网 www.paper51.com destinationport 内容来自论文无忧网 www.paper51.com
数据包的去向端口 copyright paper51.com
服务类型 copyright paper51.com tos paper51.com IP 数据包中的TOS字段的值 内容来自论文无忧网 www.paper51.com
存活期 内容来自www.paper51.com ttl paper51.com 设置一个用于检查的存活期值 内容来自www.paper51.com
IP头的分片id paper51.com id http://www.paper51.com 用于检测IP头的分片id值 paper51.com IP选项 内容来自www.paper51.com ipoption copyright paper51.com 如果IP包头中包含则检查。如源路由 paper51.com IP分段位 内容来自论文无忧网 www.paper51.com fragbits 内容来自www.paper51.com IP头中分段位和保留位的值 copyright paper51.com 数据大小 内容来自www.paper51.com
datasize paper51.com 数据包净荷大小 内容来自论文无忧网 www.paper51.com
TCP Flags 内容来自论文无忧网 www.paper51.com flags paper51.com 检查TCP Flags的值 内容来自www.paper51.com TCP序号 内容来自www.paper51.com seq paper51.com 检查TCP顺序号的值 内容来自论文无忧网 www.paper51.com TCP 应答 内容来自www.paper51.com ack paper51.com
检查TCP应答的值 http://www.paper51.com TCP窗口域 内容来自www.paper51.com window copyright paper51.com 测试TCP窗口域的特殊值 http://www.paper51.com ICMP 类型 内容来自论文无忧网 www.paper51.com itype copyright paper51.com 检查ICMP type的值 内容来自论文无忧网 www.paper51.com ICMP 代码 http://www.paper51.com icode 内容来自论文无忧网 www.paper51.com 检查ICMP code的值 http://www.paper51.com
ICMP ECHO ID 内容来自论文无忧网 www.paper51.com icmp_id 内容来自论文无忧网 www.paper51.com 检查ICMP ECHO ID的值 http://www.paper51.com ICMP ECHO 顺序号 http://www.paper51.com
icmp_seq http://www.paper51.com 检查ICMP ECHO顺序号的值 copyright paper51.com 包净荷中搜索指定的匹配串 http://www.paper51.com content copyright paper51.com 需要检测的数据段的匹配字符串 paper51.com 包净荷中开始搜索的位置 内容来自论文无忧网 www.paper51.com offset 内容来自论文无忧网 www.paper51.com
搜索数据段的开始位置 copyright paper51.com 包净荷中搜索的最大深度 http://www.paper51.com depth http://www.paper51.com 数据段从开始位置开始搜索的最大长度 http://www.paper51.com 字符串大小 内容来自论文无忧网 www.paper51.com nocase copyright paper51.com 搜索的字符串是否考虑大小写 内容来自论文无忧网 www.paper51.com 警告信息 http://www.paper51.com
msg http://www.paper51.com 需要输出或写入日志数据库的警告信息 paper51.com |