鄭清安,黃云峰
(福建警察學院 計算機與信息安全管理系,福建 福州 350007)
2012年3月14日,最新修訂的刑事訴訟法新增了一種證據種類“電子數據”,自此,電子數據作為獨立的一種證據種類可以在法庭上呈現[1]。為了保證取證所獲取的電子數據的客觀性、完整性、合法性,取證人員在提取電子數據的過程中所采取的方法手段恰當與否非常關鍵,它將直接影響后續的取證分析環節及電子證據的司法有效性,對電子證據被采納具有重要影響[2]。因此,對于前期電子數據的獲取固定研究具有重要意義。
目前,對于電子數據的獲取固定常見方式有兩種:一種是直接對可拆機取出的物理磁盤使用硬盤復制機或者只讀鎖配合磁盤鏡像工具、綜合取證軟件等專用設備來獲取磁盤鏡像副本;另一種是在無法拆機或者使用硬盤復制機和只讀鎖無法獲取數據的情況下,通過取證專用的啟動光盤、啟動U盤等軟件來啟動目標機器,獲取目標存儲介質中的數據。拆機獲取數據的方法相對成熟,只要取出物理硬盤,大多數情況都可以通過取證設備獲取硬盤鏡像副本,但也有例外。如隨著硬盤技術的快速發展,對于一些特殊定制的硬盤接口,取證設備中還沒有對應的轉換器,以致無法完成數據獲取。另外,有些一體化的機器也不容易拆卸,有時受取證時間緊、機器被物理鎖定等客觀條件的約束也不可能去拆卸。在這種情況下,通過取證專用啟動盤來啟動機器獲取數據成為取證人員的首要選擇。
當前,常見的取證專用啟動盤有WinFE、Helix、Kali Linux、PALADIN、DEFT、CAINE等,使用這些基于預安裝環境(Pre-installation Environment,PE系統)的專用取證系統來獲取存儲介質中的數據,在技術層面上防止了原始數據因提取檢驗而被更改或破壞的發生,保證了所收集數據的客觀性。但是,取證專用啟動盤在使用可靠性、兼容性和可擴展性方面,還存在諸多問題亟待解決。
(1)Helix、Kali Linux、PALADIN、DEFT、CAINE是以Ubuntu的Linux PE系統為基礎環境開發的取證系統,對于國內軟件多數基于Windows平臺開發的綜合取證工具無法兼容。
(2)WinFE是基于Windows PE[3]系統改進的,只支持運行基于Windows系統環境開發的取證工具軟件,并且原生制作的WinFE啟動盤只能在命令行提示符模式下操作,不支持圖形用戶界面。另外,對取證工具軟件的增加修改,需要重新制作WinFE鏡像,操作過程較為繁鎖,使用上不夠靈活,取證效率不高。
針對這些問題,由位曉曉等人提出了通過制作WinPE的啟動U盤,快速提取電腦使用的系統信息和使用痕跡信息,而對于WinPE系統啟動加載涉案盤可能對涉案盤數據產生的影響并未涉及[4]。陳明金分析了免拆機取證技術的發展狀況,提到了WinFE系統環境可保證不對源盤進行改動,從而保證所獲取數據的司法有效性,但并未提及具體原理方法[5]。其他的相關研究多數集中在基于WinPE系統的U盤量產制作方面,例如,顧超捷等人研究通過USB-CD和USB-ZIP兩種啟動模式,實現具有WinPE系統的U盤啟動功能的量產[6]。以上這些方法普遍受制于各自應用的局限性,很難在取證時兼顧所獲取的數據的司法有效性、可靠性和啟動盤的兼容性、易用性、可擴展性。因此,本文通過分析制作WinFE系統保證司法有效性的核心原理,提出對原生制作的WinFE系統進行優化,并通過分析系統啟動引導磁盤的機制,探討對U盤進行分區,將優化后的WinFE系統寫入到U盤隱藏分區制作成可啟動U盤。實驗測試表明,改進后的WinFE系統U盤啟動盤在保證司法有效性的同時,其易用性、可靠性、兼容性和可擴展性方面明顯提高。
WinFE的全稱是Windows Forensic Environment,是2008年微軟公司的研究人員Troy Larson開發的一款專用于電子數據取證領域進行數據獲取和分析的Windows PE系統。基于Windows PE系統的WinFE裝載在存儲介質中默認設置為只讀,其工作原理類似于Linux系統的LiveCD,啟動時不自動掛載任何存儲介質[7]。與Linux的LiveCD不同的是,WinFE可以運行基于Windows系統環境的取證工具軟件。因此,所有基于Windows平臺開發的綜合取證工具軟件以及常見的便攜式工具都可以在WinFE上運行。
WinFE的整個制作工作流程如圖1所示[8]。

圖1 WinFE制作工作流程
WinFE制作的具體關鍵環節在于以下幾點:
(1)使用AIK命令拷貝WinPE的主要文件到WinFE文件夾,掛載boot.wim鏡像文件修改配置系統環境。
(2)修改模板鏡像文件中的注冊表的兩個鍵值,使得整個系統符合取證環境的需要。
①使用RegEdit加載WinFE中的注冊表文件SYSTEM,配置單元命名為WinFE,在注冊表“HKEY_LOCAL_MACHINEWinFEControlSet001servicesmountmgr”下創建一個DWORD(32)的類型項,鍵名為NoAutoMount,鍵值設置為1,這個鍵值的作用是Mount-Manager服務不會自動掛載任何存儲設備。
②在“HKEY_LOCAL_MACHINEsystemControlSet001ServicespartmgrParameters”下有一個鍵為“SanPolicy”,這個鍵原值為1,將它修改為3或者4,其中1表示全部聯機,3表示全部脫機,4表示內部脫機,即只有內置磁盤是脫機的。之所以要脫機是因為一旦聯機,磁盤屬性變成可寫狀態,在可寫的狀態下系統掛載卷時會向磁盤寫入4字節的標簽代碼,從而破壞磁盤的原始性。對于取證來說,這是一個潛在的改變檢測數據的風險,雖然還沒有證明這些數據是有影響的,但是通過對整個物理磁盤校驗哈希值,發現這個數值已經發生改變,所以取證環境下不能直接掛載需要取證的磁盤。
(3)添加常用的取證工具軟件,通常是添加不需要安裝、可以移植運行的應用程序,如命令行應用程序Garner Forensic Acquisition Utilities、NTI Suite、Sysinternals、Maresware applications、FTK Imager Lite、X-Ways Forensics等。取證人員可根據使用習慣和特長將取證所需工具拷貝到事先創建的文件夾WinFETools下,隨時調用。
(4)添加驅動程序,通常根據需要可以將通用或特定的視頻驅動程序、RAID驅動程序和其他特定于硬件的驅動程序添加至鏡像中。使用的AIK命令示例如下:
peimg.exe /inf=C:drivers*.inf C:winFEmountWindows
(5)使用AIK命令創建ISO鏡像,將ISO文件刻錄至光盤。
WinFE系統一般可以刻錄成啟動光盤,通過可啟動光盤可以直接引導啟動被檢計算機,其最大的優點是通過修改注冊表鍵值,不自動掛載存儲設備和使磁盤處于脫機狀態,保證了被取證對象磁盤數據的客觀性。然而WinFE實際操作起來也有明顯的局限性。
(1)WinFE默認啟動操作界面是命令行提示符模式,對多任務的操作要來回切換,操作麻煩,沒有圖形界面直觀,取證效率不高。雖然可以通過添加第三方的GUI菜單管理應用程序一定程度上解決這個問題,但實際操作過程中穩定性并不高。
(2)對WinFE啟動盤的任何改動,例如要再次添加、更新、修改取證工具軟件等,即使該軟件是可移植運行的免安裝程序,都必須重新制作WinFE鏡像,操作過程較為繁鎖。
關于Windows PE系統的研究,技術層面上有許多成熟的應用解決方案[9],由于WinFE本身是基于Windows PE系統改進而來的,針對WinFE系統的局限性問題,理論上都可以通過對Windows PE系統進行進一步改進,進而應用于WinFE系統解決相關問題。下面從WinFE系統的制作優化以及刻錄到U盤使用,探討WinFE電子數據取證啟動盤的改進方案。
2.1.1 增加圖形化界面
對于WinFE系統默認啟動沒有圖形用戶界面的問題,其原因在于制作時并沒有考慮到用戶交互的問題,啟動時默認使用命令提示符cmd.exe來操作系統進行交互。針對這個問題,解決思路是通過在系統啟動時直接添加Windows Explorer作為默認的命令解析器與操作系統進行交互,具體操作方法有以下兩種。
(1) 修改WinFE的原始鏡像文件boot.wim,手動添加操作系統的資源管理器Explorer。
其主要操作步驟為:
①修改WinFE的SOFTWARE注冊表權限等配置,獲取完整的SOFTWARE注冊表文件。
②更改啟動時調用的命令解析器,將SOFTWARE注冊表路徑為MicrosoftWindows NTCurrentVersionWinlogon下的“Shell”=“cmd.exe /k start cmd.exe”改成“Shell”=“explorer.exe”Shell。
③從install.wim中拷貝資源管理器運行所需要的系列文件到boot.wim中相對應的位置,保存修改并重新打包boot.wim,按圖1WinFE制作工作流程操作,創建新的ISO鏡像文件。
(2)使用具有圖形用戶界面的Windows PE系統作為樣本,提取其中的boot.wim鏡像文件作為源文件,按照圖1 WinFE制作工作流程,從具體關鍵環節的步驟(2)修改注冊表的兩個鍵值開始操作,創建新的WinFE系統。其中,具有圖形用戶界面的Windows PE系統可以通過WinPE系統的制作工具Winbuilder定制創建[10]。
2.1.2 增加磁盤保護鎖
出于對獲取數據司法有效性的考慮[11],WinFE系統不會自動掛載存儲設備,系統啟動時,默認配置取證對象磁盤不聯機,要對磁盤進行在線檢驗分析必須聯機掛載磁盤。有實驗研究表明,聯機掛載非Windows操作系統的磁盤時,WinFE會在磁盤偏移位置Ox1B8處寫入4個字節的數據,用于標記Windows驅動器簽名,通過只讀方式掛載卷“volume”時將會向磁盤偏移位置Ox417處寫入控制代碼。雖然這些并非用戶創建的數據,其行為是可以預見和解釋的,但是為了更好地保護磁盤數據,預防潛在的可能改變檢測數據的風險,增加磁盤保護鎖工具顯得十分必要。磁盤保護鎖是一個簡易的免安裝應用程序,例如Clin Ramsden等人研發的開源程序WinFE Write Protect Tool,其主要功能為精確控制磁盤的只讀、讀寫、掛載、卸載等操作,保證在線檢驗分析時所獲取數據的可靠性。將WinFE Write Protect Tool封裝到WinFE系統,按照圖1 WinFE制作工作流程,從具體關鍵環節的步驟(3)添加常用的取證工具軟件開始操作,添加此應用程序并配置程序隨WinFE系統開機啟動。
WinFE系統添加新的取證工具軟件必須重新制作鏡像,主要原因是整個系統鏡像是一個封閉的只讀空間,把WinFE系統刻錄到光盤,由于光盤不可分區,無法擴展出可利用的閑置空間,因此,每次新增數據必須重新封裝鏡像。如果將WinFE系統刻錄到U盤,充分利用U盤的可分區功能,將U盤劃出的部分專用空間去裝載WinFE系統鏡像,并模擬成啟動盤,剩余空間當成普通存儲使用,很大程度上能夠避免新增軟件帶來的重復制作鏡像問題。如此一來,需要往系統中添加新的取證工具軟件、文檔等,只須簡單移動復制至U盤閑置存儲區即可,另外,在取證分析時所獲取的數據也可以臨時存放在閑置存儲空間,對于取證來說充分地利用了U盤的存儲空間。
此類啟動盤的制作如同制作主流的U盤Windows PE維護系統一樣,基本原理是基于計算機系統的引導機制。計算機系統的引導過程,根據配置模式分為Legacy BIOS和UEFI兩種,具體流程如圖2所示[12]。

圖2 系統啟動引導過程
傳統的BIOS啟動過程中,BIOS自檢硬件正常后,按照主板CMOS中設置的設備啟動順序檢測可用的啟動設備,當檢測到有符合要求的啟動設備后,BIOS將控制權交給該啟動設備的MBR。MBR位于磁盤設備的0柱面0磁頭1扇區占用512字節空間,其中包含446字節的引導加載程序,64字節的硬盤分區表DPT,及結束標志"55AA"。MBR獲得控制權后,其中的引導加載程序會根據硬盤分區表找到硬盤上的可引導分區,將控制權轉交給分區PBR,然后調用對應的啟動管理器NTLDR或BOOTMGR或GRLDR,最終進入系統。相對傳統BIOS引導啟動方式,UEFI方式引導減少了BIOS自檢環節,其余過程類似。
通過對計算機系統的引導過程分析可知,要成功引導操作系統,關鍵點是要找到驅動器硬件設備,并且驅動器上要有正確的MBRPBR(或EFI SHELL)、啟動管理器等信息,可以引導啟動操作系統。根據此原理,通過對U盤進行分區的方法,將WinFE電子數據取證系統裝載進U盤,針對計算機的不同啟動引導模式,合理規劃設計系統啟動引導文件、鏡像文件的存放位置,以期提升啟動盤實際應用的安全性、靈活性及兼容性。下面分別闡述對U盤進行二分區和三分區的方法。
2.2.1 二分區法
二分區法的啟動盤結構如圖3所示,它將U盤劃分成兩個區,前端為隱藏分區,后端為可見分區。由于不管U盤有幾個分區,Windows系統最多只識別一個U盤分區,默認識別排列靠前的分區,因此后端分區自動會被隱藏。為了能夠充分利用U盤空間,將前端分區設置為隱藏活動分區,使得后端分區可以被Windows系統識別,同時讓U盤默認從隱藏活動分區引導啟動系統。將系統啟動引導文件和WinFE系統鏡像存放到隱藏分區,與可見分區隔離,更好地保護了啟動引導文件和WinFE系統鏡像文件安全。如果是傳統BIOS引導方式啟動,計算機就可以按啟動原理順序通過訪問MBR-DRB-BOOTMGR-WinFE系統文件來引導取證啟動盤。如果要兼容UEFI引導方式啟動,那么隱藏分區應格式化為FAT格式的文件系統類型,然后寫入EFI啟動引導文件和支持UEFI引導的WinFE系統鏡像,計算機才能夠正常引導取證啟動盤。

圖3 WinFE啟動盤二分區結構
實現步驟:
(1)準備好上節改進制作好的WinFE取證系統鏡像文件WinFE.ISO及U盤。
(2)將U盤初始格式化為單個分區。
(3)使用軟碟通UltraISO工具加載WinFE.ISO,點擊菜單啟動-寫入硬盤映像,選擇對應的U盤,以USB-HDD方式寫入,創建隱藏啟動分區。
(4)根據實際情況可重新格式化可見分區為NTFS或者FAT32。
(5)測試啟動盤。
2.2.2 三分區法
除了二分區法外,還可以使用三分區法進一步提升啟動盤的兼容性。三分區法的啟動盤結構如圖4所示,它與二分區法的區別在于它將兼容UEFI引導方式啟動所需的文件獨立存放于高端分區即UEFI隱藏分區。這種改進方式可以對獨立分區的文件系統格式采用最佳的類型,如UEFI隱藏分區采用FAT16格式,使得不論是傳統BIOS方式還是UEFI方式引導,系統都能根據獨立存放的引導文件引導計算機啟動,很大程度上提升了啟動盤的兼容性。

圖4 WinFE啟動盤三分區結構
實現步驟:
(1)準備好上節改進制作好的WinFE取證系統鏡像文件WinFE.ISO及U盤。
(2)將U盤初始格式化為單個分區。
(3)使用啟動U盤制作工具FbinstTool格式化U盤,分配部分空間建立UD隱藏分區,將系統鏡像文件WinFE.ISO導入到此分區,編輯Grldr菜單,添加引導WinFE取證系統的語句:
title 01 WinFE
map (ud)/WinFE.iso (0xff)
map --hook
chainloader (0xff)
(4)使用分區工具DiskGenius將剩余的U盤空間劃分成兩個分區,其中前端的分區空間可見,可以根據需要格式化為NTFS或者FAT32,后端的UEFI分區格式化為FAT16,由于Windows系統只識別第一個U盤分區,因此默認UEFI分區邏輯上不可見,支持UEFI啟動的WinFE系統文件暫時無法存放進去。
(5)通過FbinstTool工具菜單的“啟動設置-分區表”窗口調整分區表順序,將UEFI分區序號調整為0,保存設置,此時Windows系統將識別到UEFI分區。
(6)解壓支持UEFI啟動的WinFE系統文件到UEFI分區,再通過FbinstTool工具菜單的“啟動設置-分區表”窗口恢復調整前的分區表順序,隱藏UEFI分區。
(7)測試啟動盤。
使用VMware虛擬機分別加載制作好的原始WinFE系統和優化后的WinFE系統鏡像文件,均可正常啟動系統運行取證工具,優化前后系統差異如表1所示,顯然圖形界面操作更為直觀,操作可靠性更強,運行取證程序及進行多任務操作取證效率更高。

表1 優化前后對比
分別將優化后的WinFE系統鏡像刻錄到750 M光盤和64 G U盤,其中U盤前后分別采用二分區法和三分區法制作。實驗測試計算機為聯想臺機式啟天M4650,分別配置計算機啟動模式為Legacy BIOS和UEFI,設置正確的啟動順序,測試制作好的光盤和U盤。從安全性、兼容性、可擴展性三個方面設置主要觀察點對啟動盤進行評估,其中安全性方面考察取證系統本身是否可能被篡改,兼容性方面考察啟動盤是否對BIOS和UEFI兩種啟動模式都兼容,可擴展性方面考察額外存儲空間的利用和新增取證工具的易操作性,具體觀察點比較如表2所示。

表2 觀察點比較
從表2中可以看出,由于U盤有不計次數的可擦寫性能,其重復利用率更高,而光盤多數為一次或者有限次的擦寫且易磨損,從實用性和可靠性角度來說,U盤優于光盤。U盤分區法在保證安全性的同時明顯對UEFI有更好的兼容性,在剩余空間的利用上也更加靈活,新增取證工具時只需要將文件拷貝到可見存儲區,啟動進入取證系統時即可隨時調用,無需重新壓縮制作鏡像。實驗表明,相較于光盤啟動盤,基于U盤分區的WinFE系統啟動盤在實用性、可靠性、兼容性、可擴展性方面具有明顯的優勢。
WinFE系統啟動盤在特定場景下具有一定的應用價值,特別是在取證時間要求比較緊,所獲取的數據對時間敏感性比較強的時候,其可靠性、兼容性、可擴展性功能至關重要。本文所做的對WinFE系統優化和制作改良,在底層邏輯上保障司法有效性的同時提升了取證效率,具有一定的應用價值。隨著取證技術的發展,針對WinFE系統取證啟動盤的改進還需更深入地研究,例如完善WinFE系統底層驅動提升對不同品牌計算機的兼容度、開發驅動層級別的寫保護控制程序進一步提高可靠性等。