编辑推荐
在现今的互联网公司中,产品线绵延复杂,安全防御体系无时无刻不在应对新的挑战。哪怕是拥有丰富工作经验的安全从业者,在面对层出不穷的攻击手段和海量日志数据时也会望洋兴叹。机器学习、深度学习是这些问题天然契合的解决方案,在数据量以指数级不断增长的未来,甚至有可能是唯*的出路。当AI遇到安全时,如何快速进化,本书给出了实战方案。
本书作者是百度安全专家,他用风趣幽默的语言、深入浅出的方法诠释了卷积神经网络和循环神经网络这两大深度学习算法,及其在Web安全领域中的实际应用,非常实用,包括所有案例源代码,以及公开的测试数据,可极大地降低学习成本,使读者快速上手实践。
内容简介
在现今的互联网公司中,产品线绵延复杂,安全防御体系无时无刻不在应对新的挑战。哪怕是拥有丰富工作经验的安全从业者,在面对层出不穷的攻击手段和海量日志数据时也会望洋兴叹。机器学习、深度学习是这些问题天然契合的解决方案,在数据量以指数级不断增长的未来,甚至有可能是唯*的出路。当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域名检测。
作者简介
刘焱,百度安全Web防护产品线负责人,负责百度安全的Web安全产品,包括防DDoS、Web应用防火墙、Web威胁感知、服务器安全以及安全数据分析等,具有近十年云安全及企业安全从业经历,全程参与了百度企业安全建设。研究兴趣包括机器学习、Web安全、僵尸网络、威胁情报等。他是FreeBuf专栏作家、i春秋知名讲师,多次在OWASP、电子学会年会等发表演讲,参与编写了《大数据安全标准白皮书》。他还建立了微信公众号“兜哥带你学安全”,分享了大量信息安全技术知识。AI+安全畅销书《Web安全之机器学习》的作者。
精彩书评
此亦笃信之年,此亦大惑之年。此亦多丽之阳春,此亦绝念之穷冬。人或万事俱备,人或一事无成。我辈其青云直上,我辈其黄泉永坠。
——《双城记》狄更斯 著,魏易 译
如今是一个人工智能兴起的年代,也是一个黑产猖獗的年代;是一个机器学习算法百花齐放的年代,也是一个隐私泄露、恶意代码传播、网络攻击肆虐的年代。AlphaGo碾压柯洁之后,不少人担心AI会抢了人类的工作,然而信息安全领域专业人才严重匮乏,极其需要AI来补充专业缺口。
兜哥的这本书展示了丰富多彩的机器学习算法在错综复杂的Web安全中的应用,是一本非常及时的人工智能在信息安全领域的入门读物。正如书中所述,没有*好的算法,只有*合适的算法。虽然这几年深度学习呼声很高,但各种机器学习算法依然在形形色色的应用场景中有着各自独特的价值,熟悉并用好这些算法在安全领域的实战中会起到重要的作用。
——Lenx,百度首席安全科学家,安全实验室负责人
存储和计算能力的爆发式增长,让我们获得了比以往更全面、更实时获取以及分析数据的潜在能力,但面对产生的海量信息,如何快速准确地将其转化为业务需求,则需要依赖一些非传统的手段。就安全领域来说,原先依赖于规则的问题解法过于受限于编写规则的安全专家自身知识领域的广度和深度,以及对于问题本质的理解能力。但我们都知道,安全漏洞层出不穷,攻击利用的方式多种多样,仅仅依赖于规则来发现问题在现阶段的威胁形势下慢慢变得捉襟见肘。面对威胁,企业安全人员需要打造这样一种能力,它能够让我们脱离单纯的点对点的竞争,case by case的对抗,转而从更高的维度上来审视业务,发现潜在的异常事件,而这些异常事件可能会作为安全人员深入调查的起点。这种能力能让我们找到原有安全能力盲区以及发现新威胁,促使我们的技能水平以及对威胁的响应速度持续提升。同时这种能力和防御体系结合,也有可能让我们在面对某些未知威胁时,达到以不变应万变、获得天然免疫的理想状态。兜哥的这本书或许是开启我们这种能力的一把钥匙。本书用通俗易懂的语言介绍了机器学习原理,结合实际企业中的安全业务需求场景,让广大安全人员能够感受到这种“如日中天”的技术在传统安全领域内如何大放异彩。最后,May the force be with you。
——王宇,蚂蚁金服安全总监
百度是拥有海量互联网数据的几家公司之一,兜哥是百度前IT安全负责人,现Web安全产品负责人,研发的产品不仅应用于百度公司内部检测网络攻击,也应用在多个百度的商业安全产品中,服务于数万站长。兜哥的团队是国内*早一批将机器学习算法应用于网络安全场景的团队之一,本书聚集了兜哥及其团队多年的安全实践经验,覆盖了互联网公司可能会遇到的多个安全场景, 比如用图算法检测WebShell等,非常好地解决了百度商业安全客户被入侵留后门的问题。兜哥将自己的技术选型、算法、代码倾囊相授,我相信本书的出版将会大大降低安全研发工程师转型安全数据分析专家的难度,值得推荐。
——黄正,百度安全实验室X-Team负责人,MSRC 2016中国区
伴随着互联网的爆炸式发展,网络安全已上升到国家战略层面,能直接看到效果的安全能力建设得到高度重视。与此同时,安全团队却又不得不面对百花齐放的业务场景、大规模的数据中心,以及愈加剧烈、复杂和不确定性的网络攻击。如何在传统攻防对抗之外寻找更有效、可落地的对抗方式,已成为各大企业安全团队思考的重点。所幸,近些年来,计算和存储资源已不再是安全团队的瓶颈,安全团队自身在工程能力上也已非昔日吴下阿蒙。机器学习成为近些年来安全领域里第*批从学术走向工业的应用方向,并已有很多阶段性的实践成果。很欣喜地看到兜哥一直在推进机器学习系列的文章并编写了此书。此书重点讲解了常见机器学习算法在不同场景下的潜在应用和实践,非常适合初学者入门。希望此书能够启发更多的同行继续实践和深耕机器学习应用这个方向,并给安全行业带来更多的反馈和讨论。
——程岩,京东安全首席架构师
网络安全是信息时代的重大挑战和核心课题之一,而机器学习是迄今为止人工智能大厦*坚实稳固的基石。本书从基本原理出发,通过实际案例深入介绍和分析机器学习技术和算法在网络安全领域的应用与实践,是一本不可多得的入门指南和参考手册。
——姚聪博士,北京旷视科技(Face++)有限公司高级研究员
目录
对本书的赞誉
序
前言
第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
前言/序言
序
当前正是一个技术变革引发各行业变革的时代,云计算、大数据、物联网等新技术在为各行业带来新机遇的同时,也带来了新的安全漏洞和风险。新的风险当然就需要新的网络安全技术来针对解决,机器学习技术无疑是新一代网络安全技术中的佼佼者。新一代网络安全产品和解决方案已经普遍将机器学习当做必要功能来进行开发,机器学习的概念如何落实于产品,落实于业务,落实在具体场景中,已成为国内网络安全产业普遍关注和探索的问题。本书是目前为止我所阅读过的国内关于机器学习应用于网络安全应用领域最详细和实用的参考读物。作者基于一线实际业务实践,不仅深入介绍了深度学习的相关算法和开源技术,而且提供了一系列有关机器学习的业务场景的具体案例。所以强烈推荐所有网络安全应用的从业人员和对机器学习领域感兴趣的爱好者们人手一本!
金湘宇,君源创投管理合伙人
2017年9月于北京
PREFACE
前 言
网络安全一直和AI相伴相生,从网络安全诞生的那一天起,人们就一直试图使用自动化的方式去解决安全问题。网络安全专家一直试图把自己对网络威胁的理解转换成机器可以理解的方式,比如黑白名单、正则表达式,然后利用机器强大的计算能力,夜以继日地从流量、日志、文件中寻找似曾相识的各类威胁。似乎这一切就是那么天经地义并无懈可击。但事情似乎又没有那么简单,机器其实并没有完全学到人的经验,网络安全专家一眼就可以识破的变形,对于机器却难以理解;更可怕的是,恶意程序数量呈指数级增长,各类新型攻击方式层出不穷,0day的出现早已超过一线明星出现在新闻头条的频率,依靠极其有限的网络专家总结的经验和几个安全厂商所谓的样本交换,已经难以应付现在的网络安全威胁。如果安全专家一眼就可以识破的威胁,机器也能够自动化发现甚至做出相应的响应,这已经是很大的进步;如果让机器可以像阿尔法狗理解围棋一样理解网络威胁,那将是巨大进步。事情又回到最初的那个问题,如何能让机器可以真正学会识别安全威胁?机器学习可能是一个不错的答案。
本书面向信息安全从业人员、大专院校计算机相关专业学生以及信息安全爱好者、机器学习爱好者,对于想了解人工智能的CTO、运维总监、架构师同样也是一本不错的科普书籍。如果读者看完本书,在工作学习中遇到问题时可以想起一到两种算法,那么我觉得就达到效果了;如果读者读完本书,可以像使用printf一样使用SVM、朴素贝叶斯等算法,那么这本书就相当成功了。
我写本书的初衷是帮助信息安全从业者了解机器学习,可以动手使用简单的机器学习算法解决实际问题。在写作中尽量避免生硬的说教,能用文字描述的尽量不用冷冰冰的公式,能用图和代码说明的尽量不用多余的文字。正如霍金所言“多写1个公式,少一半读者”,希望反之亦然。
机器学习应用于安全领域遇到的最大问题就是缺乏大量的黑样本,即所谓的攻击样本,尤其相对于大量的正常业务访问,攻击行为尤其是成功的攻击行为是非常少的,这就给机器学习带来了很大挑战。本书很少对不同算法进行横向比较,也是因为在不同场景下不同算法的确表现差别很大,很难说深度学习就一定比朴素贝叶斯好,也很难说支持向量机就比不过卷积神经网络,拿某个具体场景进行横评意义不大,毕竟选择算法不像购买SUV,可以拿几十个参数评头论足,最后还是需要大家结合实际问题去选择。
本书的第1章主要介绍了如何打造自己的深度学习工具箱,介绍了本书使用的TensorFlow、TFLearn等深度学习库的安装以及使用方法。第2章和第3章介绍了卷积神经网络和循环神经网络这两大深度学习算法的基础知识。第4章介绍在生产环境搭建机器学习平台需要使用的开源组件,包括Logstash、Kafka、Storm、Spark等,并且介绍了GPU和TPU的基础知识。第5章到第15章,介绍了11个使用机器学习技术解决实际安全问题的案例,包括验证码识别、垃圾邮件识别、负面评论识别、骚扰短信识别、Linux后门检测、用户行为分析与恶意行为检测、WebShell检测、智能扫描器、DGA域名检测、恶意程序分类识别、反信用卡欺诈,每个案例都使用互联网公开的数据集并配有基于Python的代码,代码和数据集可以在本书配套的GitHub下载。
本书是我所著机器学习三部曲的第二部,第一部主要以机器学习常见算法为主线,利用生活中的例子和具体安全场景来介绍机器学习常见算法,是机器学习入门书籍,便于读者可以快速上手。全部代码都能在普通PC上运行。本书将重点介绍深度学习,并以具体的11个案例介绍机器学习的应用,定位是面向具有一定机器学习基础或者致力于使用机器学习解决工作中问题的读者,本书将重点放在问题的解决而不是算法的介绍。由于深度学习通常计算量已经超过了PC的能力,部分代码需要在服务器甚至GPU上运行,不过这不影响大家的阅读与学习。第三部将重点介绍强化学习和对抗网络,并利用若干虚构安全
Web安全之深度学习实战 电子书 下载 mobi epub pdf txt