UNIX或NT系統受到入侵之后的恢復步驟
介紹 A.開始以前 1.對照你的安全策略 2.如果你還沒有安全策略 請教管理層 請教律師 聯系法律強制代理(FBI) 通知機構里的其他人 3.記錄下恢復過程中采取的所有步驟 B. 奪回控制權 1.將遭受入侵的系統從網絡上斷開 2.復制遭受入侵系統的鏡象 C. 分析入侵 1.查看系統軟件和配置文件的更改 2.查看數據的更改 3.查看入侵者留下的工具和數據 4.檢查日志文件 5.查看是否有網絡sniffer 的標記 6.檢查網絡中的其他系統 7.檢查與遭受入侵系統有關或受到影響的遠程主機 D. 與相關的 CSIRT和其他站點聯系 1.事件報告 2.聯系 AusCERT - Australian Computer Emergency Response Team 3.聯系 CERT Coordination Center 4.從其他相關站點取得聯系信息 E. 從入侵中恢復 1.安裝操作系統的一個干凈版本 2.禁用不需要的服務 3.安裝廠商提供的所有安全補丁 4.咨詢AusCERT和外部安全公告 5.咨詢CERT 公告,總結,廠商公告 6.小心使用備份中的數據 7.更改密碼 F. 提高你系統和網絡的安全性 1.復習有關Unix或NT安全配置的文章 2.復習有關安全工具的文章 3.安裝安全工具 4.激活最大日志 5.配置防火墻加強網絡防御 G. 重新連上因特網
H. 更新你的安全策略 1.記下從這次入侵學到的教訓 2.計算本次入侵事件的損失 3.匯總安全策略的所有改變
介紹 本文羅列了一些UNIX或NT系統遭受入侵后的推薦響應步驟. (翻譯時省略了一些和我國國 情不符的內容)
A.3. 記錄下恢復過程中采取的所有步驟 強調記錄下恢復過程中采取的所有步驟,這并不過分.恢復一個遭受入侵的系統是令人臉紅 和耗時的過程.其間常見草率的決定. 記錄下恢復過程中采取的所有步驟有助于防止草率 的決定,這些記錄在未來還有參考價值.這對法律調查來說也是很有用的.
B. 奪回控制權 1.將遭受入侵的系統從網絡上斷開 為了奪回控制權,可能需要從網絡上(包括撥號連接)斷開所有的遭受入侵的機器.之后可以 在UNIX的單用戶模式下或NT的本地管理員狀態下操作,確保擁有對機器的完全控制權;然而 ,通過重啟動或切換到單用戶/本地管理員模式,可能會丟失一些有用的信息,因為發現入侵 時的所有運行進程都會 被殺掉.
因此,你可能希望采取'C.5查看是否有網絡sniffer 的標記'中的步驟來確定這臺被入侵的 主機是否正在運行網絡sniffer.
在UNIX系統的單用戶模式下操作,會阻止用戶,入侵者,和入侵進程在你要恢復系統時訪問 被入侵的機器或改變該機器的狀態.如果不把被入侵的主機從網絡上斷開,入侵者可能連入 這臺主機并撤銷你所做的恢復工作.
2.復制遭受入侵系統的鏡象 在分析入侵之前,我們推薦建立一個系統的當前備份.這可以提供入侵被發現時刻文件系統 的快照.將來這個備份或許用的上. 如果你有一塊可用的磁盤,大小和型號都與被入侵主機上的磁盤相同,就可以使用UNIX的dd 命令制作被入侵系統的一個額外拷貝.例如,在一個有兩塊SCSI盤的Linux系統上,下面的命 令可以制作被入侵系統(/dev/sda)的一個額外拷貝(/dev/sdb). # dd if=/dev/sda of=/dev/sdb
更多的信息請參閱dd命令的手冊. 還有許多其他創建系統備份的方法.在NT系統上,沒有象dd這樣的內置命令,但是有許多第 三方的應用程序可以制作整塊硬盤的鏡像拷貝.
假如需要恢復被入侵系統第一次被發現時的狀態,創建一個低級拷貝是很重要的.而且,法 律調查也需要這些文件的協助.做好拷貝的標簽,符號和制作日期并且把拷貝放到一個安全 的地點來保持數據的完整性.
C. 分析入侵 當你的系統從網絡上斷開之后,你可以開始徹底查看日志文件和配置文件,以期發現入侵的 信號,入侵者的改動和配置的弱點.
1. 查看系統軟件和配置文件的更改
校驗所有的系統二進制和配置文件.
當查看系統軟件和配置文件的修改時,要記住在被入侵系統中的任何校驗二進制和配置文 件的工具都有可能被更改.還要記住操作系統的內核本身也可能被更改.因此,建議從一個 可信內核啟動并且使用一個干凈工具來分析入侵活動.在UNIX系統中,可以創建一個啟動盤 ,并通過寫保護來得到一 個可信內核.
建議對照發行介質徹底檢查所有的系統二進制文件.入侵者可能會在整個系統的很多地方 安裝木馬程序.在UNIX系統中經常被木馬程序取代的二進制文件有: telnet, in.telnetd, login, su, ftp, ls, ps, netstat, ifconfig, find, du, df, libc, sync, inetd, 和syslogd.還要檢查被/etc/inetd.conf文件,網絡和系統程序,動態庫文件引用的任何二 進制文件.
在NT系統中,木馬經常表現為計算機病毒或'遠程管理'程序比如Back Orifice和NetBus.在 有些入侵案例中,負責處理Internet連接的系統文件被換成木馬程序.
因為某些木馬程序可能與原始的二進制文件擁有相同的時戳,校驗值,在UNIX系統上推薦使 用cmp命令進行原始發行介質和二進制文件的直接比較.
或者可以對UNIX或NT系統上的可疑二進制文件進行MD5檢查,把結果和原始二進制文件的 MD5校驗和比較.很多廠商提供發行版本中二進制文件的MD5校驗和.
接下來,對比確信沒有被改動過的文件檢查你的配置文件. 當檢查UNIX系統的配置文件時, 需要檢查: /etc/passwd文件中不屬于本系統的條目. /etc/inetd.conf文件是否被更改. 如果允許'r命令' (rlogin, rsh, rexec) ,確保/etc/hosts.equiv和任何.rhosts中沒有 不該有的內容. 檢查新的SUID和SGID文件.下面的命令會打印出文件系統中所有的SUID和SGID文件: # find / ( -perm -004000 -o -perm -002000 ) -type f -print
當檢查NT系統時,需要檢查:
奇怪的用戶或組成員 涉及在登錄或服務中啟動程序的注冊表項的更改. 使用'net share'命令或Server Manager工具檢查未授權的隱藏共享. 使用從NT resource kit中得到的工具pulist.exe或NT任務管理器檢查無法識別的進程.
2. 查看數據的更改 在被入侵系統上的數據通常都會被入侵者更改.建議檢驗Web頁面,ftp文擋,用戶主目錄中 的文件,以及系統上的其他數據文件.
3. 查看入侵者留下的工具和數據 入侵者通常會安裝定制的工具,以便于持續監視或再次訪問被入侵的主機.入侵者經常留下 的文件類型有:
Network Sniffers 網絡sniffer是一個可以監視和記錄網絡活動并將結果寫入文件的工具.入侵者通常使用網 絡sniffer來捕獲在網絡上明文傳送的用戶名和密碼數據. Sniffers在UNIX平臺上更常見 一些,但是在NT平臺上應檢查關鍵的日志記錄程序
Trojan Horse Programs 特絡依木馬程序是指那些看起來完成一種功能但同時又具備另一種完全不同功能的程序. 入侵者使用木馬程序來隱藏他們的活動,捕獲用戶名和密碼,為將來再次記入被入侵的系統 創建后門.
Backdoors 后門程序設計成可以使入侵者在目標主機內部隱藏自己.后門允許安裝它的用戶不通過正 常的驗證過程或利用系統漏洞來訪問系統.
Vulnerability Exploits 大部分入侵事件都是由于計算機運行了帶有漏洞的軟件造成的.入侵者經常使用工具來利 用已知的漏洞從而獲得非授權的訪問.這些工具通常留在系統的隱含目錄中.
Other Intruder Tools 上面提到的入侵者工具并不是確切及全面的列表.入侵者還會留下其他工具.應該注意的工 具有: 探測系統漏洞的工具 發起大范圍探測其他站點的工具 發起拒絕服務攻擊的工具 使用計算機和網絡資源的工具
Intruder Tool Output 你會發現許多入侵者工具的記錄文件.這些記錄文件可能會包含其他相關站點的信息,你被 入侵主機的漏洞和其他站點的漏洞.建議徹底搜查這樣的工具和輸出文件.注意搜查時要使 用確信是干凈的工具.
在被入侵系統上搜索入侵者工具時: 查看在UNIX系統中/dev目錄下不應有的ACSII文件.某些木馬二進制程序的配置文 件通常在/dev目錄下. 仔細查看隱含文件和目錄.如果入侵者建立了一個新賬號和主目錄,通常是隱含文 件和目錄. 查看奇怪的文件和目錄,比如'…'(三個點)或'.. '(兩個點和一些空格)[UNIX]. 入侵者經常在這樣的目錄中使用和隱藏文件.在NT系統上,查看那些看起來很象系統文件 (EXPLORE.EXE, UMGR32.EXE, etc)的文件和目錄.
4. 檢查日志文件 檢查日志文件會幫助你確認系統是如何被入侵的,在入侵時發生了什么事情,訪問你計算機 的遠程主機是誰.但是要知道被入侵系統中的任何日志信息都有可能被入侵者修改過.
在UNIX系統上,應該先看看/etc/syslog.conf文件,確定syslog在哪里記錄事件.NT系統通 常向NT事件三個日志中的一個記錄每件事情,所有這些可以通過事件查看器來檢查.其他NT 應用程序比如IIS服務器可能記錄到其他地方,IIS服務器缺省的日志是在 c:winntsystem32logfiles
下面列出了一些通用UNIX日志文件名,它們的功能和文件的內容.這些日志文件是否在系統 中存在,依賴于系統的配置.
messages messages日志包含相當廣泛的信息.查看該文件中的異常情況.超越常理的任何事情都應該 被查出來,在入侵發生時間附近的事件應該仔細檢查.
xferlog 如果被入侵的系統有FTP服務器功能, xferlog會記錄所有傳輸的文件名.這有助于發現入 侵者上載到系統中的工具,也能發現從你系統中下載的內容.
utmp 這個文件包含當前登錄在系統上每一位用戶的信息(二進制格式).這個文件僅在確定當前 有哪些用戶登錄時有用.通過who命令可以得到其中的內容.
wtmp 用戶每一次成功的登錄,退出,系統重啟,wtmp文件都會被修改.這是一個二進制文件;因此 需要使用工具來從文件中獲取有用的信息.last就是這樣一種工具.last的輸出包含一個表 ,表中記錄了用戶名,相關登錄時間和來源主機.在這個文件中檢查可疑連接(比如從未授權 主機),這些信息可以用 于確定是否還有其他主機受到影響以及系統中究竟有哪些賬號被破解使用.
secure 某些版本的UNIX(比如RedHat Linux)向secure日志文件中記錄tcpwrapper消息.每次當一 個從inetd派生并使用tcpwrapper啟動的服務連接建立時,該文件中會添加一條日志消息. 查看這個文件時,注意那些對不常用服務的訪問或從不熟悉主機來的連接等異常情況.
查看日志文件時要注意那些不尋常的記錄項.
5. 查看是否有網絡sniffer 的標記
當系統入侵發生時,入侵者可以在UNIX系統上暗地里安裝一個網絡監視程序,通常稱為 sniffer(or packet sniffer),用于捕獲用戶賬號和密碼信息.對于NT系統,為達到相同目 的,通常更多地使用遠程管理程序. 檢查sniffer是否被安裝到系統中的第一步是看看是否有進程把任何網絡設備置成混雜 (promiscuous)模式.如果任一網絡設備處于混雜模式,那系統中就有sniffer程序.如果在 發現入侵的時候就重啟機器或在單用戶模式下操作,就不可能探測到處于混雜模式的網卡.
為此有一些工具可以使用.
cpm - UNIX ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/
ifstatus - UNIX ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/ (ifconfig -i命令也可以報告網卡狀態)
注意某些合法的網絡監視和協議分析器會將網卡置成混雜模式.探測到某塊網卡處于混雜 模式并不就一定意味著系統中有入侵者的sniffer在運行.sniffer的記錄文件大小通常會 很快增長,使用諸如df之類的工具可以確定文件系統的哪部分增長超過預期.記住 df,ifconfig,netstat這些命令通 常在黑客安裝sniffer程序的時候都被木馬替換掉了,要使用干凈的工具來檢查網卡狀態.
如果在系統中發現了sniffer,強烈建議檢查sniffer的輸出文件,以確定還有哪些主機處于 危險境地.處于危險境地的主機是指那些出現在被捕獲數據包目的域中的主機.但是如果口 令跨系統使用或者源目的主機相互信任,則源主機也處于危險境地.
許多常用的sniffer會象下面這樣記錄每個連接: -- TCP/IP LOG -- TM: Tue Nov 15 15:12:29 -- PATH: not_at_risk.domain.com(1567) => at_risk.domain.com(telnet) 由于sniffer以這種特定的格式記錄,可以執行如下命令來取得受影響主機的列表. % grep PATH: $sniffer_log_file | awk '{print $4}' | awk -F( '{print $1}'| sort -u 可以根據實際情況修改這條命令.也有一些sniffer程序使用加密輸出,就不容易得到有用 信息.
應該注意,并不是沒有出現在sniffer日志中的主機就安全,因為入侵者可能已經取走 sniffer記錄并刪除過老記錄.或者使用了其他攻擊手段威脅別的主機.
6. 檢查網絡中的其他系統
建議檢查所有的系統,不僅僅是已知被入侵的系統.在要檢查的系統中應該包括與被入侵系 統有網絡服務(NFS或NIS)聯系的系統,或者通過某種信任方式(hosts.equiv或.rhosts,或 者Kerberos服務器)聯系的系統.在檢查網絡中其他系統的時候,建議使用入侵監測檢查表:
http://www.cert.org/tech_tips/intruder_detection_checklist.HTML http://www.cert.org/tech_tips/win_intruder_detection_checklist.html
7.檢查與遭受入侵系統有關或受到影響的遠程主機
在檢查日志文件,入侵者輸出文件和任何在入侵發生期間或之后更改或創建的文件時,應該 注意與被入侵系統可能有連接的遠程主機的任何信息.在很多入侵事件中,與被入侵主機有 連接的主機(不論是上游或下游主機)本身就是入侵的犧牲品.這對于及時鑒別和通知另外 的潛在受害站點來說是 非常重要的.
E. 從入侵中恢復 1. 安裝操作系統的一個干凈版本
應該知道,如果一個系統被入侵,那么系統上的任何東西都有可能被修改過,包括內核,二進 制文件,數據文件,運行的進程和內存.通常徹底將系統從后門和入侵者修改中解放出來的 唯一方法是從發行介質重新安裝操作系統,并且在重新連入網絡之前安裝所有的安全補丁. 僅僅確定和修復用于上 次入侵的漏洞是不夠的. 建議使用干凈的二進制文件來恢復系統.為了將系統置于可控狀態,應該使用初始的發行介 質來重裝操作系統.
2. 禁用不需要的服務
重新配置系統,僅提供那些應該提供的服務,關掉其他服務.檢查這些服務的配置文件中是 否有缺陷,并確定這些服務僅對預定的其他系統開放.通常可以采用保守的策略,首先禁用 所有的服務,只啟動那些需要的服務.
3. 安裝廠商提供的所有安全補丁
強烈建議對每一種系統安裝全套的安全補丁.這是保證系統免受攻擊的主要步驟,重要性是 不言而喻的.建議定期聯系供應商以取得有關系統的任何升級或補丁.
4. 咨詢AusCERT和外部安全公告 5. 咨詢CERT 公告,總結,廠商公告 6.小心使用備份中的數據
當從備份中恢復數據時,要確保備份本身來自于未被入侵的系統.否則有可能重新引入入侵 者可以利用而得到非法訪問的漏洞.如果僅僅恢復用戶的主目錄和數據文件,注意任何文件 里都有可能包含木馬程序.應該特別注意用戶主目錄下的.rhosts文件.
7.更改密碼
在所有的安全漏洞和配置問題修補或更正之后,建議更改受影響系統上的所有賬號的密碼. 確保所有賬號的密碼是難猜的.可以考慮使用廠商或第三方提供的工具來增強密碼的安全 性.
F. 提高你系統和網絡的安全性 1.復習有關UNIX或NT安全配置的文章
參考UNIX或NT配置指南,有助于評估系統的安全性.當檢查常被入侵者利用的常見配置問題 時,這些文檔非常有用.
http://www.cert.org/tech_tips/unix_configuration_guidelines.html http://www.cert.org/tech_tips/win_configuration_guidelines.html 2.復習有關安全工具的文章
考慮使用安全軟件工具比如Tripwire, COPS, TCP wrapper.這些工具有助于增強系統的安 全性并阻止入侵,相關的描述在: http://www.cert.org/tech_tips/security_tools.html
3.安裝安全工具
在將主機連回網絡之前,安裝所有的安全工具.并且此時正好是使用類似Tripwire之類的工 具對新恢復的系統生成MD5校驗快照的好時機.
4.激活最大日志
確保激活日志/審計/記賬程序(比如,進行記賬),并確保設置成正確的記錄級別(比如 ,sendmail日志應該至少在9級之上).備份日志并考慮將日志寫到別的計算機上,或寫到只 能添加(append-only)的文件系統上,或者一臺安全的日志主機.
5.配置防火墻加強網絡防御
考慮在防火墻,路由器或主機上過濾特定的TCP/IP服務.詳細信息參見'包過濾防火墻系統' http://www.cert.org/tech_tips/packet_filtering.html
G. 重新連上因特網
如果已經斷開了同Internet的連接,在完成上面所有步驟之后,是重新連入的最佳時機.
H. 更新你的安全策略
CERT協調中心推薦每個站點制定自己的安全策略.每個組織有自己獨特的文化和安全需求. 為Internet站點制定計算機安全策略及其步驟,詳細信息參見RFC2196'站點安全手冊' ftp://ftp.isi.edu/in-notes/rfc2196.txt
1. 記下從這次入侵恢復學到的教訓 記下從這次入侵恢復學到的教訓,有助于明確如何修訂安全策略
2. 計算本次入侵事件的損失
對很多組織來說,直到他們理解了安全的代價,才會修改安全策略.計算本次入侵的損失有 助于衡量安全對于機構的重要性.計算入侵的損失對于向管理層解釋安全對于本機構的重 要性是十分有幫助的.
3.匯總安全策略的所有改變
改變安全策略是整個過程中的最后一步.確保將這些改變以及由此帶來的影響通知機構中 的所有成員.
