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

        ?

        基于結構鏈逆向的內存碎片文件雕刻算法

        2021-08-16 10:46:02李炳龍周振宇張宇張和禹常朝穩(wěn)
        通信學報 2021年7期
        關鍵詞:頁面結構

        李炳龍,周振宇,張宇,張和禹,常朝穩(wěn)

        (信息工程大學密碼工程學院,河南 鄭州 450001)

        1 引言

        隨著信息技術的迅猛發(fā)展,網絡犯罪事件頻繁發(fā)生,例如電信詐騙、信息勒索以及APT(advanced persistent threat)攻擊等。數(shù)字取證調查已經成為制止和威懾網絡犯罪的關鍵技術手段之一[1]。磁盤取證是數(shù)字取證領域中一種重要的調查技術,對于數(shù)字犯罪調查具有重要意義。但隨著反取證技術的發(fā)展,新型“無文件攻擊”[2]等網絡威脅僅在內存中運行,不在磁盤上留下任何痕跡信息,具有更強的隱蔽性和復雜性。此外,磁盤容量的不斷增大導致磁盤取證具有局限性。內存中含有與網絡攻擊威脅有關的大量實時證據和線索,而且內存中的網絡連接、系統(tǒng)加載的模塊以及執(zhí)行的指令等證據信息和磁盤中的證據不同,更能說明網絡攻擊威脅發(fā)生的場景。因此內存取證成為當前數(shù)字調查領域的重要研究方向[3-5]。

        目前,內存取證主要聚焦于基于內存映像的進程、網絡連接信息、剪貼板數(shù)據、命令行歷史、口令等證據的提取和分析[4-7],而針對內存映像中數(shù)據文件雕刻技術研究較少。在早期內存取證實踐工作中,調查人員利用strings、WinHex 等工具[8],從內存映像中搜索口令、IP 地址、Email 地址等證據信息,該方法的前提是必須知道所要查找信息的內容。之后,有研究深入討論和分析了基于內存映像精確提取證據的可行性[9-11]。Kornblum[12]提出一種內存映像中進程對應的可執(zhí)行文件的提取方法,通過使用指針來重構可執(zhí)行文件,并分析了由于可執(zhí)行文件運行時的多種變化因素,導致提取的可執(zhí)行文件與其在磁盤上相應的文件不完全相同的問題。此外,Dolan-gavitt[13]利用虛擬地址描述符(VAD,virtual address descriptor)樹來定位、解析結構,遍歷進程的虛擬內存空間,并為取證調查人員提供內存轉儲中有用的信息。Van-baar 等[14]進一步提出了基于VAD 的內存數(shù)據文件提取方法,即通過遍歷VAD 樹定位共享文件,然后查找對象表,進而找到文件信息。以上2 種方法具有局限性,即如果進程關閉或者內存中進程結構信息被覆蓋將不能有效定位VAD 信息,從而造成文件信息不能恢復。有學者提出了基于頁面哈希比較的數(shù)據文件提取方法[15],該方法計算內存映像中頁面哈希,并和磁盤中文件對應頁的哈希進行比較,提取內存映像中的文件碎片,進而重建文件內容,要求取證調查人員必須知道需要重建文件的內容,而現(xiàn)實網絡攻擊調查中調查人員并不了解內存中的數(shù)據文件內容。此外,當磁盤中文件映射到內存頁面時,內存中文件數(shù)據有可能被修改,導致內存頁面哈希值不同于磁盤上對應頁面,從而造成內存文件提取無效。Gao等[16]研究了實時系統(tǒng)中QQ 信息取證方法,從中獲取通信列表、QQ 賬號、聊天記錄、QQ 討論組、顯示名稱,該方法通過逆向分析QQ 的內存結構來實現(xiàn),但該方法僅適用于QQ 應用程序,不具有通用性。Volatility 內存取證框架和FATKit 內存取證分析工具套件能夠從易失性內存映像中提取取證痕跡,但更多集中于內存映像中進程、線程等結構,以及可執(zhí)行文件提取[17]。此外,雖然基于磁盤的文件雕刻算法有很多,例如Foremost、Scalpel、Test_disk、EnCase 等[18-20],但是應用這些算法的實驗結果表明,生成的文件雕刻結果精確度極低。綜上所述,基于內存映像的碎片數(shù)據文件雕刻算法的通用性問題沒有得到很好的研究。為了解決基于內存映像的碎片文件雕刻算法的通用性問題,探索物理內存中新的文件雕刻機制具有非常重要的理論意義和現(xiàn)實價值[21-23]。

        本文主要研究工作如下。

        1) 建立了基于內存映像的碎片文件雕刻模型。從集合論的角度,分析了內存映像碎片集合中元素的特性。從內存文件構成原理,給出了內存文件的形式化表達方式,提出了內存碎片文件雕刻問題可以抽象為內存碎片集合到內存文件的映射問題,設計了內存碎片文件雕刻模型。

        2) 設計了基于文件對象結構鏈逆向的內存碎片文件雕刻算法。利用十六進制編輯器分析了內存映像中文件對象及其相關結構的特征字段,設計了基于結構鏈逆向的內存碎片文件雕刻算法,解決了內存文件碎片子集中元素確定子問題、文件碎片子集中元素連接關系順序子問題,以及文件元數(shù)據構建子問題。

        3) 實驗結果表明,基于結構鏈逆向的內存碎片文件雕刻算法通用性強,不但能夠雕刻內存中文件內容信息,而且能夠雕刻文件元數(shù)據信息,例如文件來源、文件名稱等,還適用于應用進程關閉時的文件雕刻情況。實驗分析進一步表明,通過對雕刻的碎片文件的內部結構進行深度分析,能夠找到網絡攻擊過程中病毒木馬的感染過程,這對于實時取證調查具有重要意義。

        2 相關工作

        內存取證目前是數(shù)字取證領域重點研究方向之一[6-7]。早期內存取證研究進展較慢,為此2005 年DFRWS(Digital Forensic Research Workshop)發(fā)布了物理內存取證分析挑戰(zhàn),鼓勵研究人員開展內存取證技術研究[24]。內存取證分為物理內存獲取和物理內存分析2 個階段。內存獲取分為基于硬件和基于軟件的2 種方法。目前,基于硬件的內存獲取典型工具是基于PCI 擴展機制的Tribble 工具[9]。該方法優(yōu)點是在獲取內存數(shù)據時不會造成內存數(shù)據的改變,但是其局限性在于必須在取證事件發(fā)生之前安裝到被感染機器中?;谲浖膬却娅@取方法則較普遍,可以根據事件響應的需要靈活安裝。Guidance 公司發(fā)布的EnCase 6.11 以上取證工具套件中含有WinEn 物理內存映像工具,并且支持Windows 32 位和64 位操作系統(tǒng),能夠生成3 種不同壓縮級別的內存映像[20]。ManTechs 公司發(fā)布了MDD 內存獲取工具,該工具根據GPL(GNU general public license)免費發(fā)布,能夠獲取物理內存映像,并且以原始內存格式進行轉儲。Win32dd 是一個完全開源的內存映像獲取工具[25],該工具基于Windows內核設計實現(xiàn),適用于Windows2003或Vista系統(tǒng)的內存獲取,獲取的內存映像是原始格式。

        內存取證分析技術研究目前主要集中于進程注冊表等內核結構逆向分析重建。2005 年,DFRWS的內存取證挑戰(zhàn)產生了學術界認為開創(chuàng)性的3 個研究成果[24]:一是Mariusz 提出的進程和模塊枚舉方法;二是Chris 等設計的memparser 工具;三是George 等設計的Kntlist 工具。這3 個工具基本原理是逆向分析對應版本的Windows 進程結構,在內存映像文件中搜索全局變量,雕刻重建進程及其雙向鏈表。這些方法局限性在于不能雕刻內存映像中不在雙向鏈表中的進程等對象。為此,Schuster[24]通過分析內存中進程和線程結構,提出了一種基于搜索模式特征的進程和線程雕刻算法,通過掃描內存映像文件,定位并重建相應的對象,能夠雕刻由于DKOM(direct kernel object manipulation)攻擊隱藏和已終止的進程和線程。有學者通過逆向分析注冊表的內存分配單元,設計并實現(xiàn)了基于池簽名特征的注冊表雕刻工具[22]。以上算法和工具僅能支持少量Windows 系統(tǒng)版本的內存映像。Volatility 是數(shù)字取證領域經典的內存取證分析框架,應用了Schuster 的基于簽名特征掃描的對象雕刻技術[17]。為了支持更多Windows 操作系統(tǒng)版本的內存映像,Volatility 引入了基于內核模板的機制,即在該框架集成多個Windows 操作系統(tǒng)主版本的內核結構信息,從而改善不同Windows 操作系統(tǒng)版本的內存映像數(shù)據雕刻。然而,該方法并未考慮Windows 操作系統(tǒng)次版本變化(例如同一主版本因安全補丁更新等因素產生的不同次版本)而導致操作系統(tǒng)內核結構模板的改變,從而造成內存映像雕刻信息錯誤或者遺漏。而且基于簽名特征掃描技術復雜且易發(fā)生錯誤[26]。Okolica 等[27]利用嵌入內存映像中的調試結構和程序數(shù)據庫(PDB,program database)構建了一個Windows 操作系統(tǒng)不可知的內存映像數(shù)據雕刻算法,該算法支持任意Windows 操作系統(tǒng)內存映像,能夠提取出進程、注冊表以及網絡活動等信息。

        上述研究在內存進程重建、注冊表逆向分析等方面取得了不同研究進展,并且也有針對內存映射文件提取方法進行的研究,而針對內存映像中數(shù)據文件雕刻技術研究較少,這也是本文重點要解決的問題。

        3 內存碎片數(shù)據文件雕刻算法模型

        3.1 問題描述

        內存數(shù)據文件是doc、pdf、xls、txt 以及jpg 等類型文件在內存中由用戶進程或攻擊進程打開和訪問的文件。內存文件由兩部分構成,分別為文件內容信息和文件名(文件路徑)等元數(shù)據信息。這些信息含有與網絡犯罪有關的重要證據。內存數(shù)據文件的存儲特性與磁盤中文件的存儲狀態(tài)和規(guī)律不同,磁盤中文件構成單元(簇)多是連續(xù)存放,而內存文件構成單元(內存頁面)多是不連續(xù)存放,這導致內存文件構成單元嚴重碎片化。

        本文假設在t時刻獲取內存映像,構成內存映像的頁面稱之為“碎片”,那么內存映像可以抽象為一個碎片集合S= {f1,f2,…,fi,…,fj,…,fn},其中,fi表示內存映像中的任意一個內存碎片,n表示集合S的大小,并且n值取決于內存介質容量以及內存頁面的大?。ㄔ趦却嫒萘恳欢ǖ那闆r下,頁面越大,則內存碎片集合S中元素個數(shù)就越小,通常情況下內存頁面大小為4 KB,即4 096 B)。集合S具有如下特性。

        1) 確定性。對于1≤i≤n,fi表示集合S中的內存碎片元素,用f i∈S表示,這表明fi是在t時刻獲取的內存映像中確定的一個元素,而不是其他時刻獲得的內存映像中的元素。

        2) 互異性。對于1 ≤i,j≤n,f i,fj表示集合S中的內存碎片,如果i≠j,那么fi∩f j=φ,表示碎片集合S中2 個不同碎片在內存空間上不存在交集,并且2 個碎片的內容及其元數(shù)據(例如內存碎片的地址信息等)都不相同,即集合中的任何2 個元素都不相同,或者在同一集合里不能出現(xiàn)相同的元素。

        3) 無序性。集合中的元素是平等的,沒有先后順序。因此判斷2 個集合是否相同,只需要比較它們的元素是否一樣,不需要考察排列順序是否一樣。但由于內存數(shù)據的動態(tài)變化性,以及內存映像獲取的時間變化性,使不同時刻的內存碎片集合都是不同的。

        根據操作系統(tǒng)運行原理,內存文件由多個頁面構成。由內存映像碎片集合S中元素特性可知,內存文件是S的一個子集,即文件碎片子集,用filei表示,其中0≤i≤k,k表示內存碎片中最大文件個數(shù)。此外,由于內存文件的頁面碎片之間存在一定的順序關系,如果內存文件的頁面碎片之間的順序破壞,則導致內存文件損壞或者內容變化。為此,本文將內存文件抽象為一個序列,用(filei,k)表示。

        其中,1≤j≤m,m表示filei碎片子集中元素個數(shù)。(filei,k)具有如下特性。

        1) 有限性,即(filei,k)中的項是有限的,這是根據文件構成原理確定的,盡管理論上文件長度可以無限,但不具有實際意義。

        2) 有序性,即(filei,k)中項與項之間的關系是有序的,這種有序構成了文件的內在關系,具體可以體現(xiàn)為內存頁面間的結構關系、語義關系、簽名特征關系。例如,fi,1是該序列中的第一項,表示文件頭碎片;fi,k是該序列最后一項,表示文件尾碎片,這通常是根據文件類型頭尾簽名特征確定的。

        3) 元數(shù)據性,用來說明(filei,k)的文件名、大小,甚至是由哪個進程打開等信息。需要說明的是,(filei,k)具有元數(shù)據,但并不是基于該序列中的頁面碎片提取,而是從含有操作系統(tǒng)相關結構的頁面碎片中提取。

        為此,一個內存碎片文件可以抽象為metadata ‖ (filei,k)。根據以上分析,基于內存映像的碎片文件雕刻問題可以看作集合S到metadata ‖ (filei,k)的一個映射,即S→ metadata ‖(filei,k),也就是找到這種映射關系,就能解決內存碎片文件雕刻。

        3.2 碎片雕刻問題分析

        內存碎片文件雕刻問題是一個內存碎片集合到文件元數(shù)據和文件序列的映射問題,該問題可以分解為以下3 個子問題。

        1) 文件碎片子集元素確定子問題

        含有數(shù)據文件的頁面碎片集合僅是整個內存映像碎片集合的一部分。此外,含有操作系統(tǒng)內核模塊、內核進程、硬件驅動,以及應用進程等的頁面也都是內存映像碎片集合中的元素。因此構成數(shù)據文件的碎片集合是內存映像碎片集合的一個子集,利用集合劃分思想,數(shù)據文件碎片子集和內存碎片集合S之間具有如下關系

        其中,0≤i≤k,filei表示文件碎片子集,其實質是具有特定文件類型(如office 文件類型、Acrobat pdf 文件類型等)的一個數(shù)據文件的所有頁面。文件碎片子集元素確定子問題就是確定一個數(shù)據文件中的所有頁面碎片,即建立碎片集合S到文件碎片子集filei的映射,即S→ filei,利用該映射關系獲得數(shù)據文件碎片子集中的所有碎片。

        2) 文件碎片子集元素關系順序確定子問題

        由于內存碎片集合S中元素的無序性,并且文件碎片子集filei?S,根據集合中元素無序性特征,則filei中元素也具有無序性。假設filei中有m個元素 碎 片,則 可 能 的 連 接 順 序 共 有m× (m? 1) × (m? 2) × …× 2 ×1種。文件碎片子集元素關系確定子問題就是要找到filei中元素之間的唯一的序列,即 filei→ (filei,k)的映射。

        3) 文件元數(shù)據構建子問題

        文件元數(shù)據通常是指文件系統(tǒng)中維護文件內容數(shù)據的相關數(shù)據。目前,內存數(shù)據文件元數(shù)據尚沒有定義,本文認為內存文件元數(shù)據是指在內存中由操作系統(tǒng)及其相關結構維護的文件信息,例如文件名、文件大小等數(shù)據。因此,含有內存文件元數(shù)據的頁面碎片并不是某個filei碎片子集中的元素,而是具有操作系統(tǒng)結構的內存碎片。要構建內存文件元數(shù)據,前提是必須找到含有操作系統(tǒng)相關數(shù)據結構的內存碎片,并在該內存碎片上找到文件元數(shù)據的具體位置。

        由于內存碎片元素確定性、互異性和無序性,通過直接分析內存碎片中的二進制數(shù)據難以解決上述3 個子問題。基于內存管理理論和機制,內存頁面是通過操作系統(tǒng)的內核對象結構進行管理的,也就是說如果找到內存映像中含有操作系統(tǒng)相關結構的碎片,并針對文件對象及其鏈接關系進行逆向重建,有望解決碎片文件雕刻的3 個子問題。

        3.3 內存碎片文件雕刻模型

        碎片文件雕刻模型的基本思想是利用內存中操作系統(tǒng)結構逆向分析技術,分析Windows 操作系統(tǒng)中文件對象結構及相關結構,逆向構建文件對象的結構鏈,通過結構鏈中的指針關系確定文件碎片子集中的元素及碎片元素間的連接關系,并利用相關結構中文件名等字段構建文件元數(shù)據。本文選擇將文件對象作為結構鏈逆向重建的起始結構,其優(yōu)點在于能夠解決現(xiàn)有雕刻算法中進程被關閉或者被覆蓋后造成文件不能雕刻的問題。利用WinHex工具分析可知,文件對象結構的內存分配單元具有明顯的簽名特征。文件對象分配單元簽名十六進制特征如圖1 所示。

        圖1 文件對象分配單元簽名十六進制特征

        每個文件對象的池分配單元的簽名特征都含有“46 69 6C E5”這樣的十六進制信息,因此該簽名特征可以定位文件對象結構鏈的起始結構。此外,構成文件的內存頁面都有一個頁面指針,通過文件頁面指針就能夠確定文件的內存頁面以及該頁面在文件中的位置順序。本文通過重建文件對象結構及其中的關鍵字段,并根據字段中的指針地址確定文件對象結構鏈接指向關系,最終確定文件的碎片元素及其關系,構建的內存碎片文件雕刻模型如圖2 所示。

        圖2 內存碎片文件雕刻模型

        如圖2 所示,內存碎片雕刻過程可分為4 個階段:預處理、文件對象結構鏈逆向重建算法、內存頁面指針關系逆向重建算法和文件類型簽名特征驗證算法。

        預處理。先對內存映像進行掃描分析,去除非數(shù)據文件內存碎片,包括利用0/1 二進制數(shù)據統(tǒng)計特征過濾不含有任何數(shù)據的內存頁面碎片,利用內存取證中的進程重建機制去除含有可執(zhí)行代碼的內存碎片頁面。最終獲取內存數(shù)據文件碎片及元數(shù)據碎片的集合。

        文件對象結構鏈逆向重建算法。1) 利用文件內核對象內存分配簽名特征,掃描內存映像碎片集合,確定該簽名特征位置,同時記錄內存映像碎片集合中簽名個數(shù)(對應內存中文件個數(shù));2) 根據簽名特征位置,定位文件對象分配單元,并逆向重建其關鍵字段;3) 根據文件對象結構的鏈接指向關系,確定指向內存碎片的頁面指針。依據頁面指針確定文件碎片子集中元素的個數(shù)。

        內存頁面指針關系逆向重建算法。確定頁面指針的關系,構建文件碎片子集中頁面之間的連接順序關系。根據內存碎片文件雕刻模型可知,碎片文件雕刻成功的關鍵是能夠逆向重建文件對象,并且能夠獲得結構中的關鍵變量,尤其是結構鏈指針。如果指針值有誤差,則可能導致錯誤的雕刻結果。為了進一步提升雕刻結果的正確性,引入文件類型簽名特征驗證算法針對雕刻結果進行驗證,從而確認雕刻結果十六進制類型是否符合文件類型要求。

        文件類型簽名特征驗證算法。利用文件類型十六進制頭尾特征,例如jpg 文件類型的文件頭十六進制特征是“FFD8FFE000104A464946”,文件尾特征是“FFD9”,針對內存中jpg 雕刻文件進行比較驗證,從而驗證雕刻文件的簽名特征。

        4 算法設計

        4.1 文件對象相關結構逆向重建

        Windows 系統(tǒng)的內核結構、內存的相關管理機制并沒有完全公開,并且不同系統(tǒng)版本、機器字長、分頁模式等因素對內存映像分析影響很大。本文使用微軟公司提供的內核調試工具WinDbg 對文件對象及相關結構進行逆向分析重建。文件對象及相關結構在內存中的結構鏈關系如圖3 所示。

        圖3 內存文件結構鏈關系

        通過逆向重建圖3 中文件對象及其鏈接關系,就能確定內存文件碎片集合及其之間的關系,需要逆向重建的結構如下。

        1) FILE_OBJECT

        Windows 文件對象(FILE_OBJECT)是Windows 系統(tǒng)運行中進程訪問(修改、刪除)文件時構建的一個結構,并被分配給那個文件。重建文件內容數(shù)據,首先要定位FILE_OBJECT。該結構的關鍵變量如下。

        FILE_OBJECT 結構包含幾個重要的成員,通過偏移量0x030 處的FileName 可以查看文件的名稱;0x004 處的 DeviceObject 域包含一個指向DeviceObject 的指針,其中包含了驅動和設備信息;對于數(shù)據文件雕刻來說,最重要的成員變量在偏移量為 0x014 的位置,它是一個指向SECTION_OBJECT_POINTERS 結構的指針,下文詳細分析了該結構。

        2) SECTION_OBJECT_POINTERS

        內存管理器和緩存管理器應用該結構存儲文件映射和緩存有關的信息,該結構的關鍵變量定義如下。

        該結構包含 3 個指針變量。其中,DataSectionObject 指向CONTROL_AREA 結構,用于維護數(shù)據文件,例如Microsoft word 文件;ImageSectionObject 用來表示內存中可執(zhí)行文件;SharedCacheMap指向一個SHARED_CACHE_MAP結構變量,該結構與操作系統(tǒng)中的高速緩存有關。

        3) _CONTROL_AREA

        _CONTROL_AREA 是一個內存管理結構,是整個內存映射的核心,同時也是聯(lián)系SUBSECTION 和MMPTE 結構的重要結構。該結構關鍵變量如下。

        偏移量0x01c 的變量Subsection 是指針變量,通過該指針可以定位SUBSECTION 結構。

        4) SUBSECTION 結構

        SUBSECTION 結構用來管理文件映射到內存中的各個頁面。該結構關鍵變量如下。

        偏移量0x010 處的SubsectionBase 是一個指向MMPTE 結構的指針,這個結構實際上是一個原型PTE 的數(shù)組。原型PTE 與硬件PTE 相關聯(lián),因此通過該結構可以找到數(shù)據文件頁面的存儲內容。MMPTE 結構變量如下。

        _SHARED_CACHE_MAP 結構管理內存中的緩存文件,該結構的關鍵變量如下。

        該結構中的Vacbs 指針變量指向_VACB 結構,使用的是虛擬地址,通過該地址能夠找到數(shù)據文件在虛擬地址中的數(shù)據。盡管并不是文件的所有部分都被映射到緩存中,但是緩存中的文件部分數(shù)據具有極其重要的特性,因為如果文件的部分內容在緩存中被找到,則意味著文件的這部分內容已經被某一進程最近或經常使用和訪問。

        4.2 內存碎片文件雕刻算法

        本節(jié)基于逆向工程重建的文件對象及其相關的內存結構設計內存碎片文件雕刻算法。如圖4 所示,內存碎片文件雕刻算法分為內核文件對象掃描重建、文件碎片提取與重建、緩存碎片文件雕刻3 個子算法。該算法中需要多次定位對應的結構,根據內存頁式管理的特點,虛實地址轉化首先要定位頁目錄表的基地址DTB。分析得知,文件對象重建中虛擬地址的轉化需要csrss.exe 系統(tǒng)進程的DTB,進而按照32 位或64 位系統(tǒng)虛擬地址字段的劃分來完成整個的地址轉化過程,定位文件典型及其相關結構鍵的物理地址。

        圖4 內存碎片文件雕刻算法

        1) 內核文件對象掃描重建子算法的詳細過程如下。

        ①利用文件對象簽名特征掃描算法識別文件對象分配單元,并定位FILE_OBJECT 對象,重建該結構的“SectionObjectPointer”字段變量,該字段指向“SECTION_OBJECT_POINTERS”結構,該結構由Windows 構建。

        ② 定位SectionObjecPointer指向的SECTION_OBJECT_POINTERS 結構,重建該結構的DataSectionObject 和SharedCacheMap 字段變量。

        2) 文件碎片提取與重建子算法

        ①定位DataSectionObject 指向的CONTROLAREA結構,重建該結構中的Subsection 字段變量。

        ② 定位Subsection 字段,并重建該結構中的SubsectionBase 的指針和NextSubsection 的指針變量。

        ③定位SubsectionBase 地址,重建MMPTE數(shù)組結構變量。

        ④ 遍歷MMPTE 數(shù)組指向的頁面,并將其數(shù)據寫入到新建文件中。每個MMPTE 可索引一個4 096 B的頁面,而一個完整的扇區(qū)有512 B,每個MMPTE最多可以對應8 個扇區(qū)。

        此外,每一個Subsetction 均有一個指針指向NextSubsetction,表示文件下一部分所處的內存頁面。如果文件的大小足以用一個SubSetction 來管理,則此處為空。

        3) 緩存碎片文件雕刻子算法

        ①定位 SharedCacheMap 字段指向的SHARED_CACHE_MAP 結構,重建該結構的Vacbs指針變量。

        ② 定位VACB 結構,重建VACB 結構。轉換VACB 結構中的BaseAddress 地址為物理地址。

        ③如果VACB 結構中的BaseAddress 為0,則表示該文件對應的緩存無效,算法退出。否則繼續(xù)執(zhí)行④。

        ④ 定位VACB 結構中的BaseAddress 變量,遍歷該結構數(shù)組,將每一個頁面數(shù)據寫入新建文件,重建碎片文件內容。

        5 實驗結果及分析

        本文以Windows 7 操作系統(tǒng)為內存文件雕刻實驗對象。根據StatCounter 在2020 年10 月發(fā)布的全球PC 操作系統(tǒng)市場份額排名,Windows 7 操作系統(tǒng)占據16.8%的市場份額[28],Windows 7 操作系統(tǒng)的實際用戶數(shù)量肯定還要高于這個比例。雖然不同版本操作系統(tǒng)的內存對象結構不盡相同,但是本文中介紹的獲取物理內存中數(shù)據的基本方法可以推廣到Windows 8、Windows 10 等操作系統(tǒng)中。

        5.1 碎片文件雕刻結果

        實驗機器是ThinkPad X230,Intel? Core?i5-3230M CPU @2.60 GHz,內存容量為4 GB,64 位Windows 7 操作系統(tǒng)。選擇doc、pdf、txt、jpg 這4 種常用文件類型數(shù)據文件進行測試,驗證本文方法對內存中數(shù)據文件的元數(shù)據(如文件名)和文件內容的雕刻能力,各選擇10 個文件,文件詳細情況如表1 所示。

        表1 不同類型文件尺寸

        本文設計了3 個不同的實驗,用于驗證本文方法在網絡攻擊的不同階段(例如攻擊前、攻擊中、攻擊后)物理內存中數(shù)據文件雕刻能力和可行性,實驗過程分別如下。

        1) 實驗1。從本地磁盤中分別利用美圖看看、Microsoft Office、Acrobat 閱讀器、Notepad.exe 等工具打開f0 文件(注意文件后綴不同),然后轉儲內存映像。該實驗主要用于測試內存映像中數(shù)據文件雕刻的可行性。

        2) 實驗2。從本地磁盤中分別利用美圖看看、Microsoft Office、Acrobat 閱讀器、Notepad.exe 等工具打開表1 中所有文件,然后轉儲內存映像。該實驗主要驗證攻擊過程中黑客使用多個不同文件時內存映像中數(shù)據文件的雕刻能力,同時分析多個不同類型文件所占內存頁面間是否相互影響。

        3) 實驗3。關閉所有文件,然后轉儲內存映像。該實驗驗證黑客關閉攻擊過程中打開使用的數(shù)據文件在內存中是否遺留文件痕跡。

        針對實驗1 獲得內存映像,雕刻結果從文件元數(shù)據和文件內容進行評價,文件元數(shù)據主要是指文件的名稱,即文件的完整路徑。Scalpel[29]是一款經典的基于磁盤的文件雕刻工具,本文選擇Scalpel 1.60 和內存碎片文件雕刻算法進行比較,結果如表2所示。

        表2 內存映像碎片文件雕刻結果

        表2 中,√表示雕刻成功,×表示雕刻失敗。從表2 結果可知,本文方法不但能夠雕刻出實驗1中內存映像的文件內容數(shù)據,而且可以雕刻出文件的完整路徑,這對于確定內存中文件來源具有意義,例如文件可能來源于網絡。利用Scalpel 1.60工具針對該內存映像進行雕刻,只有txt 文件可以進行成功雕刻,√×表示雕刻出36 個txt 文件,而f0.txt 文件的內容分散在這些文件中,即雖然內容找到了,但沒有成功雕刻一個完整文件。

        針對實驗2 獲得的內存映像,本文方法和Scalpel 1.60 的實驗結果如表3 所示。

        表3 內存映像碎片文件雕刻結果(實驗2)

        從表3 可以看出,本文方法能夠雕刻出所有元數(shù)據,并能夠雕刻出所有txt 文件和大部分的jpg、doc、pdf 文件。和實驗1 不同的是,雕刻失敗的文件并不是較大的文件,即文件大小和文件成功雕刻之間沒有關系,本文推測可能是由于多個文件同時在內存中打開而相互影響,有些文件頁面交換到虛擬內存,導致內存中文件頁面缺失。

        針對實驗3 獲得的內存映像,本文方法和Scalpel 1.60 實驗結果如表4 所示。

        表4 內存映像碎片文件雕刻結果(實驗3)

        表4 結果表明,實驗3 中文件內容雕刻精確度為42.5%,遠低于實驗2 中的87.5%。可能原因是進程關閉后導致結構鏈逆向重建時某些關鍵指針字段值不能有效建立。另外,文件元數(shù)據也是通過緩存雕刻子算法獲得的,這說明在實際的數(shù)字調查過程中需要綜合利用文件雕刻算法獲得有用的調查信息。

        5.2 PDF 文件雕刻算法比較分析

        文獻[30]提出了一種利用pdf 構成對象模式特征掃描和分類算法從內存映像中雕刻pdf 文件的算法,該算法實驗結果表明分層聚類算法優(yōu)于k-均值算法。本文利用文獻[30]中pdf 文件雕刻算法(其中分類算法利用分層聚類算法)針對實驗1、實驗2 和實驗3 獲得的內存映像進行雕刻,雕刻實驗結果如表5 所示。

        表5 pdf 文件雕刻結果

        表5 實驗數(shù)據表明,在所有實驗場景中,本文算法成功雕刻pdf 文件平均精確度為63.3%,元數(shù)據精確度100%,而文獻[30]算法pdf 文件平均精確度36.7%,這些結果表明本文算法相比文獻[30]算法能夠雕刻更多pdf 文件數(shù)據。另外,文獻[30]算法對于pdf 類型文件元數(shù)據精確度為0,表明該算法不能從內存映像中雕刻pdf 相關的元數(shù)據信息(例如文件名等)。

        本文算法和文獻[30]算法對于所有實驗中的內存映像中的pdf 文檔內容的平均雕刻精度都未能達到100%,可能原因在于構成pdf 文件的對象元素有個別不在內存映像中。另外,本文雕刻算法平均精確度優(yōu)于文獻[30]算法,一方面,因為本文算法的結構鏈逆向分析方法能夠有效確定單個pdf 文件的對象元素及其連接關系,而文獻[30]算法利用pdf 對象模式特征確定pdf 對象元素,導致不同pdf 文檔的相同對象元素的區(qū)分和重組難度大,尤其對于具有相似語義的文檔來說則更容易混淆;另一方面,因為文獻[30]方法僅能針對pdf 文件,且僅關注pdf 文件中的文本對象,實際上pdf 文件中還包括其他的對象,例如圖像等。本文算法可以針對不同文件類型,而且通過結構鏈之間的指針關系來確定構成文檔內存頁面之間的關系,通用性強。

        5.3 宙斯木馬病毒入侵分析

        本案例選擇Honeynet 項目挑戰(zhàn)提供的內存映像文件Bob.vmem[31],該內存映像中可能存在Zeus病毒木馬。Zeus 病毒木馬通過Acrobat 工具對系統(tǒng)進行感染,本文通過內存碎片文件雕刻算法對該內存映像中的pdf 文件進行雕刻,并進行進一步分析,更加確認了Zeus 病毒木馬的感染過程。

        利用本文方法對該內存映像進行雕刻,共雕刻出16 個文件元數(shù)據,其中pdf 文件4 個,如圖5所示。這些元數(shù)據表明,在Zeus 病毒木馬入侵期間黑客打開或者訪問了這些文件。

        圖5 Bob.vmem 映像文件元數(shù)據雕刻

        利用WinHex 工具針對雕刻出的pdf 文件進行分析,發(fā)現(xiàn)其中含有“JavaScript”和“OpenAction”等pdf 文件類型結構對象。綜合該案例其他線索證據,黑客正是利用這些結構對象將Zeus 病毒木馬感染給該系統(tǒng)。

        需要說明的是,Acrobat 閱讀器不能打開雕刻出的4 個pdf 文件,但這并不影響通過這些pdf 文件內容發(fā)現(xiàn)網絡攻擊的感染過程,這進一步表明內存數(shù)據文件的雕刻有助于網絡攻擊威脅調查和分析。

        6 結束語

        本文提出了一種基于內存映像的碎片文件雕刻模型,基于該模型提出一種結構鏈逆向的碎片文件雕刻算法,該算法能夠獲取遺留在內存中的文件數(shù)據。實驗結果表明,本文算法能夠成功雕刻恢復內存映像中的文件元數(shù)據信息,對于通常情況下的內存映像文件雕刻的精確度達到87.5%,遠高于基于磁盤文件雕刻算法(Scalpel 1.60),這對網絡威脅攻擊調查具有重要意義。在未來的工作中,將進一步探究Linux 系統(tǒng)中碎片文件雕刻技術和算法。

        猜你喜歡
        頁面結構
        微信群聊總是找不到,打開這個開關就好了
        大狗熊在睡覺
        刷新生活的頁面
        《形而上學》△卷的結構和位置
        哲學評論(2021年2期)2021-08-22 01:53:34
        論結構
        中華詩詞(2019年7期)2019-11-25 01:43:04
        新型平衡塊結構的應用
        模具制造(2019年3期)2019-06-06 02:10:54
        論《日出》的結構
        創(chuàng)新治理結構促進中小企業(yè)持續(xù)成長
        基于BIM的結構出圖
        同一Word文檔 縱橫頁面并存
        国内自拍愉拍免费观看| 欧美性xxx久久| 风流少妇一区二区三区| 男女搞事在线观看视频| 亚洲熟妇自偷自拍另欧美| 欧洲-级毛片内射| 最新国产美女一区二区三区| 男女啪啪在线视频网站| 国产亚洲成av人片在线观看| 成熟丰满熟妇高潮xxxxx| 亚洲日本无码一区二区在线观看| 成人自拍偷拍视频在线观看| 熟女无套高潮内谢吼叫免费| 国精产品一品二品国在线| 亚欧同人精品天堂| 日本不卡一区二区三区久久精品| 国产综合精品| 精品久久久久久国产| 日韩精品中文字幕人妻系列| 日韩有码在线观看视频| 国产精品久久久久9999小说| 国产高清视频91| 国产精品很黄很色很爽的网站 | 天堂8中文在线最新版在线| 性一交一乱一伦一视频一二三区| 国产精品中文字幕日韩精品| 香港三级午夜理论三级| 精品人妻潮喷久久久又裸又黄| 日韩少妇无码一区二区免费视频| 黄色国产精品福利刺激午夜片| 国产精品成人va在线观看| 免费在线亚洲视频| 澳门精品一区二区三区| 人妻少妇看a偷人无码| 国语少妇高潮对白在线| 欧美丝袜秘书在线一区| 久久精品国产亚洲av成人文字| 中文字幕在线精品视频入口一区| 久久精品无码一区二区三区不| 久久久亚洲一区二区三区| 亚洲一区二区三区四区五区黄|