当前位置:首页 > 工业技术
网络入侵检测系统的设计与实现
网络入侵检测系统的设计与实现

网络入侵检测系统的设计与实现PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:唐正军等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2002
  • ISBN:7505374141
  • 页数:541 页
图书介绍:这是国内第一本全面覆盖网络入侵检测系统从设计基础到源码实现的技术书籍。本书所介绍的知识清晰全面,从入侵检测的概念、网络数据流的捕获技术开始,到入侵检测的不同方法,如基于专家系统的入侵检测、基于统计分析的入侵检测等等,最后是对系统具体源代码实现内核的深入剖析,可使用户对于入侵检测技术有一个比较全面的理解。读者如果想要学习入侵检测技术,可以从阅读本书中介绍的知识开始。 tt
《网络入侵检测系统的设计与实现》目录

第1章 概述 1

1.1 入侵检测系统的组成部分 1

1.2 滥用入侵检测系统 2

1.3 非规则入侵检测系统 3

1.4 两种分析技术的比较 3

1.5 入侵检测系统的层次体系 4

1.6 进一步发展的若干方向 5

1.6.1 宽带高速网络的实时入侵检测技术 5

1.6.2 大规模分布式入侵检测技术 5

1.6.3 入侵检测的数据融合技术 6

1.6.4 先进检测算法的应用 6

1.7 面临的挑战 7

第2章 网络编程基础知识 9

2.1 分层协议模型 9

2.2 开放系统互联参考模型OSI/ISO 10

2.3 TCP/IP参考模型 10

2.4 UNIX网络编程技术概述 12

2.5 TCP/IP协议 13

2.5.1 网络接口层协议 13

2.5.2 ARP协议和RARP协议 14

2.5.3 IP协议 15

2.5.4 ICMP协议 18

2.5.5 TCP协议 21

2.5.6 UDP协议 22

第3章 网络数据包截获机制分析 25

3.1 基本的网络数据包截获机制 25

3.2 高效的数据包截获/过滤机制 35

3.2.1 概述 35

3.2.2 BPF的工作原理 36

3.2.3 BPF虚拟机的实现 37

3.2.4 BPF程序源代码 39

3.3 数据包截获的Libpcap库函数接口 59

3.3.1 概述 59

3.3.2 Libpcap库函数接口 59

3.3.3 采用Libpcap库的数据包截获实例 71

第4章 入侵检测引擎的设计 85

4.1 IDES系统概述 85

4.1.1 什么是IDES系统 85

4.1.2 IDES的系统设计 86

4.1.3 IDES的审计记录格式 89

4.2 用于入侵检测的统计分析测量值 93

4.2.1 用户测量值 93

4.2.2 目标系统 95

4.2.3 远程主机 95

4.3 基于统计分析的分析算法 96

4.3.1 IDES分数值(score) 96

4.3.2 分数值T2如何从单个测量值获得 96

4.3.3 单个测量值类型 97

4.3 4 S与Q联系的启发式描述 98

4.3.5 从Q计算S的算法 98

4.3.6 计算Q的频率分布 99

4.3.7 计算活动强度测量值的Q值 100

4.3.8 计算审计记录分布测量值的Q值 101

4.3.9 计算类别测量值的统计值Q 102

4.3.10 计算序数测量值的Q值 103

4.4 相关的数据结构及函数接口 104

4.4.1 数据结构 104

4.4.2 函数接口 107

第5章 专家系统的应用 111

5.1 概述 111

5.2 由一个简单实例开始 111

5.3 PBEST的基本语法 114

5.4 更详细的语法介绍 116

5.5 专家系统的外部接口 121

5.6 一个示例Makefile 124

5.7 PBEST语法图表 126

5.8 带参数的pbcc调用 129

第6章 入侵检测规则语言的设计 131

6.1 概述 131

6.2 N-Code语言的词法元素 131

6.2.1 字符集 131

6.2.2 注释 132

6.2.3 运算符 132

6.2.4 变量 133

6.2.5 保留字 133

6.2.6 常量 133

6.3 N-Code语言的数据类型 134

6.3.1 概述 134

6.3.2 array 134

6.3.3 ethmac 135

6.3.4 error 135

6.3.5 int 135

6.3.6 ipv4host 135

6.3.7 ipv4net 136

6.3.8 list 136

6.3.9 recorder 136

6.3.10 str 136

6.3.11 pattern 137

6.4 N-Code的表达式 137

6.4.1 概述 137

6.4.2 算术运算符 137

6.4.3 赋值运算符 139

6.4.4 位运算符 139

6.4.5 逻辑运算符 141

6.4.6 关系运算符 143

6.4.7 其他运算符 145

6.5 N-Code语句 146

6.5.1 概述 146

6.5.2 assignment 146

6.5.3 block 146

6.5.4 break 147

6.5.5 declare 147

6.5.6 expression 148

6.5.7 foreach 148

6.5.8 If 149

6.5.9 off 150

6.5.10 on 150

6.5.11 record 153

6.5.12 requires 153

6.5.13 return 154

6.5.14 while 154

6.6 N-Code中的函数 154

6.7 N-Code中的函数声明 178

6.7.1 概述 178

6.7.2 函数的声明 178

6.7.3 过滤器的声明 179

6.7.4 作用域 180

6.7.5 声明与赋值 181

6.7.6 访问 181

6.8 N-Code数据包变量 181

6.8.1 ethernet变量组 181

6.8.2 fddi变量组 182

6.8.3 icmp变量组 182

6.8.4 ip变量组 183

6.8.5 llc变量组 184

6.8.6 packet变量组 185

6.8.7 system变量组 186

6.8.8 tcp变量组 186

6.8.9 udp变量组 189

6.9 N-Code异常 190

6.9.1 长度异常 190

6.9.2 校验和异常 190

6.9.3 协议异常 190

6.9.4 内部异常 191

第7章 NFR入侵检测系统实例 192

7.1 IDA系统的基本工作原理 192

7.1.1 NFR IDA系统功能概述 192

7.1.2 IDA系统环境构成 193

7.1.3 NFR IDA系统架构 193

7.1.4 IDA引擎组件 195

7.1.5 后端组件 195

7.1.6 警报 197

7.1.7 查询 198

7.1.8 后台进程 198

7.1.9 分布式环境中的应用 198

7.2 如何使用IDA系统 199

7.2.1 启动NFR IDA系统 200

7.2.2 终止NFR IDA系统 200

7.2.3 使用NFR控制台 200

7.3 查询数据 205

7.3.1 建立简单查询 205

7.3.2 打印查询结果 206

7.3.3 限制查询 207

7.3.4 保存查询 210

7.3.5 载入查询 210

7.3.6 将数据导出到数据库 210

7.3.7 使用Perl查询附件(Perl Query Add-on) 214

7.4 查看警告 217

7.4.1 概述 218

7.4.2 理解警告组件 218

7.4.3 使用警告查看器 220

7.5 配置包与后端组件 223

7.5.1 启用包与后端组件 224

7.5.2 禁用包与后端组件 224

7.5.3 配置磁盘空间 225

7.5.4 配置值 228

7.5.5 添加包与后端组件 228

7.5.6 删除包或后端组件 229

7.6 配置警告 230

7.6.1 理解警告组 230

7.6.2 改变警告规则 231

7.6.3 建立新规则 231

7.7 配置访问控制 232

7.7.1 理解访问控制 233

7.7.2 理解用户管理 234

7.7.3 设置权限 234

7.7.4 配置用户账户 235

7.8 监控IDA性能 236

7.8.1 理解系统状态报表 237

7.8.2 查看系统历史状态 238

7.8.3 查看系统状态报表 239

7.9 包与后端组件列表 239

7.9.1 具有可配置值的后端组件 239

7.9.2 邮件 241

7.9.3 网络统计 241

7.9.4 网络服务 242

7.9.5 攻击特征 243

7.9.6 拒绝服务(DoS)检测 247

7.9.7 产品特定模块 248

7.9.8 入侵检测 249

7.9.9 扫描器 251

7.10 理解数据类型 251

7.11 术语表 254

第8章 网络入侵检测系统的具体实现 256

8.1 概述 256

8.1.1 Snort系统概述 256

8.1.2 系统程序架构 256

8.2 初始化、主函数和命令行解析 258

8.2.1 初始化、主函数和命令行参数分析例程 258

8.2.2 Snort使用方法 284

8.2.3 PV数据结构 286

8.2.4 ParseCmdLine(325) 287

8.2.5 SetPktProcessor(548) 288

8.2.6 OpenPcap(666) 288

8.2.7 主函数main(153) 289

8.2.8 ProcessPacket(759) 290

8.3 协议解析例程分析 290

8.3.1 协议解析器(Decoder)例程 290

8.3.2 Packet数据结构(1243) 331

8.3.3 DecodeEthPkt(1303) 332

8.3.4 DecodePppPkt(1573) 332

8.3.5 DecodeTRPkt(1395) 333

8.3.6 DecodeNullPkt(1368) 333

8.3.7 其他的数据链路层协议解析例程 334

8.3.8 DecodeIP(1681) 334

8.3.9 DecodeTCP(1800) 334

8.3.10 DecodeUDP(1845) 335

8.3.11 DecodeICMP(1877) 335

8.3.12 DecodeARP(1916) 335

8.3.13 DecodeIPV6(1935)、DecodeIPX(1951) 336

8.3.14 DecodeTCPOptions(1967) 336

8.3.15 DecodeIPOptions(2037) 337

8.4 如何编写Snort的规则 337

8.4.1 规则头 337

8.4.2 规则选项 339

8.4.3 预处理器 345

8.4.4 输出模块 347

8.4.5 高级规则概念 348

8.5 规则解析例程分析 349

8.5.1 规则(Rule)解析例程 349

8.5.2 RuleTreeNode数据结构(2162) 389

8.5.3 OptTreeNode数据结构(2142) 389

8.5.4 RuleFpList(2129)、RuleOptList(2137) 389

8.5.5 ListHead数据结构(2182) 390

8.5.6 mSplit(3210) 390

8.5.7 ParseRulesFile(2224) 391

8.5.8 规则解析器ParseRule(2287) 391

8.5.9 规则链表头处理例程ProcessHeacdNode(2397) 392

8.5.10 AddRuleFuncToList(2487) 393

8.5.11 SetupRTNFuncList(2523) 393

8.5.12 AddrToFunc(2563)和PortToFunc(2604) 394

8.5.13 ParsePreprocessor(2681) 394

8.5.14 ParseOutputPlugin(2749) 395

8.5.15 ParseListFile(2895) 395

8.5.16 CreateRule(2939) 396

8.5.17 ParseRuleOptions(2966) 396

8.5.18 ParseMessage(3110) 397

8.5.19 ParseLogto(3147) 397

8.5.20 ParseResponse(3178) 398

8.6 检测引擎例程分析 398

8.6.1 检测引擎(Detection Engine)例程 398

8.6.2 Preprocess(3328) 413

8.6.3 Detect(3351) 413

8.6.4 EvalPacket(3398) 413

8.6 5 EvalHeader(3453) 414

8.6.6 EvalOpts(3501) 414

8.6.7 CheckBidirectional(3534) 415

8.6.8 CheckSrcIPEqual(3590) 415

8.6.9 CheckSrcIPNotEq(3602) 416

8.6.10 CheckDstIPEqual(3631) 416

8.6.11 CheckDstIPNotEq(3649) 416

8.6.12 CheckSrcPortEqual(3658) 416

8.6.13 CheckSrcPortNotEq(3666) 416

8.6.14 CheckDstPortEqual(3674) 416

8.6.15 CheckDstPortNotEq(3682) 417

8.6.16 CheckAddrPort(3698) 417

8.7 插件模块管理例程分析 418

8.7.1 插件(Plugins)管理例程 418

8.7.2 KeywordXlateList(3841) 435

8.7.3 PreprocessKeywordList(3852) 435

8.7.4 OutputKeywordList(3875) 435

8.7.5 InitPlugins(3896) 435

8.7.6 InitPreprocessors(3917) 436

8.7.7 InitOutputPlugins(3929) 436

8.7.8 RegisterPlugin(3951) 436

8.7.9 SetupIcmpCodeCheck(4081) 437

8.7.10 IcmpCodeCheckInit(4095) 437

8.7.11 ParseIcmpCode(4118) 437

8.7.12 IcmpCodeCheck(4152) 437

8.7.13 SetupMinfrag(4169) 438

8.7.14 MinfragInit(4173) 438

8.7.15 ProcessMinfragArgs(4178) 438

8.7.16 CheckMinfrag(4216) 438

8.7.17 SetupFastAlert(4253) 439

8.7.18 FastAlertInit(4265) 439

8.7.19 SpoAlertFast(4275) 439

8.7.20 ParseFastAlertArgs(4291) 439

8.7.21 FastAlertCleanExitFunc(4308)和FastAlertRestartFunc(4315) 439

8.8 预处理器插件模块分析 440

8.8.1 预处理器(Preprocessor)插件模块 440

8.8.2 PortList数据结构(4323) 474

8.8.3 http decode预处理器插件管理例程 474

8.8 4 SetPorts(4362) 474

8.8.5 预处理器主模块PreprocUrlDecode(4387) 474

8.8.6 一组用于端口扫描(Portscan)预处理器插件的数据结构 475

8.8.7 Portscan预处理器插件管理例程 476

8.8.8 ParsePortscanArgs(4567) 476

8.8.9 Portscan-ignorehosts预处理器插件管理例程 477

8.8.10 CreateServerList(4640) 477

8.8.11 预处理器主模块PortscanPreprocFunction(4673) 478

8.8.12 CheckTCPFlags(4784) 479

8.8.13 ExpireConnections(4877) 479

8.8.14 RemoveConnection(4955) 481

8.8.15 NewScan(5041) 481

8.8.16 NewConnection(5164) 483

8.8.17 AddConnection(5206) 483

8.8.18 ClearConnectionInfoFromSource(5272) 483

8.8.19 LogScanInfoToSeparateFile(5303) 484

8.8.20 AlertIntermediateInfo(5424) 484

8.8.21 其他的连接管理例程 484

8.8.22 几个工具例程 485

8.9 规则选项关键字插件模块分析 485

8.9.1 规则选项关键字(Keyword)插件模块 485

8.9.2 参数解析例程ParseDsize(5470) 521

8.9.3 dsize插件模块CheckDsizeGT(5505)、CheckDsizeLT(5515)和CheckDsizeEQ(5495) 522

8.9.4 PatternMatchData数据结构(5527) 522

8.9.5 content插件管理例程 522

8.9.6 参数解析例程ParsePattern(5646) 523

8.9.7 content插件处理模块CheckPatternMatch(5836) 524

8.9.8 参数解析例程ParseSession(5914) 524

8.9.9 session插件处理模块LogSessionData(5934) 525

8.9.10 DumpSessionData(5953) 525

8.9.11 OpenSessionFile(5993) 525

8.9.12 参数解析例程ParseIpOptionData(6082) 525

8.9.13 ipoptions插件主处理模块ChecklpOptions(6148) 526

8.9.14 resp插件主模块Respond(6165) 526

8.9.15 SendICMP_UNREACH(6203)和SendTCPRST(6237) 526

8.9.16 其他的选项关键字插件处理模块 526

8.10 输出插件模块分析 527

8.10.1 输出(Output)插件模块 527

8.10.2 主处理模块AlertFast(6778) 538

8.10.3 OpenAlertFile(6826) 539

8.10.4 ProcessFileOption(6853) 539

8.10.5 FastAlertCleanExitFune(6881)和FastAlertRestartFunc(6888) 539

8.10.6 主处理函数AlertFull(6921) 539

8.10.7 PrintIPHeader(6971) 540

8.10.8 参数解析例程ParseTepdumpArgs(7108) 540

8.10.9 Tcp-dumpInitLogFile(7129) 541

8.10.10 主处理函数LogTcpdump(7154) 541

8.10.11 pcap_dump_open(7160)和pcap_dump(7176) 541

相关图书
作者其它书籍
返回顶部