内容简介 本书是目前第一本关于rootkit的详尽指南,包括rootkit的概念、它们是怎样工作的、如何构建和检测它们。 世界顶级软件安全专家、创始人Greg Hoglund和James Butler向大家详细介绍攻击者是如何进入系统并长期驻留而不会被检测到的,以及黑客是如何摧毁Windows XP和Windows 2000内核系统的,其概念可以应用于现代任何主流操作系统。通过本书,读者可以全面掌握rootkit,提升自己的安全防范能力。
rootkit是持久且无法察觉地存在于计算机之上的一组程序和代码。 历史背景 我们对rootkit产生兴趣来自于我们在计算机安全领域的本职工作,但对于该主题的探索迅速发展成为一种个人使命。这导致了Hoglund建立网站,一个致力于反向工程和rootkit开发的论坛。我们两人都深深投入到了中。Butler首先通过该网站在线联系上了Hoglund,因为Butler得到一个需要测试的强大的新rootkit ,名为FU。他向Hoglund发送了一些源代码和预编译的二进制代码,然而疏忽中却没有发送内核驱动程序的源代码。令Butler惊奇的是,Hoglund成功地将预编译的rootkit加载到自己的工作站上,并报告说FU似乎运行良好。之后我们彼此的信任才不断加深 。 我们两人都长期受到一种几乎执拗的想法的驱使,即对Windows内核进行反向工程。就像当有人说我们无法做成某事时,我们就一定要完成它。了解所谓的计算机安全产品如何工作并发现它们的原理会令人感到非常满足。这必然导致更好的保护机制。 某种产品声称提供了某种级别的保护并不一定意味着它实际能够如此。在扮演攻击者的角色时,我们总是占据着优势。作为攻击者,我们只需想到防御者没有考虑的一件事即可。而另一方面,防御者必须考虑到攻击者能够完成的所有可能的事。这个数量对比有利于攻击者。 几年前,我们联合开设了培训课程“rootkit技术的攻击问题”。该课程最初只准备了一天的材料,现在已发展为数百页的笔记和示例代码。该课程的素材最终成为本书的基础。现在我们每年在Black Hat安全大会上以及私下场合多次提供rootkit培训课程。 在培训一段时间后,我们决定加强联系,现在共同就职于HBGary公司。在这里,我们每天都要处理非常复杂的rootkit问题。本书中,我们基于自身经验涵盖了当今Windows用户所面临的并且很可能在将来会继续增长的威胁。 读者对象 本书面向对计算机安全感兴趣并希望对安全威胁获得更真实感受的读者。关于入侵者如何获取计算机系统访问权的问题已有大量著作面世,但关于入侵者进行了这种初始访问之后会发生什么情况的问题还鲜有涉及。如书名所示,本书介绍了入侵者能够执行哪些工作来掩护其在被攻陷机器上的存在。 我们认为,包括微软公司在内的大多数软件供应商都没有严肃地对待rootkit。这是我们出版本书的目的。本书中的素材对于多年从事于rootkit或操作系统领域的一些人员来说并不是爆炸性的—— 但对于大部分人来说,本书应该能够表明rootkit是一种严重的威胁。它应该证明了扫描器或桌面防火墙从未提供足够的保护;还能够证明rootkit可以闯入您的计算机并在其中驻留多年,而您对此却一无所知。 为了更好地传播rootkit知识,我们从攻击者角度撰写了本书的大部分内容,但以防御者的姿态结束本书内容。开始了解攻击者的目标和技术之时即是了解自己系统的脆弱点以及如何消除其缺陷之时。阅读本书有助于您改进自身系统的安全或者在购买安全软件时做出明智的决策。 预备知识 由于所有代码示例是使用C语言编写的,因此掌握基本的C语言概念(尤其是指针概念)有助于获得更深入的理解。若不具备编程知识,仍应该能够继续学习并理解所有威胁,但无需理解特定的实现细节。本书的某些内容依赖于Windows设备驱动程序体系结构的原理,但无需设备驱动程序的编写经验。我们将带领您编写第一个Windows设备驱动程序,由此继续学习。 本书适用范围 本书介绍Windows系统的rootkit,但大多数概念也适用于其他操作系统,如LINUX。重点是内核rootkit,因为它们最难以检测。Windows的许多公开rootkit都是用户空间的 ,由于它们不必理解在文档中未说明的内核是如何工作的,因此最易于实现。 本书并不针对现实中的特定rootkit,而是描述了所有rootkit使用的一般方法。每一章引入一种基本技术,解释其目的,并通过代码示例演示如何实现它。基于这些信息,应该能够以无尽的方式对示例进行扩展,以便执行各种任务。在内核中工作时,您实际上只受自己的想像力所囿。 本书中的大部分代码可以从网站下载。在整本书中,对每个示例都给出了具体的URL。其他rootkit作者也在公布了有助于跟踪最新研究发现的成果。