在現今的網際網路公司中,產品線綿延複雜,安全防禦體系無時無刻不在應對新的挑戰。哪怕是擁有豐富工作經驗的安全從業者,在面對層出不窮的攻擊手段和海量日誌數據時也會望洋興嘆。機器學習、深度學習是這些問題天然契合的解決方案,在數據量以指數級不斷增長的未來,甚至有可能是唯*的出路。當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