亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向Windows操作系統(tǒng)的內(nèi)存取證技術(shù)研究

        2014-09-29 10:32:38董步云
        計(jì)算機(jī)工程 2014年8期
        關(guān)鍵詞:可用性進(jìn)程內(nèi)存

        錢 勤,董步云,唐 哲,伏 曉,茅 兵

        (1.江蘇省高級(jí)人民法院技術(shù)處,南京 210093;2.南京大學(xué)a.軟件學(xué)院;b.計(jì)算機(jī)軟件新技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,南京 210093)

        1 概述

        隨著計(jì)算機(jī)的普及以及網(wǎng)絡(luò)的廣泛應(yīng)用,越來越多的計(jì)算機(jī)犯罪開始出現(xiàn)并且嚴(yán)重影響到社會(huì)安全。據(jù)統(tǒng)計(jì),在2009年全球有超過336000次報(bào)道是關(guān)于各種各樣的計(jì)算機(jī)犯罪,比如網(wǎng)上詐騙、身份盜用和經(jīng)濟(jì)間諜活動(dòng)[1]。每年由于計(jì)算機(jī)犯罪給企業(yè)帶來的損失多達(dá)數(shù)千萬美元[2]。因此,計(jì)算機(jī)取證變得尤為重要,重構(gòu)入侵計(jì)算機(jī)的行為和找到相關(guān)證據(jù)不僅可以懲戒犯罪分子,還能幫助企業(yè)和國家挽回很多經(jīng)濟(jì)損失。

        傳統(tǒng)的計(jì)算機(jī)取證證據(jù)獲取和分析方法大多數(shù)針對系統(tǒng)的持久化數(shù)據(jù),比如計(jì)算機(jī)磁盤、硬盤上的數(shù)據(jù),然而對于存儲(chǔ)在計(jì)算機(jī)RAM中的信息,以往的方法經(jīng)常忽略或回避。隨著計(jì)算機(jī)硬盤的容量不斷增長,加密技術(shù)的發(fā)展和廣泛應(yīng)用,想要及時(shí)地分析獲取到的存儲(chǔ)介質(zhì)鏡像需要花費(fèi)大量的精力。而且由于惡意程序的不斷發(fā)展,獲取的存儲(chǔ)介質(zhì)鏡像中往往會(huì)有惡意程序,這樣通過分析帶有惡意程序的存儲(chǔ)介質(zhì)鏡像得到的結(jié)果也是不正確的。因此在2005年的DFRWS取證挑戰(zhàn)中,開始出現(xiàn)了對于系統(tǒng)臨時(shí)的與狀態(tài)相關(guān)的信息恢復(fù)研究[3]。

        從2005年至今,計(jì)算機(jī)取證領(lǐng)域發(fā)展迅速,已經(jīng)出現(xiàn)了各種各樣的內(nèi)存獲取和分析的方法,然而許多方法都是針對特定版本的操作系統(tǒng),并且還要在特定的環(huán)境中才能工作,這給取證工作中選取方法帶來不便。另外,這些方法的準(zhǔn)確性和可靠性還無法證實(shí),在計(jì)算機(jī)取證領(lǐng)域需要對目前所有主要的內(nèi)存獲取和分析方法進(jìn)行總結(jié)和分析。

        本文主要對目前主流的內(nèi)存獲取、分析的方法以及內(nèi)存取證過程進(jìn)行全面的分析和比較。對那些基于Windows操作系統(tǒng)的內(nèi)存獲取和分析的方法進(jìn)行研究。

        2 內(nèi)存取證技術(shù)背景

        在Windows操作系統(tǒng)中,每個(gè)進(jìn)程都有自己的私有虛擬地址空間。在一個(gè)32位的平臺(tái)上,虛擬地址空間最多可以達(dá)到4 GB。一般用戶進(jìn)程默認(rèn)有2 GB的虛擬地址空間,另外一半地址空間是保留給系統(tǒng)使用的。Windows x86的32位操作系統(tǒng)內(nèi)存地址空間分布如圖1所示。

        圖1 內(nèi)存地址空間分布

        Windows操作系統(tǒng)采用頁式內(nèi)存管理,也就是說虛擬地址空間是按頁來管理的,對應(yīng)于物理內(nèi)存也按頁來管理。在虛擬地址空間中連續(xù)的頁面對應(yīng)于在物理內(nèi)存中的頁面可以不必連續(xù)。在每個(gè)虛擬地址32位信息中,其中一部分位信息指定了一個(gè)物理頁面,其余的位信息則指定了頁內(nèi)的偏移量,即虛擬地址分成了2個(gè)部分:頁索引+頁內(nèi)偏移。32位虛擬地址中頁索引部分分成頁目錄索引(10位)和頁表索引(10位)2個(gè)部分?;谶@樣的虛擬地址構(gòu)成,每個(gè)虛擬地址空間對應(yīng)一個(gè)頁目錄,其中包含1024個(gè)頁目錄項(xiàng);每個(gè)頁目錄項(xiàng)指向一張包含1024項(xiàng)的頁表。在解析一個(gè)虛擬地址時(shí),首先根據(jù)最高10位在頁目錄中定位到一個(gè)頁目錄項(xiàng),它指向一個(gè)頁表。然后根據(jù)接下來的10位在頁表中定位到一個(gè)頁表項(xiàng),該頁表項(xiàng)指定了目標(biāo)頁面的物理地址。最后再在該物理地址的基礎(chǔ)上加上頁內(nèi)偏移,即得到最終的物理地址。具體解析過程如圖2所示[4]。

        圖2 x86的32位虛擬地址的解析過程

        3 內(nèi)存取證過程

        取證分析需要有一個(gè)規(guī)范化的過程才能使得取證所得證據(jù)能被法官所認(rèn)可,成為真正的證據(jù)。計(jì)算機(jī)取證過程通常需要遵循3個(gè)原則:獲取證據(jù)時(shí)保證完整性;鑒別收集到的數(shù)據(jù)有效性確保這些數(shù)據(jù)和原始一樣;分析數(shù)據(jù)的同時(shí)保持?jǐn)?shù)據(jù)完整性[5]。從很早開始就有很多組織開始討論和研究計(jì)算機(jī)取證及其標(biāo)準(zhǔn)和準(zhǔn)則[6],比如國家司法協(xié)會(huì)(NIJ)?,F(xiàn)有的取證過程模型亦是圍繞這3個(gè)原則,目前較為權(quán)威的取證過程模型包括美國司法部(DOJ)的取證過程模型[7]、抽象電子取證模型[8]、綜合的電子調(diào)查模型(IDIP)[9]。除了各種取證模型,各種研究犯罪的組織比如英國司法部門(ACPO)[10]、國際評(píng)估合作組織(IOCE)[11]、國際計(jì)算機(jī)調(diào)查專家(IACIS)[12]也紛紛提出基于計(jì)算機(jī)電子取證的原則和指導(dǎo)方案。

        美國司法部門在電子犯罪調(diào)查中提出了取證過程模型,包括了4個(gè)階段:收集,檢查,分析,報(bào)告。抽象電子取證模型則提出一個(gè)標(biāo)準(zhǔn)的電子取證過程包含9個(gè)組成部分:鑒別,準(zhǔn)備,制定方法策略,保護(hù),證據(jù)收集,檢查,分析,展示,歸還證據(jù)。綜合電子調(diào)查模型(IDIP)由5個(gè)部分17階段組成,它集合了早期的模型,使得模型能夠完整地描述取證過程,但由于過程十分復(fù)雜,有效過程在時(shí)間操作中無法實(shí)現(xiàn)。改善的電子調(diào)查過程模型則改正了綜合電子調(diào)查模型的一些缺點(diǎn)(EIDIP)[13],如圖3所示。

        圖3 改善的電子調(diào)查過程模型

        數(shù)字取證從出現(xiàn)到現(xiàn)在不過十多年的事,而從2005年DFRWS起內(nèi)存取證才真正開始發(fā)展起來,在2005年之后各種各樣的內(nèi)存取證技術(shù)開始不斷出現(xiàn),但目前尚無專門針對內(nèi)存取證的取證模型。內(nèi)存取證過程一般是遵循數(shù)字取證的基本模型進(jìn)行。在內(nèi)存取證過程中,內(nèi)存鏡像的收集、獲取和對獲取數(shù)據(jù)的分析是關(guān)鍵步驟,已有的研究工作也主要集中于這2個(gè)方面,對其他步驟的關(guān)注很少。因此,下文將主要針對這2類方法進(jìn)行綜述。

        4 內(nèi)存獲取方法

        內(nèi)存獲取方法常被研究者分為基于硬件和基于軟件2種。但是由于缺乏對基于硬件和基于軟件的準(zhǔn)確定義,因此最近出現(xiàn)的許多內(nèi)存獲取方法很難定義為哪種。按內(nèi)存獲取方法是否依賴操作系統(tǒng),是否使用操作系統(tǒng)提供的API進(jìn)行分類。

        4.1 不依賴操作系統(tǒng)及其API的內(nèi)存獲取方法

        首次嘗試獲取內(nèi)存鏡像用于取證工作的是使用一種特殊硬件——Tribble進(jìn)行直接內(nèi)存獲取(DMA)[14]。由于Tribble使用了 DMA 技術(shù),因此此方法不依賴于現(xiàn)有操作系統(tǒng)的結(jié)構(gòu)和功能。Tribble使用的時(shí)候需要像專用的PCI設(shè)備那樣安裝在計(jì)算機(jī)上,然后它就能把內(nèi)存中信息保存到一個(gè)外部的存儲(chǔ)設(shè)備。

        另外有2個(gè)類似的使用特殊硬件芯片進(jìn)行內(nèi)存獲取的是“Copilot”[15]和“FRED”[16]。

        在PCI芯片出現(xiàn)的同時(shí),還有另外一種硬件技術(shù)同PCI芯片類似,也能進(jìn)行內(nèi)存獲取。這種技術(shù)使用IEEE1394總線,其中一個(gè)例子是PCMCIA總線,使用 DMA 操作[17]。

        隨著虛擬化技術(shù)的發(fā)展和使用,使用虛擬機(jī)的服務(wù)器和計(jì)算機(jī)越來越多。通過虛擬機(jī)人們能模擬完整的完全隔離的可靠的系統(tǒng)環(huán)境。虛擬機(jī)的優(yōu)點(diǎn)是可以暫停,將系統(tǒng)掛起,這樣虛擬機(jī)中的操作系統(tǒng)的狀態(tài)就被凍結(jié),這一時(shí)刻的虛擬內(nèi)存就可以保存到主機(jī)硬盤上了[18]。目前使用最為廣泛的虛擬機(jī)是VMware,VMware的所有內(nèi)存信息都保存在一個(gè).vmem文件上。通過分析這個(gè)文件就能進(jìn)行取證工作。

        最近隨著硬件技術(shù)的提高,有一種冷啟動(dòng)的方法基于易失性的信息在計(jì)算機(jī)斷電后并不會(huì)立即擦除,仍然可以在一個(gè)短時(shí)間內(nèi)恢復(fù)的特點(diǎn)[19]。通過人工降溫RAM模塊,比如使用液氮,可以使這些易失性的信息保留時(shí)間延長。然后就能通過一個(gè)定制的內(nèi)核進(jìn)行冷啟動(dòng)來獲取保留的內(nèi)存信息。

        4.2 依賴操作系統(tǒng)及其API的內(nèi)存獲取方法

        在對內(nèi)存取證進(jìn)行研究的初期,最先想到的應(yīng)該就是使用某個(gè)軟件來獲得計(jì)算機(jī)的內(nèi)存。目前內(nèi)存獲取方法中最常使用的也是通過某個(gè)內(nèi)存獲取軟件來獲得內(nèi)存dump。

        著名的Data-Dumper(DD)就是一個(gè)在用戶級(jí)別通過軟件方法獲取內(nèi)存的一個(gè)工具,是Forensic Acquisition Utilities的一部分[20]。

        由于使用DD保存整個(gè)內(nèi)存既大又花費(fèi)大量時(shí)間,因此在Data-Dumper之后又產(chǎn)生了各種保存單個(gè)進(jìn)程地址空間的軟件,比如 PMDump[21],Process Dumper[22]。這些工具能夠得到單一進(jìn)程的內(nèi)存內(nèi)容、進(jìn)程的環(huán)境和狀態(tài)信息,并保存到一個(gè)文件。

        為了減少在用戶級(jí)別獲取內(nèi)存時(shí)的限制,許多內(nèi)核級(jí)別的應(yīng)用程序出現(xiàn)。內(nèi)核級(jí)別的免費(fèi)的程序有 Mantech ’s MemoryDD[23],Windows Memory Toolkit[24]和 Memoryze[25]。

        4.3 針對特定操作系統(tǒng)的內(nèi)存獲取方法

        除了一些可以不考慮操作系統(tǒng)的硬件設(shè)備外,還有一些針對特定操作系統(tǒng)的內(nèi)存獲取方法。

        在的Sun Solaris系統(tǒng)中有一種叫OpenBoot的中間件,OpenBoot可以使用Sparc結(jié)構(gòu)獲取物理內(nèi)存[26]。

        許多Unix操作系統(tǒng)有一個(gè)進(jìn)程偽文件系統(tǒng),它一般存放在/proc/下,保存著內(nèi)核和運(yùn)行進(jìn)程的信息。因此,備份該文件系統(tǒng)即可得到內(nèi)存?zhèn)浞?。不同Unix操作系統(tǒng)結(jié)構(gòu)可能不同,但大部分都有類似的目錄結(jié)構(gòu)和功能。

        在Windows操作系統(tǒng)中所有Windows2000及以上的版本都可以通過配置記錄debug信息,也就是內(nèi)存dump文件。在系統(tǒng)崩潰的情況下,系統(tǒng)狀態(tài)被凍結(jié),內(nèi)存和CPU相關(guān)信息保存到系統(tǒng)根目錄下為下次啟動(dòng)做檢查。dump文件保存了計(jì)算機(jī)處理器當(dāng)時(shí)的內(nèi)容以及系統(tǒng)的一些狀態(tài),這些文件可以通過微軟官方提供的Microsoft Debugging Tools for Windows打開或人工分析[27]。將這項(xiàng)技術(shù)應(yīng)用到內(nèi)存取證上可以使用第三方應(yīng)用程序或內(nèi)置的CrashOnCtrlScroll的功能[28]。當(dāng)然這個(gè)功能默認(rèn)是關(guān)閉的,需要通過修改注冊表內(nèi)容將其開啟。

        Windows除了有crash功能還有一個(gè)休眠功能,能將內(nèi)存數(shù)據(jù)與會(huì)話保存至硬盤,以便計(jì)算機(jī)斷電重新啟動(dòng)后可以快速恢復(fù)會(huì)話所需的內(nèi)存鏡像文件,存放在操作系統(tǒng)安裝的根目錄下[29]。當(dāng)系統(tǒng)即將進(jìn)入休眠模式,系統(tǒng)狀態(tài)會(huì)被凍結(jié),系統(tǒng)會(huì)話和狀態(tài)信息會(huì)被保留。

        文獻(xiàn)[30]設(shè)想了一個(gè)叫做Body-Snatcher的應(yīng)用程序。這個(gè)程序能夠注入一個(gè)獨(dú)立的操作系統(tǒng)到計(jì)算機(jī)的內(nèi)核,通過凍結(jié)計(jì)算機(jī)的狀態(tài),只靠注入的操作系統(tǒng)提供的函數(shù)可以得到一個(gè)可靠的內(nèi)存。

        4.4 分析與比較

        目前計(jì)算機(jī)取證領(lǐng)域還沒有一個(gè)標(biāo)準(zhǔn)的評(píng)估準(zhǔn)則來評(píng)估不同的獲取方法。文獻(xiàn)[31]首次提出了評(píng)估這些方法的3個(gè)重要指標(biāo),即真實(shí)性、可靠性和可用性。真實(shí)性要求得到的內(nèi)存鏡像必須是原計(jì)算機(jī)內(nèi)存的一個(gè)精確拷貝??煽啃砸筮@個(gè)獲取技術(shù)不能很容易地被反取證工具攻破??捎眯源砹诉@個(gè)方法適用于任意環(huán)境的適用程度。

        之后又總結(jié)了一個(gè)初步的評(píng)估內(nèi)存獲取方法的評(píng)估框架。這個(gè)評(píng)估框架基于2個(gè)指標(biāo):原子性和可用性。原子性用于度量真實(shí)性。但是,由于這個(gè)初步的框架對于這2個(gè)指標(biāo)描述得不夠清楚,并未成為計(jì)算機(jī)取證領(lǐng)域公認(rèn)的評(píng)估準(zhǔn)則。

        文獻(xiàn)[32]提出了4個(gè)評(píng)估獲取的內(nèi)存鏡像質(zhì)量好壞的標(biāo)準(zhǔn),即正確性、完整性、速度和干擾程度。類似地,文獻(xiàn)[33]定義了3個(gè)評(píng)估內(nèi)存鏡像的因素:正確性,原子性和完整性。

        以上各種內(nèi)存獲取方法各有各的特點(diǎn),有些能支持所有操作系統(tǒng),但有些只針對特定的操作系統(tǒng);有些可靠性較高較安全,有些易受到惡意程序攻擊;有些能獲得完整的內(nèi)存,但有些獲取的內(nèi)存已經(jīng)被修改了。因此,從可靠性、完整性、原子性和可用性這4個(gè)維度對以上各種方法進(jìn)行了比較,并使用高、中、低進(jìn)行比較,如表1所示。

        表1 內(nèi)存獲取方法比較

        不依賴操作系統(tǒng)及其API的方法由于不使用操作系統(tǒng)提供的任何功能,因此不易受到隱藏在計(jì)算機(jī)中惡意程序的攻擊,這類方法可靠性比較高。另外這類方法在獲取內(nèi)存時(shí)會(huì)把原操作系統(tǒng)掛起,因此,獲取操作是原子的,并且獲得的內(nèi)存沒有被改變。但是由于這類方法需要預(yù)先將取證硬件或虛擬機(jī)安裝在計(jì)算機(jī)上,而這在取證調(diào)查過程中往往是很難做到的,因此這類方法應(yīng)用范圍比較窄,可用性不好。僅針對特定操作系統(tǒng)的方法由于也不使用操作系統(tǒng)提供的API,因此可靠性也很高。但這類方法只適用于某類特定操作系統(tǒng),可用性很低,并且這些方法一般使用操作系統(tǒng)內(nèi)置的某些功能(例如休眠),獲得的內(nèi)存不完全。依賴操作系統(tǒng)及API的方法易受到惡意程序的攻擊,可靠性沒前2種高,但這種方法只需要在受到攻擊的計(jì)算機(jī)上安裝某個(gè)小軟件就能實(shí)現(xiàn),可用性較高,獲得的內(nèi)存也較為完整(盡管安裝過程會(huì)影響內(nèi)存,但影響通常不大)。

        5 內(nèi)存分析方法

        在內(nèi)存被獲取后就需要進(jìn)一步對這些數(shù)據(jù)進(jìn)行分析。內(nèi)存分析方法多種多樣,可以按分析對象進(jìn)行分類也可以按分析技術(shù)進(jìn)行分類。本文按分析技術(shù)將內(nèi)存分析方法分為基于字符串搜索、基于內(nèi)存掃描、基于特征和基于操作系統(tǒng)內(nèi)核關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的方法。

        5.1 基于字符串搜索的分析方法

        最初分析內(nèi)存數(shù)據(jù)的方法便是使用命令行工具進(jìn)行字符串搜索[34],或者使用能打開二進(jìn)制文件的Winhex軟件進(jìn)行字符串搜索。這種技術(shù)可以搜索一些已知的關(guān)鍵信息詞,比如用戶名、密碼。同時(shí)為了查詢犯罪記錄,也能搜索那些可能是攻擊行為的詞匯,比如色情圖片。

        除了簡單的字符串搜索,對于計(jì)算機(jī)狀態(tài)的分析也能使用搜索方法。計(jì)算機(jī)命令行保存著計(jì)算機(jī)許多寶貴的狀態(tài)信息,通過搜索一些有名的命令或搜索存儲(chǔ)命令行歷史的數(shù)據(jù)結(jié)構(gòu)的簽名能對計(jì)算機(jī)狀態(tài)進(jìn)行分析。

        5.2 基于內(nèi)存掃描的分析方法

        文獻(xiàn)[35]中描述了一個(gè)線性內(nèi)存掃描的技術(shù),這是一種暴力破解的方法,逐個(gè)字節(jié)地掃描整個(gè)內(nèi)存,然后使用可能的一塊數(shù)據(jù)作為密鑰進(jìn)行破解。

        5.3 基于特征的分析方法

        文獻(xiàn)[36]提出了一個(gè)基于特征的掃描器。它使用一系列的規(guī)則來精確描述系統(tǒng)進(jìn)程或線程的結(jié)構(gòu)。掃描器的結(jié)果可以用來和標(biāo)準(zhǔn)的進(jìn)程列表作對比。如果有不同,則能證明惡意程序的存在。

        除了可以根據(jù)進(jìn)程數(shù)據(jù)結(jié)構(gòu)的特征進(jìn)行掃描獲得進(jìn)程列表,還有些加密技術(shù)也利用了特征將密碼緩存在偏移量為0x417處[37-38]。這樣加密密鑰恢復(fù)只需掃描這個(gè)偏移量特征就能恢復(fù)加密密鑰。

        文獻(xiàn)[39]提出了掃描操作系統(tǒng)中不會(huì)被換出的池(non-paged pool)來找到監(jiān)聽socket的分配。算法基于一個(gè)池標(biāo)記TCPA和一個(gè)預(yù)先定義好的池大小。一旦鑒別到可能的地址,socket列表就能創(chuàng)建,獲得打開的網(wǎng)絡(luò)連接列表。

        5.4 基于操作系統(tǒng)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的分析方法

        操作系統(tǒng)內(nèi)核關(guān)鍵數(shù)據(jù)有很多,其中對于取證最重要也最有用的就是進(jìn)程結(jié)構(gòu)EPROCESS?;贓PORCESS早期的方法從_EPROCESS結(jié)構(gòu)的ActiveProcessLinks出發(fā)依次獲得系統(tǒng)中的運(yùn)行進(jìn)程。其中,Windows Memory Forensics Toolkit(WMFT)就是使用這樣的方法列舉出進(jìn)程列表。Memparser同樣使用這樣的方法,并可以dump進(jìn)程的內(nèi)存。

        但是之后研究發(fā)現(xiàn)一些惡意程序使用一種叫做DKOM的方法可以將進(jìn)程自己從ActiveProcessLinks的鏈表上刪除,如圖4所示[40]。因此,循環(huán)獲得進(jìn)程列表的方法可能不可靠,無法找到那些使用DKOM的惡意進(jìn)程。

        2009年,一個(gè)結(jié)合了掃描技術(shù)和鏈表遍歷技術(shù)的方法被提出[41]。這個(gè)方法基于 KPCR(Kernel Processor Control Region)。通過這種方法能有效地避免DKOM獲得完整的進(jìn)程列表。

        圖4 DKOM方法示意圖

        EPROCESS結(jié)構(gòu)中還有對于系統(tǒng)進(jìn)程狀態(tài)的一些信息。其中,StartTime和ExitTime屬性表示了進(jìn)程開始和結(jié)束的時(shí)間,可以用來創(chuàng)建取證的時(shí)間線。另外EPROCESS結(jié)構(gòu)中有一個(gè)內(nèi)核進(jìn)程塊KPROCESS,其中包含了一個(gè)應(yīng)用程序在系統(tǒng)和用戶模式下的一些狀態(tài)信息。這類數(shù)據(jù)可能在程序終止24小時(shí)之后還能恢復(fù),因此,應(yīng)該對于這些狀態(tài)信息特別關(guān)注。EPROCESS結(jié)構(gòu)中的Token成員還能幫助恢復(fù)安全上下文(security context),安全上下文描述了與進(jìn)程相關(guān)的權(quán)限、賬號(hào)和組。

        除了用于進(jìn)程分析的EPROCESS結(jié)構(gòu),在面對加密技術(shù)的發(fā)展以及廣泛使用的今天,還能從內(nèi)存中的一些保存master key的數(shù)據(jù)結(jié)構(gòu)來對加密密鑰進(jìn)行恢復(fù)。在2009年通過研究密鑰產(chǎn)生的算法(key schedule)并解析某些內(nèi)存數(shù)據(jù)結(jié)構(gòu)也能獲得密鑰信息。

        Windows系統(tǒng)的注冊表是一個(gè)集中的以層次結(jié)構(gòu)管理系統(tǒng)配置信息的數(shù)據(jù)庫,它是由一系列hive組成的。分析內(nèi)存中hive的信息能獲得系統(tǒng)的一些寶貴信息[42]。Hive分析類似虛擬地址到物理地址的機(jī)制,如圖5所示。

        圖5 注冊表分析

        2010年,文獻(xiàn)[43]找到了2個(gè)在 tcpip.sys驅(qū)動(dòng)文件中的散列表:_AddrObjTable,TCBTable。每個(gè)散列表有一個(gè)保存著IP地址和端口綁定的列表的指針。遍歷這個(gè)列表就能獲得存在的socket和打開的網(wǎng)絡(luò)連接,具體如圖6所示。

        進(jìn)程環(huán)境塊(PEB)是進(jìn)程的一部分,可以作為分析進(jìn)程文件的工具。它有一個(gè)Ldr成員和3個(gè)雙向列表,里面保存著所有裝載的dll的名字、大小和基地址,遍歷每個(gè)單獨(dú)的列表就能鑒別是否有dll注入的攻擊[44]。

        圖6 網(wǎng)絡(luò)分析

        分析文件和dll的最主要方法是基于VAD的方法[45]。VAD是一個(gè)內(nèi)核數(shù)據(jù)結(jié)構(gòu),由內(nèi)存管理器維護(hù),用于跟蹤分配的內(nèi)存。它存儲(chǔ)著分配內(nèi)存的開始和結(jié)束的地址信息以及訪問(access)和描述符(descriptor)標(biāo)記。VAD樹上的每一個(gè)節(jié)點(diǎn)都有一個(gè)池標(biāo)記,類型是 VadS,Vad或 Vadl。Vad和 Vadl這2種類型的節(jié)點(diǎn)有一個(gè)指向_Control_Area的結(jié)構(gòu)。_Control_Area結(jié)構(gòu)指向保存著文件名和其他文件信息的_File_Object對象,如圖7所示。獲取所有的文件對象就能通過從上到下遍歷VAD樹實(shí)現(xiàn)[46]。

        圖7 VAD樹

        在2010年,研究者發(fā)現(xiàn)另外一個(gè)重要數(shù)據(jù)結(jié)構(gòu)DOSKEY整合在命令行shell里,可以編輯過去命令和展示命令的歷史記錄[47]。

        5.5 分析與比較

        隨著內(nèi)存取證的發(fā)展,內(nèi)存分析技術(shù)越來越多。面對內(nèi)存獲取獲得的不同內(nèi)存鏡像需要選擇合適的內(nèi)存分析技術(shù)才能有效準(zhǔn)確地進(jìn)行分析得到想要的結(jié)果。因此,需要對以上各種類型內(nèi)存分析方法進(jìn)行比較。使用可靠性、可用性、準(zhǔn)確性三方面來對以上分析方法進(jìn)行比較,如表2所示。

        表2 內(nèi)存分析方法比較

        基于字符串搜索的方法可以在各類場景中使用,可用性很高。這種搜索粒度比較粗,獲得結(jié)果包含了大量的噪音,準(zhǔn)確性很低,但可靠性很高?;趻呙璧姆椒?zhǔn)確性和可靠性同第一種,并且它只能適用于某些在內(nèi)存中以線性方式存儲(chǔ)的信息,可用性也很低?;跀?shù)據(jù)結(jié)構(gòu)特征的方法采用了某些數(shù)據(jù)結(jié)構(gòu)的一些特點(diǎn)來找到它們,準(zhǔn)確性較高,不會(huì)有偏差,但可用性也因此不是很高?;诓僮飨到y(tǒng)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的方法由于找到操作系統(tǒng)中某些有用的數(shù)據(jù)結(jié)構(gòu)無論可靠性,還是準(zhǔn)確性、可用性都比較高。

        6 內(nèi)存取證分析工具

        隨著內(nèi)存取證領(lǐng)域的發(fā)展以及各種內(nèi)存獲取分析技術(shù)的出現(xiàn),各種各樣的內(nèi)存取證工具應(yīng)運(yùn)而生。盡管各式各樣的內(nèi)存取證工具各有特點(diǎn),但所有的內(nèi)存取證工具都有一個(gè)共同問題——操作系統(tǒng)的限定。由于操作系統(tǒng)版本的變化,內(nèi)存中一些對于取證關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)也會(huì)有相應(yīng)的變化。雖然有時(shí)這些變化很小,但是一個(gè)很小的地址變化就會(huì)導(dǎo)致那些硬編碼地址的程序運(yùn)行錯(cuò)誤。所以在開始取證工作前有必要了解各種內(nèi)存取證工具的特點(diǎn)以及限制,這樣才能靈活運(yùn)用各種工具達(dá)到目的。以下將分內(nèi)存獲取工具和內(nèi)存分析工具進(jìn)行介紹。

        6.1 內(nèi)存獲取工具

        內(nèi)存獲取早期經(jīng)常使用一些硬件工具來實(shí)現(xiàn),比較著名的有“Tribble”。這些不依賴操作系統(tǒng)的工具在早期能很有效地獲取內(nèi)存,但隨著計(jì)算機(jī)各種技術(shù)的發(fā)展一些早期的方法性能上產(chǎn)生了很大問題。后來有很多內(nèi)存獲取軟件出現(xiàn),這些軟件能比較容易地獲取內(nèi)存。

        最為有名的內(nèi)存獲取軟件就是Data-Dumper(DD)。DD在開發(fā)初期是一個(gè)用戶級(jí)別的工具,后來又開發(fā)了內(nèi)核級(jí)別的KntDD,能夠避免用戶級(jí)別的各種限制,提高了效率。其他類似DD的內(nèi)存獲取工具還有:PMDump,Process Dumper和Memoryze。

        另外,現(xiàn)在網(wǎng)絡(luò)上還能找到各種各樣的免費(fèi)的內(nèi)存獲取小工具,這些工具能夠十分容易地獲取內(nèi)存,比如 DumpIt[48]。

        6.2 內(nèi)存分析工具

        在最初研究內(nèi)存取證的階段使用的工具主要功能是打開二進(jìn)制文件,可以查看具體地址信息的所在地址的內(nèi)容,比如 WinHex[49]。WinHex可以打開內(nèi)存dump文件并查看相應(yīng)的地址和內(nèi)容,這樣只要在其中進(jìn)行字符串搜索就能找到想要的內(nèi)容。

        除了最基本的WinHex外微軟公司還提供了用于Windows操作系統(tǒng)的debug工具(Microsoft Debugging Tools for Windows)。Windows debug工具是一個(gè)包含了一系列各種功能的工具集,其中某些小工具能十分簡便的幫助人們進(jìn)行取證工作,比如打開Windows崩潰的dump文件??梢栽趯indows操作系統(tǒng)的取證過程中使用它進(jìn)行前期的工作。

        內(nèi)存分析工具更多的是各國取證研究者開發(fā)的一些工具,在 Linux中比較有名的有 Forensix[50]和Backtracker,在這里不作過多介紹。在Windows中,前期針對進(jìn)程分析產(chǎn)生了很多工具,比如Windows Memory Forensics Toolkit(WMFT)、Memparser。這些工具都能通過遍歷進(jìn)程結(jié)構(gòu)獲得進(jìn)程列表。之后的研究者由于發(fā)現(xiàn)DKOM技術(shù)又開發(fā)了一些新的能夠解決DKOM 的工具,比如Kntlist和PTFinder。

        在2008年,內(nèi)存取證領(lǐng)域有了一定的發(fā)展并出現(xiàn)了一個(gè)集合了其他各種內(nèi)存取證工具的取證框架工具 Volatility[51]。Volatility是一個(gè)開源的內(nèi)存取證分析框架,包含了一些由Python寫的核心模塊,提供了一些基本功能,比如列出進(jìn)程列表。Volatility各項(xiàng)功能都是由插件實(shí)現(xiàn)的,各地的取證研究者可以根據(jù)自己的需要開發(fā)Volatility的插件。

        6.3 內(nèi)存取證分析工具比較

        如今取證分析工具越來越多,在取證工作中需要根據(jù)具體情況選擇合適的取證工具。使用可用性、準(zhǔn)確性和可靠性來對內(nèi)存獲取和分析工具進(jìn)行比較,如表3和表4所示。

        表3 內(nèi)存獲取工具比較

        表4 內(nèi)存分析工具比較

        內(nèi)存獲取工具Tribble需要預(yù)先安裝在計(jì)算機(jī)上,可用性較低。DD系列工具和一些類似DD的用于單個(gè)進(jìn)程內(nèi)存獲取的工具各方面都比較好,應(yīng)該采用。DumpIt這類免費(fèi)的小工具使用十分方便,但可靠性和準(zhǔn)確性都不能保證。

        內(nèi)存分析工具WinHex是一個(gè)可以打開內(nèi)存dump的工具,但由于沒有專門針對分析的功能,因此準(zhǔn)確性較低。Windows的debug工具相對有更多的功能,準(zhǔn)確性也有所提高,但這類工具只能在Windows操作系統(tǒng)上使用。WMFT等是早期的分析進(jìn)程的工具,由于DKOM技術(shù)的發(fā)現(xiàn),因此可靠性和準(zhǔn)確性都不是很高。但之后的PTFinder等解決了DKOM的問題因此各方面都很好。Volatility是最近的一個(gè)內(nèi)存分析框架,結(jié)合了各類分析工具的特點(diǎn)并且開源可擴(kuò)展,是目前較為全面的內(nèi)存分析工具。

        7 結(jié)束語

        內(nèi)存取證從2005年開始發(fā)展到現(xiàn)在出現(xiàn)了各種各樣的工具以及獲取和分析的方法。盡管已有不少有價(jià)值的工作,但目前內(nèi)存取證技術(shù)還不夠成熟,未來需要研究的問題很多。目前取證領(lǐng)域大部分獲取或分析方法都依賴于特定版本的操作系統(tǒng)。如何能設(shè)計(jì)出完全不依賴于操作系統(tǒng)的方法值得研究者關(guān)注。內(nèi)存取證過程如果有很多人工干預(yù)的話,不僅對取證研究者能力要求很高而且耗時(shí)易錯(cuò)。這就要求內(nèi)存取證方法能夠盡可能實(shí)現(xiàn)自動(dòng)化,這樣不僅節(jié)省了人力還提高了效率?,F(xiàn)有的內(nèi)存取證方法在這方面還需要進(jìn)一步加強(qiáng)。目前內(nèi)存取證的很多工具都只是針對內(nèi)存中某一類型對象進(jìn)行獲取分析,未來內(nèi)存取證需要一個(gè)能夠恢復(fù)和分析內(nèi)存中全部對象的完整內(nèi)存取證框架,并且在內(nèi)存取證模型方面也值得研究者做進(jìn)一步研究。

        [1]Vomel S,F(xiàn)reiling F C.A Survey of Main Memory Acquisition and Analysis Techniques for the Windows Operating System[J].Digital Investigation,2011,8(1):3-22.

        [2]Computer Security Institute.14th Annual CSI Computer Crime and Security Survey[EB/OL].(2009-12-05).http://www.personal.utulsa.edu/~ james-childress/cs5493/CSISurvey/CSISurvey2009.pdf.

        [3]DFRWS.DFRWS 2005 Forensics Challenge[EB/OL].(2005-05-14).http://www.dfrws.org/2005/challenge.

        [4]潘愛民.Windows內(nèi)核原理與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2010.

        [5]Kruse W G,Heiser J G.Computer Forensics:Incident Response Essentials[M].[S.l.]:Addison-Wesley Professional,2001.

        [6]孫 波,孫玉芳,張相鋒,等.電子數(shù)據(jù)取證研究概述[J].計(jì)算機(jī)科學(xué),2005,32(2):2-4.

        [7]National Institute of Justice.Electronic Crime Scene Investigation A Guide for First Responders[EB/OL].(2001-07-23).http://www.ncjrs.org/pdffiles1/nij/187736.pdf.

        [8]Reith M,Carr C,Gunsch G.An Examination of Digital Forensic Models[J].International Journal of Digital Evidence,2002,1(3):3-5.

        [9]Carrier B,Spafford E H.Getting Physical with the Investigative Process[J].International Journal of Digital Evidence,2003,2(2):2-4.

        [10]ACPO.Association of Chief Police Officers[EB/OL].(2011-06-12).http://www.acpo.police.uk/.

        [11]IOCE.International Organization for Cooperation in Evaluation[EB/OL].(2009-11-10).http://www.ioce.net/index.php.

        [12]IACIS.International Association of Computer Investigation Specialist[EB/OL].(2010-09-28).http://www.iacis.com/.

        [13]Baryamureeba V,TushabeF.The Enhanced Digital Investigation Process Model[C]//Proc.of the 4th Digital Forensic Research Workshop.[S.l.]:IEEE Press,2004.

        [14]Carrier B D,Grand J.A Hardware-based Memory Acquisition Procedure for Digital Investigations[J].Digital Investigation,2004,1(1):50-60.

        [15]Petroni N L,F(xiàn)raser T,Molina J et al.Copilot——A Coprocessor-based Kernel Runtime Integrity Monitor[C]//Proc.of the 13th USENIX Security Symposium.New York,USA:[s.n.],2004.

        [16]BBN Technologies,F(xiàn)red:Forensic Ram Extraction Device[EB/OL].(2006-01-09).http://www.ir.bbn.com/vkawadia/.

        [17]Hulton D.Cardbus Bus-mastering:Owning the Laptop[C]//Proc.ofShmooCon’06.Columbia,USA:[s.n.],2006.

        [18]Smith J E,Nair R.The Architecture of Virtual Machines[J].Journal of Computer,2005,38(5):32-38.

        [19]Halderman J A,Schoen S D,Heninger N,et al.Lest We Remember:Cold-boot Attacks on Encryption Keys[J].Communications of the ACM,2009,52(5):91-98.

        [20]Garner G M.Forensic Acquisition Utilities[EB/OL].(2009-07-20).http://gmgsystemsinc.com/fau/.

        [21]Vidstrom A.Pmdump[EB/OL].(2002-06-17).http://ntsecurity.nu/toolbox/pmdump/.

        [22]Klein T,Process Dumper[EB/OL].(2006-10-29).http://www.trapkit.de/research/forensic/pd/index.html.

        [23]ManTech CSI,Inc..Memory DD[EB/OL].(2009-03-14).http://sourceforge.net/projects/mdd/files/.

        [24]Windows Memory Toolkit.MoonSols[EB/OL].(2010-09-22).http://moonsols.com/product.

        [25]Mandiant.Memoryze[EB/OL].(2010-09-13).http://www.mandiant.com/products/free_software/memoryze/.

        [26]Chris D,Kimberley B.PANIC!UNIX System Crash Dump Analysis Handbook[M].[S.l.]:Pearson Education,1995.

        [27]Microsoft Corporation.Kb254649-overview of Memory Dump File Options for Windows Vista,Windows Server 2008 R2,Windows Server 2008,Windows Server 2003,Windows XP,and Windows2000[EB/OL].(2010-07-15).http://support.microsoft.com/?scid=kb3Benus3B 254649&x=13&y=5.

        [28]Microsoft Corporation.Kb244139-windows Feature Lets You Generate a memory Dump File by Using The Keyboard,Crash Dump File Generation[EB/OL].(2010-06-30).http://support.microsoft.com/?20sci d=kb3Ben-us3B244139&x=&y=9.

        [29]Libster E,Kornblum J D.A Proposal for An Integrated Memory Acquisition Mechanism[J].ACM SIGOPS Operating Systems Review,2008,42(3):14-20.

        [30]Schatz B.Bodysnatcher:Towards Reliable Volatile Memory Acquisition by Software[J].Digital Investigation,2007,4(9):126-134.

        [31]Schatz B.Recent Developments in Volatile Memory Forensics[EB/OL].(2007-12-18).http://www.schatzforensic.com.au/presentations/BSchatz-CERTCSD2007.pdf.

        [32]Inoue H,Adelstein F,Joyce R A.Visualization in Testing a volatile Memory Forensic Tool[J].Digital Investigation,2011,8(1):42-51.

        [33]Vomel S,F(xiàn)reilingF C.Correctness,Atomicity,and Integrity:Defining Criteria for Forensically-sound Memory Acquisition[J].Digital Investigation,2012,9(2):125-137.

        [34]Burdach M.An Introduction to Windowsmemory forensic[EB/OL].(2005-07-09).http://forensic.seccure.net.

        [35]Hargreaves C,Chivers H.Recovery of Encryption Keys from Memory Using a Linear Scan[C]//Proc.of the 3rd International Conference on Availability,Reliability and Security.Barcelona,Spain:[s.n.],2008:1369-1376.

        [36]Schuster A.Searching for Processes and Threads in Microsoft Windows Memory Dumps[J].Digital Investigation,2006,3(1):10-16.

        [37]Bolieau A.Bioskbsnarf[EB/OL].(2008-04-10).http://www.storm.net.nz/static/files/bioskbsnarf.

        [38]Anon.Defeating WholeDisk Encryption -Part 1[EB/OL].(2007-03-26).http://breach-inv.blogspot.com/2007/05/defeating-wholedisk-encryption-part-1.html.

        [39]Schuster A.Pool Allocations as an Information Source in Windows Memory Forensics[C]//Proc.of International Conference on IT-incident Management& IT-forensics.[S.l.]:IEEE Press,2006.

        [40]Bilby D.Low Down and Dirty:Anti-forensic Rootkits[C]//Proc.of Ruxcon’06.[S.l.]:IEEE Press,2006.

        [41]Zhang Ruichao,Wang Linhai,Zhang Shuhui.Windows Memory Analysis Based on KPCR[C]//Proc.of the 5th International Conference on Information Assurance and Security.[S.l.]:IEEE Press,2009:677-680.

        [42]Dolan G B.Forensic Analysis of the Windows Registry in Memory[J].Digital Investigation,2008,5(1):26-32.

        [43]Okolica J,Peterson G L.Windows Operating Systems Agnostic Memory Analysis[J].Digital Investigation,2010,7(1):48-56.

        [44]Russinovich M E,Solomon D A,Ionescu A.Microsoft Windows Internals[M].[S.l.]:Microsoft Press,2009.

        [45]Dolan G B,The Vad Tree:A Process-eye View of Physical Memory[J].Digital Investigation,2007,4(1):62-64.

        [46]van Baar R B,Alink W,van Ballegooij A R.Forensic Memory Analysis:Files Mapped in Memory[J].Digital Investigation,2008,5(S1):52-57.

        [47]Stevens R M,Casey E.Extracting Windows Command Line Details from PhysicalMemory[J].Digital Investigation,2010,7(1):57-63.

        [48]Sols M.DumpIt[EB/OL].(2011-07-18).http://www.moonsols.com/2011/07/18/moonsols-dumpit-goesmainstream/.

        [49]X-way.Winhex[EB/OL].(2010-10-15).http://www.x-ways.net.

        [50]Goel A,F(xiàn)eng Wuchang,Maier D,et al.Forensix:A Robust,High-performance Reconstruction System[C]//Proc.of the 25th IEEE International Conference on Distributed Computing Systems Workshops.[S.l.]:IEEE Press,2005.

        [51]Volatile Systems.LLC,Volatility[EB/OL].(2008-11-14).https://www.volatilesystems.com/default/volatility.

        猜你喜歡
        可用性進(jìn)程內(nèi)存
        基于文獻(xiàn)計(jì)量學(xué)的界面設(shè)計(jì)可用性中外對比研究
        包裝工程(2023年24期)2023-12-27 09:18:26
        基于輻射傳輸模型的GOCI晨昏時(shí)段數(shù)據(jù)的可用性分析
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        “春夏秋冬”的內(nèi)存
        空客A320模擬機(jī)FD1+2可用性的討論
        河南科技(2015年7期)2015-03-11 16:23:13
        黔西南州烤煙化學(xué)成分可用性評(píng)價(jià)
        作物研究(2014年6期)2014-03-01 03:39:04
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        基于內(nèi)存的地理信息訪問技術(shù)
        我國高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        精品人无码一区二区三区| 亚洲电影久久久久久久9999| 国产美女黄性色av网站| 成人av毛片免费大全| 日韩人妻ol丝袜av一二区| 久久久久国产精品免费免费搜索| 亚洲精品一区网站在线观看| 蜜桃av在线播放视频| 免费无遮挡无码永久在线观看视频| 乱人伦中文无码视频| 51精品视频一区二区三区| 国产精品一区二区三区成人| 亚洲最新无码中文字幕久久| 欧美操逼视频| 狠狠亚洲婷婷综合色香五月| 亚洲长腿丝袜中文字幕 | 国产欧美日韩精品丝袜高跟鞋| 亚洲欧美日韩国产综合一区二区 | 亚洲最稳定资源在线观看| 亚洲第一页视频在线观看| 18禁黄网站禁片免费观看女女| 中文字幕无线码中文字幕| 亚洲av一区二区国产精品| 黄片视频大全在线免费播放| 亚洲精品www久久久| 免费一级毛片麻豆精品| 最新国内视频免费自拍一区| 人妻av中文字幕久久| 久久精品中文字幕一区| baoyu网址国产最新| 蜜桃视频在线观看网址| 久久综合狠狠色综合伊人| 精品一精品国产一级毛片| 日韩在线精品免费观看| 亚洲国产日韩欧美综合a| 国产天堂网站麻豆| 中文字幕精品亚洲一区二区三区| 亚洲大尺度无码无码专区| 色婷婷久久一区二区三区麻豆| 久久er这里都是精品23| 免费夜色污私人影院在线观看|