第1章 入侵检测系统概述 2
1.1 入侵检测系统的现状 2
1.1.1 滥用检测与非规则检测技术 3
1.1.2 基于主机与基于网络的入侵检测 6
1.1.3 其他的若干问题 8
1.2 进一步发展的若干方向 8
1.2.1 宽带高速网络的实时入侵检测技术 8
1.2.2 大规模分布式入侵检测 8
1.2.3 入侵检测的数据融合技术 9
1.3 我国的发展状况 10
第2章 IDES系统详解 12
2.1 概述 12
2.1.1 传统的安全手段 12
2.1.2 IDES概述 13
2.2 IDES设计模型 14
2.3 审计数据 18
2.3.1 审计数据类型 18
2.3.2 Sun UNIX上审计数据的生成 18
2.4 邻域接口 19
2.4.1 IDES审计记录生成器(Agen) 19
2.4.2 审计记录池(Arpool) 20
2.4.3 IDES审计记录设计 21
2.4.4 具体实现 22
2.4.5 与IDES处理单元的连接 27
2.5 统计异常检测器 28
2.5.1 统计分析算法 29
2.5.2 设计和实现 39
2.5.3 入侵检测测量值 42
2.6 IDES专家系统 45
2.7 IDES用户接口 48
2.7.1 设计的概念 48
2.7.2 用户接口组件 52
2.7.3 IDES用户接口库(Libiui) 59
2.8 GLU多处理平台 60
2.8.1 系统要求 60
2.8.2 多处理方法 60
2.8.3 GLU多处理的软件平台 61
2.8.4 使用GLU的IDES系统实现 65
2.9 发展方向 66
第3章 NIDES系统详解 70
3.1 概述 70
3.2 设计概述 70
3.2.1 原型概述 70
3.2.2 原型设计描述 74
3.3 详细设计 76
3.3.1 基本组件 76
3.3.2 审计数据生成组件 81
3.3.3 审计数据收集组件 84
3.3.4 统计分析组件 86
3.3.5 基于规则分析组件 96
3.3.6 解析器组件 100
3.3.7 安全管理员用户组件 102
3.3.8 审计生成服务 105
3.3.9 审计收集服务 106
3.3.10 分析服务 107
3.3.11 安全管理员用户接口服务 108
3.4 系统性能要求 113
3.5 NIDES与IDES系统的主要区别 114
第4章 网络入侵检测系统设计基础 116
4.1 概述 116
4.2 网络编程基础知识 116
4.2.1 分层协议模型 117
4.2.2 开放系统互连参考模型 117
4.2.3 TCP/IP参考模型 118
4.2.4 UNIX网络编程技术概述 121
4.3 基本的网络嗅探器(Sniffer)设计 121
4.3.1 网络嗅探器的功能 121
4.3.2 基本Sniffer软件源代码分析 122
4.4 更进一步的Sniffer设计 127
4.4.1 概述 127
4.4.2 Sniffer软件源代码分析 128
4.5 采用Libpcap库的通用设计 134
4.5.1 概述 134
4.5.2 什么是BPF 134
4.5.3 BPF的工作原理 135
4.5.4 BPF的过滤器模型 136
4.5.5 BPF的“过滤器虚拟机” 138
4.5.6 BPF的源代码分析 142
4.5.7 Libpcap库函数实例分析 163
4.5.8 采用Libpcap库接口的Sniffer实例 177
第5章 网络入侵检测系统实例——Snort源代码节选 194
5.1 初始化、主函数和命令行参数分析例程 194
5.2 协议解析器(Decoder)例程 222
5.3 规则(Rule)解析例程 268
5.4 检测引擎(Detection Engine)例程 312
5.5 插件(Plugins)管理例程 329
第6章 Snort系统源代码分析 350
6.1 概述 350
6.1.1 Snort系统概述 350
6.1.2 系统架构 350
6.2 初始化、主函数和命令行解析 352
6.3 协议解析例程分析 359
6.4 编写Snort的规则 365
6.4.1 规则头 366
6.4.2 规则选项 368
6.4.3 预处理器 375
6.4.4 输出模块 377
6.4.5 高级规则概念 379
6.5 规则解析例程分析 380
6.6 检测引擎例程分析 390
6.7 插件模块管理例程分析 395
附录 NIDES审计记录格式描述 402
参考文献 406