4.3 新一代Bootkit恶意软件
与计算机安全的其他领域一样,Bootkit的攻击样例(PoC)和真正的恶意软件样本往往是一起进化的。在这种情况下,PoC是由安全研究人员开发的恶意软件,目的是证明威胁是真实的(与网络罪犯开发的恶意软件相反,罪犯的目的是邪恶的)。
第一个新一代Bootkit恶意软件通常被认为是eEye的PoC BootRoot,它在2005年于拉斯维加斯举办的Black Hat会议上提出。由Derek Soeder和Ryan Permeh编写的BootRoot代码是网络驱动程序接口规范(NDIS)后门。它首次证明了原始的Bootkit可以用作攻击现代操作系统的模型。
虽然eEye的展示是朝着Bootkit恶意软件开发迈出的重要一步,但人们花了两年时间才在实际运用中发现了具有Bootkit功能的新恶意样本。2007年,Mebroot被发现,作为当时最复杂的威胁之一,Mebroot对反病毒公司构成了严峻的挑战,因为它使用的新的隐藏技术可以在系统重启后继续存在。
在同一年的Black Hat会议上,发现Mebroot的同时发布了两个重要的PoC Bootkit—vBootkit和Stoned。vBootkit代码表明,通过修改引导扇区来攻击微软的Windows Vista内核是可能的(vBootkit的作者以开源项目的形式发布了它的代码)。同样,Stoned也可以攻击Vista内核,它是以几十年前非常成功的Stoned BSI命名的。
这两个PoC的发布有助于向安全行业展示需要寻找什么样的Bootkit恶意软件。如果研究人员不愿发表研究成果,那么恶意软件的作者就可以成功地阻止系统检测新的Bootkit恶意软件。另外,也经常发生恶意软件作者利用了安全研究人员提供的PoC方法,在PoC演示之后不久就出现了在真实环境中加以利用的样本。图4-2和表4-1说明了这种协同演化。
图4-2 Bootkit演变时间线
表4-1 Bootkit攻击样例(PoC)与真实的Bootkit攻击演变过程
①请注意,这里我们将Bootkit称为“第一个”时,指的是我们所知道的第一个。
②Nitin Kumar和Vitin Kumar,“VBootkit 2.0—Attacking Windows 7 via Boot Sectors,”HiTB 2009, http://conference.hitb.org/hitbsecconf2009dubai/materials/D2T2%20-%20Vipin%20and%20Nitin%20Kumar%20-%20vbootkit%202.0.pdf.
③Wolfgang Ettlinger和Stefan Viehböck,“Evil Core Bootkit,”NinjaCon 2011, http://downloads.ninjacon.net/downloads/proceedings/2011/Ettlinger_Viehboeck-Evil_Core_Bootkit.pdf.
④Nicolás A. Economou和Andrés Lopez Luksenberg,“DeepBoot,”Ekoparty 2011, http://www.ekoparty.org//archive/2011/ekoparty2011_Economou-Luksenberg_Deep_Boot.pdf.
⑤Diego Juarez和Nicolás A. Economou,“VGA Persistent Rootkit,”Ekoparty 2012, https://www.secureauth.com/labs/publications/vga-persistent-rootkit/.
⑥Eugene Rodionov和Aleksandr Matrosov,“Mind the Gapz: The Most Complex Bootkit Ever Analyzed?”spring 2013, http://www.welivesecurity.com/wp-content/uploads/2013/05/gapz-bootkit-whitepaper.pdf.
⑦Sébastien Kaczmarek,“UEFI and Dreamboot,”HiTB 2013, https://conference.hitb.org/hitbsecconf2013ams/materials/D2T1%20-%20Sebastien%20Kaczmarek%20-%20Dreamboot%20UEFI%20Bootkit.pdf.
⑧Zihang Xiao, Qing Dong, Hao Zhang, and Xuxian Jiang,“Oldboot: The First Bootkit on Android,”http://blogs.360.cn/360mobile/2014/01/17/oldboot-the-first-bootkit-on-android/.
在后面的章节中,我们将介绍这些Bootkit所使用的技术。