Python中文网

电子数据取证与Python方法 [Python Forensics: A Workbench for Inventing and Sh],由电子工业出版社在2017-09-01月出版发行,本书编译以及作者信息为: [美] Chet Hosmer(切特·霍斯默) 著,张俊 译,这是第1次发行, 国际标准书号为:9787121321313,品牌为电子工业出版社, 这本书采用平装开本为16开,纸张采为胶版纸,全书共有252页,字数40万3000字,值得推荐。

此书内容摘要

本书是一本电子数据取证的入门书籍,系统介绍如何应用Python编程语言进行电子数据取证软件开发。第1章和第2章介绍Python基本知识和如何建立一个取证开发环境。第3章到第11章针对电子数字取证的各种需求,详细阐述指导性的解决方法,涵盖哈希计算、关键字搜索、元数据提取、网络分析、自然语言处理以及利用云的多进程等专题,并提供大量的源代码实例供读者学习、改进并应用到实际案例,第12章回顾了全书内容,并就未来的发展进行了探讨。

关于此书作者

Chet Hosmer

WetStone技术公司的联合创始人,30年来一直致力于研发先进的软件解决方案,推出了许多获奖的产品。

张俊,男,博士研究生,湖北警官学院信息技术系副教授,主讲《密码学(双语)》和《计算机取证》。湖北三真司法鉴定中心计算机取证国家司法鉴定人。研究近500个涉及计算机和网络犯罪的案例,参与近200个案件的犯罪调查,多次作为专家证人出庭。

前公安机关网络安全保卫大队大队长。现湖北警官学院电子数据取证重点实验室和香港大学联合实验室研究员。湖北省信息网络安全协会常务理事。公安部国际合作局中南亚国家警察培训计划讲座专家,湖北省公安厅网络犯罪调查专家组成员和网络警察职业训练计划教官,公安部*一研究所计算机网络犯罪技术研修班讲座专家。作为主持人或主要研究人员获得国家863项目和多项公安部、湖北省公安厅和湖北省教育厅的研究课题/项目资助。在计算机科学,警察技术,网络信息安全,武汉大学学报(英文版),湖北警官学院学报等发表论文多篇。


编辑们的推荐

适读人群 :本书适合网络空间安全、网络安全与执法、信息安全、法学、司法鉴定及相关专业的本科和专科学生作为教材,对于从事数字犯罪调查、计算机司法鉴定、内部调查、软件研发等工作的执法人员、调查分析人员、审计人员,以及取证软件和工具的研发人员,也是提升技能、丰富手段的参考书。

快速开发基于Python的数字取证应用和网络犯罪调查工具的实战宝典。

电子数据取证与Python方法 [Python Forensics: A Workbench for Inventing and Sh]图书的目录

第1章为何使用Python进行取证 1
1.1本章简介 1
1.2网络空间犯罪调查的挑战 1
1.3Python编程环境如何有助于应对这些挑战 3
1.3.1Python的全球支持 4
1.3.2开源和平台独立性 5
1.3.3生命周期定位 5
1.3.4入门的成本和限制 5
1.4Python与多伯特(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.6Python包和模块 15
2.6.1Python标准库 15
2.7标准库包含什么 17
2.7.1内建函数 17
2.7.2hex()和bin() 17
2.7.3range() 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.2Twisted matrix (TWISTED) 25
2.9集成开发环境 25
2.9.1有哪些选择 25
2.9.2运行于Ubuntu Linux上的Python 30
2.10?移动设备上的Python 32
2.10.1iOS中的Python应用 32
2.10.2Windows 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.2ParseCommandLine(?) 46
3.4.3ValidatingDirectoryWritable 48
3.4.4WalkPath 49
3.4.5HashFile 50
3.4.6CSVWriter 53
3.4.7pfish.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.7p-search完整代码清单 86
4.7.1p-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.2Python图像库(PIL) 95
5.3代码遍历 105
5.3.1Main程序 105
5.3.2logging类 105
5.3.3cvs处理器 105
5.3.4命令行解析器 106
5.3.5EXIF和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.7NTP客户端创建脚本 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.6NLTKQuery应用程序 146
7.6.1NLTKQuery.py 146
7.6.2_classNLTKQuery.py 148
7.6.3_NLTKQuery.py 150
7.6.4NLTKQuery例子的执行 150
7.6.5NLTK跟踪执行 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.3server.py的代码 156
8.1.4client.py的代码 157
8.1.5server.py和client.py程序的执行 158
8.2队长雷缪斯:再次核实我们到目标的射程…仅需一个PING 158
8.2.1wxPython 159
8.2.2ping.py 159
8.2.3guiPing.py的代码 164
8.2.4ping扫描的执行 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.3Python中的原始套接字 180
9.3.1什么是混杂模式或监控模式 180
9.3.2Linux下Python中的原始套接字 181
9.3.3对缓冲区进行解包 182
9.4Python隐蔽式网络映射工具(PSNMT) 185
9.5PSNMT源代码 187
9.5.1psnmt.py源代码 188
9.5.2decoder.py源代码 190
9.5.3commandParser.py源代码 192
9.5.4classLogging.py源代码 193
9.5.5csvHandler.py源代码 194
9.6程序的执行和输出 195
9.6.1取证日志 196
9.6.2CSV文件输出实例 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取证指南,还眼光独到地阐述了如何建立一个意义非凡的协作环境,这种环境将极大地提升个人、组织以及取证社区的取证能力。对于分析人员、调查人员、管理人员、研究人员,以及其他任何对数字取证感兴趣的人来说,这是一本必须读的书!

—— Michael Duren(CISSP)

Cyber Moxie公司创始人


随着当今技术的快速变化,数字取证工具和实践也不得不快速更新,才能保持某种程度的实用性;调查人员昨天还依赖的技术能力,今天就迅速地过时。然而,随着新技术一起到来的也有新的工具和方法,Python语言就是其中最有可能被调查人员利用的事物之一。本书就是走在这一时代前列的一本书。正因为如此,无论对于初学者还是有经验的调查人员,它都是一本绝好的书。Chet Hosmer做了一项伟大的工作,通过循序渐进的指导,帮助读者更新旧的方法,掌握新的技能;通过合理的组织架构,最大限度地促进内容理解和前后贯通。从本书学到的技能,将有助于读者开发灵活而新颖的工具,并在若干年内发挥作用。

—— Greg Kipper

Verizon公司高级安全架构师和战略官


本书展现了Python应用于现代数字取证的崭新和务实的视野,提出了关于这种语言的强项和劣势的有价值的深刻见解。每一个有见识的取证调查员都值得花时间和精力来了解本书。

—— Russ Rogers

Peak Security公司董事长


本书对于Python取证程序员、很少或者没有Python编程经验的人都非常有用,对一个有经验的程序员来说也是一本很棒的参考书。这本书考虑到了与多伯特规则有关的问题,包括测试和验证,这些对于取证案件鉴定是至关重要的。

—— Zeno Geradts

荷兰法政研究所高级取证科学家和研发协同人


一如既往,Chet Hosmer提供了一个适用于数字取证的,具有全面性和突破性的解决方案和现代平台。这本书写得非常棒,很好用,为所有水平的Python取证程序员提供了一个坚实的基础,还包括关于实证检验的十分必要的讨论。这本书确实很简洁,对于所有想拥有一个数字取证库的人来说,本书值得拥有。

—— Marjie T. Britz博士

Clemson大学







2008年6月16日,在2岁的Caylee Anthony家里,有人用谷歌搜索了“防误操作的窒息”的术语。随后还是这位用户,使用Casey Anthony的名字登录了MySpace网站。几个月后悲剧发生,警方发现了这个小女孩腐烂的尸体。检察官以


关于此书评价

暂无.

书摘内容

暂无.

电子数据取证与Python方法 [Python Forensics: A Workbench for Inventing and Sh]最新最全的试读、书评、目录、简介信息由Python中文网整理提供。