《Web安全之机器学习入门》 让大家了解神秘的机器学习

《Web安全之机器学习入门》 希望可以让大家了解神秘的机器学习

      近几年,机器学习成为安全领域一个比较火的话题。相对于其他领域,机器学习在安全领域的使用还相对起步阶段,大家对机器学习的态度也两极分化严重,一方面很多人在疑惑啥叫机器学习,机器学习究竟能干啥,一方面也有很多人认为机器学习近几年就可以取代安全人员。

      我在网络安全这个行业搬了好几年砖,前五年做大型互联网公司的企业安全建设,从准入系统到WAF、SIEM、IPS等,基本都开发或者使用过,最近三年一直负责云安全产品,从抗D、WAF产品到、SIEM、入侵检测等,使用的技术从规则、黑白名单、模型、沙箱再到机器学习,从单机的OSSIM到Hadoop、Storm、Spark、ELK,也算目睹了安全技术或者更准确地说是数据分析处理技术的迅猛发展。我深深感到,机器学习会对这个行业产生深刻的影响,但是这个过程可能会比较长。坦白讲,机器学习是一个学习坡度很陡的学科,我自己也经历过买了小十本书最后也一直云里雾里,遇到安全问题也不知道该如何应用的尴尬期。现在回顾我自己学习机器学习这段经历,我发现两个很重要的规律,一个是我们这些码农出身的工程师,对于公式和文字远远没有代码和图像、流程图敏感和理解容易;另外一个是,在入门机器学习时,将机器学习算法和安全问题结合更容易理解和掌握,过早钻研算法的底层实现以及复杂的算法参数调优会让入门阶段异常艰难,会让人望而却步。基于这两个认识,我写了一本机器学习和安全结合的入门书籍,这本书即可以当成技术书籍,也可以当成科普书籍,这都没关系,在写作中尽量避免生硬的说教,能用文字描述的尽量不用冷冰冰的公式,能用图和代码说明的尽量不用多余的文字。正如霍金所言“多写1个公式,少一半读者”,希望反之亦然,这本书面向信息安全从业人员、高等院校计算机相关专业学生以及信息安全爱好者,机器学习爱好者,对于想了解人工智能的CTO、运维总监、架构师同样也是一本不错的科普书籍。当读者在工作学习中遇到问题时可以想起本书中提到的一两种算法,那么我觉得就达到效果了,如果可以让读者像使用printf一样使用SVM、朴素贝叶斯等算法,那么这本书就相当成功了。

      写这本书时我做了一个比较大胆的尝试,一改机器学习书籍常见的套路,没有用大量文字和公式解释机器学习算法,而更多用生活的例子帮助大家理解算法,使用大量的python代码例子,介绍具体安全问题如何使用算法处理,帮助大家更好的理解算法的使用,通过这段时间大家的反馈,这种比较新的方式确实不少人还是很接受了。本书的目录如下,如果大家有兴趣可以在jd上搜索我的书<Web安全之机器学习入门>。

第1章 通向智能安全的旅程 1

1.1 人工智能、机器学习与深度学习 1

1.2 人工智能的发展 2

1.3 国内外网络安全形势 3

1.4 人工智能在安全领域的应用 5

1.5 算法和数据的辩证关系 9

1.6 本章小结 9

参考资源 10

第2章 打造机器学习工具箱 11

2.1 Python在机器学习领域的优势 11

2.1.1 NumPy 11

2.1.2 SciPy 15

2.1.3 NLTK 16

2.1.4 Scikit-Learn 17

2.2 TensorFlow简介与环境搭建 18

2.3 本章小结 19

参考资源 20

第3章 机器学习概述 21

3.1 机器学习基本概念 21

3.2 数据集 22

3.2.1 KDD 99数据 22

3.2.2 HTTP DATASET CSIC 2010 26

3.2.3 SEA数据集 26

3.2.4 ADFA-LD数据集 27

3.2.5 Alexa域名数据 29

3.2.6 Scikit-Learn数据集 29

3.2.7 MNIST数据集 30

3.2.8 Movie Review Data 31

3.2.9 SpamBase数据集 32

3.2.10 Enron数据集 33

3.3 特征提取 35

3.3.1 数字型特征提取 35

3.3.2 文本型特征提取 36

3.3.3 数据读取 37

3.4 效果验证 38

3.5 本章小结 40

参考资源 40

第4章 Web安全基础 41

4.1 XSS攻击概述 41

4.1.1 XSS的分类 43

4.1.2 XSS特殊攻击方式 48

4.1.3 XSS平台简介 50

4.1.4 近年典型XSS攻击事件分析 51

4.2 SQL注入概述 53

4.2.1 常见SQL注入攻击 54

4.2.2 常见SQL注入攻击载荷 55

4.2.3 SQL常见工具 56

4.2.4 近年典型SQL注入事件分析 60

4.3 WebShell概述 63

4.3.1 WebShell功能 64

4.3.2 常见WebShell 64

4.4 僵尸网络概述 67

4.4.1 僵尸网络的危害 68

4.4.2 近年典型僵尸网络攻击事件分析 69

4.5 本章小结 72

参考资源 72

第5章 K近邻算法 74

5.1 K近邻算法概述 74

5.2 示例:hello world!K近邻 75

5.3 示例:使用K近邻算法检测异常操作(一) 76

5.4 示例:使用K近邻算法检测异常操作(二) 80

5.5 示例:使用K近邻算法检测Rootkit 81

5.6 示例:使用K近邻算法检测WebShell 83

5.7 本章小结 85

参考资源 86

第6章 决策树与随机森林算法 87

6.1 决策树算法概述 87

6.2 示例:hello world!决策树 88

6.3 示例:使用决策树算法检测POP3暴力破解 89

6.4 示例:使用决策树算法检测FTP暴力破解 91

6.5 随机森林算法概述 93

6.6 示例:hello world!随机森林 93

6.7 示例:使用随机森林算法检测FTP暴力破解 95

6.8 本章小结 96

参考资源 96

第7章 朴素贝叶斯算法 97

7.1 朴素贝叶斯算法概述 97

7.2 示例:hello world!朴素贝叶斯 98

7.3 示例:检测异常操作 99

7.4 示例:检测WebShell(一) 100

7.5 示例:检测WebShell(二) 102

7.6 示例:检测DGA域名 103

7.7 示例:检测针对Apache的DDoS攻击 104

7.8 示例:识别验证码 107

7.9 本章小结 108

参考资源 108

第8章 逻辑回归算法 109

8.1 逻辑回归算法概述 109

8.2 示例:hello world!逻辑回归 110

8.3 示例:使用逻辑回归算法检测Java溢出攻击 111

8.4 示例:识别验证码 113

8.5 本章小结 114

参考资源 114

第9章 支持向量机算法 115

9.1 支持向量机算法概述 115

9.2 示例:hello world!支持向量机 118

9.3 示例:使用支持向量机算法识别XSS 120

9.4 示例:使用支持向量机算法区分僵尸网络DGA家族 124

9.4.1 数据搜集和数据清洗 124

9.4.2 特征化 125

9.4.3 模型验证 129

9.5 本章小结 130

参考资源 130

第10章 K-Means与DBSCAN算法 131

10.1 K-Means算法概述 131

10.2 示例:hello world!K-Means 132

10.3 示例:使用K-Means算法检测DGA域名 133

10.4 DBSCAN算法概述 135

10.5 示例:hello world!DBSCAN 135

10.6 本章小结 137

参考资源 137

第11章 Apriori与FP-growth算法 138

11.1 Apriori算法概述 138

11.2 示例:hello world!Apriori 140

11.3 示例:使用Apriori算法挖掘XSS相关参数 141

11.4 FP-growth算法概述 143

11.5 示例:hello world!FP-growth 144

11.6 示例:使用FP-growth算法挖掘疑似僵尸主机 145

11.7 本章小结 146

参考资源 146

第12章 隐式马尔可夫算法 147

12.1 隐式马尔可夫算法概述 147

12.2 hello world! 隐式马尔可夫 148

12.3 示例:使用隐式马尔可夫算法识别XSS攻击(一) 150

12.4 示例:使用隐式马尔可夫算法识别XSS攻击(二) 153

12.5 示例:使用隐式马尔可夫算法识别DGA域名 159

12.6 本章小结 162

参考资源 162

第13章 图算法与知识图谱 163

13.1 图算法概述 163

13.2 示例:hello world!有向图 164

13.3 示例:使用有向图识别WebShell 169

13.4 示例:使用有向图识别僵尸网络 173

13.5 知识图谱概述 176

13.6 示例:知识图谱在风控领域的应用 177

13.6.1 检测疑似账号被盗 178

13.6.2 检测疑似撞库攻击 179

13.6.3 检测疑似刷单 181

13.7 示例:知识图谱在威胁情报领域的应用 183

13.7.1 挖掘后门文件潜在联系 184

13.7.2 挖掘域名潜在联系 185

13.8 本章小结 187

参考资源 187

第14章 神经网络算法 188

14.1 神经网络算法概述 188

14.2 示例:hello world!神经网络 190

14.3 示例:使用神经网络算法识别验证码 190

14.4 示例:使用神经网络算法检测Java溢出攻击 191

14.5 本章小结 193

参考资源 194

第15章 多层感知机与DNN算法 195

15.1 神经网络与深度学习 195

15.2 TensorFlow编程模型 196

15.2.1 操作 197

15.2.2 张量 197

15.2.3 变量 198

15.2.4 会话 198

15.3 TensorFlow的运行模式 198

15.4 示例:在TensorFlow下识别验证码(一) 199

15.5 示例:在TensorFlow下识别验证码(二) 202

15.6 示例:在TensorFlow下识别验证码(三) 205

15.7 示例:在TensorFlow下识别垃圾邮件(一) 207

15.8 示例:在TensorFlow下识别垃圾邮件(二) 209

15.9 本章小结 210

参考资源 210

第16章 循环神经网络算法 212

16.1 循环神经网络算法概述 212

16.2 示例:识别验证码 213

16.3 示例:识别恶意评论 216

16.4 示例:生成城市名称 220

16.5 示例:识别WebShell 222

16.6 示例:生成常用密码 225

16.7 示例:识别异常操作 227

16.8 本章小结 230

参考资源 230

第17章 卷积神经网络算法 231

17.1 卷积神经网络算法概述 231

17.2 示例:hello world!卷积神经网络 234

17.3 示例:识别恶意评论 235

17.4 示例:识别垃圾邮件 237

17.5 本章小结 240

参考资源 242

   

7

更多精彩
发表评论

已有 7 条评论

取消
Loading...

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php