季雨辰,伏 曉,石 進,駱 斌,趙志宏
(1.安徽理工大學計算機科學與工程學院,安徽 淮南 232001;2.南京大學 a.軟件學院;b.國家保密學院,南京 210093)
計算機取證是一門專門研究如何按照符合法律規(guī)范的方式收集、處理計算機犯罪證據的新興學科,它能為計算機犯罪案件的調查審理提供關鍵技術支撐和主要裁判依據。入侵取證[1-2]是計算機取證中的一個分支,由于入侵取證在計算機犯罪中占了很大一部分,且其種類繁多、危害性大,因此近幾年成為信息安全和法學研究者共同關注的熱點。
事件重構是計算機入侵取證的關鍵環(huán)節(jié)。事件重構通過分析各類可獲得的數據確定可能發(fā)生的事件,識別被調查事件的時間、關系、功能等因素,重構可能的事件序列,重現入侵行為過程,模擬犯罪場景。取證調查者對被入侵計算機進行證據收集、保存和分析后,處理結果會被提交到法庭上作為法律證據。但這些證據的可信度并不高,有時并不足夠成為法庭證據。通過收集的證據判斷入侵場景中事件是否發(fā)生,由分析證據重構得到事件發(fā)生的起始,經過和結果才能增加證據的準確性、可信度和可靠度,證據說服力和法律采信度才更高。
為此,本文論述入侵事件重構技術的最新發(fā)展狀況,研究較為流行的入侵事件重構方法,總結并比較各種方法的優(yōu)缺點。
取證調查者在事件重構時普遍依賴于商業(yè)工具,如EnCase、Forensic Toolkit等,但這些工具的主要任務還處于從被分析系統(tǒng)中收集證據的階段。另外,隨著網絡的迅速發(fā)展,出現了如NetDetector、Wireshark等獲取網絡通信的工具。但是網絡日志對加密通信并沒有幫助,通常只提供系統(tǒng)應用層的信息。同時,這兩者均基于人工處理,主觀解釋占主要部分,如果基于調查者的主觀意識,不僅容易出錯,而且分析過程難以重現,證據在法庭上受采納的可能性不高。另一種廣泛使用的方法是使用應用層合并的工具,通過查看內存和基于狀態(tài)的分析技術進行事件重構。不足在于這些方法基于的分析模型要求并不嚴格,信息極有可能丟失或被漏過,取證過程通常也需要花費大量時間。
除計算機入侵外,計算機犯罪還有很多,如網絡騷擾E-mail勒索、保存及散播色情文件等。對于這些犯罪行為的重構也是事件重構的重要部分。如E-mail勒索,文獻[3]提出了一種基于模擬的方法:首先假設出所有可能的事件構建攻擊樹,再將收集到的信息抽象化,最后基于已有模型(Bruschi和Monga提出的取證圖表)重構得到事件序列。與計算機入侵相比,這些犯罪過程簡單得多,其重構方法并不適用于復雜的入侵重構。因此,對這類方法不予探討。
現有事件重構的證據來源可分為針對系統(tǒng)應用層對象/事件和操作系統(tǒng)層中的對象/事件2個部分。
系統(tǒng)應用層對象主要包括磁盤鏡像、系統(tǒng)日志文件、注冊表項、文件系統(tǒng)等。除此之外,隨著網絡使用的日益頻繁,網絡日志也成為重構來源的重要部分。通過Wireshark對自身網絡通信的檢查如圖 1所示,一些主要的協(xié)議如TCP、IP、HTTP、DNS等,雖然傳輸中進行了加密,但仍然可以獲得如IP地址、修改時間等通信信息。
圖1 Wireshark對2種協(xié)議的檢查
基于操作系統(tǒng)層對象/事件的重構基本基于操作系統(tǒng)內核實現。其原理比較安全,不易被入侵者修改破壞入侵時留下的證據。重構系統(tǒng)通過對系統(tǒng)調用層事件/對象進行監(jiān)視來收集證據。通常重構從一個檢測點開始(比如有可疑內容的文件),然后建立一個與危險進程或文件有關的關系鏈,從而重現入侵攻擊的行為過程。
3.1.1 日志
日志是系統(tǒng)所指定對象的某些操作和其操作結果按時間有序排列的記錄文件或文件集合。每個日志文件都由日志記錄組成,每天的日志記錄描述了一次單獨的系統(tǒng)事件。
文獻[4]提出一種依賴于事件關聯(lián)模型的自動診斷工具,通過分析日志來重構攻擊行為。文中將攻擊者的行為定義為原子攻擊,即由多個日志文件得到的一系列事件組成的攻擊系統(tǒng)的單個行為。其關鍵技術事件關聯(lián)模型可以檢測到多步攻擊從而降低誤報率。其中,事件收集模塊收集日志存到時間庫中;事件預加工模塊校正日志文件的時間戳,將在同一時間線上的事件相匹配;事件關聯(lián)模塊發(fā)現具體的攻擊行為,關聯(lián)得到具體攻擊,生成完整的多步攻擊場景。
文獻[5]也提出一種基于日志的取證模型。由日志提取出的事件被標簽為樹型結構,事件由代數表達式表示,表達式中的參數表示需要分析的相關信息。通過動態(tài)、線性、基于時間的邏輯公式表示模型的屬性,模擬的攻擊場景以及重構的事件序列之間的關系。
3.1.2 注冊表
在Windows注冊表中也存儲了大量的信息,包括核心系統(tǒng)配置、用戶具體配置、安裝應用的信息、用戶認證的信息等。另外每個注冊表鍵值在被修改時都會記錄下對應的時間戳。
Timothy分析了注冊表的結構,Windows中hives文件以樹結構組織,類似于一個文件系統(tǒng)。在注冊表中,值類似于文件系統(tǒng)中的文件,存儲未處理數據的名字和類型信息;鍵值類似于目錄,為子鍵和值的父結點。利用鍵值與值之間的關系即可以恢復注冊表中部分被刪除的鍵、鍵值及其他結構。但是當一個子鍵被刪除時,刪除后剩余的空閑空間并不是被擦去,而是保留原有位置的子鍵的值。因此,該方法恢復操作的可信度并不高[6]。
現在查看注冊表的主要工具包括:AccessData Registry Viewer(選取一些有用的注冊表選項),Protected Storage PassView(自動獲取注冊表中的用戶名和密碼),Register Editor(獲得一些軟件的用戶名,瀏覽器中緩存URL)等[7]。
3.1.3 文件系統(tǒng)
文件系統(tǒng)是操作系統(tǒng)中關鍵文件的集合,研究的主要對象包括文件類型、文件內容、對該文件執(zhí)行操作的進程、被訪問的形式等。
文獻[8]提出了一種基于文件系統(tǒng)行為進行重構時間線的方法,通過監(jiān)視文件系統(tǒng)的操作,在不連續(xù)的時間點獲得系統(tǒng)快照來描述不同的軟件應用,并通過神經網絡算法(基于feedforward算法和recurrent算法)分析出的數據集,將文件系統(tǒng)進行分類從而得到之前運行的應用程序的可執(zhí)行部分。該方法主要分析日志文件、注冊表項、文件系統(tǒng)和空閑堆棧。不足之處在于不同的應用程序需要不同的算法,甚至是同一軟件的不同版本,都需要一個巨大的文件系統(tǒng)行為數據庫支持。
這部分主要基于實時取證,不同于以上介紹的事后取證。代表工具[9]包括BackTracker和Forensix,方法以內存取證為主。
3.2.1 工具
Backtracker是一個由用戶執(zhí)行產生的事件序列的圖形化界面系統(tǒng),實時地在系統(tǒng)調用層記錄事件(包括可能影響系統(tǒng)檢測點的事件,如讀、寫、執(zhí)行、創(chuàng)建子進程等)和系統(tǒng)對象(包括進程、文件以及文件名)。但 Backtracker并不監(jiān)控內存映射對象的操作。一旦入侵者獲得管理員權限,就會被終止。
SNARE是一種系統(tǒng)入侵分析和報告環(huán)境,通過動態(tài)讀取Linux中內核模塊的守護進程LinuxDaemon解決問題。它把系統(tǒng)調用(如execve、open、mkdir等)放入信息收集的例程中,收集進程和用戶執(zhí)行的一些有疑問的系統(tǒng)調用信息。SNARE并不提供任何事件重構序列的自動分析,只當調查者查看系統(tǒng)事件的高權限時才會執(zhí)行分析任務。共享內存的存取并不會檢查,同時也沒有提供取證過程中對取證模塊的監(jiān)督保護機制。
Forensix基于SNARE并通過3個關鍵技術降低人力管理,提高取證分析的準確性:在系統(tǒng)調用層監(jiān)視目標系統(tǒng)的執(zhí)行,提供所有行為應用的視圖;提供保密的系統(tǒng),通過私有的接口存儲系統(tǒng)調用層信息流;提供數據庫技術支持高級存儲日志的查詢功能。Forensix使用與 Backtracker相同的系統(tǒng)調用和對象日志分析技術,區(qū)別在于分析階段Forensix依賴數據庫技術從檢測點還原攻擊重構。
3.2.2 內存證據獲取
內存證據獲取主要基于硬件和軟件。基于軟件使用操作系統(tǒng)提供的函數獲取證據,基于硬件直接訪問內存獲取證據。通常認為硬件獲取由于是直接操作而更加安全可靠,但有研究發(fā)現并非如此,文獻[10]提出一種硬件和軟件相結合的機制。
(1)內核層應用程序
基于內核層的免費程序主要包括Memory dd、Windows Memory Toolkit、Memoryze等。但都存在一些問題:實現的前提是在目標主機上運行用戶級代碼,但當鏡像程序運行時操作系統(tǒng)和其他程序仍在運行,內存也隨之變化,鏡像并不實時;魯棒性低,存在許多關于網頁高度緩存的問題;過于依賴目標操作系統(tǒng),容易受到內核級別木馬的侵入。針對這些問題,文獻[11]提出將獲取機制作為操作系統(tǒng)的一個模塊整合到系統(tǒng)內核中,每次在系統(tǒng)啟動時裝載模塊,從而調用特殊的鍵盤操作獲取證據。
(2)操作系統(tǒng)注入
文獻[12]提出在潛在被入侵的主機操作系統(tǒng)內核中插入一個獨立、具體的操作系統(tǒng)BodySnatcher來獲取內存。BodySnatcher會從運行的操作系統(tǒng)中搶占全部的硬件控制來獲取主機內存,然后保存正在運行的操作系統(tǒng)狀態(tài),在獨立的內存子集中引導子模塊acquisition OS使用主機硬件中類似的子集作為輸出備份主機物理內存的鏡像。但通過操作系統(tǒng)注入的方法現在只針對特定的平臺,并且在寫出的過程中只限于單核,將會浪費大量的時間。因此,盡管想法很好,但技術上受限很大。
(3)hibernation文件
Windows從 2000以后提供了掛起硬盤開機——休眠(hibernation)模式。當系統(tǒng)即將進入休眠模式時,系統(tǒng)狀態(tài)包括內存和進程中的信息會被凍結并被保存到硬盤上的hibernation文件中(hiberfil.sys),這樣即使斷電也不會丟失數據。hibernation文件通常存放在操作系統(tǒng)安裝的根目錄下,并且內容永遠不會被抹去[13]。但hibernation文件只能決定文件中保存了哪些頁,并不能重新生成物理內存狀態(tài),因此,不能保證完全保存下物理內存。
(4)虛擬機
使用虛擬機技術可以暫停運行中的操作系統(tǒng)凍結系統(tǒng)狀態(tài),將虛擬內存保存到主機硬盤上。除此之外,虛擬機還可以提供包括 CPU、虛擬內存和硬盤的快照。實驗證明這樣的內存快照在針對構建分析性的工具的研究中非常有用[14]。在虛擬機技術中,鏡像僅作為虛擬機鏡像,并沒有解決主機的鏡像問題?,F在虛擬化技術應用并不廣泛,但隨著基于Internet服務重要性的提高,可能會有所改變。
(5)內存dump文件
當系統(tǒng)突然停止工作時,Windows2000及以上版本都會在系統(tǒng)硬盤上編寫debug信息(內存dump文件)。當系統(tǒng)崩潰狀態(tài)被凍結時,主內存和CPU的相關信息就會被保存到系統(tǒng)根目錄下生成dump文件。dump文件一般可以通過Microsoft Debugging Tools for Windows打開或人工分析。除此之外,還可以使用第三方應用程序或內置 CrashOnCtrl Scroll的特點。但是使用這個方法會覆蓋系統(tǒng)頁文件,因此,這個方法不能得到完全正確的內存映像。
3.2.3 內存證據分析
內存證據分析有3個方面:
(1)進程分析
早期的進程分析主要是枚舉出系統(tǒng)上已裝載程序的列表。但是由于直接內核對象操作技術可以對Windows上一些關鍵數據結構(如進程的 EPROCESS結構、線程的ETHREAD結構、鏈表等)進行操作,如將進程從 Active ProcessLinks列表上直接刪除,因此遍歷列表的方法并不可靠。對此文獻[15]提出使用基于簽名的掃描器,通過規(guī)定一系列的規(guī)則來精確地描述系統(tǒng)進程或線程的結構。將結果和標準進程列表進行比較,如有不同則證明了惡意程序的存在。
類似的策略還有文獻[16]提出的依賴于非關鍵對象的特點的可靠模式。在此情況下攻擊者可以在不影響系統(tǒng)的穩(wěn)定的情況下改變非關鍵域的值。針對這種情況,創(chuàng)建了只對系統(tǒng)功能有關鍵作用域的簽名來增強簽名的健壯性。
在以上 2種方法的基礎上,又產生一種將掃描和列表遍歷結合的技術,依靠內核進程控制區(qū)域存儲處理器特定的數據,創(chuàng)建單獨的堆棧KPRCB,保存與CPU相關的數據和調度信息,根據這些信息獲得進程列表[17]。
(2)系統(tǒng)文件分析
系統(tǒng)文件分析主要通過分析進程環(huán)境堆棧檢查已打開文件的列表和由程序引用的 dll列表。PEB通常包含一個Ldr成員和3個雙向列表,保存所有裝載的dll名字、大小和基地址。取證者列舉出每個單獨的列表即可發(fā)現是否有入侵攻擊,但受限于不同的rootkit。
文獻[18]提出一種 Windows內存?zhèn)浞葜械奶摂M地址描述符樹結構, VAD樹將物理內存分解為可管理的且有語法意義的單元,而不是運行進程的頁面目錄,通過讀取VAD樹描述內存區(qū)域的備份。當一個進程用虛擬分配實際訪問內存后,內存管理會在VAD樹中創(chuàng)建一項。當進程試圖找到相應的內存頁時,會創(chuàng)建對應的頁面目錄和頁表項,但這只能對運行中的進程生成VAD樹。進程一旦結束,內核會將指向VAD根結點的指針置零。因此,直接內核對象操作攻擊可以不與樹中的VAD結點相連接,從而將VAD所依賴的數據結構隱藏起來躲避入侵檢測。
(3)系統(tǒng)狀態(tài)分析
系統(tǒng)狀態(tài)分析主要對 EPROCESS結構進行分析。EPROCESS結構為執(zhí)行程序進程,在Windows 中每個進程都由一個執(zhí)行程序進程塊表示,其中保存了很多和系統(tǒng)相關的重要數據。如Starttime和Exittime域表示了進程開始和結束的時間,可以用來創(chuàng)建時間線;組成員 Token可以恢復安全上下文,獲得與進程相關的權限、賬號等信息[19]。通常進程結束后會在 ActiveProcessLinks中被刪除,但EPROCESS在進程結束時依然在內存中。因此,這類數據在程序終止24 h后還能恢復。
另外,文獻[20]對DOSKEY結構進行分析,將DOSKEY整合在命令行shell中。通過將DOSKEY駐留在內存中創(chuàng)建緩沖區(qū),將命令存儲在緩沖區(qū)中,由此獲得入侵時控制臺命令符。
在現有的重構方法中,日志分析和時間線重構都基于時間戳,語義完整性分析則根據數據對象之間的因果關系進行重構。重構模型主要基于有限狀態(tài)機模型,包括計算機歷史模型和確定性狀態(tài)自動機模型。
日志是描述計算機系統(tǒng)行為的記錄,主要包括對操作系統(tǒng)、應用程序和用戶的行為。通過日志可以實現包括對用戶行為的檢測、對異常事件的分析、對系統(tǒng)資源或者網絡流量的監(jiān)控等。
日志文件通常由時間戳、信息和子系統(tǒng)所特有的其他信息組成。其中時間戳屬性極為重要。文獻[21]基于時間戳提出一種假設方法:將歷史時鐘值用公式表示作為一個時鐘假設,假設可以通過構建一個影響時間戳的行為模型來測試時間戳證據的一致性,而由時間戳證據得到的時鐘假設可以證明該假設,并重構得到以國內時間為準的事件序列。該方法利用事件之間的因果關系,由時間戳建立假設對事件間的關聯(lián)進行測試,從而確定一致性。
文獻[22]關注于日志文件中的事件是否偽造。其中證據被分為可信證據和不可信證據,可信證據如網絡運營商(ISP)的網絡日志,不可信證據如由計算機得到的日志。由可信證據得到確定的事件序列,其中每一事件都會映射計算機上的一或多個事件。一旦由不可信日志得到的事件序列與可信證據得到的事件序列有矛盾,即可證明日志被篡改偽造。
另外,日志分析技術通常由時間戳來重構事件序列,但時間戳通常依賴計算機時鐘得到,而由此生成相關事件的過程非常復雜,如時鐘偏移導致的不確定性、時區(qū)導致的環(huán)境因素及人為因素(如時鐘干預)等都會影響本機上生成的時間戳。文獻[23]通過比較計算機系統(tǒng)時間和國內時間的關系,發(fā)現計算機的時間段有許多反常的和無法確定的異常點。由于許多無法預測的且存在時間很短的變化,時間戳十分復雜。
語義分析是一種邏輯階段,通過對結構上正確的文本進行上下文有關聯(lián)的性質進行審查來確定類型是否匹配。基于語義的事件重構通過對系統(tǒng)中數據對象之間已無法改變的關系進行分析,從而檢測語義之間的不一致或關聯(lián)關系。如 BackTracker就包含著三角依賴關系:接受對象(如對文件執(zhí)行讀操作的進程)、發(fā)送對象(如被讀的文件)以及事件間的時間間隔。如果事件序列不滿足以上關系,如發(fā)送對象在接受對象之前,就違反了語義邏輯關系。
文獻[24]提出一種自動分析語義完整性工具,通過建立決策樹來發(fā)現數據之間的不一致,進而假設得到攻擊場景。其中,數據間的不一致為語義矛盾,即違反語義規(guī)則的事實。語義規(guī)則是由恒定關系(即系統(tǒng)在管理員權限下存在的數據對象之間的規(guī)范關系)定義的。而針對數據量龐大,使用基于規(guī)則的前向鏈接系統(tǒng),將收集到的證據利用決策樹得到數字對象間的恒定關系,并存入到知識庫中作為推理規(guī)則。如果得到了矛盾的事實,在此基礎上提出一些假設,再通過反向鏈接系統(tǒng)搜索支持假設的事實。
文獻[25]提出一種基于Linux的FACE(Forensics Automated Correlation Engine),從大量的取證目標中自動進行證據搜索和與結果相關聯(lián)的語義分析。包括:對運行中的機器狀態(tài)進行重構;對網絡行為分析語義并得到這些行為的來源;將網絡記錄中的數據與開始該行為進程的用戶相關聯(lián)。FACE的主要數據對象包括內存?zhèn)浞?、網絡記錄、磁盤鏡像、日志文件和用戶的賬戶/配置文件。另外,FACE還可以顯示出單個用戶如開放文件、活動的網絡連接和運行進程的所有行為,從而得到重構數據。
這部分的重構系統(tǒng)主要通過對系統(tǒng)調用層的事件和對象進行監(jiān)視來收集證據。
文獻[26]提出一種通過比較一段時間內由獲得的系統(tǒng)狀態(tài)來重構數字事件的方法。其研究對象 Microsoft Windows Restore Point數據為操作系統(tǒng)在默認情況下自動對注冊表hives文件的快照備份,保存在系統(tǒng)信息目錄下。通過比較數據將被占用的狀態(tài)信息組織得到用戶和系統(tǒng)事件的時間表。通過對系統(tǒng)快照間進行比較,有效地減少事件間的時間跨度。狀態(tài)間的時間間隔越短,可以被確定的狀態(tài)變化越多。
另外,文獻[27]通過 Windows中內置在操作系統(tǒng)中的windows shell和資源管理器跟蹤用戶打開的窗口屬性。稱這些信息為 shellbag,存放在注冊表中的固定位置(HKEY_USERS
文獻[28]在Window本身的數據來源之外發(fā)現應用軟件中的簽名同樣會記錄用戶事件。通過實驗發(fā)現,在 IE8、Firefox和MSN Message2009中,通過簽名都能得到對應軟件記錄的用戶行為和時間戳,這些記錄都會被保存在程序對應的注冊表中。
有限狀態(tài)機模型將受懷疑的電腦視為有限狀態(tài)機,假設入侵者進行某種操作行為后計算機系統(tǒng)處于某一狀態(tài),則所有可能導致這一狀態(tài)的場景或事件都可以通過逆推回溯得到。文獻[29]曾提到,許多數字系統(tǒng)如數字電路、計算機程序和通信協(xié)議等都可以在數學上用虛擬狀態(tài)機來描述,以圖來表示,其中每個節(jié)點代表了每種可能狀態(tài),每個箭頭表示每種可能狀態(tài)間的轉換。
4.4.1 計算機歷史模型
文獻[30]認為每個系統(tǒng)都可被看作包含大量狀態(tài)和完整過渡功能的FSM。但FSM模型并不直接支持可去除的部分(如外部存儲設備、協(xié)同處理器、網絡等),相比一臺計算機的狀態(tài)而言過于簡單。同時當系統(tǒng)容量或計算能力變化時,由于靜態(tài)導致一系列參數都要隨之變化,因此提出計算機歷史模型,將一個或多個低級的事件串聯(lián)起狀態(tài)過程。其中,數字系統(tǒng)為一系列關聯(lián)的數字存儲設備和事件設備,存儲設備存儲一個或多個值,事件設備代表存儲地址狀態(tài)的改變。系統(tǒng)的狀態(tài)代表所有存儲地址的離散值,事件則是系統(tǒng)狀態(tài)的改變。
在此基礎上,文獻[31]提出基于事件的數字取證調查框架。如圖 2所示,框架包括證據檢查、角色分類、事件重構和測試,事件排序以及假設測試。其中,針對假設測試,文獻[32]提出在可用的證據上建立假設,然后通過重構工具Virtual Security Testbed(ViSe)在其獨立的虛擬環(huán)境上重構事件進行測試。通過VMware對多個操作系統(tǒng)使用ViSe,將事件重構測試的重點從建立一個攻擊者的行為轉向分析其影響。但VMware并不提供手機和PDA的嵌入式系統(tǒng)仿真。
圖2 基于事件的數字取證調查框架
4.4.2 確定性狀態(tài)自動機模型
FSM除了靈活性差外,方法中用以回溯過去狀態(tài)的事件場景非常龐大也是一大問題。DFA將系統(tǒng)狀態(tài)間的轉換用較簡單的表達式來代替解決以上問題。在DFA中,狀態(tài)間的轉換過程被簡化為三者關系:(state1, event, state2)。如圖3所示,有2個唯一的轉換過程:A-1->B和B-1->B,而該轉換過程還可通過表達式“A-1->B-1->B”定義。另外,定義“證人證詞”為每一種可能的表達式的限制要求,如圖中的限制為起始狀態(tài)為A-1->B。這樣,FSM中一個可能的表達式和其限制通過取合集就可得到有限的集合從而構建有限的自動機[33]。
圖3 確定性狀態(tài)自動機簡化模型
面對種樣繁多的重構模型,如何建立一個標準化平臺來比較各種模型的優(yōu)異顯得越發(fā)重要。文獻[34]提出基于圖靈機提供一個標準化重構平臺檢測其他重構的效率及誤差率。該模型將系統(tǒng)分為 2個獨立部分:(1)由用戶控制;(2)由用戶和處理器重構事件,記錄與用戶事件相對應的處理器操作,在計算機系統(tǒng)原始空白狀態(tài)上模擬用戶的操作重構事件。
此外,基于半導體的內存卡(如USB、外接格式存儲介質等)由于其便攜的優(yōu)點而變得越來越普及,其輕小短的屬性及非揮發(fā)性閃存使得在生活工作中大量得到使用,如手機等。未來展望的方向可以延伸到實時非揮發(fā)性內存上[35]。
與其他網絡安全管理的相關產品聯(lián)系起來形成一類更全面、更智能化的綜合技術也是發(fā)展的一大趨勢。網絡安全管理中的關鍵技術主要包括信息集成、智能分析引擎、協(xié)同及通信規(guī)范3類[36]。
基于系統(tǒng)應用層事件/對象的重構,從證據獲取上來說較為方便,但其中也包含了大量無用信息。另外,一般系統(tǒng)的日志通常只記錄與應用執(zhí)行有關的事件和對象,由于在用戶空間運行很容易喪失記錄能力。注冊表項保存的通常只是文件系統(tǒng)的最后狀態(tài),并不能提供攻擊時系統(tǒng)的狀態(tài)信息,無法保證證據的可信性。虛擬機技術實現了記錄機器入侵層事件,但目前的語義并不規(guī)范,還需要大量實現進行分析。網絡日志對加密通信也沒有足夠的幫助,且提供的是系統(tǒng)應用層信息。
基于操作系統(tǒng)層對象/事件的重構可以解決以上的問題。通過內存獲取系統(tǒng)當前的實時信息,包括用戶事件、文件、讀寫操作與系統(tǒng)內存、進程之間的關聯(lián),并且不容易被入侵者篡改甚至刪除。但內存的存儲容量過小,數據通常直接覆蓋,而且一旦電源斷開就無法獲取證據。另外現在使用的主流操作系統(tǒng)如Windows并不開源,數據結構、數據類型、結構功能等不明確,內存中數據存儲的位置不確定。這在研究時都成為受限制的瓶頸。
基于時間戳的日志分析技術由于各種系統(tǒng)日志、應用程序日志、網絡日志的存在十分普及。除了數據量龐大、日志格式繁多的問題外,由于由本地時鐘生成的時間戳與絕對時間不一定完全準確,會導致重構事件序列并不準確。一旦被入侵者利用,通過修改計算機本地時間產生誤導調查者的事件序列,從而掩蓋入侵者的蹤跡。
基于語義的事件重構將邏輯推理中的一些基本方法與事件重構相結合。關鍵之處在于找到合理的邏輯關系,不僅能夠通用、簡單,而且要誤報率低,只有當入侵發(fā)生時才會不符合此關系。生成邏輯關系庫既要保證可靠性、真實性,又要提高效率,去除掉與入侵無關的事件,如何在兩者之間平衡好關系十分困難。
基于操作系統(tǒng)層對象的依賴追蹤技術的事件重構依賴于操作系統(tǒng)內部的數據結構,極大提高重構的真實性。但局限在于非常依賴于系統(tǒng)和應用軟件的版本。Windows各版本間的系統(tǒng)數據結構類型很多并不相同,如ShellBag僅針對Windows XP。而應用軟件的版本更新更快,其簽名的生成以及不同版本之間的痕跡十分復雜,需要龐大的數據庫支持。
FSM推理只限于逆向,靈活性很差。CHM與以往其他基于取證工具或是基于已有模型的事件重構不同,關注重點在于如何創(chuàng)建得到數字證據,主要針對事件的起因和影響,由此假設重構。但不足在于假設是以調查者的主觀為主的過程,并且基于過程模型。DFA則解決了回溯場景過多的問題,通過使用正則表達式來簡化場景,并且保證每一種可能的情況。但是實際分析的系統(tǒng)狀態(tài)不能太多。即使是最簡單的系統(tǒng)模型也需要龐大的抽象系統(tǒng)來分析具體的子集或合集數據。另外,目前只有通過著眼于重構那些已知的一定發(fā)生的事件,而不是所有可能的事件來簡化。
入侵取證發(fā)展至今已有數十年,在這一階段提出了許多事件重構的方法和模型框架,但仍有許多問題亟待解決:(1)重構工具由于體系結構很難應對龐大的數據量和繁重的工作量,可在并行處理、可信度、可重復性、數據抽象化等方面加強提高[37]。(2)借助其他領域的技術方法來設計構建新的方法模型,包括云技術、聚合與事件關聯(lián)、語義邏輯、數據挖掘、神經網絡等。(3)該領域在公認的標準評估方面還有待完善。(4)現有的實驗基礎大多建立在為了評估入侵檢測系統(tǒng)而設計的公共數據集上,并不支持全面的攻擊場景。不僅不同類型的入侵檢測系統(tǒng)之間數據無法融合,而且與其他軟件之間也不能互動。(5)隨著網絡應用范圍的發(fā)展,網絡入侵檢測將是一大趨勢,如網絡日志解密、面向IPv6等。
[1]伏 曉.入侵取證中的自動證據分析技術研究[D].南京:南京大學, 2011.
[2]伏 曉, 石 進, 謝 立.用于自動證據分析的層次化入侵場景重構方法[J].軟件學報, 2011, 22(5): 996-1008.
[3]Bogen A C, Dampier D A.Unifying Computer Forensics Modeling Approaches——A Software Engineering Perspective[C]//Proc.of the 1st International Workshop on Systematic Approaches to Digital Forensic Engineering.[S.l.]: IEEE Press, 2005: 27-39.
[4]Herrer?as J, Gómez R.Log Analysis Towards an Automated Forensic Diagnosis System[C]//Proc.of International Conference on Availability, Reliability and Security.[S.l.]:IEEE Press, 2010: 659-664.
[5]Arasteh A R, Debbabi M, Sakha A, et al.Analyzing Multiple Logs for Forensic Evidence[J].Digital Investigation, 2007, 4: 82-91.
[6]Morgan T D.Recovering Deleted Data From the Windows Registry[J].Digital Investigation, 2008, 5: 33-41.
[7]Mee V, Tryfonas T, Sutherland I.The Windows Registry as a Forensic Artefact: Illustrating Evidence Collection for Internet Usage[J].Digital Investigation, 2006, 3: 166-173.
[8]Khan M N A, Chatwin C R, Young R C D.A Framework for Post-event Timeline Reconstruction Using Neural Networks[J].Digital Investigation, 2007, 4: 146-157.
[9]丁麗萍, 周博文, 王永吉.基于安全操作系統(tǒng)的電子證據獲取與存取[J].軟件學報, 2007, 18(7): 1715-1729.
[10]Rutkowska J.Beyond the CPU: Defeating Hardware Based RAM Acquisition[EB/OL].(2007-05-31).http://www.docin.com/p-23650823.html.
[11]Libster E, Kornblum J D.A Proposal for an Integrated Memory Acquisition Mechanism[J].ACM SIGOPS Operating Systems Review, 2008, 42(3): 14-20.
[12]Schatz B.BodySnatcher: Towards Reliable Volatile Memory Acquisition by Software[J].Digital Investigation, 2007, 4: 126-134.
[13]Russinovich M E, Solomon D A, Ionescu A.Microsoft Windows Internals[M].5th ed.[S.l.]: Microsoft Press, 2009.
[14]Smith J E, Nair R.The Architecture of Virtual Machines[J].Computer, 2005, 38(5): 32-38.
[15]Schuster A.Searching for Processes and Threads in Microsoft Windows Memory Dumps[J].Digital Investigation, 2006, 3: 10-16.
[16]Walters A A, Petroni N L.Volatools: Integrating Volatile Memory Forensics into the Digital Investigation Process[EB/OL].(2007-02-28).http://www.blackhat.com/presentations/bhdc-07/Walters/Paper/bh-dc-07-Walters-WP.pdf.
[17]Dolan G B, Srivastava A, Traynor P, et al.Robust Signatures for Kernel Data Structures[C]//Proc.of the 16th Conference on Computer and Communications Security.[S.l.]: ACM Press,2009.
[18]Zhang Ruichao, Wang Lianhai, 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.
[19]Dolan G B.The VAD Tree: A Process-eye View of Physical Memory[J].Digital Investigation, 2007, 4: 62-64.
[20]Stevens R M, Casey E.Extracting Windows Command Line Details from Physical Memory[J].Digital Investigation, 2010, 7: 57-63.
[21]Willassen S Y.Timestamp Evidence Correlation by Model Based Clock Hypothesis Testing[C]//Proc.of the 1st International Conference on Forensic Applications and Techniques in Telecommunications, Information and Multimedia.[S.l.]: ACM Press, 2008.
[22]Tang Maolin, Fidge C.Reconstruction of Falsified Computer Logs for Digital Forensics Investigations[C]//Proc.of the 8th Australasian Conference on Information Security.Sydeny,Australia: Australian Computer Society, 2010.
[23]Schatz B, Mohay G, Clark A.A Correlation Method for Establishing Provenance of Timestamps in Digital Evidence[J].Digital Investigation, 2006, 3: 98-107.
[24]Stallard T, Levitt K.Automated Analysis for Digital Forensic Science: Semantic Integrity Checking[C]//Proc.of the 19th Annual Computer Security Applications Conference.[S.l.]:IEEE Press, 2003: 160-167.
[25]Case A, Cristina A, Marziale L, et al.FACE: Automated Digital Evidence Discovery and Correlation[J].Digital Investigation,2008, 5: 65-75.
[26]Zhu Yuandong, James J, Gladyshev P.A Comparative Methodology for the Reconstruction of Digital Events Using Windows Restore Points[J].Digital Investigation, 2009, 6: 8-15.
[27]Zhu Yuandong, Gladyshev P, James J.Using shellbag Information to Reconstruct User Activities[J].Digital Investigation, 2009, 6: 69-77.
[28]James J, Gladyshev P, Zhu Yuandong.Signature Based Detection of User Events for Postmortem Forensic Analysis[J].Digital Forensics and Cyber Crime, 2011, 53: 96-109.
[29]Carrier B.A Hypothesis-based Approach to Digital Forensic Investigations[D].West Lafayette, USA: Purdue University, 2006.
[30]Carrier B, Spafford E H.An Event-based Digital Forensic Investigation Framework[C]//Proc.of Digital Forensic Research Workshop.Baltimore, USA: [s.n.], 2004.
[31]Carrier B D, Spafford E H.Categories of Digital Investigation Analysis Techniques Based on the Computer History Model[J].Digital Investigation, 2006, 3: 121-130.
[32]Arnes A, Haas P, Vigna G, et al.Digital Forensic Recon Struction and the Virtual Security Testbed Vise[C]//Proc.of the 3rd International Conference on Detection of Intrusions and Malware & Vulnerability Assessment.Berlin, Germany:Springer-Verlag, 2006: 144-163.
[33]James J, Gladyshev P, Abdullah M T, et al.Analysis of Evidence Using Formal Event Reconstruction[EB/OL].(2010-11-25).http://dblp.uni-trier.de/db/conf/icdf2c/icdf2c2009.html#JamesGAZ09.
[34]Hankins R, Uehara T, Liu Jigang.A Turing Machine-based Model for Computer Forensic Reconstruction[C]//Proc.of the 3rd IEEE International Conference on Secure Software Integration and Reliability Improvement.[S.l.]: IEEE Press,2009: 289-290.
[35]Lee J T, Choi H K, Kim K J.Gathering and Storage Technique Implementation of Volatility Memory Data for Real-forensic[C]//Proc.of the 4th International Conference on Computer Sciences and Convergence Information Technology.[S.l.]: IEEE Press, 2009: 1076-1079.
[36]伏 曉, 蔡圣聞, 謝 立.網絡安全管理技術研究[J].計算機科學, 2009, 36(2): 15-19.
[37]Ayers D.A Second Generation Computer Forensic Analysis System[J].Digital Investigation, 2009, 6: 34-42.