首页>参考读物>计算机科学与技术>计算机网络

Rootkit和Bootkit:现代恶意软件逆向分析和下一代威胁
作者 : [美]亚历克斯·马特罗索夫(Alex Matrosov) [美]尤金·罗季奥诺夫(Eugene Rodionov)[美]谢尔盖·布拉图斯(Sergey Bratus)著
译者 : 安和 译
出版日期 : 2022-01-14
ISBN : 978-7-111-69939-2
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 340
开本 : 16
原书名 : Rootkits and Bootkits: Reversing Modern Malware and Next Generation Threats
原出版社: No Starch Press
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

一本囊括灵活的技巧、操作系统架构观察以及攻击者和防御者创新所使用的设计模式的书,基于三位出色安全专家的大量案例研究和专业研究,主要内容包括:Windows如何启动,在哪里找到漏洞;引导过程安全机制(如安全引导)的详细信息,包括虚拟安全模式(VSM)和设备保护的概述;如何通过逆向工程和取证技术分析真正的恶意软件;如何使用仿真和Bochs和IDA Pro等工具执行静态和动态分析;如何更好地了解BIOS和UEFI固件威胁的交付阶段,以创建检测功能;如何使用虚拟化工具,如VMware Workstation;深入分析逆向工程中的Bootkit和Intel Chipsec。

图书特色

探索恶意软件分析、取证的前沿技术,聚焦恶意软件逆向工程
阐述漏洞成因及利用方式,以及如何在现代计算机中实现信任

图书前言

在发表了一系列关于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插件的源代码。

上架指导

计算机\安全

封底文字

让我们追随那些发现高级恶意软件的专业人士的脚步。
—— Rodrigo Rubira Branco

本书将教你了解和对抗深藏在机器引导过程或UEFI固件中的复杂而高级的威胁。借助来自三位安全专家的大量案例研究和专业研究,你将了解恶意软件的开发过程,从TDL3这样的Rootkit到现在的UEFI植入,并考察它们如何感染系统,如何通过重启持续存在并规避安全软件的检查。当你检查和剖析真正的恶意软件时,你会学到:
如何启动Windows系统(包括32位、64位和UEFI模式),以及在哪里找到漏洞。
详细的启动过程的安全机制(如Secure Boot),包括VSM (Virtual Secure Mode)和Device Guard概述。
用于分析真实恶意软件(包括Rovnix/Carberp、Gapz、TDL4等Bootkit软件,以及臭名昭著的TDL3和Festi等Rootkit软件)的逆向工程和取证技术。
如何使用仿真和Bochs、IDA Pro等工具执行静态和动态分析。
如何更好地理解针对BIOS和UEFI固件的威胁交付阶段,以便创建检测功能。
如何使用虚拟化工具(例如VMware Workstation)对Bootkit进行逆向工程,以及如何使用Intel Chipsec工具深入进行取证分析。
网络犯罪集团和恶意行为者将继续编写更加持久和隐蔽的攻击程序,攻防之战远没有结束。通过本书,读者可以探索恶意软件分析的前沿技术。

图书序言

这是一个不可否认的事实—恶意软件的使用对计算机安全的威胁越来越大。我们看到到处都是令人担忧的统计数据,这些数据显示出恶意软件的经济影响、复杂性,以及恶意样本绝对数量的增加。无论是业界还是学术界,都有比以往更多的安全研究人员在研究恶意软件,并在很多场合发表研究成果,从博客、行业会议到学术研究和相关书籍。它们从各种角度如逆向工程、最佳实践、方法论和最佳工具集等广泛研究恶意软件。
因此,很多关于恶意软件分析和自动化工具的讨论已经开始,而且每天都在增加。所以你可能想知道:为什么还有一本关于这个主题的书呢?这本书带来了哪些新的内容?
首先,虽然这本书讨论先进的(我指的是有创新性的)恶意软件逆向工程,但它涵盖了所有的基础知识,比如解释了为什么恶意软件中的那段代码从一开始就可能出现。这本书解释了受影响的不同组件的内部工作原理—从平台的启动,到通过操作系统加载到不同的内核组件,再到应用层操作(这些操作向下流回内核)。
我发现自己不止一次地解释,基础覆盖与基本覆盖不同—尽管它确实需要向下扩展到基本层面,即计算的基本构建块。这样看来,这本书不仅仅是关于恶意软件的,它讨论了计算机是如何工作的,现代软件栈是如何同时使用计算机的基本功能和用户界面的。一旦你了解了这些,你自然而然地就能理解为什么会出现漏洞,以及漏洞是如何被利用的。
有谁能比那些在许多情况下揭示了真正先进的恶意代码的作者更好地提供这一指导呢?此外,还要经过深思熟虑和艰苦努力,将这种体验与计算机的基础和更大的图景联系起来,比如如何分析和理解具有相似概念特征的不同问题,这就是这本书应该列在你阅读清单的第一位的原因。
如果所选择的内容和方法证明了这样一本书的必要性,那么下一个问题就是为什么以前没有人接受写这样一本书的挑战。这本书的诞生花费了作者几年的努力,由此可见,出版这样一本书是很困难的,不仅需要合适的技能组合(鉴于作者的技术背景,他们显然能够满足这项条件),还需要编辑的支持以及读者的热情。
这本书的重点是诠释如何在现代计算机中实现信任(或者说诠释了现代计算机为何会缺乏信任),以及如何利用不同的层和它们之间的转换缺陷来打破下一层所做的假设。这以一种独特的方式突出了实现安全性所涉及的两个主要问题:组合(多个层,每个层都依赖于另一个层的正确行为来正常运行)和假设(因为这些层必须默认假设前一个层的行为正确)。作者还分享了他们在工具和方法方面的专业知识,这些工具和方法可用于分析早期的引导组件和操作系统的深层原理。这种跨层方法本身就值得写成一本书。作为一名读者,我喜欢这种“买一送一”的方式,很少有作家会这样做。
使用逆向工程来理解破坏系统通常行为的代码是一项令人惊叹的壮举,它揭示了许多知识。能够从专业人员那里学习,了解他们的见解、方法、建议和全面的专业知识是一个难得的机会,再结合自己的学习进度,将有更多收获。你可以深入研究,使用辅助材料,加以实践,让社区、朋友甚至教授(我希望他们能看到这本书给课堂带来的价值)参与进来。这不是一本仅供阅读的书,而是一本值得研究的书。

罗德里戈·鲁比拉·布兰科
(BSDaemon)

图书目录

序言
前言
致谢
关于作者
关于技术审校
第一部分 Rootkit
第1章 Rootkit原理:TDL3案例研究2
1.1 TDL3在真实环境中的传播历史2
1.2 感染例程3
1.3 控制数据流5
1.4 隐藏的文件系统8
1.5 小结:TDL3也有“天敌”9
第2章 Festi Rootkit:先进的垃圾邮件和DDoS僵尸网络10
2.1 Festi僵尸网络的案例10
2.2 剖析Rootkit驱动程序11
2.3 Festi网络通信协议20
2.4 绕过安全和取证软件22
2.5 C&C故障的域名生成算法24
2.6 恶意的功能25
2.7 小结28
第3章 观察Rootkit感染29
3.1 拦截的方法29
3.2 恢复系统内核35
3.3 伟大的Rootkit军备竞赛:一个怀旧的笔记36
3.4 小结37
第二部分 Bootkit
第4章 Bootkit的演变40
4.1 第一个Bootkit恶意程序40
4.2 Bootkit病毒的演变42
4.3 新一代Bootkit恶意软件43
4.4 小结45
第5章 操作系统启动过程要点46
5.1 Windows引导过程的高级概述47
5.2 传统引导过程47
5.3 Windows系统的引导过程48
5.4 小结55
第6章 引导过程安全性56
6.1 ELAM模块56
6.2 微软内核模式代码签名策略59
6.3 Secure Boot技术64
6.4 Windows 10中基于虚拟化的安全65
6.5 小结66
第7章 Bootkit感染技术68
7.1 MBR感染技术68
7.2 VBR / IPL感染技术75
7.3 小结76
第8章 使用IDA Pro对Bootkit进行静态分析77
8.1 分析Bootkit MBR78
8.2 VBR业务分析技术86
8.3 高级IDA Pro的使用:编写自定义MBR加载器88
8.4 小结92
8.5 练习92
第9章 Bootkit动态分析:仿真和虚拟化94
9.1 使用Bochs进行仿真94
9.2 使用VMware Workstation进行虚拟化102
9.3 微软Hyper-V和Oracle VirtualBox106
9.4 小结107
9.5 练习107
第10章 MBR和VBR感染技术的演变:Olmasco109
10.1 Dropper109
10.2 Bootkit的功能113
10.3 Rootkit的功能115
10.4 小结119
第11章 IPL Bootkit:Rovnix和Carberp120
11.1 Rovnix的演化120
11.2 Bootkit架构121
11.3 感染系统122
11.4 感染后的引导过程和IPL124
11.5 内核模式驱动程序的功能134
11.6 隐藏的文件系统137
11.7 隐藏的通信信道139
11.8 案例研究:与Carberp的联系140
11.9 小结143
第12章 Gapz:高级VBR感染144
12.1 Gapz Dropper145
12.2 使用Gapz Bootkit感染系统152
12.3 Gapz Rootkit的功能156
12.4 隐藏存储158
12.5 小结170
第13章 MBR勒索软件的兴起171
13.1 现代勒索软件简史171
13.2 勒索软件与Bootkit功能172
13.3 勒索软件的运作方式173
13.4 分析Petya勒索软件174
13.5 分析Satana勒索软件187
13.6 小结191
第14章 UEFI与MBR/VBR 引导过程193
14.1 统一可扩展固件接口193
14.2 传统BIOS和UEFI引导过程之间的差异194
14.3 GUID分区表的细节197
14.4 UEFI固件的工作原理200
14.5 小结211
第15章 当代UEFI Bootkit212
15.1 传统BIOS威胁的概述213
15.2 所有硬件都有固件218
15.3 感染BIOS的方法221
15.4 理解Rootkit注入224
15.5 真实环境中的UEFI Rootkit229
15.6 小结238
第16章 UEFI固件漏洞239
16.1 固件易受攻击的原因239
16.2 对UEFI固件漏洞进行分类242
16.3 UEFI固件保护的历史244
16.4 Intel Boot Guard249
16.5 SMM模块中的漏洞252
16.6 S3引导脚本中的漏洞256
16.7 Intel管理引擎中的漏洞260
16.8 小结263
第三部分 防护和取证技术
第17章 UEFI Secure Boot的工作方式266
17.1 什么是Secure Boot266
17.2 UEFI Secure Boot实现细节267
17.3 攻击Secure Boot279
17.4 通过验证和测量引导保护Secure Boot282
17.5 Intel Boot Guard283
17.6 ARM可信引导板288
17.7 验证引导与固件Rootkit292
17.8 小结293
第18章 分析隐藏文件系统的方法294
18.1 隐藏文件系统概述294
18.2 从隐藏的文件系统中检索Bootkit数据295
18.3 解析隐藏的文件系统映像301
18.4 HiddenFsReader工具302
18.5 小结303
第19章 BIOS/UEFI取证:固件获取和分析方法304
19.1 取证技术的局限性304
19.2 为什么固件取证很重要305
19.3 了解固件获取306
19.4 实现固件获取的软件方法307
19.5 实现固件获取的硬件方法313
19.6 使用UEFITool分析固件映像318
19.7 使用Chipsec分析固件映像323
19.8 小结327

教学资源推荐
作者: 陈鸣 李兵 雷磊 编著
作者: (美)William Stallings Thomas Case 著
作者: [美]詹姆斯·F. 库罗斯(James F. Kurose)基思·W. 罗斯(Keith W. Ross) 著
参考读物推荐
作者: 刘钊 张跃 著
作者: (美)Bo Begole 著