在眾多的計(jì)算機(jī)安全威脅之中,冷起動(dòng)內(nèi)存映像攻擊(Cold Boot Attack)應(yīng)該是不被大家所了解的。有些讀者在看到這個(gè)標(biāo)題時(shí),可能不太相信還可以在冷起動(dòng)過程中,從計(jì)算機(jī)內(nèi)存中得到相關(guān)的機(jī)密數(shù)據(jù),例如某些密碼等。
因?yàn)樵诖蠹业挠∠笾校胀ㄓ?jì)算機(jī)使用的內(nèi)存,由于其掉電易失的工作機(jī)制,在關(guān)閉計(jì)算機(jī)電源后,內(nèi)存中的信息就會(huì)被消除。那怎么還能從中得到機(jī)密信息呢?
可是,一些安全專家發(fā)現(xiàn)當(dāng)計(jì)算機(jī)電源關(guān)閉后,內(nèi)存(RAM)中的信息不會(huì)立即自動(dòng)擦除,而是還能夠保持許多秒。這樣就可以利用內(nèi)存的這個(gè)“新漏洞”,在計(jì)算機(jī)運(yùn)行、休眠或掛起時(shí),直接關(guān)機(jī),然后通過冷啟動(dòng)來獲取內(nèi)存中的信息映像,從而得到在內(nèi)存運(yùn)行時(shí)保存在其中的密碼信息。
如此一來,在冷啟動(dòng)內(nèi)存映像攻擊的威脅下,內(nèi)存中的信息再也不會(huì)像以前所說的那樣安全,而是變得非常危險(xiǎn)。如果攻擊者可以直接接觸計(jì)算機(jī),那么,使用這種攻擊方法,就可以破解所有的及文件加密技術(shù)。
這是因?yàn)樵诋?dāng)前的幾大上,例如windows、甚至都將其加密鍵保存至RAM中。如果一個(gè)攻擊者掌握了這種冷啟動(dòng)攻擊,當(dāng)你離開計(jì)算機(jī)屏幕時(shí),只是鎖定了屏幕,或者只是暫將筆記本置于掛起狀態(tài),那么,只要攻擊者可以單獨(dú)在這些計(jì)算機(jī)面前幾分鐘,他就有足夠多的時(shí)間按下計(jì)算機(jī)的電源重新啟動(dòng)它,然后收集RAM中的內(nèi)容,最終分析并得到其中的加密鍵。
一、冷啟動(dòng)內(nèi)存映像攻擊的具體方法
當(dāng)攻擊者接觸計(jì)算機(jī)之后,他們需要使用下列方法來實(shí)施一次冷啟動(dòng)內(nèi)存映像攻擊:
1、首先要做的就是將內(nèi)存中的信息做一個(gè)完全的映像。
這個(gè)工作,有點(diǎn)像用ghost將操作系統(tǒng)分區(qū)做映像一樣,但是由于內(nèi)存本身工作機(jī)制的原因,在為內(nèi)存中信息做完整映像拷貝時(shí),雖然更多的細(xì)心操作。例如,如果你以系統(tǒng)安裝盤的方式啟動(dòng)到一個(gè)安全的救援模式,這樣雖然也可以獲得內(nèi)存中的一些信息,但是這種安全模式仍然會(huì)清除內(nèi)存中原來的許多信息,也就不可能得到真正重要的信息了。
要將內(nèi)存中的信息做一個(gè)完全的映像,可以通過如下兩種方法來完成:
(1)使用USB磁盤驅(qū)動(dòng)器或U盤來啟動(dòng),然后自動(dòng)執(zhí)行安裝在USB啟動(dòng)器上的內(nèi)存映像拷貝工具,就可以將內(nèi)存中的信息完全轉(zhuǎn)儲(chǔ)至USB磁盤中。
然后,攻擊者可以將此USB連接至其它的計(jì)算機(jī),再用相關(guān)的工具將USB磁盤上的RAM文件轉(zhuǎn)儲(chǔ)至一個(gè)文件中。
(2)第二種方法就是通過PXE網(wǎng)絡(luò)遠(yuǎn)程啟動(dòng)方式來執(zhí)行內(nèi)存映像拷貝工具。由于內(nèi)存映像拷貝工具體積非常小,通過PXE網(wǎng)絡(luò)遠(yuǎn)程執(zhí)行完全能夠在幾十秒內(nèi)將內(nèi)存中的信息,完全轉(zhuǎn)儲(chǔ)至PXE服務(wù)器中。
但是,這種方式雖然不需要攻擊者直接接觸計(jì)算機(jī),但是,所攻擊的計(jì)算機(jī)網(wǎng)絡(luò)必需支持PXE啟動(dòng),以及已經(jīng)配置好PXE服務(wù)器。從這兩個(gè)條件來看,通過這種方式進(jìn)行內(nèi)存信息遠(yuǎn)程轉(zhuǎn)儲(chǔ),比第一種方式還要難以實(shí)現(xiàn)。除非所攻擊的網(wǎng)絡(luò)已經(jīng)具備這種條件。
2、當(dāng)內(nèi)存中的信息已經(jīng)完全轉(zhuǎn)儲(chǔ)至一個(gè)映像文件中,接下來要做的就簡單許多,只需要使用內(nèi)存映像信息搜索工具,就可以從已經(jīng)有的內(nèi)存映像文件中找到想要的信息。當(dāng)前的內(nèi)存映像信息搜索工具還不是很多,大多也只能做一些簡單的搜索工具,主要都是針對密碼等信息。例如一個(gè)名為 bios_memimage的工具包中就包含兩個(gè)這樣的工具,aeskeyfind工具用來搜索 AES密碼, rsakeyfind工具用來搜索RSA密碼。
二、冷啟動(dòng)內(nèi)存映像攻擊工具下載和創(chuàng)建
要完成內(nèi)存映像文件的分析任務(wù)需要特定的工具,在此之前生成內(nèi)存信息的映像拷貝同樣需要專用的工具。
現(xiàn)在內(nèi)存信息映像工具很少,而且只能在相關(guān)發(fā)行版本下運(yùn)行。如果你想試試本文所描述的攻擊方法是否可以正常完成,那么,你就需要先去citp.princeton.edu/memory
/code下載最新版的bios_memimage原碼壓縮包。但是,如果你是通過EFI方式引導(dǎo)系統(tǒng)來獲取內(nèi)存映像的,那么就需要下載efi_netboot源碼壓縮包。然后,你就可以解壓縮并應(yīng)用這些源碼壓縮包。在本文中,雪源梅香使用的是 bios_memimage源碼包。
在使用它們之前,可以查看bios_memimage源碼包中的相關(guān)文檔,來了解如何建立和應(yīng)用這些源碼。
要特別注意的是,這個(gè)工具支持所有32位或64位硬件環(huán)境。但是,32位版本技術(shù)的工具不能用于64位的環(huán)境,因?yàn)樗荒懿樵兯?4位環(huán)境的內(nèi)存空間。因此,你需要根據(jù)你的硬件環(huán)境,下載正確的版本。
在創(chuàng)建內(nèi)存映像工具時(shí),例如在32位硬件環(huán)境下,可以先解壓縮下載回來的bios_memimage源碼壓縮包,打開一個(gè)字符終端,進(jìn)入bios_memimage目錄,然后輸入 make命令進(jìn)行編譯,編譯完成后,通過make install安裝即可 。如果要在64-bit環(huán)境下使用它,進(jìn)入bios_memimage目錄后,用make -f Makefile.64命令進(jìn)行編譯。
如果在編譯的過程中,出現(xiàn)無法定義的 __stack_chk_fail錯(cuò)誤參考信息,這是由于 .GCC's新的堆棧保護(hù)所致。可以通過編輯bios_memimage目錄下的pxe/Makefile文件,將下面所示這行:
CFLAGS= -ffreestanding - -Wall -I../include -march=i386
修改為:
CFLAGS= -ffreestanding -Os -Wall -I../include -march=i386 -fno-stack-protector
就可以完成編譯。
2本文導(dǎo)航>>
- 1.
- 2.冷啟動(dòng)內(nèi)存映像攻擊工具下載和創(chuàng)建
- 3.
- 4.
- 5.
- 6.