調查一個電腦的入侵事件就如同調查一個犯罪的現場,探員將會蒐集證物、記下任何可疑的線索,並且詳列出損失與損壞的清單。 電腦犯罪的分析調查可以在攻擊事件正發生時進行或者是在 事後 (攻擊之後)才進行。
雖然最好不要信賴被入侵系統中任何的系統紀錄檔案,仍然有其他的法院工具可以協助 您的分析,這些工具的目的與特色有異,不過它們都會建立媒體的位元映像副本、將事件 與程序互相關聯、顯示出低階的檔案系統資訊,並且盡可能地回復刪除的檔案。
最好能夠使用 script 指令來紀錄在遭破壞的系統上執行的所有調查 動作,如下列例子所示:
script -q <file-name> |
請以 script 紀錄檔的檔案名稱取代 <file-name>, 請記得將紀錄檔案儲存在其他媒體上(而不是存放在遭破壞之系統的硬碟上) — 一片軟碟片即可。
藉由紀錄所有的動作,便會建立一個稽核的存底,以便抓到攻擊者時當作證據用途。
建立媒體的一個位元映像副本是可行的第一步驟,當執行資料的法庭作業,這個步驟是必 要的。 建議您建立兩個副本: 一個用作分析與調查,另一個與正本一起存放,以當作 任何法定訴訟程序所需的證據。
您可以使用 Red Hat Enterprise Linux 中 fileutils 套件所附的 dd 指令來建立遭受入侵系統的一個整體的影像,以在調查時當作證據或與可信賴之映像檔進行比較。 在此假設您想要建立映像的系統中有一個單一的硬碟,將該硬碟連接至您系統上的 slave 介面,然後使用如下的 dd 指令以建立這個映像檔:
dd if=/dev/hdd bs=1k conv=noerror,sync of=/home/evidence/image1 |
這個指令將會以 1K 的區塊大小為速度建立名為 image1 的檔案。 conv=noerror,sync 選項強制使得 dd 指令在即使遇到損壞的區段時也能繼續讀取並傾印資料。 現在您便可以開始研究這個做好的映像檔, 或者甚至試著來回復被刪除的檔案。
數位鑑證與分析的主題本身是相當廣泛的,這些工具大部分都是特定使用於某些主機 架構的,而且無法被一般性的應用。 然而事件的處理、分析與回復是相當重要的主題。 借助適當的知識與經驗,Red Hat Linux 可以是執行這些類型之分析的一個相當不錯的平台,因為 它含有許多工具程式可以執行破壞發生後的處理與回復。
表格 10-1 詳列出一些用於檔案稽核與管理的指令, 它也列出一些範例,可用來明確地辨識出檔案以及檔案的屬性(例如權限設定與存取日期),以使得您可以收集更進一步的證據或者是用作分析的項目。 這些工具(與入侵偵測系統、 防火牆、強化的服務以及其他的保全措施結合)將有助於減低攻擊發生時的潛在損失。
![]() | 請注意 |
---|---|
關於每一個工具的詳細資訊,請參考它們個別的 man page。 |
指令 | 功能 | 範例 |
---|---|---|
dd | 建立一個檔案與分割區的一個位元映像副本(或 『磁碟轉儲』), 再加上檢查每一個映像檔的 md5sums,系統管理員可以藉由比較破壞發生前的分割區或 檔案映像以及被破壞後的系統,以找出兩者是否相同。 | dd if=/bin/ls of=ls.dd |md5sum ls.dd >ls-sum.txt |
grep | 從檔案或目錄中尋找有用的字串(文字)資訊,例如權限設定、程式碼的變更以及檔案 屬性等等。 大部分都使用來當作另一個指令(如 ls, ps 或 ifconfig)的一個管線(pipe)指令。 | ps auxw |grep /bin |
strings | 列印出可列印字元的字串到一個檔案中,這個方法可用在稽核執行檔以找出異常狀況, 例如執行 mail 指令到未知的地址或登入到一個非標準的紀錄檔案。 | strings /bin/ps |grep 'mail' |
file | 基於格式、編碼、所連結的函式庫(如果有的話)以及檔案類型(二元檔、文字等等)來決定檔案的特性,此法可用來決定一個執行檔(如 /bin/ls)是否已經被他人使用靜態函式庫所更改,這種狀況也很明確地表示了該執行檔已經被一個惡意的使用者所安裝的執行檔所取代。 | file /bin/ls |
find | 搜尋目錄以找出特定的檔案,它是一個很有用的工具,它可以依據關鍵字、存取的日期與 時間、權限設定等等來搜尋目錄的結構。 系統管理員可以使用它來執行特定目錄或檔案 的一般性系統稽核。 | find -atime +12 -name *log* -perm u+rw |
stat | 顯示關於一個檔案的許多種資訊,包括上次存取的時間、權限設定、UID 與 GID 位元的設定等等。 此法可用來檢查一部被破壞的系統執行檔何時被使用或者何時被修改。 | stat /bin/netstat |
md5sum | 使用 md5 雜湊演算法來計算 128 位元的檢查碼,您可以使用指令來建立一個文字檔案, 以列出在安全性遭破壞後可能被修改或取代的所有重要的執行檔。 重導向摘要到一個檔 案以建立一個簡易的檢查碼資料庫,然後複製檔案到例如 CD-ROM 的僅能讀取的媒體。 | md5sum /usr/bin/gdm >>md5sum.txt |
表格 10-1. 檔案稽核工具