總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 計算技術、計算機技術
 
 
 
 
基於數據科學的惡意軟件分析(配件另行下載)
 叢書名稱: 網絡空間安全技術叢書
 作  者: (美)約韋亞•薩克斯/(美)希拉里•桑德斯
 出版單位: 機械工業
 出版日期: 2020.03
 進貨日期: 2020/5/20
 ISBN: 9787111646525
 開  本: 16 開    
 定  價: 593
 售  價: 316
  會 員 價: 316
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

本書側重在將數據科學應用於惡意軟件,旨在更全面地展示如何將數據科學技術應用於解決重大的網絡安全問題。通過了解惡意軟件的數據科學,您將能夠更好地將數據科學應用到其他網絡安全領域,比如網絡攻擊、釣魚郵件或可疑用戶行為等檢測工作。

本書的第1~3章涵蓋了理解本書後面討論惡意軟件數據科學技術所必需的基本逆向工程概念。

第4章和第5章重點關注惡意軟件的關係分析,其中包括查看惡意軟件集合之間的相似性和差異性,以識別針對組織的惡意軟件攻擊活動。

第6~9章涵蓋了需要了解的關於理解、應用和實現基於機器學習惡意軟件檢測系統的所有內容。這些章節的內容還為將機器學習應用於其他網絡安全場景提供了基礎。

第10~12章介紹深度學習的內容。本書的目標讀者是那些有興趣學習更多關於如何使用數據科學技術解決計算機安全問題的安全專業人士。


內容簡介:

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

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

通過閱讀本書,你將學習如何:

c 通過共享代碼分析,識別由相同攻擊組織編寫的新惡意軟件

c 通過建立自己的機器學習檢測系統來捕獲0day惡意軟件

c 使用ROC曲線來度量惡意軟件檢測器的準確性,以幫助你選擇解決安全問題的途徑

c 使用數據可視化技術來識別和探討惡意軟件攻擊活動、演變趨勢和相互關係

c 使用Python實現基於深度神經網絡的檢測系統

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


作者簡介:

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



希拉裡·桑德斯(Hillary Sanders)是Sophos公司的高級軟件工程師和數據科學家,她在為Sophos公司發明和產品化神經網絡、機器學習和惡意軟件相似性分析安全技術方面發揮了關鍵作用。在加入Sophos之前,希拉裡是Premise數據公司的數據科學家。她經常在Black Hat USA和BSides Las Vegas等安全會議上發表演講。她曾在加州大學伯克利分校學習統計學。



評審專家簡介

Gabor Szappanos畢業於布達佩斯羅蘭大學,獲得物理學學位。他的第一份工作是在計算機與自動化研究所為核電站開發診斷軟件和硬件。Gabor於1995年開始從事反病毒工作,並於2001年加入VirusBuster,負責處理宏病毒和腳本惡意軟件;在2002年,他成為病毒實驗室的負責人。2008年至2016年期間,他是反惡意軟件測試標準組織(AMTSO)的董事會成員,於2012年加入Sophos並擔任首席惡意軟件研究員。


圖書目錄:

譯者序



前言

致謝

作者簡介

評審專家簡介

第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


章節試讀:

前  言

如果你是在網絡安全領域工作,你很可能比以往更多地使用了數據科學,即使你可能還沒有意識到這一點。例如,你的反病毒產品使用數據科學算法來檢測惡意軟件。你的防火晲挴陸茈i能利用數據科學算法來檢測可疑的網絡行為。你的安全信息和事件管理(SIEM)軟件很可能使用數據科學來識別數據中的可疑趨勢。不管是不是明顯,整個安全產業正在越來越多地將數據科學應用於安全產品中。

高級IT安全專業人員正在將他們自己定制的機器學習算法集成到他們的工作流程中。例如,在最近的會議報告和新聞文章中,Target百貨公司、萬事達(Mastercard)和富國銀行(Wells Fargo)的安全分析師都講述了開發定制化的數據科學技術,並將其作為安全工作的一部分。如果你還沒有趕上數據科學的潮流,那麼現在就是將數據科學納入你的安全實踐來提升能力的最佳時機。

什麼是數據科學

數據科學是一個不斷增長的算法工具集合,它可以讓我們通過使用統計學、數學和巧妙的統計數據可視化技術來理解和預測數據。雖然有更具體的定義,但一般來說,數據科學有三個組成部分:機器學習、數據挖掘和數據可視化。

在網絡安全的場景下,機器學習算法通過學習訓練數據來檢測新的安全威脅。這些方法已經被證明可以檢測出那些能被基於特徵的傳統檢測技術檢測出的惡意軟件。數據挖掘算法通過搜索安全數據來找出一些有趣的模式(例如,有威脅的攻擊者之間的關係),這些模式可能有助於我們辨別針對自身組織的攻擊活動。最後,數據可視化技術將枯燥無味的表格數據轉換成圖像的形式,幫助人們輕鬆發現有趣和可疑的趨勢。我將在本書中深入討論這三方面的技術內容,並向你展示如何使用它們。

為什麼數據科學對安全性至關重要

數據科學對網絡安全的未來至關重要,原因有三個:首先,安全總是與數據相關。當我們試圖檢測網絡威脅時,我們就是在對文件、日誌、網絡數據包和其他結構形式的數據進行分析。傳統的網絡安全專家不會針對這些數據源,使用數據科學技術來進行檢測。相反,他們使用文件哈希值、自定義的檢測規則(如特徵)和自定義的啟發式方法。儘管這些技術有其優點,但是針對每一種類型的攻擊,都需要人為參與的技術,這就需要太多的人為工作來跟上不斷變化的網絡威脅形勢。近年來,數據科學技術在提升我們檢測網絡威脅的能力方面變得至關重要。

其次,數據科學對網絡安全很重要,因為互聯網上的網絡攻擊數量急劇增長。我們以地下黑產中的惡意軟件增長情況為例。2008年,在安全社區中所知道的惡意可執行軟件大約有100萬種。2012年,這個數字達到了1億。2018年,安全社區已知的惡意可執行軟件數量已經超過7億(https://www.av-test.org/en/statistics/malware/),而且這個數字可能還會繼續增長。

由於惡意軟件的數量龐大,基於特徵的手動檢測技術已不再是能檢測出所有網絡攻擊的合理方法。由於數據科學技術使得檢測網絡攻擊的大部分工作自動化,並大大減少了檢測這些攻擊所需使用的內存,因此隨著網絡威脅的增長,它們在保護網絡和用戶方面有著巨大的潛力。

最後,無論是在安全行業的內部還是外部,數據科學是這十年的技術趨勢,而且很可能在未來十年仍是如此,因此數據科學對網絡安全至關重要。事實上,在任何地方都可能看到數據科學的應用,如個人語音助手(亞馬遜Echo、蘋果Siri和谷歌Home)、自動駕駛汽車、廣告推薦系統、網頁搜索引擎、醫學圖像分析系統和健身跟蹤應用程序等。

我們可以預期數據科學驅動的系統會對法律服務、教育和其他領域產生重大影響。由於數據科學已成為整個技術領域的關鍵推動因素,大學、大公司(谷歌、Facebook、微軟和IBM)和政府正在投資數十億美元來改進數據科學工具。感謝這些投資,使得數據科學工具將更適用於解決攻擊檢測的難題。

將數據科學應用於惡意軟件

本書側重於將數據科學應用於惡意軟件,我們將惡意軟件定義成為達成惡意目的而編寫的可執行程序,因為惡意軟件仍然是威脅發動者在網絡中獲得攻擊立足點的主要手段,並以此實現他們的後續目的。例如,在近年來出現的勒索軟件災難中,攻擊者通常向用戶發送帶有惡意附件的電子郵件,使得勒索軟件的可執行文件(惡意軟件)被下載到用戶的計算機上,然後就對用戶的數據進行加密,並要求用戶支付贖金來解密數據。儘管一些老練的攻擊者有時為逃避惡意軟件檢測系統的監視而不使用惡意軟件,但是在目前的網絡攻擊中,惡意軟件仍然是攻擊者主要應用的技術。

本書著眼於網絡安全領域中數據科學的特定應用,而不是試圖廣泛地涵蓋整個網絡安全的數據科學,旨在更全面地展示如何將數據科學技術應用於解決重大的網絡安全問題。通過了解基於數據科學的惡意軟件分析,我們能夠更好地將數據科學應用到其他網絡安全領域,比如檢測網絡攻擊、釣魚郵件或可疑用戶行為等。實際上,你在本書中學到的幾乎所有技術都不僅適用於惡意軟件檢測工作,而且適用於構建一般的數據科學檢測和智能系統。

本書的目標讀者

本書的目標讀者是那些有興趣學習更多關於如何使用數據科學技術解決計算機安全問題的安全專業人士。如果你不了解計算機安全和數據科學,你可能會意識到自己不得不通過查找專業術語來給自己提供一些相關知識,但是你仍然可以順利地閱讀本書。如果你只對數據科學感興趣,而對計算機安全不感興趣,那麼這本書可能不適合你。

本書的主要內容

本書的第一部分由三章組成,涵蓋了理解本書後面討論惡意軟件數據科學技術所必需的基本逆向工程概念。如果你剛接觸惡意軟件,請先閱讀前三章。如果你是惡意軟件逆向工程的老手,那麼你可以跳過這些章節。

第1章 包括用於分析惡意軟件文件,併發現它們如何在我們的計算機上實現惡意目的的靜態分析技術。

第2章 向你簡要介紹了x86匯編語言和如何反匯編,以及惡意軟件的逆向工程。

第3章 通過討論動態分析,對本書關於逆向工程的內容部分進行總結,其中包括在可控環境中運行惡意軟件來了解其惡意行為。

第4章和第5章重點關注惡意軟件的關係分析,其中包括查看惡意軟件集合之間的相似性和差異性,以識別針對你組織的惡意軟件攻擊活動,例如由一個網絡犯罪團夥控制的勒索軟件活動,或針對你的組織進行的有組織有針對性的攻擊活動。這些獨立章節非常適合那些不僅對惡意軟件檢測感興趣,而且還對提取有價值的威脅情報以追蹤誰在攻擊其網絡感興趣的讀者。如果你對威脅情報不太感興趣而對數據科學驅動的惡意軟件檢測技術更感興趣的話,那麼你可以安心地跳過這些章節。

第4章 展示了如何基於共享的屬性來分析和可視化惡意軟件,例如惡意軟件程序都會請求的主機名。

第5章 說明如何識別和可視化惡意軟件樣本之間的共享代碼關係,這可以幫助你識別惡意軟件樣本集合是否來自一個或者多個犯罪團夥。

接下來的四章涵蓋了你需要了解的關於理解、應用和實現基於機器學習的惡意軟件檢測系統。這些章節的內容還為將機器學習應用於其他網絡安全場景提供了基礎。

第6章 涵蓋對基本機器學習概念的容易理解的、直觀的且非數學化的介紹。如果你曾學習過機器學習的相關知識,本章將便於你重溫這些內容。

第7章 展示如何使用基本的統計方法來評價機器學習系統的準確性,以便選擇最佳方法。

第8章 介紹了可以用來構建自身機器學習系統的開源機器學習工具,並對如何使用這些工具進行了說明。

第9章 介紹如何使用Python來對惡意軟件威脅數據進行可視化,從而揭示攻擊活動和趨勢,以及如何在分析安全數據時將數據可視化集成到你的日常工作流程中。

最後三章介紹了深度學習的內容,涉及更多的數學知識,是機器學習的一個高階領域。深度學習是網絡安全數據科學中的一個熱門增長領域,這些章節為你提供了充分的入門知識。

第10章 涵蓋了深度學習的基本概念。

第11章 說明了如何使用開源工具在Python中實現基於深度學習的惡意軟件檢測系統。

第12章 通過分享成為一名數據科學家的不同途徑以及可以幫助你在這個領域取得成功的應有素質來對全書進行總結。

附錄 描述了本書附帶的數據和示例工具實現。

如何使用示例代碼和數據

如果一本編程書沒有供你使用和擴展的示例代碼,那麼它就是不完整的。本書每一章都附有示例代碼和數據,並在附錄中進行了詳盡的描述。所有代碼都是針對Linux環境中的Python 2.7版本編寫的。要訪問這些代碼和數據,你可以下載一個VirtualBox下的Linux虛擬機,裡面已經把程序代碼、數據和所需開源工具都設置好並準備就緒,然後你就可以在自己的VirtualBox環境中運行。你可以從http://www.malwaredatascience.com/或華章公司網站(www.hzbook.com)下載本書附帶的數據,也可以從https://www.virtualbox.org/wiki/Downloads免費下載VirtualBox軟件。這些代碼已經在Linux系統中進行了測試,但是如果你希望在Linux VirtualBox虛擬機以外運行的話,同樣的代碼在MacOS上應該可以正常工作,在Windows機器上應該也可以正常運行。

如果你希望在自己的Linux環境中安裝代碼和數據,可以從http://www.malwaredata-

science.com/或華章公司網站(www.hzbook.com)下載。你將在可下載的歸檔文件中找到每個章節的目錄,在每章的目錄中都包含相應代碼和數據的code/與data/目錄。這些代碼文件對應於每一章的代碼清單或代碼段,對於手頭上需要處理的應用程序來說更有意義。一些代碼文件與代碼清單裡的內容完全相同,而另一些代碼文件則進行了輕微的修改,以便你可以更容易地使用參數和其他選項。代碼目錄附帶了pip requirements.txt文件,其中提供了每章代碼運行所依賴的開源庫。要在你的機器上安裝這些庫,只需在每一章的code/目錄路徑中輸入pip -r requirements.txt即可。

現在你已經可以訪問本書的代碼和數據了,讓我們開始吧。


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。