https://newera17031.activehosted.com/index.php?action=social&chash=a60937eba57758ed45b6d3e91e8659f3.2219&nosocial=1
https://newera17031.activehosted.com/index.php?action=social&chash=a60937eba57758ed45b6d3e91e8659f3.2219&nosocial=1

觀點

Windows平台下的安全事件處理

2004 / 12 / 31
沈志昌/林敬皇
Windows平台下的安全事件處理

入侵應變
入侵應變階段是在發現異常情形時,從有限的主機資訊中提存有關資訊安全事件的行動,內容包含可能所發生的損害或是影響程度,這是所有處理資安事件的第一階段,接著即是應變的實行,依照組織內的資安策略,決定是否繼續監控,或是進行離線修復之工作。在入侵應變階段,通常需要注意5W1H原則:


Who:誰發現入侵行為?
How:如何發現?
When:何時發現?
What:受損害的程度為何?
Where:攻擊從何開始?
What techniques:怎樣的技術造成系統的損害?及需要什麼技術來進行處理?

根據以上幾點,您可以依據不同的入侵型態來設計應對策略以及需要的通報資訊,要成功的處理入侵事件並不單只是仰賴快速的回復系統狀態,還要兼顧入侵資訊的蒐集和證據的取得。

當系統可能發生遭受入侵的情形時,最常被問到的問題通常是“是否要立即將系統離線”、“是不是要將系統關機”、“要不要馬上將系統重安裝”,但這些都不是最好的解決方式,而是必須考量您先前所設計的資訊安全策略。舉例來說,若入侵者還潛伏在您的系統中,也許您不應該立即斷線而驚動對方,反之您可以進行安全通報後,藉由監控程式追蹤出對方的來源。但倘若您的資料屬於重要的機密資料,這時您可能就須以保護資料為優先,立即斷線以防止更嚴重的損害發生。

取得證據
數位證據是相當容易建立,也是容易修改,通報者必須十分注意取得的證據,重要的是必須注意每一個蒐集的程序及所蒐集到的資訊種類。在資安事件上,入侵行為未必會立即提升至需要法律行動,但對於企業組織來說這些相關資訊的取得,都可能在將來資安事件等級提昇時,轉變為有力的證據,因此,對於蒐集的時間點、技術等,都應該利用可信任及可驗證的方式進行。

對於記錄的方式、時間、媒體以及如何整合這些證據的方式,都應要事先建立標準程序,以因應問題發生時之處理,在記錄這些證據時,您必須注意底下事項,確保蒐集的資訊是有效的。

1.避免寫入原來的媒體
2.避免直接刪除所有執行程序
3.避免干預系統時間
4.避免使用非信任的軟體
5.避免干預系統狀況(包含重開機、更新檔、修正檔、或是重新修改系統組態)



保護容易消失的資訊
當資安處理程序進入鑑識(forensic)分析程序時,有可能會採用系統關機或是離線調查的方式。然而電腦系統有許多的資訊是容易消失(或揮發)的(例如:記憶體資料、時間、內容、連線狀況等),因此,在系統存活時(live system)即時保存甚至是保護這些容易消失的資訊,對於數位證據的蒐集上,是相當重要的步驟。以下將列舉這些容易消失的儲存設備種類,這些是蒐集及保存系統現況資訊重要的處理標的:

1.registers, cache 內容
2.記憶體內容
3.網路連線狀態
4.正在執行的程序(running processes)
5.正在使用的檔案內容及磁碟裝置
6.可攜式裝置或是備份媒體內容(光碟機、磁帶機、flash 等)
而在動手取得這些易消失證據時,以下幾項是需要注意的事項:

1.系統時間及日期
2.正在執行和運行的程序(process)
3.目前的網路連線狀態
4.應用程式所開啟的通訊埠(sockets)
5.系統上登入的使用者

取得以上這些容易消失的資訊,對於蒐證來說是相當重要的一環,在某些案例中,入侵者(如:hacker)常會利用駭客工具來達成目的,此時所使用的工具程式就會常駐在記憶體、網路連線中,完整的取得這些資訊,對於成功的處理資安事件有絕對必要性。

建立蒐證工具集 (Toolkits)
取得資安事故證據及確定其正確無誤是重要的,因此,可信的蒐證程式與工具將是蒐證的第一步驟,建議將這些工具建立在CD-ROM中攜帶至受入侵系統或是事件現場將會是個不錯的處理方式,管理者需要經常更新蒐證工具且定期蒐集系統內資訊,才能確保所取得的資訊能最接近於事發時間。

下表1提供有關於Window底下蒐集系統安全資訊的工具,可以依照您所需要取得資訊多寡程度,來決定所使用的數量及使用的等級,依此建立您的處理工具集(Toolkits),並測試及確認在蒐集資安事件資訊時,這些工具不會改變任何系統的狀態,這對於將來進行鑑識(forensic)時,將會有很大影響。

取得Windows平台證據
我們並不能確保每個的管理者都能夠在第一時間就發覺入侵行為,通常發現問題時,系統可能已經重新啟動,喪失之前的原始狀況,即使發生上述情形,對於蒐證來說,儘早進行蒐證的程序,仍是正面積極的行動,以下將一步一步告訴您該如何進行資訊的蒐集工作。

Step 1:開啟信任的工具列工具(從您的Toolkits)
首先將您所建立好的蒐證工具集放置於受入侵之機器的CD-ROM,並且啟動您系統上的開始選單,在執行的選項上啟動命令列視窗。

Step 2:準備好蒐證系統
記得先前您已經將您的蒐證工具集放置於受害機器上,接下來步驟就是開始要利用這張光碟來進行資訊的蒐集,並且把蒐集的證據存放到儲存媒體。在此之前,您可以利用網路方式來進行證據的存放,因此,您需要在遠端啟動蒐證系統,以netcat為例(您也可使用加密的方式,如cryptcat,可以避免遭受竊聽),首先您必須在您的蒐證機器上,啟動netcat並給於此服務一個聆聽埠(listen port),準備接收來自受害主機的資訊。

蒐證機器上:nc –l –p 12345 >> d:\collect.txt。
在此,-l為開啟listen port,-p則是指定您的listen port,最後轉向到您所欲儲存的位置上,在設置好蒐證系統的準備工作後,接著就是回到受害主機上進行蒐證的工作。在受害主機上,您必須建立與蒐證系統的連線工作。
受害主機上:nc <蒐證機器ip位址> -e
舉例來說,若您欲將受害主機目錄下檔案結構傳遞至蒐證主機,您可以在命令欄位上使用dir這個指令,如下:

nc 192.168.1.9 12345 -e dir 或是dir | nc 192.168.1.9 12345
透過這個程序,您可以完成系統的連線工作,示意圖如下:

Step 3:蒐集易消失證據
蒐證的第一要務為蒐集系統上容易消失的重要資訊,包含:
1.系統中基本資訊
2.執行中的程序
3.開啟的通訊埠
4.網路連線狀態
5.網路分享狀況
6.網路使用者
以下是此一階段需要執行的指令,而系統時間及日期是在執行所有程序的前需要先蒐集的資訊。(請記住,以下步驟皆是在受害主機端進行。)

上述所有蒐集動作,看似繁雜且枯燥,但當所有資訊都蒐集齊全時,將會成為系統的縮影,資安處理單位可以根據上述資訊進一步還原系統原貌,連線、檔案結構。

Step 4:蒐集系統logs
完成受測系統環境資訊蒐集後,接著就要針對此部機器的歷史資訊進行蒐集,所謂歷史資訊指的是本機的記錄檔(logs),藉由取得log檔,在電腦鑑識(computer forensic)階段時,將可以根據歷史資訊來分析該機器特定時間點發生何事,提供了怎樣的服務,可以更接近於當時系統狀態,若蒐集環境資訊是屬於靜態分析,log分析則是屬於動態的部份。當然,前提是您在安裝設定您系統時,您已經知道啟動歷史紀錄檔的必要性,在此階段所蒐集的log有:

1.Registry
2.Events logs
3.Relevant application logs
在您尋找到該log檔後,請利用md5sum將其加上hash碼,以確保資訊在傳輸時不會遭受竄改,並將這些記錄檔存放置蒐證主機上。

Step 5:網路連線封包內容蒐集
本階段為蒐集網路連線目前的動作,若情況允許的話,您可以利用網路工具進行監控主機的動作,利用sniffer(監聽)工具可以監控網路及封包狀況,藉此瞭解傳輸內容,以及預防入侵者再次返回系統進行破壞(當然,設下陷阱也是可以採行的方案,一切原則以組織中的安全策略為依歸)。

上述所使用之指令,您可以利用批次檔方式撰寫,上述所使用之指令,您可以利用批次檔方式撰寫,可以增加蒐證的效率與速度,您也可以根據不同的蒐證環境建立您不同的蒐證批次檔Identification of footprints(辨識足跡)。

綜合上述,您目前已經蒐集了:
1.系統基本資訊
2.執行中程序(processes)
3.開啟的通訊埠
4.網路連線狀態
5.網路分享狀況
6.使用者狀況
7.相關的系統記錄檔(logs)

接下來步驟就是要尋跡,藉由比對及檢查我們所蒐集的資訊,去發現異常之處,底下則是檢查的重點:

1.檢查隱藏檔與異常的檔案(例如檔案名稱怪異,或是有特殊名稱)
2.檢查異常的程序與開啟的port(如平常不常見的通訊埠,或是常駐程式)
3.檢查異常的應用程式要求(包含連線、分享資源等)
4.驗證正在執行的工作(jobs),可與正常無誤的系統做比對
5.分析信任關係(比方來自於沒見過的user或是遠端)
6.檢測可疑的使用者帳號
7.決定系統內修正檔階層(注意修正的記錄檔)

透過檢測以上各點,您將會發現不少可疑之處,將其記錄下來,並且與event logs及時間記錄(之前所做的檔案時間記錄)相互比對,尋找該時間點有所關連的檔案、連線、使用狀態與系統的關係。利用時間點切割方式,可以有助於分析事件發生的起源及影響的範圍,進一步的,可以再利用外部諸如防火牆、網路設備的系統記錄進行分析,經由比對可以尋找出更多關於事件的證據。

特別需要補充說明的是,當您分析IIS下的紀錄時,請記住IIS是使用UTC時間,原因在於其設計用來提供在全球www服務(即使用multiple time zone),因此,分析時您必須根據時差進行系統時間的比對,當您分析此類log時,這是需要注意的事項。

而最後,您可以藉由檢測系統Registry來發現:
1.軟體安裝的歷程(包含以前)及目前安裝的軟體
2.判斷系統之安全狀態
3.判斷常駐、開機時啟動的程式可能會出現的木馬程式
4.判斷曾經使用過的(Most Recently Used, MRU)檔案資訊

後續處理
藉由入侵蒐證程序,將可以發現系統中異常之處,判斷問題的發生點以及影響範圍,當完成這些程序後,接下來您必須思考:

1.是否需要將整個系統經由備份工具進行整體的調查(或直接將硬碟當作證據)
2.是否提升處理等級並採取法律行動
3.或是恢復系統至正常狀態(reinstall、patch或是提升系統安全防護程度)
當您完成可疑事件判斷後,將會發現入侵者資訊將不是那麼容易能追溯,此時您可以透過ISP進行反應,或是至您所處地的網路危機處理中心進行申訴,以台灣來說,台灣網路危機處理暨協調中心(TWCERT/CC),負責國內及國外入侵事件的回報處理,您可以至該中心入侵回報系統中進行通報,該中心技術人員將會義務為您處理(https://www.cert.org.tw/service/ir_form.php),若能附上您所蒐集到的資訊及處理的過程,想必一定能順利解決資安問題,並且經由對方ISP防堵該入侵者再度侵害您的系統。

結論
所謂防範未然,入侵應變處理計畫及程序的建立,對於個人或是組織資訊安全是不可或缺的部份,沒有人能保證自己的系統絕對安全,也因此,在不安全的環境下,防護體系的存在是為了將危險性降低至最低,而事發處理計畫,則是為了將傷害降至最低,其重要性與防衛體系是同等的。建立一套標準程序及完整蒐集工具,能有助於第一時間保存容易損害的電腦資訊,確保所蒐證之資訊可以最接近於事發當時情況,也有助於恢復至原始環境。

所建立的處理程序,亦可設計為定期檢測計畫,系統安全檢測與備份系統也是同等重要,若能於日常工作同時,落實回應計畫的實施,想必對於解決資安事件,將不會再是難事,也可以降低因為關鍵性資訊的流失,造成日後證據上不足,甚至進一步造成查案上的困擾,因此,在閱讀本文後,您應開始思考您的資訊安全策略是否有缺失,並立即建立您的入侵應變計畫,別讓惡意的入侵者造成你的損害。

本文作者現任職於台灣電腦網路危機處理暨協調中心(TWCERT/CC)