首页>参考读物>计算机科学与技术>安全

计算机取证
作者 : Dan Farmer;Wietse Venema
译者 : 何泾沙
丛书名 : 计算机科学丛书
出版日期 : 2007-05-28
ISBN : 7-111-21241-6
定价 : 28.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 186
开本 : 16开
原书名 : Forensic Discovery
原出版社: Addison-Wesley
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

计算机取证的权威指导书
  面对日趋严重的利用计算机进行犯罪的信息技术,计算机取证对于IT人员和警方人员来说变得越来越重要。本书中,Dan Farmer和Wietse Venema两位国际知名专家对这个问题提供了全面且现实的指导。本书从科学与艺术的角度全面介绍如何收集和分析数字证据,如何重构数据和攻击,以及如何跟踪入侵者。作者结合自己的实际经验讲解了计算机取证的理论,以及有效恢复那些我们通常认为已经永远丢失的证据的方法。
  作者利用他们所积累的大量的第一手资料并结合其实际经验详细介绍了有关文件系统、对内存和内核进行攻击以及恶意软件的知识,并且展示了各种行之有效的进行计算机取证的方法。读者将从本书中获取大量基于Solaris、FreeBSD、Linux和微软Windows的实例以及能够独立进行计算机取证工具的编写方面的指导。

  读者在阅读本书后将具备以下知识或能力:
  ● 理解和掌握有关计算机取证的核心概念:易失性、层次和信任。
  ● 从一个运行的系统中获取尽可能多的可靠证据。
  ● 恢复已经部分遭到破坏的信息,并且赋予它们正确的含义。
  ● 给系统中曾经发生的事件重构时间顺序:了解发生了什么以及发生在何时。
  ● 揭示对于从系统资源到内核模块所涉及的任何东西进行的秘密更改。
  ● 避免误入由入侵者设置的证据陷阱以及揭示入侵者掩盖证据的企图。
  ● 发现与可疑活动有关的数字脚印。
  ● 从计算机取证分析员的角度去理解文件系统。
  ● 分析恶意软件,不给它们任何逃脱的机会。
  ● 对正在运行的系统的内存捕获和检查数据。
  ● 一步一步遍历一个入侵发生的全过程。

  与本书相配套的网站(http://www.fish2.com/forensics/和http://www.porcupine.org/forensics/)上提供了在本书讨论中涉及的开源软件的更加完整的源代码和执行代码,还提供了更多有关计算机取证方面的案例研究以及获取相关资料和资源的链接。

图书特色

图书前言

今天,计算机从接入因特网到被其他机器攻击只要几分钟时间,并且这种攻击只能算是背景噪声级别的无目的攻击。曾几何时,计算机可以年复一年地运行,从不被攻击。要了解因特网“背景辐射研究”的情况,请参考\[CAIDA,2003\]、[Cymru,2004]或[IMS,2004]。
  在本书中,我们总结了过去几十年积累的“事后”入侵分析的经验,在此期间因特网呈爆炸性地增长,接入的主机已经从10万增长到了1亿\[ISC,2004\]。这种接入主机的增长,若不出所料的话,会导致更富戏剧性的现象——计算机和网络入侵更加频繁。随着网络特征和范围的改变,我们所面对的入侵的特征和范围也会随着改变。很高兴与读者共同分享这个学习机会。
  然而,在这10年间,计算机处理信息的方式却几乎没有变化。事实上,我们可以肯定地宣称计算机系统在过去的35年里没有发生本质性的变化,包括整个因特网和Linux、Windows等其他现今使用的操作系统。尽管这些观察来源于如今的这些系统,我们仍乐观地期待其中的一些见识在未来的10年里将依然有效。
  从本书能够学到什么
  本书的前提是取证信息可以通过任何途径获得。在这个指导理念下,我们开发了搜集信息的工具,它能收集显式和隐式的信息。我们将详细分析真实的入侵,以及所用方法的局限性。
  虽然本书列举了在特定系统环境中使用特定计算机取证工具的方法,但我们并不提供如何使用这些工具的细节说明,也不提供一步步核实的对照表。而是提供一些相关的背景资料,如信息如何维持,与过去事件有关的信息如何被恢复,以及信息的可信度如何受到进程有意或无意的影响。
  在案例学习和例子中,我们不介绍传统计算机取证,而转向研究系统的动态特性。文件系统的易失性、持续性以及内存是贯穿本书的话题。我们的大部分例子来自Solaris、FreeBSD和Linux系统,微软的Windows也偶尔提到。我们强调的是这些系统共有的基本原理:寻找计算机系统的共性,而不是偶然的差异和表面特征。
  我们通篇的主题以重构过去事件为重点,发现问题,分析问题,解决问题。这种方法可以帮助你弄明白事件为何会发生,但这基本上已经超出本书的范围。知道正在发生什么会使你对下次即将发生的恶性事件做好准备,即使当时了解的信息不足以预防未来问题的出现。必须预先提醒的是,我们并不会涉及入侵的检测和预防。我们将演示如何从跟踪一个入侵而导致发现另一个入侵,同时指出取证信息是怎样被系统保护机制和这些机制的错误操作所影响的。
  目标读者
  本书面向所有想要深入了解计算机系统是如何工作,以及所有想要涉猎计算机入侵和系统分析的技术员。系统管理员、应急响应人员、计算机安全专家以及取证分析员等都将受益于本书,当然包括所有关心计算机取证如何影响隐私信息在内的人员,也将受益于本书。
  虽然我们尽量使本书适合非专业读者来阅读,然而本书并非面向计算机新手。我们假定读者已经深入了解UNIX或者Windows的文件系统、网络和进程的基本概念。
  本书的结构
  本书分三个部分:首先是基本原理,然后是进程、系统和文件的分析,最后以发现作为本书的结尾。读者可以不按照顺序阅读本书,但我们建议从第1章开始读起,因为它介绍了全书所涉及的所有基本概念。
  在第一部分中,我们介绍通用的总体思路,以及后面章节所依赖的基本技术。
第1章介绍计算机结构的一般属性如何影响“事后”分析。阅读本章,可以帮读者预测后面遇到的所有的限制和意外。
  第2章介绍时间线的基本概念,本章以基于主机和网络的信息为例,包含域名系统的信息,来介绍时间线的基本概念。我们观察了整整长达一年时间的入侵,并举例说明如何从不明显的地方获得时间信息。
  在第二部分中,我们探索文件系统、进程和操作系统的抽象。这部分主要分析:如何理解计算机系统中找到的信息并且判断它的可信度。
  第3章介绍文件系统的基本概念,以及后面要用到的取证工具和技术。
  第4章通过详细检查一个受害机器的文件系统来描述一次入侵过程。我们查看现存文件和被删除的信息。如第2章那样,我们通过关联来决定不同观测结果的一致性。
  第5章介绍用户进程和操作系统的执行环境。研究从直接更改系统工具的入侵,到几乎不可检测的内核模块的破坏入侵,以及对这些破坏的检测。
  第6章介绍用于发现入侵后留下的进程或者程序文件目的的技术,以及防止恶意软件藏匿的对策和它们的限制。
  在第三部分,我们着眼于文件、进程和操作系统抽象的束缚之外。和我们研究系统架构对信息破坏的影响一样,这部分主要集中在“发现”。
  第7章说明那些大量被删除的文件可以完好地保存相当长的时间。我们发现它们大多都能在活跃的文件系统中存活2~4周。
  第8章说明主存中信息的持久性,包括加密文件的解密内容。我们发现持久性具有很大不同,并把这些不同与操作系统架构属性关联起来。
  附录提供了背景资料:附录A介绍Coroner’s工具包及其相关软件;附录B给出目前从计算机系统中捕获计算机取证信息时的易失性顺序及其细节的相关知识。
本书的约定
  我们使用$表示普通用户的shell命令提示符,#表示超级用户shell命令提示符。我们用大写字母开头的名字如Argus来表示一个系统而非独立的命令。本文中的UNIX包括Solaris、FreeBSD和Linux系统。在一些例子中,我们在命令提示符中包含了系统名称,如solaris$表明该示例只适用于Solaris系统。
  如前面所提到的,本书中的许多示例均取自真实的入侵。为了保护隐私,我们对不属于我们自己的系统做了匿名处理。例如,使用私有网络地址代替真实网络地址,如10.0.0.1或192.168.0.1,并替换主机名和用户名等,甚至适当地替换了时间和时区。
  网站
  本书中的一些例子程序是为了发现和分析而编写的。我们无法在书中包含完整的代码清单,因为附加的细节致使偏离本书的目的。这些内容及其他程序的完整源代码可以在下面两个网站中找到:
http://www.fish2.com/forensics/
http://www.porcupine.org/forensics/
  在这两个网站上,读者也可以找到一些免费的资料,如本书中没有包含的案例研究和其他的资源链接等。
  致谢
  我们非常感谢Karen Gettman、Brian Kernighan和Addison-Wesley出版社的其他人在我们撰写本书的几年间对我们的耐心支持。
  尽管我们尽全力避免任何错误,但是没有我们的校阅团队,就没有这本书。我们特别感谢以下评审人员(按字母顺序):Alephl、Brad Powell、Brian Carrier、Douglas Schales、Elizabeth Zwicky、Eoghan Casey、Fred Cohen、Gary McGraw、Muffy Barkocy、Rik Farrow、Steve Romig、Ben Pfaff。感谢Ben Pfaff和Jim Chow 对于其中一章的贡献和Dalya Sachs对早期版本编辑所提供的帮助。感谢Tsutomu Shimumura鼓励我们去做超出我们能力的事情。Wietse想感谢FIRST社团,感谢他们为本书提供一个可靠的公告板来形成和发展本书的很多思想和观念。本书与流行的写作方法不同,本书手稿先用HTML制作,然后用vi文本编辑器插入大量小的自定义脚本和标准的UNIX工具以HTML文档的形式完成的。

  Dan Farmer
  zen@fish2.com
  Wietse Venema
  wietse@porcupine.org

封底文字

计算机取证的权威指导书 面对日趋严重的利用计算机进行犯罪的信息技术,计算机取证对于IT人员和警方人员来说变得越来越重要。本书中,Dan Farmer和Wietse Venema两位国际知名专家对这个问题提供了全面且现实的指导。本书从科学与艺术的角度全面介绍如何收集和分析数字证据,如何重构数据和攻击,以及如何跟踪入侵者。作者结合自己的实际经验讲解了计算机取证的理论,以及有效恢复那些我们通常认为已经永远丢失的证据的方法。 作者利用他们所积累的大量的第一手资料并结合其实际经验详细介绍了有关文件系统、对内存和内核进行攻击以及恶意软件的知识,并且展示了各种行之有效的进行计算机取证的方法。读者将从本书中获取大量基于Solaris、FreeBSD、Linux和微软Windows的实例以及能够独立进行计算机取证工具的编写方面的指导。 读者在阅读本书后将具备以下知识或能力: ● 理解和掌握有关计算机取证的核心概念:易失性、层次和信任。 ● 从一个运行的系统中获取尽可能多的可靠证据。 ● 恢复已经部分遭到破坏的信息,并且赋予它们正确的含义。 ● 给系统中曾经发生的事件重构时间顺序:了解发生了什么以及发生在何时。 ● 揭示对于从系统资源到内核模块所涉及的任何东西进行的秘密更改。 ● 避免误入由入侵者设置的证据陷阱以及揭示入侵者掩盖证据的企图。 ● 发现与可疑活动有关的数字脚印。 ● 从计算机取证分析员的角度去理解文件系统。 ● 分析恶意软件,不给它们任何逃脱的机会。 ● 对正在运行的系统的内存捕获和检查数据。 ● 一步一步遍历一个入侵发生的全过程。 与本书相配套的网站(http://www.fish2.com/forensics/和http://www.porcupine.org/forensics/)上提供了在本书讨论中涉及的开源软件的更加完整的源代码和执行代码,还提供了更多有关计算机取证方面的案例研究以及获取相关资料和资源的链接。

作者简介

Dan Farmer;Wietse Venema:Dan Farmer:作者简介: Dan Farmer撰写过许多计算机安全方面的程序和论文。他目前在Elemental Security公司任首席技术执行官,该公司是一家计算机安全软件公司。
Wietse Venema: Wietse Venema曾经编写了一些得到广泛应用的软件,包括TCP包装软件以及Postfix邮件系统。他目前在IBM研究部门任研究员。两位作者还合作编写了很多国际领先的信息安全和取证方面的软件程序包,包括SATAN网络安全扫描程序以及Coroner's工具包。

译者简介

何泾沙:暂无简介

译者序

计算机科学以及信息技术的发展,尤其是近二十年来计算机网络技术的发展以及互联网应用的日益普及,已经使我们的日常工作和生活与数字信息紧密地联系在一起,信息以及信息技术无时无刻不在影响着我们。虽然我们从现代信息技术的应用中获取了诸多的益处,但我们同时也必须面临对信息进行恶意攻击和破坏给我们带来的种种不便以及可能造成的不可挽回的损失。因此,如何有效地使用与我们日常工作和生活密切相关的信息,不但通过直接使用而获益,而且通过对特定信息进行采集和分析去发现和阻止利用计算机进行犯罪以及对信息进行恶意攻击和破坏的企图和行为就成为我们必须面对的一个现实问题。这一问题充满了挑战,也是近年来一个极具活力的研究和开发领域。
  计算机取证作为发现和阻止利用计算机进行犯罪的有效手段之一,近年来获得了高度重视。同时,多项研究和实践证明计算机取证是至今为数不多的发现和阻止对信息进行攻击和破坏的有效方法,获取的证据也具备了法律效力。然而,计算机取证所涉及的信息采集和分析具有较高的技术难度,同时也受到所涉及的计算机系统内部的实现和应用以及给用户提供的工具和服务的影响。因此,深入分析和了解计算机系统的内部体系结构,掌握取证的原理和常用方法以及编写和使用具体取证工具的方法对实现计算机取证起关键性作用。另一方面,由于目前得到广泛应用的计算机操作系统为Windows、UNIX和Linux,深入研究和分析这些操作系统的内核对掌握计算机取证的原理和方法有事半功倍的效果。
  本书从计算机操作系统入手,通过对文件系统和进程管理进行分析,着重阐述了系统内部对数据和信息进行处理的本质、数据在系统中持久存在的可能性以及如何利用以上特点对系统中的数据进行恢复以获取数字证据。作者在理论分析的基础上,结合多年积累的实践经验,提供了大量的计算机取证实例,实为理论与实际相结合的典范。本书面向希望系统学习计算机取证的基础理论和方法的人士,也适合对计算机取证的基本概念已经有了初步了解,但希望在此领域更加深入地开展具体工作的人士,如编写计算机取证程序和工具、从事具体的数据分析和取证以及实际应用所获取的数字证据。因此,本书是一部深入浅出、信息量丰富的技术实用书籍,适合广大在企事业单位中从事信息安全方面工作的技术和管理人员进行阅读和系统学习。
  本书由北京工业大学教授、博士生导师、软件学院常务副院长、北京市特聘教授何泾沙博士负责翻译和审校。李国瑞、付颖芳、吴旭和徐菲参与了部分章节的翻译和校对工作,全书最终由何泾沙进行统稿和审校。由于译者的水平有限,加上时间上的限制,本书的翻译难免存在不妥之处,敬请广大读者批评指正,译者在此深表谢意。

  何泾沙
  2007年5月于北京

图书目录

译者序
前言
第一部分基 本 概 念
第1章计算机取证宗旨3
1.1引言3
1.2突显异常活动4
1.3易失性顺序 5
1.4层与假象7
1.5信息的可信度8
1.6被删除信息的固化10
1.7数字考古学与地质学11
第2章时间机器15
2.1引言15
2.2故障的第一个特征15
2.3MAC时间介绍16
2.4MAC时间的局限性18
2.5Argus:情况变得更为复杂19
2.6淘金:在隐蔽的地方寻找时间信息23
2.7DNS和时间25
2.8日志文件系统和MAC时间28
2.9时间的缺陷31
2.10结论32
第二部分探讨系统抽象
第3章文件系统基础35
3.1引言35
3.2文件系统的字母表35
3.3UNIX文件组织结构36
3.4UNIX文件名39
3.5UNIX路径名40
3.6UNIX文件类型41
3.6.1普通文件41
3.6.2目录41
3.6.3符号链接42
3.6.4IPC(进程间通信)端点42
3.6.5设备文件42
3.7首次揭密——文件系统内部情况43
3.8UNIX文件系统布局49
3.9揭开秘密——深入探索文件系统49
3.10模糊区——隐藏在文件系统接口之下的威胁51
3.11结论52
第4章文件系统分析53
4.1引言53
4.2初次接触53
4.3准备分析被入侵的文件系统54
4.4捕获被入侵的文件系统信息55
4.5通过网络发送磁盘镜像56
4.6在分析的机器上挂载磁盘镜像59
4.7现存文件的MAC时间信息61
4.8现存文件的详细分析63
4.9掩盖现存文件分析65
4.10插曲:当一个文件被删除时,将会发生什么 66
4.10.1父目录项67
4.10.2父目录属性68
4.10.3索引节点块68
4.10.4数据块68
4.11被删除文件的MAC时间信息69
4.12被删除文件的详细分析69
4.13利用索引节点号发现异常文件71
4.14追踪一个被删除文件的原始位置72
4.15通过被删除文件的索引节点号来
追踪被删除的文件73
4.16回到入侵的另外一个分支74
4.17丧失无辜74
4.18结论76
第5章系统与破坏77
5.1引言77
5.2标准计算机系统结构78
5.3UNIX系统从启动到关闭的生命周期79
5.4案例研究:系统启动的复杂性80
5.5内核配置机制81
5.6使用内核安全等级来保护计算机取证信息83
5.7典型的进程和系统状态工具84
5.8进程和系统状态工具是如何工作的87
5.9进程和系统状态工具的局限性87
5.10用rootkit软件进行破坏89
5.11命令级破坏89
5.12命令级的隐蔽和检测90
5.13库级破坏93
5.14内核级破坏94
5.15内核rootkit的安装94
5.16内核rootkit的操作95

5.17内核rootkit的检测与隐藏97
5.18结论101
第6章恶意攻击软件分析基础103
6.1引言103
6.2动态程序分析的危险104
6.3硬件虚拟机的程序限制104
6.4软件虚拟机的程序限制105
6.5软件虚拟机限制的危险性106
6.6Jails和chroot()的程序限制107
6.7系统调用监控程序的动态分析109
6.8系统调用审查程序的限制111
6.9系统调用哄骗程序的限制114
6.10系统调用限制的危险116
6.11库调用监控的动态分析117
6.12库调用程序的限制117
6.13库调用限制的危险120
6.14机器指令级的动态分析120
6.15静态分析与逆向工程120
6.16小程序存在许多问题124
6.17恶意攻击软件分析对策124
6.18结论125
第三部分超 越 抽 象
第7章被删除文件信息的持久性129
7.1引言129
7.2被删除信息持久性举例130
7.3测量被删除文件内容的持久性131
7.4测量被删除文件MAC时间的持久性132
7.5被删除文件MAC时间的强力持久性133
7.6被删除文件MAC时间信息的长期持久性136
7.7用户活动对被删除文件的MAC时间信息的影响138
7.8被删除文件信息的可信度139
7.9为什么被删除文件信息能够保持不变140
7.10结论142
第8章超越进程145
8.1引言145
8.2虚拟内存的基础知识146
8.3内存页的基础知识147
8.4文件和内存页148
8.5匿名内存页149
8.6捕获内存149
8.7savecore命令150
8.7.1内存设备文件:/dev/mem和/dev/kmem151
8.7.2交换分区152
8.7.3其他存储单元153
8.8静态分析:从文件中识别内存154
8.9在无密钥的情况下恢复加密文件的内容155
8.9.1创建一个加密文件155
8.9.2从主存中恢复加密文件155
8.10文件系统块VS.内存分页技术156
8.11识别内存中的文件158
8.12动态分析:内存数据的持久性159
8.13内存中文件的持久性161
8.14非文件或匿名数据的持久性163
8.15交换分区的持久性164
8.16引导进程内存的持久性164
8.17内存数据的可信度和坚韧性165
8.18结论167
附录ACoroner’s工具包及其相关
软件169
附录B数据收集和易失性顺序175
参考文献181

教学资源推荐
作者: 曾凡平 编著
作者: 寇晓蕤 蔡延荣 张连成 编著
作者: 何泾沙 主编
作者: 刘琰,王清贤,刘龙,陈熹
参考读物推荐
作者: (美)匿名 等
作者: [美] 斯科特·罗伯茨 (Scott J.Roberts) 利百加·布朗( Rebekah Brown) 著
作者: 刘焱 编著