
電子取證的基本概念
科學的運用提取和證明方法,對從電子數據源提取的證據進行保護、收集、驗證、鑒定、分析、解釋、存檔和出示,以有助于進一步的犯罪事件重構或幫助識別某些計劃操作無關的非授權性活動。
在網絡安全大環境中,信息安全可以看作是解決事前防御問題,電子取證則是解決事后究責問題。
電子取證的發展歷程
奠基時期
時間:1984年至九十年代中期
- FBI成立了計算機分析響應組(CART)。
- 數字取證科學工作組(SWGDE),這個小組首先提出了計算機潛在證據的概念形成了計算機取證概念的雛形。
- 計算機技術取證技術工作組(TWGDE),更多地在技術層面上對“數據取證”技術進行研究。
- 科學工作組(SWGs)的發展。
特點:公布了有關數字證據的概念、標準和實驗室建設的原則等,截止1995年,美國48%的司法機關建立起了自己的計算機取證實驗室。
初步發展時期
時間:九十年代中期至九十年代末期
典型的計算機取證產品:
- Encase:美國Guidance軟件公司開發,用于證據數據的收集和分析。
- DIBS:由美國計算機取證公司開發,對數據進行鏡像的備份系統。
- Flight Server:由英國Vogon公司開發,用于證據數據的收集和分析。
- 其他工具:密碼破解工具、列出磁盤上所有分區的LISTDRV,軟盤鏡像工具DISKIMAG,在特定的邏輯分區上搜索未分配的或空閑的空間的工具FREESECS等。
理論完善時期
時間:九十年代末至今
計算機取證的概念及過程模型被充分研討
較為典型的五類模型:
- 基本過程模型
- 事件響應過程模型
- 法律執行過程模型
- 過程抽象模型
- 其他模型
科學體系建設
電子取證的技術類別和相關領域
數字取證在中國的啟動
我國網絡安全界曾經從戰略高度上提出了如何建立使入侵者感到有威懾的主動防御策略:
- 基于主動防御的網絡安全技術改變了以往僅僅依靠防火墻、掃描、檢測這些傳統的網絡安全工具,推動了我國的信息監控、數字取證等技術的發展以及相應產品的面世。
- 2000年5月,國南部確立了以計算機犯罪案件為主線,以電子數據證據為核心,以計算機犯罪偵查為主要內容開展專門技術研究。
- 計算機取證研究列入課題項目,出現一批早期的研究論文和文章。
取證業務涉及行業
- 刑事類案件的偵查取證和訴訟活動大量涉及電子證據。這類案件的偵查取證一般由公安系統和檢察院完成并由第三方鑒定機構做司法鑒定,出具司法鑒定報告。這個領域也是我國電子證據的技術標準和規范相對比較完善的領域。采用的技術手段和產品相對比較先進,但大部分是國外或者國外產品的OEM版。
- 民事類型案件的舉證涉及到電子證據的提取、分析和鑒定。一般由舉證方提取并鑒定。但是,由于這個領域涉及普通百姓,還沒有充分意識到電子證據的重要性,也沒有特別適用于普通百姓的取證產品。
- 行政訴訟類案件的舉證需要電子證據的相關技術,這個領域也剛剛意識到電子證據的重要作用。比如,工商行政執法已經開始意識到網絡上的非法經營的治理需要獲取電子證據,但是,也沒有特別合適的技術和產品。
- 大型中外企業,特別是企業的內部安全工作涉及到電子證據的取證,因而對技術和產品有需求。
電子取證技術細則
數字取證面臨的問題
- 搜集或檢查會改變證據的原始狀態,數據易被改變。
- 計算機調查和數字證據對法律執行、法庭和立法機關來說是個新生事物。
- 指數性增長的數字媒體密度和普遍深入的計算機平臺。
- 數字數據或隱藏數據的非直觀性。
- 信息技術及廣泛應用在日益變化。
- 合格的取證人員的技能于培訓。
- 數字信息的短暫性。
電子數據的來源
(1) 物理存儲:包括傳統介質,例如軟盤、硬盤、移動硬盤、磁帶等磁介質、光盤等光介質。新型的物理存儲,例如固態硬盤、手機芯片、閃存(包括 U盤、存儲卡)等電介質。
(2) 邏輯存儲:電子數據在邏輯狀態下是不同的,操作系統將電子數據以一定編碼保存。這些電子數據邏輯存儲包括:
- 用戶文件(電子文檔、電子郵件、音視頻文件,日程表、網絡訪問記錄/收藏夾、數據庫文件、文本文件等)。
- 操作系統文件(配置文件、備份文檔、Cookies、交換文件、系統文件、隱藏文件、臨時文件等)。
- 保護文件(壓縮文件、加密文件:隱藏文件等)。
- 日志包括系統日志、IDS、防火墻、FTP、WWW和殺毒軟件日志。
- 其他數據區中可能存在的電子數據,例如未分配空間(Unallocated Space)、松弛空間(Slack Space)、隱藏分區等。
電子數據取證架構
電子取證涉及計算機科學和法律的各個層次。它集中了所有計算機科學知識,并與法律緊密結合。偏重技術而忽略法律,或者拘泥法律而不研究技術,都無法根本理解電子數據取證。
數字取證的過程
這個過程指從有關電子證據的載體取回實驗室開始的技術取證活動。
- 第一步:預覽并決定是否進一步分析。
- 第二步:獲取。
- 第三步:克隆,制作和原硬盤內容相同的目標硬盤。
- 第四步:分析,在目標硬盤上采取各種技術方法分析提取有用的數據信息。
取證的基本流程
常見的取證工具
在對計算機數據進行取證過程中相應的取證工具必不可少,常見的有Tcpdump、Argus、NFR、Tcpwrapper、Sniffers、Honeypot,Tripwires、Network monitor、volatility、PTF、取證大師、Magnet AXIOM、
鏡像工具等。目前在計算機取證過程中比較常用的工具是鏡像工具和專業的取證軟件,但很大多取證工具都是付費軟件對于個人我們無法直接下載使用,但也有一些開源工具可以實現很好的使用效果。
根據取證工具的不通功能和作用,取證工具有如下分類:
- 磁盤和數據捕獲工具
- 文件查看器
- 文件分析工具
- 注冊表分析工具
- 互聯網分析工具
- 電子郵件分析工具
- 移動設備分析工具
- Mac OS分析工具
- 網絡取證工具
- 數據庫取證工具
礙于篇幅本文選擇Volatility Framework取證工具進行簡單介紹。
Volatility Framework是一個 完全開放的內存分析工具集,其基于GNU GPL2許可,以Python語言編寫而成。 由于Volatility是一款開源免費的工具,因此無須花任何費用即可進行內存數據的高級分析。因為代碼具有開源的特點,所以當遇到一些無法解決的問題時,還可以對源代碼進行修改或擴展功能。
在Windows操作系統平臺下,有兩種方式可以運行Volatility工具。第一種是先獨立安裝Python運行環境,再下載Volatility源代碼執行命令行。第二種是下載Volatility獨立Windows程序無須另外安裝和配置Python環境。最新Volatility版本為V2.6,可以通過官方網站下載。在Windows 64位平臺上,最便捷的方式就是直接使用獨立Windows程序的Volatility版本。進入管理員命令行模式,運行volatility_ 2.6_win64_ standalone.exe 程序即可。程序如下圖:
Volatility常用命令行參數:
-h:查看相關參數及幫助說明。
--info:查看相關模塊名稱及支持的Windows版本。
-f:指定要打開的內存鏡像文件及路徑。
-d:開啟調試模式。
-V:開啟顯示詳細信息模式(verbose)。
獲取--profile的參數
volatility -f mem.vmem imageinfo
volatility -f mem.vmem --profile=WinXPSP2x86
shell的命令: dt("內核關鍵數據結構名稱")
如: dt("_PEB")
列舉進程:pslist
volatility -f mem.vmem --profile=WinXPSP2x86 pslist
列舉緩存在內存的注冊表 :hivelist
olatility -f mem.vmem --profile=WinXPSP2x86 hivelist
hivedump 打印出注冊表中的數據 :
volatility -f mem.vmem --profile=WinXPSP2x86 hivedump -o 注冊表的 virtual 地址
獲取SAM表中的用戶 :printkey
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SAM\Domains\Account\Users\Names"
獲取最后登錄系統的賬戶 :
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
提取出內存中記錄的 當時正在運行的程序有哪些,運行過多少次,最后一次運行的時間等信息
volatility -f mem.vmem --profile=WinXPSP2x86 userassist
將內存中的某個進程數據以 dmp 的格式保存出來 。
volatility -f mem.vmem --profile=WinXPSP2x86 -p [PID] -D [dump 出的文件保存的目錄]
提取內存中保留的 cmd 命令使用情況 。
volatility -f mem.vmem --profile=WinXPSP2x86 cmdscan
獲取到當時的網絡連接情況 。
volatility -f mem.vmem --profile=WinXPSP2x86 netscan
獲取 IE 瀏覽器的使用情況。
volatility -f mem.vmem --profile=WinXPSP2x86 iehistory
獲取內存中的系統密碼,我們可以使用 hashdump 將它提取出來 。
volatility -f mem.vmem --profile=WinXPSP2x86 hashdump -y (注冊表 system 的 virtual 地址 )-s (SAM 的 virtual 地址)
volatility -f mem.vmem --profile=WinXPSP2x86 hashdump -y 0xe1035b60 -s 0xe16aab60
最大程度上將內存中的信息提取出來,那么你可以使用 timeliner 這個插件。它會從多個位置來收集系統的活動信息
volatility -f mem.vmem --profile=WinXPSP2x86 timeliner
文件掃描
volatility -f mem.dump --profile=Win7SP1x64 filescan | grep 'flag.ccx'
文件導出
volatility -f mem.dump --profile=Win7SP1x64 dumpfiles -Q 0x000000003e435890 -D ./
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
電子數據取證技術-windows操作系統取證
日志取證
Windows事件日志
事件日志為操作系統及關聯的應用程序提供了一種標準化、集中式地記錄重要軟件及硬件信息的方法。微軟將事件定義為:系統或程序中需要向用戶通知的任何重要的事項。事件是統一由Windows事件日志服務來統一收集和存儲的。它存儲了來自各種數據源的事件,常稱為事件日志。
事件日志可以為取證人員提供豐富的信息,還可將系統發生的各種事件關聯起來。事件日志通??梢詾槿∽C人員提
供以下信息:
- 發生什么:Windows內 部的事件日志記錄了豐富的歷史事件信息。
- 發生時間:事件日志中記錄了豐富的時間信息,也常稱為時間戳,它記錄了各種事件發生的具體時間。
- 涉及的用戶:在Windows操作 系統中,幾乎每一個事件都與相關的系統賬號或用戶賬號有關。
- 涉及的系統:在聯網環境中,單純記錄主機名對于取證人員來說比較難以進一步追蹤回溯訪問請求的來源信息。
- 資源訪問:事件日志服務可以記錄細致的事件信息。
常見取證和分析方法
(1)事件日志文件內容查看方法。
通常采用商業化計算機取證軟件直接分析事件日志文件,如EnCase、FTK、X-Ways Forensics、Safe Analyzer、取證大師、取證神探等,操作簡便快捷。
通過在 Windows 操作系統中運行 eventvwr.exe,即可調用系統自帶的事件日志查看器。其具體操作方式如下:在命令行中輸入 eventvwr.exe, 也可以同時按 Win+R 組合鍵,然后在運行輸入框中輸入 eventvwr.exe 或eventvwr (擴展名可省略),即可運行系統事件日志查看器。將待分析的 .evtx 日志文件通過取證軟件導出或用其他方式復制到取證分析機中,即可使用取證分析機系統自帶的事件日志查看器來查看與分析內容。取證分析機的操作系統建議使用最新的 Windows 10,以便能最佳兼容 .evtx 文件格式。
Event Log Explorer 的亮點在于它支持 .evt 及 .evtx 兩種格式,提供了豐富的過濾條件,此外可正確解析出日志中的計算機名、系統賬戶或用戶的 SID(Security Identifiers,安全標識符)等信息。
(2)常見的Windows事件日志的分析方法。
Windows事件日志中記錄的信息中,關鍵要素包含事件級別、記錄時間、事件來源、事件ID、事件描述、涉及的用戶、計算機、操作代碼及任務類別等。其中事件ID與操作系統版本有關,同類事件在不同操作系統中的事件ID不完全相同,最大的差異主要體現在第一版和第二版的事件日志中。(Windows事件日志第一版,即Windows Vista之前的版本含Windows NT 3. 1至Windows XP或Windows 2003之間的各個版本默認的事件日志存儲位置為%System Root%\System32\Config。Windows事件日志第二版,即Vista及以 上版本含Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows Server 2008/2012/2016等采用了新的文件格式,文件擴展名為.evtx。)因此,在取證過程中需特別注意,當使用事件ID進行過濾搜索時,需要考慮操作系統版本的差異。
(3)事件日志文件結構。
事件日志文件是一-種二進制格式的文件,文件頭部簽名為十六進制30 00 00 00 4C 664C 65。在默認情況下,全新的事件日志文件的事件日志記錄均按順序進行存儲,每條記錄均有自己的記錄結構特征。然而當日志文件超出最大大小限制時,系統將會刪除較早的日志記錄,因此日志記錄也將出現不連續存儲,同一個記錄分散在不同的扇區位置的情況。
Windows事件日志取證分析注意要點
Windows操作系統默認沒有提供刪除特定日志記錄的功能,僅提供了刪除所有日志的操作功能。在電子數據取證過程中仍存在有人有意偽造事件日志記錄的可能性。如遇到此類情況,建議對日志文件中的日志記錄ID(Event Record ID)進行完整性檢查,如檢查記錄ID的連續性。通過事件日志記錄ID的連續性可以發現操作系統記錄的日志的先后順序。
Windows事件日志記錄列表視圖在用戶沒有對任何列進行排序操作前,默認是按其事件日志記錄編號進行排序的。默認情況下,事件日志記錄編號自動連續增加,不會出現個別記錄編號缺失情況。值得注意的是,當Windows操作系統用戶對操作系統進行大版本升級時,操作系統可能會重新初始化事件日志記錄編號。通過對Windows事件日志的取證分析,取證人員可以對操作系統、應用程序、服務、設備等操作行為記錄及時間進行回溯,重現使用者在整個系統使用過程中的行為,對虛擬的電子數據現場進行重構,了解和掌握涉案的關鍵信息。
Windows注冊表取證
要對Windows操作系統的注冊表文件進行分析,最簡單的查看工具就是Windows自帶的注冊表編輯器。要對涉案的計算機磁盤或鏡像文件進行注冊表分析,首先將要分析的注冊表文件復制到指定目錄,然后通過注冊表編輯器進行加載,然后查看注冊表文件的內容。該方式無法提取和分析已刪除的注冊表信息。
Registry Explorer分析注冊表
Registry Explorer v0.9.0.0是一個十分優秀的注冊表分析工具,它與大多數商業取證軟件一樣,支持恢復已刪除的注冊表信息。其搜索能力甚至超越了大多數取證分析軟件,內置了取證常用的書簽功能,選擇要查看的注冊表信息即可直接跳轉到具體位置。Registry Explorer支持批量添加多個注冊表配置單元文件。在電子數據取證過程中使用該分析工具非常方便,特別是不清楚鍵值存在于哪個注冊表文件時,取證人員可以直接加載所有系統注冊表文件及多個用戶的注冊表文件(NTUSER.dat),然后對所有注冊表文件進行全部搜索。
X-Ways Forensics分析注冊表文件
利用X-Ways Forensics取證軟件分析注冊表文件,可以通過過濾器找到注冊表文件,直接雙擊注冊表文件,X-Ways Forensics將自動打開一個獨立的注冊表查看窗口。
取證神探分析注冊表文件
取證神探分析軟件內置注冊表分析功能,除了可以自動提取系統注冊表、用戶注冊表中的操作系統信息、設備信息、軟件安裝信息、USB設備使用痕跡等外,還可以對注冊表文件進行高級手工分析,甚至是數據解碼。
取證神探引入了取證結果溯源功能,將自動取證后的結果的數據來源清晰地告訴取證人員,取證人員可以看到取證
結果是從哪個文件讀取并解析數據的。
取證神探還可以對注冊表文件進行手工查看與分析、數據搜索及數據解碼??赏ㄟ^關鍵詞對注冊表文件中的內容進行搜索,可設定搜索類型(如鍵、值或數據)、搜索范圍(當前選中的鍵或整個注冊表),此外還可以使用通配符進行快速搜索。
在Windows注冊表中,不少數據經過了編碼或加密。取證神探內置的注冊表分析工具提供了查看注冊表原始數據及高級手工解碼的能力。有經驗的取證人員可以對注冊表值的數據(如十六進制、ROT-13編碼)進行數據解碼,取證工具內置了數值型、時間類型等數據常用的解碼方法。
內存取證
Windows 內存取證方法和分析技術
內存取證通常是指對計算機及相關智能設備運行時的物理內存中存儲的臨時數據進行獲取與分析,提取有價值的數據的過程。內存是操作系統及各種軟件交換數據的區域,內存中的數據易丟失(Volatile),即通常在關機后數據很快就會消失。
常見的物理內存獲取方法有冷啟動攻擊(Cool Boot Attack)、基于火線1394或雷電ThunderBolt接口的直接內存訪問(Direct Memory Access,DMA)獲取及內存獲取軟件工具。
不同的操作系統需要用到不同的物理內存獲取工具。
Windows操作系統平臺支持內存獲取的常見工具有DumpIt(早期版本名為Winn32dd)、Belkasoft RAM Capturer、Magnet RAM Capture、WinEn、Winpnen、 EnCase Imager、FTK Imager、取證大師、取證神探。
Linux操作系統支持內存獲取的常見工具有dd (適合Linux早期版本)、LiME、linpmem、 Draugr、 Volatilitux、Memfetch、Memdump。Mac OSX操作系統支持內存獲取的常見工具有Mac Memory Reader、OSXPmem、Recon for Mac OSX、Blackbag Mac Quisition。
Windows操作系統平臺下的DumpIt是一個簡單易用的計算機內存鏡像獲取工具。通常直接將該工具存放在大容量移動硬盤或U盤中,可在正在運行的Windows操作系統上直接運行,根據提示操作即可。在獲取物理內存數據時還需盡量減少對原有內存數據的覆蓋,最大限度地提取內存數據。
從Windows操作系統獲取的物理內存鏡像需要使用專門的內存分析工具對其進行分析。常見的內存分析工具有Volatility、Rekall、 Forensic Toolkit(FTK)、取證大師及取證神探等,利用這些工具可以解析出常見的基本信息,包括進程信息、網絡連接、加載的DLL文件及注冊表加載信息等。