前言
在发表了一系列关于Rootkit和Bootkit的文章和博客文章后,我们意识到这个主题并没有得到应有的关注,因此产生了写这本书的想法。我们觉得需要有一个宏观的视角,想要一本能够涵盖所有这些内容的书—一本集成了高明的技巧、操作系统架构视图,由攻击者和防御者使用的创新设计模式的书。我们寻找过这样的书,但并没有找到,于是我们就开始自己写。
这花费了我们四年半的时间,比计划的时间要长。如果你是抢先版的支持者之一,并且仍在阅读这本书,我们会非常感激你的持续关注!
在此期间,我们观察到了攻击和防御的共同演进。特别值得注意的是,我们看到了微软Windows操作系统的防御能力演进,使得Rootkit和Bootkit设计的几个主要分支陷入了死胡同。你可以在本书中找到更多与此相关的内容。
我们还看到了以BIOS和芯片组固件为攻击目标的新型恶意软件的出现,这已经超出了当前Windows安全防护软件的能力范围。我们将解释这种共同演进是如何发展起来的,以及我们期望下一步它将把我们带到哪里。
本书的另一个主题是针对操作系统启动引导过程的早期阶段的逆向工程技术的开发。一般来说,在PC启动引导过程的长链条中,一段代码运行的时间越早,它就越不容易被观察到。长期以来,这种可观察性的缺乏一直与安全性在概念上有所混淆。然而,当我们深入探究这些突破底层操作系统技术(如Secure Boot)的Bootkit和BIOS注入威胁的取证方法时,我们发现在这里通过隐匿实现的安全性并不比计算机科学的其他领域更好。短时间后(在互联网时间范围内越来越短),相对于防御者而言,通过隐匿实现安全的方法对攻击者更有利。这一观点在其他有关这一主题的书籍中还没有得到充分的阐述,所以我们试图填补这一空白。
为什么要读这本书
我们为众多信息安全研究人员撰写文章,他们对高级可持续恶意软件威胁如何绕过操作系统级别的安全机制很感兴趣。我们主要关注如何发现并逆向、有效分析这些高级威胁。书中的每一部分都反映了高级威胁发展演进的不同新阶段,包括从它们一开始仅作为概念证明出现的阶段,到威胁发动者展开投递传播的阶段,最后到它们在更隐蔽且有针对性攻击中被利用的阶段。
在写这本书的时候,我们希望本书不仅仅面向计算机恶意软件分析师,而是能使更广泛的读者获益。更进一步,我们希望嵌入式系统开发人员和云安全专家同样能够发现这本书的作用,因为Rootkit及其所注入的威胁对这些生态系统所产生的影响同样非常突出。
这本书有什么干货
在第一部分中,我们将探索Rootkit,还将介绍Windows内核的内部机理—内核向来是Rootkit运行的场所。在第二部分中,我们将重点转向操作系统的引导过程和在Windows加强其内核模式后开发的Bootkit。我们将从攻击者的角度剖析系统引导过程的各个阶段,特别关注新的UEFI固件方案及其漏洞。最后,在第三部分中,我们将重点讨论针对BIOS和固件的经典操作系统Rootkit攻击和现代Bootkit攻击的取证工作。
第一部分 Rootkit
此部分主要介绍全盛时期的经典操作系统级Rootkit。这些历史上的Rootkit案例提供了有价值的视角,让我们了解攻击者如何理解操作系统的运行机制,并找到使用操作系统自身结构,可靠地将攻击负载注入系统内核的方法。
第1章 通过讲述当时一个最有趣的Rootkit的故事,并基于我们自己所遇到的各个Rootkit变种以及对这些威胁的分析,探索Rootkit是如何工作的。
第2章 分析备受关注的Festi Rootkit,它使用了当时最先进的隐匿技术来发送垃圾邮件和发起DDoS攻击。这些技术包含自带的自定义内核级TCP/IP协议栈。
第3章 带我们深入操作系统内核,重点介绍攻击者用来争夺内核底层控制权的技巧,例如拦截系统事件和调用。
第二部分 Bootkit
此部分将重点转移到Bootkit的演进、刺激演进的条件,以及针对这些威胁的逆向工程技术。我们将看到Bootkit是如何开发的,以至于可以将其自身植入BIOS并利用UEFI固件漏洞进行攻击。
第4章 深入探讨共同演化的作用,这使Bootkit得以存在并指导了它们的开发。我们来看一看第一批被发现的Bootkit,比如臭名昭著的Elk Cloner。
第5章 介绍Windows系统引导过程的内部原理,以及它们是如何随时间变化的。我们将深入研究主引导记录、分区表、配置数据和bootmgr模块等细节。
第6章 带你了解Windows引导进程防护技术,如早期启动反恶意软件(ELAM)模块、内核模式代码签名策略及其漏洞,以及较新的基于虚拟化的安全机制。
第7章 剖析感染引导扇区的方法,并介绍这些方法如何随着时间的推移而演变。我们将使用一些熟悉的Bootkit作为示例,比如TDL4、Gapz和Rovnix。
第8章 介绍静态分析Bootkit感染的方法和工具。我们将以TDL4 Bootkit为例介绍分析过程,并为读者自己分析提供相关材料,包括要下载的磁盘映像。
第9章 将重点转移到动态分析方法上,包括使用Bochs仿真器和VMware的内置GDB调试器,还会介绍动态分析MBR和VBR Bootkit的步骤。
第10章 回顾隐匿技术的发展,这些技术用于将Bootkit带到引导过程的更低层级。我们将以Olmasco为例,查看其感染和驻留技术、恶意软件功能以及有效负载注入。
第11章 介绍两个最复杂的Bootkit—Rovnix和Carberp,它们的攻击目标是电子银行。它们是最先以IPL为目标并避开现代防御软件的Bootkit。我们将使用VMware和IDA Pro来对它们进行分析。
第12章 揭开Bootkit隐匿技术演进的巅峰—Gapz Rootkit的神秘面纱,它使用了当时最先进的技术来实现入侵VBR的目标。
第13章 介绍Bootkit如何在勒索软件威胁中呈现回升的趋势。
第14章 探讨UEFI BIOS设计的引导过程—发现最新恶意软件演进的关键信息。
第15章 涵盖我们对各种BIOS注入的研究,包括概念证明和在真实环境中的利用。我们将讨论感染和驻留UEFI BIOS的方法,并查看在真实环境中利用的UEFI恶意软件,如Computrace。
第16章 深入研究能够引发BIOS注入的不同类型的现代BIOS漏洞,并深入探讨UEFI漏洞原理和利用方法,包括案例研究。
第三部分 防护和取证技术
本书的最后一部分将讨论Bootkit、Rootkit和其他BIOS威胁的取证技术。
第17章 深入探讨Secure Boot技术的工作原理及其演进、漏洞和有效性等内容。
第18章 概述恶意软件使用的隐藏文件系统以及对应的检测方法。我们将解析一个隐藏的文件系统映像,并引入一个我们开发的工具:HiddenFsReader。
第19章 讨论更高级的新威胁的检测方法。我们考虑使用多种开源工具(如UEFITool和Chipsec)的硬件、固件和软件方法。
如何阅读本书
书中讨论的所有威胁样本以及其他配套材料都可以在https://nostarch.com/rootkits/找到。这个站点还给出了Bootkit分析所需要使用的工具,例如我们在最初研究中所使用的IDA Pro插件的源代码。