本书深入介绍流量安全分析工具Zeek,理论联系实际,操作步骤详细,讲解清晰易懂。通过阅读本书,读者可以结合实际需求,快速搭建自主的安全流量分析平台,全面提升安全检测和防护的能力。
第1章网络流量与网络安全第1章网络流量与网络安全1
1.1网络与安全1
1.2流量与网络3
1.3流量分析4
1.4经验与总结7
基础篇
第2章Zeek介绍112.1Zeek是什么11
2.2Zeek的特点13
2.2.1部署使用14
2.2.2内置功能15
2.2.3开发语言15
2.3Zeek的功能架构16
2.4Zeek的应用场景18
2.5Zeek的版本与相关资源21
2.6经验与总结21
第3章搭建环境23
3.1本书运行环境23
3.1.1安装VirtualBox24
3.1.2创建虚拟机26
3.1.3安装Ubuntu Desktop操作系统26
3.1.4优化运行环境30
3.1.5配置网络34
3.2从外部源安装Zeek39
3.3从源代码安装Zeek42
3.4运行Zeek42
3.5经验与总结44
第4章认识与使用Zeek45
4.1目录结构45
4.2zeek命令与zeekctl命令52
4.2.1zeek命令52
4.2.2zeekctl命令56
4.3分析日志(logging)58
4.3.1日志的功能60
4.3.2日志的存储63
4.4conn.log日志文件64
4.4.1uid字段65
4.4.2orig、resp与local等字段72
4.4.3conn_state与history字段73
4.5加载脚本76
4.6zeekcut工具77
4.7zeekygen工具80
4.8btest框架82
4.9经验与总结87
第5章基础应用示例88
5.1发现网络资产88
5.2网络扫描93
5.3SSH暴力破解96
5.4SQL注入99
5.5文件解析102
5.6可视化分析108
5.7经验与总结118
Zeek实战——快速构建流量安全能力目录进阶篇
第6章Zeek脚本1216.1“Hello World!”程序121
6.2基本语法122
6.3运算符(operator)124
6.3.1算术运算符124
6.3.2逻辑运算符124
6.3.3关系运算符125
6.3.4位运算符125
6.3.5赋值运算符126
6.3.6其他运算符126
6.4数据类型(types)127
6.4.1int、count、double数据类型127
6.4.2bool数据类型130
6.4.3enum数据类型130
6.4.4string数据类型133
6.4.5time、interval数据类型135
6.4.6pattern数据类型137
6.4.7port、addr、subnet数据类型138
6.4.8set、vector、table数据类型139
6.4.9record数据类型147
6.4.10file数据类型148
6.4.11opaque数据类型149
6.4.12function、event、hook数据类型150
6.4.13any数据类型155
6.5声明(declarations)155
6.5.1module、export声明155
6.5.2global、local声明158
6.5.3const声明160
6.5.4option声明160
6.5.5type声明161
6.5.6redef声明161
6.5.7function、event、hook声明162
6.6语句(statements)163
6.6.1add、delete语句163
6.6.2print语句163
6.6.3event、schedule语句164
6.6.4for、while、next语句165
6.6.5if、else、switch、fallthrough语句168
6.6.6when语句170
6.6.7break语句172
6.6.8return语句172
6.7属性(attributes)173
6.7.1&redef属性173
6.7.2&priority属性173
6.7.3&log属性173
6.7.4&optional属性173
6.7.5&default属性173
6.7.6&add_func、&delete_func属性174
6.7.7&create_expire、&read_expire、&write_expire、&expire_func属性175
6.7.8&on_change属性177
6.7.9&raw_output属性178
6.7.10&error_handler属性179
6.7.11&type_column属性179
6.7.12&backend、&broker_store、&broker_allow_complex_type属性179
6.7.13&deprecated属性179
6.8指令(directives)179
6.8.1@DIR、@FILENAME指令179
6.8.2@deprecated指令180
6.8.3@load、@loadplugin、@loadsigs、@unload指令180
6.8.4@prefixes指令181
6.8.5@if、@ifdef、@ifndef、@else、@endif指令181
6.8.6@DEBUG指令183
6.9模块、命名空间与作用域183
6.9.1全局模块184
6.9.2符号的作用域185
6.9.3符号检索的顺序187
6.10常用数据结构188
6.10.1GLOBAL::conn_id结构188
6.10.2GLOBAL::endpoint结构189
6.10.3GLOBAL::connection结构189
6.11经验与总结190
第7章Zeek框架192
7.1日志框架(Log::)192
7.1.1日志流193
7.1.2过滤器194
7.1.3输出端195
7.1.4代码示例195
7.2输入框架(Input::)197
7.2.1读取至table类型197
7.2.2读取至Files::框架200
7.2.3读取至event事件200
7.2.4数据来源201
7.3配置框架(Config::)202
7.4统计框架(SumStats::)206
7.4.1基础概念及使用方法206
7.4.2关键数据结构及接口208
7.5通知框架(Notice::)211
7.5.1基础使用方法212
7.5.2添加action214
7.5.3Weird::模块216
7.6文件框架(Files::)217
7.6.1文件视角217
7.6.2分析器222
7.6.3本地文件分析225
7.7情报框架(Intel::)227
7.7.1形成情报数据227
7.7.2查询情报的逻辑229
7.7.3命中之后的行为229
7.7.4代码示例229
7.8特征框架(Signatures::)231
7.8.1基本功能232
7.8.2特征语法234
7.9经验与总结239
第8章进阶应用示例242
8.1常用资源242
8.2分析目标243
8.3规划脚本243
8.4实现功能244
8.5经验与总结247