證據與判讀¶
數位鑑識不只是讀取欄位,而是要判斷該欄位能佐證什麼樣的觀察結果、 佐證的強度有多高,以及有哪些無害的原因可能產生相同的觀察結果。
四種實用的證據類別¶
| 類別 | 意義 | 範例 |
|---|---|---|
| 存在 | Windows 曾知道某個路徑或檔案 | Amcache 檔案記錄、ShimCache 項目、$MFT 記錄 |
| 執行 | Windows 記錄了程式啟動或執行狀態 | Prefetch 執行時間;受支援的 ShimCache 執行旗標 |
| 使用者互動 | 使用者或應用程式參照/開啟了某個項目 | RecentDocs、Jump List、「最近使用的項目」資料夾中的 LNK |
| 系統活動 | Windows 記錄了資源使用情形或設定 | SRUM 計數器、服務設定、TaskCache 動作 |
一個跡證可以佐證不只一種類別,但絕不能自動提升其類別。例如,
路徑可疑的 Amcache 項目佐證的是存在。相符的 Prefetch 執行時間則提供
更強的執行證據。USN 建立記錄與 $MFT 路徑可以證明檔案曾位於磁碟上,而
Defender 隔離資料可以解釋它為何消失。
時間戳記是陳述,而非普遍真理¶
請思考每個時間戳記是由什麼造成的:
$STANDARD_INFORMATION與$FILE_NAME的時間描述的是 NTFS 中繼資料,兩者可能不一致。- Prefetch 執行時間描述的是一次被記錄下來的啟動,但只會保留最近幾次的執行時間。
- ShimCache 時間通常是快取檔案的最後修改時間——而不是執行時間。
- 登錄機碼的最後寫入時間適用於整個機碼,而非個別的值。
- RecentDocs 只能將機碼的時間套用到最新的項目;較舊的項目有順序,但通常沒有開啟時間。
- SRUM 時間戳記通常標示的是彙總區間,而非確切的網路操作時間。
分析時請使用 UTC,可行時保留原始值,並記錄所做的任何轉換。
正面與負面證據¶
一筆意義明確的記錄存在,可以是強有力的正面證據。不存在通常是 較弱的證據,因為跡證會循環覆寫、快取有上限、收集可能不完整、設定因系統而異, 而且清理工具確實存在。請說「在所收集的跡證中未觀察到」,而不是「沒有發生」。
佐證階梯¶
- 驗證來源檔案與收集路徑。
- 確認剖析器未回報相關的損毀或未套用的交易記錄檔。
- 依照該跡證頁面的說明判讀欄位。
- 找出能佐證同一行為的獨立跡證。
- 可行時,檢查事件記錄、網路遙測、記憶體或檔案內容。
- 記錄確切的 Juntei 版本、命令、篩選條件與來源雜湊值。
依照證據的強度撰寫結論
建議寫成「Prefetch 記錄 tool.exe 於 10:02:11Z 執行」,而不是「攻擊者恰好在
10:02:11Z 執行了惡意程式」。後者加入了單憑 Prefetch 無法確立的
身分與意圖。