編輯推薦
適讀人群 :本書適合網路空間安全、網路安全與執法、信息安全、法學、司法鑑定及相關專業的本科和專科學生作為教材,對於從事數字犯罪調查、計算機司法鑑定、內部調查、軟體研發等工作的執法人員、調查分析人員、審計人員,以及取證軟體和工具的研發人員,也是提升技能、豐富手段的參考書。
快速開發基於Python的數字取證套用和網路犯罪調查工具的實戰寶典。
內容簡介
本書是一本電子數據取證的入門書籍,系統介紹如何套用Python程式語言進行電子數據取證軟體開發。第1章和第2章介紹Python基本知識和如何建立一個取證開發環境。第3章到第11章針對電子數字取證的各種需求,詳細闡述指導性的解決方法,涵蓋哈希計算、關鍵字搜尋、元數據提取、網路分析、自然語言處理以及利用雲的多進程等專題,並提供大量的原始碼實例供讀者學習、改進並套用到實際案例,第12章回顧了全書內容,並就未來的發展進行了探討。
作者簡介
Chet Hosmer
WetStone技術公司的聯合創始人,30年來一直致力於研發先進的軟體解決方案,推出了許多獲獎的產品。
張俊,男,博士研究生,湖北警官學院信息技術系副教授,主講《密碼學(雙語)》和《計算機取證》。湖北三真司法鑑定中心計算機取證國家司法鑑定人。研究近500個涉及計算機和網路犯罪的案例,參與近200個案件的犯罪調查,多次作為專家證人出庭。
前公安機關網路安全保衛大隊大隊長。現湖北警官學院電子數據取證重點實驗室和香港大學聯合實驗室研究員。湖北省信息網路安全協會常務理事。公安部國際合作局中南亞國家警察培訓計畫講座專家,湖北省公安廳網路犯罪調查專家組成員和網路警察職業訓練計畫教官,公安部*一研究所計算機網路犯罪技術研修班講座專家。作為主持人或主要研究人員獲得國家863項目和多項公安部、湖北省公安廳和湖北省教育廳的研究課題/項目資助。在計算機科學,警察技術,網路信息安全,武漢大學學報(英文版),湖北警官學院學報等發表論文多篇。
目錄
第1章 為何使用Python進行取證 1
1.1 本章簡介 1
1.2 網路空間犯罪調查的挑戰 1
1.3 Python編程環境如何有助於應對這些挑戰 3
1.3.1 Python的全球支持 4
1.3.2 開源和平台獨立性 5
1.3.3 生命周期定位 5
1.3.4 入門的成本和限制 5
1.4 Python與多伯特(Daubert)證據標準 5
1.5 本書的組織結構 6
1.6 章節回顧 7
1.7 問題小結 7
1.8 補充資料 7
第2章 建立一個Python取證環境 8
2.1 本章簡介 8
2.2 搭建一個Python取證環境 8
2.3 正確的環境 9
2.4 選擇一個Python版本 10
2.5 在Windows上安裝Python 10
2.6 Python包和模組 15
2.6.1 Python標準庫 15
2.7 標準庫包含什麼 17
2.7.1 內建函式 17
2.7.2 hex()和bin() 17
2.7.3 range() 18
2.7.4 其他的內建函式 19
2.7.5 內建常量 20
2.7.6 內建類型 21
2.7.7 內建異常 22
2.7.8 檔案和目錄訪問 22
2.7.9 數據壓縮和歸檔 23
2.7.10?檔案格式 23
2.7.11?加密服務 23
2.7.12?作業系統服務 23
2.7.13?標準庫小結 24
2.8 第三方包和模組 24
2.8.1 自然語言工具包(NLTK) 24
2.8.2 Twisted matrix (TWISTED) 25
2.9 集成開發環境 25
2.9.1 有哪些選擇 25
2.9.2 運行於Ubuntu Linux上的Python 30
2.10?移動設備上的Python 32
2.10.1 iOS中的Python套用 32
2.10.2 Windows 8 Phone 34
2.11 虛擬機 35
2.12 章節回顧 35
2.13 問題小結 35
2.14 接下來講什麼 36
2.15 補充資料 36
第3章 第一個Python取證應用程式 37
3.1 本章簡介 37
3.2 命名慣例和其他考慮 37
3.2.1 常量 38
3.2.2 本地變數名 38
3.2.3 全局變數名 38
3.2.4 函式名 38
3.2.5 對象名 38
3.2.6 模組 38
3.2.7 類名 38
3.3 第一個應用程式“單向檔案系統哈希” 38
3.3.1 背景 39
3.3.2 基本需求 40
3.3.3 設計中的考慮 41
3.3.4 程式結構 42
3.4 代碼遍歷 44
3.4.1 檢查Main-代碼遍歷 44
3.4.2 ParseCommandLine(?) 46
3.4.3 ValidatingDirectoryWritable 48
3.4.4 WalkPath 49
3.4.5 HashFile 50
3.4.6 CSVWriter 53
3.4.7 pfish.py完整代碼清單 53
3.4.8 _pfish.py完整代碼清單 54
3.5 結果展示 61
3.6 章節回顧 65
3.7 問題小結 65
3.8 接下來講什麼 66
3.9 補充資料 66
第4章 使用Python進行取證搜尋和索引 67
4.1 本章簡介 67
4.2 關鍵字上下文搜尋 68
4.2.1 如何用Python輕鬆完成 69
4.2.2 基本需求 70
4.2.3 設計考慮 71
4.3 代碼遍歷 73
4.3.1 分析Main——代碼遍歷 73
4.3.2 分析_p-search函式——代碼遍歷 74
4.3.3 分析ParseCommandLine 74
4.3.4 分析ValidateFileRead(theFile) 76
4.3.5 分析SearchWords函式 76
4.4 結果展示 80
4.5 索引 83
4.6 編寫isWordProbable 84
4.7 p-search完整代碼清單 86
4.7.1 p-search.py 86
4.7.2 _p-search.py 87
4.8 章節回顧 93
4.9 問題小結 93
4.10?補充資料 93
第5章 證據提取(JPEG和TIFF) 94
5.1 本章簡介 94
5.2 Python圖像庫(PIL) 95
5.3 代碼遍歷 105
5.3.1 Main程式 105
5.3.2 logging類 105
5.3.3 cvs處理器 105
5.3.4 命令行解析器 106
5.3.5 EXIF和GPS處理器 106
5.3.6 檢查代碼 106
5.3.7 完整代碼清單 114
5.3.8 程式的執行 121
5.4 章節回顧 123
5.5 問題小結 124
5.6 補充資料 124
第6章 時間取證 125
6.1 本章簡介 125
6.2 給這個環節添加時間 126
6.3 時間模組 127
6.4 網路時間協定 132
6.5 獲得和安裝ntp庫ntplib 132
6.6 全世界的NTP伺服器 134
6.7 NTP客戶端創建腳本 135
6.8 章節回顧 137
6.9 問題小結 137
6.10?補充資料 137
第7章 在電子取證中使用自然語言工具 138
7.1 什麼是自然語言處理 138
7.1.1 基於對話的系統 138
7.1.2 語料庫 139
7.2 安裝自然語言工具包和相關的庫 139
7.3 使用語料庫 140
7.4 用NLTK進行實驗 140
7.5 從網際網路上創建語料庫 145
7.6 NLTKQuery應用程式 146
7.6.1 NLTKQuery.py 146
7.6.2 _classNLTKQuery.py 148
7.6.3 _NLTKQuery.py 150
7.6.4 NLTKQuery例子的執行 150
7.6.5 NLTK跟蹤執行 151
7.7 章節回顧 153
7.8 問題小結 153
7.9 補充資料 153
第8章 網路取證:第1部分 154
8.1 網路調查基礎 154
8.1.1 什麼是套接字 154
8.1.2 最簡單使用套接字的網路客戶端和伺服器連線 156
8.1.3 server.py的代碼 156
8.1.4 client.py的代碼 157
8.1.5 server.py和client.py程式的執行 158
8.2 隊長雷繆斯:再次核實我們到目標的射程…僅需一個PING 158
8.2.1 wxPython 159
8.2.2 ping.py 159
8.2.3 guiPing.py的代碼 164
8.2.4 ping掃描的執行 168
8.3 連線埠掃描 169
8.3.1 公認連線埠的例子 169
8.3.2 註冊連線埠的例子 170
8.4 章節回顧 176
8.5 問題小結 176
8.6 補充資料 177
第9章 網路取證:第2部分 178
9.1 本章簡介 178
9.2 數據包嗅探 178
9.3 Python中的原始套接字 180
9.3.1 什麼是混雜模式或監控模式 180
9.3.2 Linux下Python中的原始套接字 181
9.3.3 對緩衝區進行解包 182
9.4 Python隱蔽式網路映射工具(PSNMT) 185
9.5 PSNMT原始碼 187
9.5.1 psnmt.py原始碼 188
9.5.2 decoder.py原始碼 190
9.5.3 commandParser.py原始碼 192
9.5.4 classLogging.py原始碼 193
9.5.5 csvHandler.py原始碼 194
9.6 程式的執行和輸出 195
9.6.1 取證日誌 196
9.6.2 CSV檔案輸出實例 197
9.7 章節回顧 198
9.8 問題小結 198
9.9 補充資料 198
第10章 多進程的取證套用 199
10.1 本章簡介 199
10.2 何謂多進程 199
10.3 Python多進程支持 199
10.4 最簡單的多進程例子 202
10.4.1 單核的檔案搜尋方案 202
10.4.2 多進程的檔案搜尋方法 203
10.5?多進程檔案哈希 204
10.5.1 單核方案 204
10.5.2 多核方案 A 205
10.5.3 多核方案 B 208
10.6 多進程哈希表生成 210
10.6.1 單核口令生成器代碼 210
10.6.2 多核口令生成器 213
10.6.3 多核口令生成器代碼 213
10.7 章節回顧 216
10.8 問題小結 217
10.9 補充資料 217
第11章 雲中的彩虹表 218
11.1 本章簡介 218
11.2 在雲端工作 218
11.3 雲端服務的可選資源 220
11.4 在雲端創建彩虹表 222
11.4.1 單核彩虹表 222
11.4.2 多核彩虹表 224
11.5 口令生成計算 226
11.6 章節回顧 228
11.7 問題小結 228
11.8 補充資料 229
第12章 展望 230
12.1 本章簡介 230
12.2 由此我們將走向何方 232
12.3 結束語 235
12.4 補充資料 235