第1章 网络安全监控应用实践 1
1.1 关键NSM术语 2
1.1.1 资产 2
1.1.2 威胁 2
1.1.3 漏洞 3
1.1.4 利用 3
1.1.5 风险 3
1.1.6 异常 3
1.1.7 事故 3
1.2 入侵检测 4
1.3 网络安全监控 4
1.4 以漏洞为中心vs以威胁为中心 7
1.5 NSM周期:收集、检测和分析 7
1.5.1 收集 7
1.5.2 检测 8
1.5.3 分析 8
1.6 NSM的挑战 9
1.7 定义分析师 9
1.7.1 关键技能 10
1.7.2 分类分析师 11
1.7.3 成功措施 12
1.8 Security Onion 15
1.8.1 初始化安装 15
1.8.2 更新Security Onion 16
1.8.3 执行NSM服务安装 16
1.8.4 测试Security Onion 17
1.9 本章小结 19
第一部分 收集 22
第2章 数据收集计划 22
2.1 应用收集框架 22
2.1.1 威胁定义 23
2.1.2 量化风险 24
2.1.3 识别数据源 25
2.1.4 焦点缩小 26
2.2 案例:网上零售商 28
2.2.1 识别组织威胁 28
2.2.2 量化风险 29
2.2.3 识别数据源 30
2.2.4 焦点缩小 33
2.3 本章小结 35
第3章 传感器平台 36
3.1 NSM数据类型 37
3.1.1 全包捕获数据 37
3.1.2 会话数据 37
3.1.3 统计数据 37
3.1.4 包字符串数据 37
3.1.5 日志数据 38
3.1.6 告警数据 38
3.2 传感器类型 39
3.2.1 仅收集 39
3.2.2 半周期 39
3.2.3 全周期检测 39
3.3 传感器硬件 40
3.3.1 CPU 41
3.3.2 内存 42
3.3.3 磁盘存储空间 42
3.3.4 网络接口 44
3.3.5 负载平衡:套接字缓冲区的要求 45
3.3.6 SPAN端口vs网络分流器 46
3.4 传感器高级操作系统 50
3.5 传感器的安置 50
3.5.1 利用适当的资源 50
3.5.2 网络入口/出口点 50
3.5.3 内部IP地址的可视性 51
3.5.4 靠近关键资产 54
3.5.5 创建传感器可视化视图 55
3.6 加固传感器 57
3.6.1 操作系统和软件更新 57
3.6.2 操作系统加固 57
3.6.3 限制上网 57
3.6.4 最小化软件安装 58
3.6.5 VLAN分割 58
3.6.6 基于主机的IDS 58
3.6.7 双因素身份验证 58
3.6.8 基于网络的IDS 59
3.7 本章小结 59
第4章 会话数据 60
4.1 流量记录 61
4.1.1 NetFlow 63
4.1.2 IPFIX 64
4.1.3 其他流类型 64
4.2 收集会话数据 64
4.2.1 硬件生成 65
4.2.2 软件生成 65
4.3 使用SiLK收集和分析流数据 66
4.3.1 SiLK包工具集 66
4.3.2 SiLK流类型 68
4.3.3 SiLK分析工具集 68
4.3.4 在Security Onin里安装SiLK 69
4.3.5 使用Rwfilter过滤流数据 69
4.3.6 在Rwtools之间使用数据管道 70
4.3.7 其他SiLK资源 73
4.4 使用Argus收集和分析流数据 73
4.4.1 解决框架 74
4.4.2 特性 74
4.4.3 基础数据检索 75
4.4.4 其他Argus资源 76
4.5 会话数据的存储考虑 76
4.6 本章小结 78
第5章 全包捕获数据 79
5.1 Dumpcap 80
5.2 Daemonlogger 81
5.3 Netsniff-NG 83
5.4 选择合适的FPC收集工具 84
5.5 FPC收集计划 84
5.5.1 存储考虑 85
5.5.2 使用Netsniff-NG和IFPPS计算传感器接口吞吐量 86
5.5.3 使用会话数据计算传感器接口吞吐量 87
5.6 减少FPC数据存储预算 88
5.6.1 过滤服务 88
5.6.2 过滤主机到主机的通信 90
5.7 管理FPC数据存储周期 91
5.7.1 基于时间的存储管理 92
5.7.2 基于大小的存储管理 92
5.8 本章小结 96
第6章 包字符串数据 97
6.1 定义包字符串数据 97
6.2 PSTR数据收集 99
6.2.1 手动生成PSTR数据 100
6.2.2 URLSnarf 101
6.2.3 Httpry 102
6.2.4 Justniffer 104
6.3 查看PSTR数据 107
6.3.1 Logstash 107
6.3.2 使用BASH工具解析原始文本 114
6.4 本章小结 116
第二部分 检测 118
第7章 检测机制、受害信标与特征 118
7.1 检测机制 118
7.2 受害信标和特征 119
7.2.1 主机信标和网络信标 120
7.2.2 静态信标 120
7.2.3 可变信标 123
7.2.4 信标与特征的进化 124
7.2.5 特征调优 125
7.2.6 信标和特征的关键标准 127
7.3 信标和特征的管理 128
7.4 信标与特征框架 133
7.4.1 OpenIOC 134
7.4.2 STIX 135
7.5 本章小结 137
第8章 基于信誉度的检测 138
8.1 公开信誉度列表 138
8.1.1 常用公开信誉度列表 139
8.1.2 使用公共信誉度列表的常见问题 143
8.2 基于信誉度的自动化检测 145
8.2.1 使用BASH脚本实现手动检索与检测 145
8.2.2 集中智能框架 150
8.2.3 Snort的IP信誉度检测 153
8.2.4 Suricata的IP信誉度检测 154
8.2.5 Bro的信誉度检测 156
8.3 本章小结 159
第9章 基于Snort和Suricata特征检测 160
9.1 Snort 161
9.2 SURICATA 163
9.3 在Security Onion系统中改变IDS引擎 165
9.4 初始化Snort和Suricata实现入侵检测 165
9.5 Snort和Suricata的配置 168
9.5.1 变量 168
9.5.2 IP变量 168
9.5.3 定义规则集 171
9.5.4 警报输出 176
9.5.5 Snort预处理器 178
9.5.6 NIDS模式命令行附加参数 179
9.6 IDS规则 181
9.6.1 规则解析 181
9.6.2 规则调优 195
9.7 查看Snort和Suricata警报 201
9.7.1 Snorby 201
9.7.2 Sguil 202
9.8 本章小结 202
第10章 Bro平台 203
10.1 Bro基本概念 203
10.2 Bro的执行 205
10.3 Bro日志 205
10.4 使用Bro定制开发检测工具 209
10.4.1 文件分割 209
10.4.2 选择性提取文件 211
10.4.3 从网络流量中实时提取文件 213
10.4.4 打包Bro程序 215
10.4.5 加入配置选项 216
10.4.6 使用Bro监控敌方 218
10.4.7 暗网检测脚本的扩展 224
10.4.8 重载默认的通知处理 224
10.4.9 屏蔽,邮件,警报——举手之劳 227
10.4.10 为Bro日志添加新字段 228
10.5 本章小结 231
第11章 基于统计数据异常的检测 232
11.1 通过SiLK获得流量排名 232
11.2 通过SiLK发现服务 236
11.3 使用统计结果实现深度检测 240
11.4 使用Gnuplot实现统计数据的可视化 242
11.5 使用Google图表实现统计数据的可视化 245
11.6 使用Afterglow实现统计数据的可视化 249
11.7 本章小结 254
第12章 使用金丝雀蜜罐进行检测 255
12.1 金丝雀蜜罐 255
12.2 蜜罐类型 256
12.3 金丝雀蜜罐架构 257
12.3.1 第一阶段:确定待模拟的设备和服务 257
12.3.2 第二阶段:确定金丝雀蜜罐安放位置 258
12.3.3 第三阶段:建立警报和日志记录 259
12.4 蜜罐平台 260
12.4.1 Honeyd 260
12.4.2 Kippo SSH蜜罐 264
12.4.3 Tom's Honeypot 267
12.4.4 蜜罐文档 269
12.5 本章小结 272
第三部分 分析 274
第13章 数据包分析 274
13.1 走近数据包 274
13.2 数据包数学知识 276
13.2.1 以十六进制方式理解字节 276
13.2.2 十六进制转换为二进制和十进制 277
13.2.3 字节的计数 278
13.3 数据包分解 280
13.4 用于NSM分析的Tcpdump工具 283
13.5 用于数据包分析的Tshark工具 287
13.6 用于NSM分析的Wireshark工具 291
13.6.1 捕获数据包 291
13.6.2 改变时间显示格式 293
13.6.3 捕获概要 293
13.6.4 协议分层 294
13.6.5 终端和会话 295
13.6.6 流追踪 296
13.6.7 输入/输出数据流量图 296
13.6.8 导出对象 297
13.6.9 添加自定义字段 298
13.6.10 配置协议解析选项 299
13.6.11 捕获和显示过滤器 300
13.7 数据包过滤 301
13.7.1 伯克利数据包过滤器 301
13.7.2 Wireshark显示过滤器 304
13.8 本章小结 307
第14章 我方情报与威胁情报 308
14.1 适用于NSM的情报过程 308
14.1.1 明确需求 309
14.1.2 制定规划 309
14.1.3 情报搜集 310
14.1.4 情报处理 310
14.1.5 情报分析 311
14.1.6 情报传播 311
14.2 生成我方情报 311
14.2.1 网络资产的病历和体格 311
14.2.2 定义网络资产模型 312
14.2.3 被动实时资产检测系统(PRADS) 315
14.3 生成威胁情报 320
14.3.1 调查敌方主机 322
14.3.2 调查敌方文件 328
14.4 本章小结 333
第15章 分析流程 334
15.1 分析方法 334
15.1.1 关联调查 335
15.1.2 鉴别诊断 340
15.1.3 分析方法的执行 346
15.2 关于分析的最佳实践 346
15.2.1 不是自己制造的数据包,就不能保证完全正确 346
15.2.2 留心你得到的数据处理结果 346
15.2.3 三人行必有我师 347
15.2.4 永远不要招惹攻击者 347
15.2.5 数据包,性本善 348
15.2.6 分析不只靠Wireshark,就像天文学不只靠望远镜 348
15.2.7 分类是你的朋友 348
15.2.8 10分钟原则 349
15.2.9 不要把简单问题复杂化 349
15.3 事件并发症和死亡率 350
15.3.1 医疗M&M 350
15.3.2 信息安全M&M 351
15.4 本章小结 354
附录1 Security Onion控制脚本 355
附录2 重要Security Onion文件和目录 360
附录3 数据包头 362
附录4 十进制/十六进制/ASCII码转换表 367