智能系统与技术丛书 Web安全之深度学习实战
作者:刘焱 编著
出版时间:2017年版
内容简介
在现今的互联网公司中,产品线绵延复杂,安全防御体系无时无刻不在应对新的挑战。哪怕是拥有丰富工作经验的安全从业者,在面对层出不穷的攻击手段和海量日志数据时也会望洋兴叹。机器学习、深度学习是这些问题天然契合的解决方案,在数据量以指数级不断增长的未来,甚至有可能是唯*的出路。当AI遇到安全时,如何快速进化,本书给出了实战方案。本书是作者推出AI+安全畅销书《Web安全之机器学习》之后又一力作。本书首先介绍如何打造自己的深度学习工具箱,包括TensorFlow、TFLearn等深度学习库的安装以及使用方法。接着介绍卷积神经网络和循环神经网络这两大深度学习算法的基础知识。特别着重介绍在生产环境搭建深度学习平台需要使用的开源组件,包括Logstash、Kafka、Storm、Spark等。随后讲解了11个使用机器学习技术解决实际安全问题的案例,包括验证码识别、垃圾邮件识别、负面评论识别、骚扰短信识别、Linux后门检测、恶意操作行为检测、Webshell检测、智能扫描、DGA域名检测、恶意程序分类识别、反信用卡欺诈。本书针对每一个算法都给出了具体案例,理论结合实际,讲解清晰,文笔幽默,适合有信息安全基础知识的网络开发与运维技术人员参考。主要内容包括:1.如何基于TensorFlow和TFLearn打造自己的深度学习工具箱。2.如何基于Logstash、Kafka、Storm、Spark等打造深度学习的生产环境。3.如何在MNIST数据集上实现验证码识别。4.如何在安然数据集上实现垃圾邮件检测。5.如何在IMDB数据集上实现负面评论识别。6.如何在SMSSpamCollection数据集上实现骚扰短信识别。7.如何在ADFA-LD数据集上实现Linux后门检测。8.如何在SEA数据集上实现恶意操作行为检测。9.如何在MIST数据集上实现恶意程序分类识别。10.如何在Kaggle公开的数据集上实现信用卡欺诈检测。11.如何在GitHub公开的数据集上实现Webshell检测,智能扫描和DGA域名检测。
目录
对本书的赞誉
序
前言
第1章 打造深度学习工具箱1
1.1 TensorFlow1
1.1.1 安装1
1.1.2 使用举例3
1.2 TFLearn3
1.3 PaddlePaddle4
1.3.1 安装5
1.3.2 使用举例6
1.4 Karas7
1.5 本章小结9
第2章 卷积神经网络10
2.1 传统的图像分类算法10
2.2 基于CNN的图像分类算法11
2.2.1 局部连接11
2.2.2 参数共享13
2.2.3 池化15
2.2.4 典型的CNN结构及实现16
2.2.5 AlexNet的结构及实现19
2.2.6 VGG的结构及实现24
2.3 基于CNN的文本处理29
2.3.1 典型的CNN结构30
2.3.2 典型的CNN代码实现30
2.4 本章小结32
第3章 循环神经网络33
3.1 循环神经算法概述34
3.2 单向循环神经网络结构与实现36
3.3 双向循环神经网络结构与实现38
3.4 循环神经网络在序列分类的应用41
3.5 循环神经网络在序列生成的应用42
3.6 循环神经网络在序列标记的应用43
3.7 循环神经网络在序列翻译的应用44
3.8 本章小结46
第4章 基于OpenSOC的机器学习框架47
4.1 OpenSOC框架47
4.2 数据源系统48
4.3 数据收集层53
4.4 消息系统层57
4.5 实时处理层60
4.6 存储层62
4.6.1 HDFS62
4.6.2 HBase64
4.6.3 Elasticsearch65
4.7 分析处理层66
4.8 计算系统67
4.9 实战演练72
4.10 本章小结77
第5章 验证码识别78
5.1 数据集79
5.2 特征提取80
5.3 模型训练与验证81
5.3.1 K近邻算法81
5.3.2 支持向量机算法81
5.3.3 深度学习算法之MLP82
5.3.4 深度学习算法之CNN83
5.4 本章小结87
第6章 垃圾邮件识别88
6.1 数据集89
6.2 特征提取90
6.2.1 词袋模型90
6.2.2 TF-IDF模型93
6.2.3 词汇表模型95
6.3 模型训练与验证97
6.3.1 朴素贝叶斯算法97
6.3.2 支持向量机算法100
6.3.3 深度学习算法之MLP101
6.3.4 深度学习算法之CNN102
6.3.5 深度学习算法之RNN106
6.4 本章小结108
第7章 负面评论识别109
7.1 数据集110
7.2 特征提取112
7.2.1 词袋和TF-IDF模型112
7.2.2 词汇表模型114
7.2.3 Word2Vec模型和Doc2Vec模型115
7.3 模型训练与验证119
7.3.1 朴素贝叶斯算法119
7.3.2 支持向量机算法122
7.3.3 深度学习算法之MLP123
7.3.4 深度学习算法之CNN124
7.4 本章小结127
第8章 骚扰短信识别128
8.1 数据集129
8.2 特征提取130
8.2.1 词袋和TF-IDF模型130
8.2.2 词汇表模型131
8.2.3 Word2Vec模型和Doc2Vec模型132
8.3 模型训练与验证134
8.3.1 朴素贝叶斯算法134
8.3.2 支持向量机算法136
8.3.3 XGBoost算法137
8.3.4 深度学习算法之MLP140
8.4 本章小结141
第9章 Linux后门检测142
9.1 数据集142
9.2 特征提取144
9.3 模型训练与验证145
9.3.1 朴素贝叶斯算法145
9.3.2 XGBoost算法146
9.3.3 深度学习算法之多层感知机148
9.4 本章小结149
第10章 用户行为分析与恶意行为检测150
10.1 数据集151
10.2 特征提取152
10.2.1 词袋和TF-IDF模型152
10.2.2 词袋和N-Gram模型154
10.2.3 词汇表模型155
10.3 模型训练与验证156
10.3.1 朴素贝叶斯算法156
10.3.2 XGBoost算法157
10.3.3 隐式马尔可夫算法159
10.3.4 深度学习算法之MLP164
10.4 本章小结166
第11章 WebShell检测167
11.1 数据集168
11.1.1 WordPress168
11.1.2 PHPCMS170
11.1.3 phpMyAdmin170
11.1.4 Smarty171
11.1.5 Yii171
11.2 特征提取172
11.2.1 词袋和TF-IDF模型172
11.2.2 opcode和N-Gram模型174
11.2.3 opcode调用序列模型180
11.3 模型训练与验证181
11.3.1 朴素贝叶斯算法181
11.3.2 深度学习算法之MLP182
11.3.3 深度学习算法之CNN184
11.4 本章小结188
第12章 智能扫描器189
12.1 自动生成XSS攻击载荷190
12.1.1 数据集190
12.1.2 特征提取194
12.1.3 模型训练与验证195
12.2 自动识别登录界面198
12.2.1 数据集198
12.2.2 特征提取199
12.2.3 模型训练与验证201
12.3 本章小结203
第13章 DGA域名识别204
13.1 数据集206
13.2 特征提取207
13.2.1 N-Gram模型207
13.2.2 统计特征模型208
13.2.3 字符序列模型210
13.3 模型训练与验证210
13.3.1 朴素贝叶斯算法210
13.3.2 XGBoost算法212
13.3.3 深度学习算法之多层感知机215
13.3.4 深度学习算法之RNN218
13.4 本章小结221
第14章 恶意程序分类识别222
14.1 数据集223
14.2 特征提取226
14.3 模型训练与验证228
14.3.1 支持向量机算法228
14.3.2 XGBoost算法229
14.3.3 深度学习算法之多层感知机230
14.4 本章小结231
第15章 反信用卡欺诈232
15.1 数据集232
15.2 特征提取234
15.2.1 标准化234
15.2.2 标准化和降采样234
15.2.3 标准化和过采样236
15.3 模型训练与验证239
15.3.1 朴素贝叶斯算法239
15.3.2 XGBoost算法243
15.3.3 深度学习算法之多层感知机247
15.4 本章小结251