發表於2024-11-05
快速開發基於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
本書提供瞭很多嶄新和可靠的取證模塊、庫和解決方案,可以直接用於Python取證分析,同時隨代碼示例提供的詳細說明和文檔,能讓即使是Python編程新手也能獲得意料之外的提升,或者使用這些模型建立新的解決方案。
幾乎在所有案件和環境中,新的網絡犯罪調查工具的快速研發是一個必備的組成部分,不管你是進行事後的調查,執行開機預檢,從移動設備或雲服務提取證據,還是從網絡收集和處理證據,使用Python取證都能填補這些關鍵能力的空缺。
● 提供能親手開發的工具、代碼示例,以及詳細的說明和文檔,可以即刻投入使用。
● 討論如何建立一個Python取證平颱。
● 涵蓋使用Python的高效搜索和索引方法。
● 介紹使用多綫程模塊,極大地提升常見取證方法的性能。
● 展示使用Python腳本進行網絡調查的完整內容。
中譯本序
有幸與湖北警官學院的張俊老師相識,我們經常在學術會議間隙,或者相互訪問的交流過程中探討電子數據取證的問題。張俊老師從事電子數據取證的教學和科研工作多年,培養瞭很多優秀的學生,他還積極參與電子數據取證的司法鑒定工作,辦理瞭許多重大和復雜的案件。張俊老師一直活躍在電子數據取證領域,並不斷關注和跟蹤國內外最新的技術發展,所以他有心翻譯和齣版這樣一本書,我覺得一切都是順理成章的事情。
本書作者Chet Hosmer和技術編輯Gary C. Kessler也是信息網絡安全業界的專業人士,他們都是知名的專傢,有著長期的專業經曆和豐富學識。他們將寶貴的經驗和專業知識毫無保留地在書中傳授,這將有利於專業人纔的成長,有助於立誌從事電子數據取證的技術人員和法律人士快速進入這一領域。
電子數據取證是一個發展時間相對較短的領域,還有很多的技術問題、法律問題尚待解決。香港大學計算機科學學係的課程也應用瞭Python語言編程,我們也鼓勵從事信息安全專業的學生學習這門語言,並充分利用其簡單易學、第三方庫功能強大的特點,與專業知識相結閤,針對電子數據取證的不同問題或挑戰,開展創造性的工作,提齣切實可行的解決方案。
這本書提供瞭廣泛的例子,便於不瞭解編程或隻擁有初級技術的開發人員使用。我們盼望著更多充滿智慧和理想的新人的加入,期待你們所有人分享思想、知識和經驗,一起推進這一事業的發展。
鄒錦沛博士(Dr. CHOW KAM PUI)
香港大學信息安全和密碼學硏究中心(CISC)
香港大學計算機科學學係
2016年11月18日於香港大學
譯者序
電子數據取證技術的研究和應用在國內得到瞭越來越多的關注。全世界的專傢和學者在提及信息網絡安全時,關注的重點多集中於算法理論的研究、技術方法的對抗以及規範策略的製定等,毫無疑問這些問題極為重要。然而,信息網絡安全的最後一道防綫必然訴諸法律。最近幾年電子數據作為一種獨立證據類型,逐漸得到各類法規的認可,例如在深圳快播公司涉嫌傳播淫穢物品牟利案的庭審中,關於電子證據的控辯,就引發瞭司法界對電子證據的廣泛關注。作為嚮法庭呈貢證據的偵查人員、電子數據取證司法鑒定人,他們的知識、水平和能力成為關鍵。但現實的問題是,由於計算機網絡技術的飛速發展,以及案件的復雜和規模化,已有的電子數據取證工具在很多情況下並不能替偵查人員或司法鑒定人自動完成他們所需的全部工作,或者完成更高級的取證調查任務。例如,用現有的工具軟件提取一部手機的通話、短信和即時通信記錄,通常可以得到數吉赫茲的數據,往往一個案件涉及十幾部或更多的手機,因此數據量更大。如果偵查人員或司法鑒定人能夠快速地編寫代碼,進行定製的搜索和索引,將極大地提高從這些海量的半結構化數據中高效地得到關鍵證據的能力。
譯者長期從事電子數據取證的科研和教學工作,並作為司法鑒定人,參與瞭大量重、特大案件的電子數據取證調查工作,在這些過程中一直反復思考上述這些問題。一個偶然的機會,看到瞭Python Forensics: A Workbench for Inventing and Sharing Digital Forensic Technology一書,立刻被它的內容所吸引,感覺找到瞭問題的答案。本書的特點在於,使用Python語言上手快,第三方庫豐富,調查員可以方便地編寫代碼來完成復雜的、特定的取證任務,而且無須過多關注語言細節,從而能將主要精力放到取證任務本身。另外,本書體現瞭開發過程滿足多伯特(Daubert)證據標準的重要性,也就是設計、開發、測試過程符閤特定的證據標準。這些特點也是開發普通程序與取證程序的最大區彆。
作者Chet Hosmer不僅是信息網絡安全、電子數據取證領域的從業人士,也是一名教育工作者,作為Utica學院網絡安全研究生課程的客座教授,他擅長從調查員視角講解如何用Python語言進行電子數據取證。本書在介紹如何建立一個Python取證環境的基礎上,首先詳細講解開發一個取證應用的基本框架,然後每一章都針對網絡犯罪取證的一個不同問題,討論能夠自由使用、分享和擴展的Python指導性解決方案,包括哈希、關鍵字搜索、元數據、自然語言處理、網絡分析以及利用雲的多進程等。最後,對Python應用於網絡犯罪調查,以及更廣泛領域的網絡安全應用,高性能硬件加速和嵌入式解決方案等在未來的機遇進行瞭展望。作者認為,能否建造自己的取證工具庫,是區分初級取證調查員與專業取證調查員的關鍵。全書貫穿著一個資深調查員通過長期實踐得齣的理念。作為前輩,他諄諄告誡後來者:隻有當我們(調查人員)理解工具如何工作時,它們纔真正是我們的工具。他正是以這一核心指導原則展開瞭本書全部內容。
電子數據取證是計算機科學、法學等的交叉領域,技術開發人員和法律工作者以不同的知識背景進入該領域,他們從各自角度去理解電子數據證據的提取、分析和呈貢,並且在專業詞匯、思維過程、解決問題的方式等方麵有很大區彆,形成瞭介於一個自然科學和社會科學之間的“溝壑”。所以,本書的另一個目的是試圖建立起工程學(如計算機科學、信息科學)與社會科學(如法學)之間的橋梁。技術開發人員和法律工作者通過閱讀本書,提升對取證環境和工具的理解,可以輕鬆交流和平等參與,從而創造齣一個協作而不互損的環境,計算機科學與社會科學都能各盡其力。我在閱讀和翻譯的過程中,深刻體會到作者毫無保留地把自己積纍的寶貴經驗傳授給讀者。本書對讀者的編程知識(也許根本沒有)不做任何預設。隻要肯用功,對書中的例子感興趣,讀者就不用擔心自己讀不懂,甚至可以將其擴展,開發齣適應特定情形和問題的進化版本。
以我有限的水平,要翻譯好這樣一本同時適閤技術開發人員和法律工作者閱讀的著作,內心難免不安。感謝作者Chet Hosmer對我每次發郵件嚮他求教或確認問題的耐心解答。感謝我的領導黃鳳林教授和張天長教授,他們給予我很多指導和幫助。感謝武漢天宇寜達公司的CEO郭永建先生,他給齣瞭若乾非常專業的修改意見。翻譯本書時,我還嚮徐比超和鬍壯求證過有關的示例是否有誤,他們是湖北警官學院的畢業生,現在戰鬥在電子數據取證的最前綫。感謝湖北警官學院的學生吳沛沛、歐陽桂申、彭洪飛、瀋陽、硃俊妍參與部分翻譯校對和代碼測試工作。最後感謝我的妻子,她承擔瞭所有的傢務重任,讓我全心投入工作,並以我翻譯本書為驕傲。
由於本人學識有限,且時間倉促,書中翻譯錯誤、不當和疏漏之處在所難免,望讀者批評指正。
專 傢 薦 語
Hosmer不僅為各種層次的取證分析提供瞭一個齣色的Python取 電子數據取證與Python方法 [Python Forensics: A Workbench for Inventing and Sh] 下載 mobi epub pdf txt 電子書 格式
電子數據取證與Python方法 [Python Forensics: A Workbench for Inventing and Sh] 下載 mobi pdf epub txt 電子書 格式 2024
電子數據取證與Python方法 [Python Forensics: A Workbench for Inventing and Sh] 下載 mobi epub pdf 電子書好評
評分送貨快
評分送貨快
評分很好,
評分好評
評分很好,
評分送貨快
評分好好好
評分好好好
電子數據取證與Python方法 [Python Forensics: A Workbench for Inventing and Sh] mobi epub pdf txt 電子書 格式下載 2024