內容簡介

每年都有數百萬個惡意軟體檔被創建,每天都會產生大量與安全相關的資料,安全已經成為一個“大資料”問題。所以,當防範惡意軟體時,為什麼不像資料科學家那樣思考呢?

在本書中,安全資料科學家約書亞·薩克斯和希拉蕊·桑德斯展示了在構建自己的檢測和情報系統時,如何應用機器學習、統計和資料視覺化等技術。在概述了靜態和動態分析等基礎逆向工程概念之後,你將學習如何度量惡意軟體樣本中的代碼相似性,並使用scikit-learn和Keras等機器學習框架構建和訓練你自己的檢測器。

通過閱讀本書,你將學習如何:
通過共用代碼分析,識別由相同攻擊組織編寫的新惡意軟體
通過建立自己的機器學習檢測系統來捕獲0day惡意軟體
使用ROC曲線來度量惡意軟體檢測器的準確性,以幫助你選擇解決安全問題的途徑
使用資料視覺化技術來識別和探討惡意軟體攻擊活動、演變趨勢和相互關係
使用Python實現基於深度神經網路的檢測系統

無論你是一位想要為現有武器庫豐富能力的惡意軟體分析師,還是一位對攻擊檢測和威脅情報感興趣的資料科學家,本書都將幫助你保持領先地位。
 
 

作者介紹

約書亞·薩克斯(Joshua Saxe)是專業安全企業Sophos的首席資料科學家,他在Sophos公司負責領導一個安全資料科學研究團隊。他還是Sophos公司基於神經網路的惡意軟體檢測器的主要發明者,它可以保護數以千萬計的Sophos客戶防範惡意軟體。在加入Sophos之前,他花了5年時間來管理美國國防高級研究計畫局資助的美國政府安全資料研究專案。

希拉蕊桑德斯(Hillary Sanders)是Sophos公司的高級軟體工程師和資料科學家,她在為Sophos公司發明和產品化神經網路、機器學習和惡意軟體相似性分析安全技術方面發揮了關鍵作用。在加入Sophos之前,希拉蕊是Premise資料公司的資料科學家。她經常在Black Hat USA和BSides Las Vegas等安全會議上發表演講。
 
 

目錄

譯者序

前言
致謝
作者簡介
評審專家簡介

第1章 惡意軟體靜態分析基礎 1
1.1 微軟Windows可攜式可執行檔格式 2
1.1.1 PE頭 3
1.1.2 可選頭 3
1.1.3 節頭 3
1.2 使用pef?ile解析PE檔案格式 5
1.3 檢查惡意軟體的圖片 7
1.4 檢查惡意軟體的字串 8
1.4.1 使用字串程式 8
1.4.2 分析鏡像字串 8
1.5 小結 10

第2章 基礎靜態分析進階:x86反彙編 11
2.1 反彙編方法 11
2.2 x86組合語言基礎 12
2.2.1 CPU寄存器 13
2.2.2 算術指令 14
2.2.3 資料傳送指令 15
2.3 使用peffile和capstone反彙編ircbot.exe 19
2.4 限制靜態分析的因素 21
2.4.1 加殼 21
2.4.2 資源混淆 22
2.4.3 反彙編技術 22
2.4.4 動態下載資料 22
2.5 小結 23

第3章 動態分析簡介 24
3.1 為什麼使用動態分析 24
3.2 惡意軟體資料科學的動態分析 25
3.3 動態分析的基本工具 25
3.3.1 典型的惡意軟體行為 26
3.3.2 在malwr.com上載入檔 26
3.3.3 在malwr.com上分析結果 27
3.4 基本動態分析的局限 32
3.5 小結 32

第4章 利用惡意軟體網路識別攻擊活動 33
4.1 節點和邊 34
4.2 二分網路 35
4.3 惡意軟體網路視覺化 37
4.3.1 失真問題 37
4.3.2 力導向演算法 38
4.4 使用NetworkX構建網路 38
4.5 添加節點和邊 39
4.5.1 添加屬性 40
4.5.2 將網路保存到磁片 41
4.6 使用GraphViz實現網路視覺化 41
4.6.1 使用參數調整網路 42
4.6.2 GraphViz命令列工具 43
4.6.3 向節點和邊添加可視屬性 47
4.7 構建惡意軟體網路 50
4.8 構建共用圖像關係網絡 53
4.9 小結 57

第5章 共用代碼分析 58
5.1 通過特徵提取對樣本進行比較 61
5.1.1 特徵袋模型如何工作 61
5.1.2 N-gram 62
5.2 使用Jaccard係數量化相似性 63
5.3 使用相似性矩陣評價惡意軟體共用代碼估計方法 65
5.3.1 基於指令序列的相似性 66
5.3.2 基於字串的相似性 68
5.3.3 基於導入位址表的相似性 69
5.3.4 基於API動態調用的相似性 70
5.4 構建相似圖 71
5.5 擴展相似性比較 76
5.5.1 minhash概述 77
5.5.2 minhash詳述 77
5.6 構建持續的惡意軟體相似性搜索系統 79
5.7 運行相似性搜索系統 84
5.8 小結 86

第6章 理解基於機器學習的惡意軟體檢測方法 87
6.1 基於機器學習的檢測引擎構建步驟 88
6.1.1 收集訓練樣本 88
6.1.2 提取特徵 89
6.1.3 設計好的特徵 90
6.1.4 訓練機器學習系統 90
6.1.5 測試機器學習系統 91
6.2 理解特徵空間和決策邊界 91
6.3 是什麼決定了模型的好和壞:過擬合與欠擬合 96
6.4 機器學習演算法的主要類型 99
6.4.1 邏輯回歸 100
6.4.2 k近鄰演算法 103
6.4.3 決策樹 106
6.4.4 隨機森林 112
6.5 小結 114

第7章 評價惡意軟體檢測系統 115
7.1 四種可能的檢測結果 115
7.1.1 檢出率和誤報率 116
7.1.2 檢出率和誤報率之間的關係 117
7.1.3 ROC曲線 118
7.2 在評價中考慮基準率 119
7.2.1 基準率如何影響精確度 120
7.2.2 在部署環境中評價精確度 120
7.3 小結 122

第8章 構建基於機器學習的檢測器 123
8.1 術語和概念 124
8.2 構建一個基於決策樹的檢測器雛形 125
8.2.1 訓練你的決策樹分類器 126
8.2.2 視覺化決策樹 127
8.2.3 完整的示例代碼 129
8.3 使用sklearn構建實際的機器學習檢測器 130
8.3.1 實際的特徵提取 130
8.3.2 為什麼不能使用所有可能的特徵 134
8.3.3 使用雜湊技巧壓縮特徵 134
8.4 構建工業級的檢測器 138
8.4.1 特徵提取 138
8.4.2 訓練檢測器 139
8.4.3 運行檢測器檢測新的二進位檔案 141
8.4.4 至此我們實現了什麼 142
8.5 評價檢測器的性能 144
8.5.1 使用ROC曲線評價檢測器的功效 144
8.5.2 計算ROC曲線 144
8.5.3 將資料拆分為訓練集和測試集 146
8.5.4 計算ROC曲線 147
8.5.5 交叉驗證 148
8.6 下一步工作 151
8.7 小結 152

第9章 視覺化惡意軟體趨勢 153
9.1 為什麼視覺化惡意軟體資料很重要 153
9.2 理解我們的惡意軟體資料集 155
9.2.1 將數據載入到pandas中 156
9.2.2 使用pandas DataFrame 157
9.2.3 使用條件過濾資料 159
9.3 使用matplotlib視覺化資料 160
9.3.1 繪製惡意軟體大小和反病毒引擎檢測之間的關係 161
9.3.2 繪製勒索軟體檢出率 162
9.3.3 繪製勒索軟體和蠕蟲檢測率 163
9.4 使用seaborn視覺化資料 166
9.4.1 繪製反病毒引擎檢出的分佈圖 167
9.4.2 創建小提琴圖 170
9.5 小結 172

第10章 深度學習基礎 173
10.1 深度學習的定義 174
10.2 神經網路是如何工作的 175
10.2.1 神經元剖析 175
10.2.2 神經元網路 178
10.2.3 通用近似定理 178
10.2.4 構建自己的神經網路 179
10.2.5 向網路中添加一個新的神經元 182
10.2.6 自動生成特徵 184
10.3 訓練神經網路 185
10.3.1 利用後向傳播優化神經網路 186
10.3.2 路徑爆炸 188
10.3.3 梯度消失 189
10.4 神經網路的類型 189
10.4.1 前饋神經網路 189
10.4.2 卷積神經網路 190
10.4.3 自編碼神經網路 191
10.4.4 生成式對抗網路 192
10.4.5 迴圈神經網路 192
10.4.6 殘差網路 193
10.5 小結 193

第11章 使用Keras構建神經網路惡意軟體檢測器 194
11.1 定義模型的架構 195
11.2 編譯模型 197
11.3 訓練模型 198
11.3.1 提取特徵 198
11.3.2 創建資料生成器 199
11.3.3 與驗證資料協作 203
11.3.4 保存和載入模型 204
11.4 模型評價 205
11.5 使用回檔強化模型訓練過程 206
11.5.1 使用內置回檔 207
11.5.2 使用自訂回呼函數 208
11.6 小結 210

第12章 成為資料科學家 211
12.1 成為安全資料科學家之路 211
12.2 安全資料科學家的一天 212
12.3 高效安全資料科學家的特徵 214
12.3.1 開放的心態 214
12.3.2 無窮的好奇心 214
12.3.3 對結果的癡迷 215
12.3.4 對結果的懷疑 215
12.4 未來的工作 215
附錄 資料集和工具概述 217
 
網路書店 類別 折扣 價格
  1. 新書
    87
    $412