第1章 入侵检测基础概念 1
1.1 入侵检测系统的作用 1
1.2 IDS的标准结构 2
1.3 如何检测入侵 2
1.4 IDS的分类 4
1.4.1 NIDS 4
1.4.2 HIDS 5
1.4.3 DIDS 6
1.5 攻击的来源 7
1.6 IDS的部署和使用 8
1.6.1 IDS的选择 8
1.6.2 IDS的部署 9
第2章 Snort应用基础 14
2.1 Snort简介 14
2.2 Snort原理 15
2.2.1 整体结构 15
2.2.2 Snort在网络层次模型中的位置 17
2.3 代码流程 17
2.4 内部工作流程 18
2.4.1 捕获网络流量 19
2.4.2 包解码器 20
2.4.3 预处理器 22
2.4.4 规则解析和探测引擎 25
2.4.5 报警输出模块 31
2.5 Snort的部署 32
2.5.1 部署策略 32
2.5.2 操作系统平台的选择 33
2.5.3 三层体系结构 34
2.5.4 三位一体的集成式安装 37
第3章 面向小型网络的集成式安装 39
3.1 安装Snort IDS所需软件 39
3.1.1 传感器层软件 39
3.1.2 服务器层软件 40
3.1.3 集成工具包 40
3.1.4 管理员控制台 41
3.1.5 Snort管理工具 41
3.1.6 各类库 42
3.1.7 Snort虚拟机 43
3.2 Windows下的集成式安装 43
3.2.1 安装Snort和Winpcap包 43
3.2.2 AppServ 44
3.2.3 安装Adodb、j1pgraph和ACID 53
3.2.4 配置Snort 54
3.2.5 系统测试 55
3.3 Linux下的集成式安装 59
3.3.1 Linux平台下软件的一般安装方法 59
3.3.2 安装Snort 61
3.3.3 安装IDS配套软件 67
3.3.4 MySQL的安装和配置 72
3.3.5 Adodb、ACID的安装和配置 77
3.3.6 Linux下的安装测试 78
第4章 Snort的分离式安装 91
4.1 分离式安装中的安全连接 91
4.1.1 OpenSSL 93
4.1.2 Stunnel 93
4.1.3 OpenSSH 95
4.1.4 其他SSH软件 97
4.2 建立服务器 97
4.2.1 安装指南 97
4.2.2 Linux平台下安装配置 98
4.2.3 Windows平台下安装配置 104
4.3 建立传感器 111
4.3.1 安装指南 111
4.3.2 安装传感器 111
4.4 建立管理员控制台 117
4.4.1 PuTTY的安装和使用 117
4.4.2 ScreenCRT的安装和使用 120
第5章 Snort的使用 125
5.1 配置文件 125
5.1.1 定义和使用变量 126
5.1.2 配置项的灵活应用 127
5.1.3 配置文件中的其他关键要素 128
5.2 命令行参数 129
5.3 Snort的工作模式 130
5.3.1 嗅探器模式 131
5.3.2 数据包记录器模式 133
5.3.3 网络入侵检测模式(NIDS) 135
5.4 Snort的报警模式 136
5.4.1 fast模式 137
5.4.2 full模式 137
5.4.3 将报警发送到Syslog 138
5.4.4 向SNMP发送报警 138
5.5 输出与日志 139
5.5.1 前4种输出模式 139
5.5.2 入侵检测模式 140
5.5.3 记录至数据库 141
5.6 在隐秘模式下运行Snort 142
5.6.1 Snort的自动启动和关闭 142
5.6.2 在多个网络接口上运行Snort 144
5.7 系统调整 145
5.7.1 过滤流量 145
5.7.2 配置网络变量进行过滤 146
5.7.3 伯克利包过滤器(BPF) 146
第6章 规则语法及使用 148
6.1 规则语法回顾 148
6.2 加载规则文件 149
6.3 规则头 150
6.3.1 规则动作选项 150
6.3.2 自定义规则 151
6.3.3 可支持的协议 152
6.3.4 指派IP地址和端口 153
6.3.5 非运算符“!” 154
6.3.6 方向操作符 154
6.4 规则体 155
6.4.1 规则选项列表 155
6.4.2 规则content选项 156
6.4.3 IP选项集合 160
6.4.4 TCP选项集合 162
6.4.5 ICMP选项集合 163
6.4.6 Snort响应选项集合 164
6.4.7 Meta选项关键字 165
6.4.8 其他选项集合 167
6.5 获取规则 167
6.6 调整和组织规则 169
6.6.1 调整的原则 169
6.6.2 定义恰当的content 170
6.6.3 规则动作 170
6.6.4 合并子网掩码 170
6.6.5 取消规则 171
6.6.6 规则文件调整 171
6.6.7 配置规则变量 173
6.6.8 利用pass规则 174
6.7 升级与合并规则 174
6.7.1 oinkmaster 175
6.7.2 合并规则 176
6.8 编写规则 177
6.8.1 原理 178
6.8.2 示例 179
6.9 测试规则 181
6.9.1 正确性测试 181
6.9.2 压力测试 184
6.9.3 独立规则测试 185
第7章 IDS攻击与Snort预处理器 186
7.1 IDS攻击 186
7.2 Snort攻击工具介绍 187
7.2.1 Stick&Snot 187
7.2.2 ADMmutate 188
7.2.3 Fragroute 189
7.3 IDS逃避技术和对策 189
7.3.1 多态URL编码技术 189
7.3.2 多态shell代码技术 192
7.3.3 会话分割 193
7.3.4 IP碎片攻击 194
7.3.5 掺杂无效IP数据 196
7.3.6 基于TCP的攻击 197
7.3.7 其他一些IDS逃避技术 199
7.4 对IDS本身的攻击 200
7.5 IDS攻击实例 200
7.5.1 正常攻击情况下Snort的记录 201
7.5.2 TCP分片攻击情况下Snort的记录 203
7.6 预处理器基础 208
7.7 包重组的预处理器选项 208
7.7.1 Stream4预处理器 209
7.7.2 Frag3——分片重组和攻击检测 212
7.8 协议解码和规范化的预处理器选项 213
7.8.1 telnet_decode 214
7.8.2 http_decode 214
7.8.3 rpc_decode 215
7.9 非规则和异常检测预处理器选项 216
7.9.1 端口扫描预处理器 216
7.9.2 Back Orifice 217
7.9.3 ARPspoof 218
7.10 调整和优化预处理器 218
7.10.1 调整Frag3 219
7.10.2 调整Stream4 219
7.10.3 调整协议解码和规范化预处理器 220
7.10.4 调整Sfportscan 220
第8章 输出插件和数据分析工具 221
8.1 输出插件 221
8.2 输出插件选项 222
8.2.1 alert_syslog输出模块 223
8.2.2 alert_full和alert_fast 224
8.2.3 log_tcpdump模块 224
8.2.4 统一格式输出模块(unified) 224
8.3 数据库实例——MySQL数据库的输出 225
8.3.1 数据库结构和表单的含义 225
8.3.2 创建数据库索引 230
8.3.3 数据库维护 231
8.4 Barnyard 232
8.4.1 配置Barnyard 232
8.4.2 Barnyard命令行参数 234
8.4.3 运行Barnyard 235
8.4.4 Barnyard的自动启动与停止 235
8.5 Syslog-ng的安装和配置使用 235
8.6 Swatch 236
8.6.1 安装Swatch 237
8.6.2 配置Swatch 238
8.6.3 使用Swatch 239
8.7 ACID 241
8.7.1 配置ACID 242
8.7.2 ACID的使用 246
8.8 SnortSnarf 251
8.8.1 安装SnortSnarf 251
8.8.2 使用SnortSnarf 252
第9章 Snort管理工具 254
9.1 IDScenter 254
9.1.1 安装IDScenter 255
9.1.2 IDScenter基本配置 255
9.1.3 IDScenter的基本用法 257
9.2 Policy Manager 263
9.2.1 安装过程 264
9.2.2 配置和使用 264
9.3 SnortCenter 270
9.3.1 SnortCenter安装 270
9.3.2 传感器代理端安装 272
9.3.3 配置和使用 273
第10章 IDS测试评估 275
10.1 IDS测试的性能指标 276
10.1.1 及时性 276
10.1.2 准确性 277
10.1.3 完备性或覆盖面 279
10.1.4 健壮性 279
10.1.5 系统性能 280
10.1.6 IDS躲避能力 281
10.1.7 事件风暴能力 281
10.1.8 日志、报警、报告以及响应能力 282
10.1.9 管控功能 282
10.2 测试方法 283
10.2.1 测试步骤 284
10.2.2 测试数据 284
10.2.3 通信仿真 285
10.2.4 环境配置与框架 286
10.2.5 测试分析 287
10.2.6 测试评估现状以及存在的问题 287
10.3 测试工具 288
10.3.1 IDS Informer 289
10.3.2 IDS Wakeup工具 290
10.3.3 Sneeze工具 292
10.4 测试案例 292
10.4.1 测试例1 293
10.4.2 测试例2 295
10.5 IDS产品测试认证机构 297
10.5.1 公安部计算机信息系统安全产品质量监督检验中心 297
10.5.2 国家保密局涉密信息系统安全保密测评中心 298
10.5.3 国家信息安全测评认证中心 298
10.5.4 解放军信息安全测评认证中心 298
10.6 测试标准 299
10.6.1 公安部测试标准 299
10.6.2 NSS测试标准 299
第11章 Snort入侵检测实例分析 304
11.1 捕获P2P滥用 304
11.2 监控发现蠕虫活动 307
11.3 检测SQL注入和跨站脚本攻击 308
11.3.1 针对SQL注入的正则表达式 309
11.3.2 针对跨站脚本攻击的正则表达式 311
11.3.3 自己动手编写规则 312
参考文献 313