第七卷 BlackICE:擋住黑客的魔爪(1 / 3)

第七卷 BlackICE:擋住黑客的魔爪

防火牆在最初的時期是建築物中用來防止火勢蔓延的一種防火設施,在計算機網絡中這個概念也被引入了近來,但是計算機中的防火牆不在被作為防止火災的設施,而成為了一種放置在網絡內部連接點差距的設備和軟件。

計算機在安裝了防火牆後,任何的信息和數據在通過網絡進行交換或者通訊的時候都會經過防火牆過濾和分析,而且多數防火牆係統在你的係統遭到攻擊的時候還會發出警告。防火牆的工作方式很簡單,它就是利用監控你計算機的端口與經過端口的數據來判斷那些人是想攻擊你的人,這個原理就好像我們出入超市時經過的磁性檢測儀一樣。

在眾多的防火牆軟件中筆者最為欣賞的是美國NetWorkICE公司的BlackICE,BlackICE是一款專門為Windows9x/NT/2000係統設計的防火牆軟件,它具有相當強大的數據信息過濾係統,能過辨別幾乎所有的計算機網絡惡意攻擊或者計算機網絡中的惡意數據掃描。並根據攻擊數據的危險程度作出不同的提示和警告,此外它還具有實時更新的功能,可以很方便地就在網上將防火牆的數據進行更新。

想要找到BlackICE很容易,國內很多大的下載網站都會有他的身影,當然你也可以在http://download.yesky.com/servlet/mydown.yeskydown?tag=4&objID=584進行下載。BlackICE的最新版本為2.5。

現在我就為大家介紹一下BlackICE的簡單設置和使用方法,在進行完畢安裝步驟後,我們很容易就會發現在我們的計算機屏幕的右下角出現了一個BlackeICE的小圖標。

要想對BlackICE進行設置我們就要先雙擊這個小圖標。首先我們看到的是一個攻擊列表,這裏是用來顯示攻擊你計算機的人的IP地址與攻擊方法、次數和時間的列表。在下麵的這個圖二中我們可以看到大量攻擊者的信息,其中有代理端口掃描攻擊,HTTP端口掃描,NetBIOS共享掃描等等,而且在入侵者IP姓名後麵還有入侵者的詳細攻擊次數。如果是在沒有防火牆的計算機上麵,計算機就會"無私"的將這些信息反饋給入侵者,或者是我們的計算機直接麵臨崩潰的與被入侵的危險。

在列表的右下角還有一個可以點擊的"忠告"按鈕,這個按鈕主要是用來讓我們了解入侵者的攻擊方法我們如何避免的一些措施的,看一看是很有幫助的。

知道了入侵者的IP並不是最重要的,ICE還會根據情況來判斷出入侵者的詳細信息。我們點擊攻擊按鈕後麵的入侵者按鈕,可以對入侵者的詳細資料進行觀察和分析。

圖中向我們揭示了入侵者的詳細信息,其中包括入侵者計算機的姓名,入侵者的IP地址,而且根據上麵的信息我們還刻有判斷出入侵者使用的是Windows ME操作係統。這些信息對於我們了解入侵者和判斷入侵目的都是很有幫助的。

而選項中曆史的作用是讓我們看到我們的計算機在不同的時段裏遭到了那些攻擊的高峰期,方便我們判斷入侵者的習慣。

此外我們還可以根據自己的具體情況需要對BlackICE進行設置,我們點擊工具按鈕中的"編輯BlackICE設置"可以看到具體的設置選項。

其中在保護一項我們可以設置防火牆的敏感度與攔截信息,另一個重要的參數選擇,我們可以根據自己的習慣對防火牆的一些警告提示進行設置。

通常的境況下我們不需要對設置進行改動,默認的設置就可以滿足我們的需求。當我們計算機桌麵右下角的小圖標開始閃爍的時候,我們就可以根據這些情況分析出我們是否遭到攻擊了。

當然最後我要說的是要及時經常的更新一下我們的防火牆啊。

第一章 係統被入侵後的恢複

準備工作

一、商討安全策略

如果你的組織沒有自己的安全策略,那麼需要按照以下步驟建立自己的安全策略:

1.和管理人員協商

將入侵事故通知管理人員,可能在有的組織中很重要。在be aware進行事故恢複的時候,網絡管理人員能夠得到內部各部門的配合。也應該明白入侵可能引起傳媒的注意。

2.和法律顧問協商

在開始你的恢複工作之前,你的組織需要決定是否進行法律調查。

注意CERT(Computer Emergency Response Team)隻提供技術方麵的幫助和提高網絡主機對安全事件的反應速度。它們不會提出法律方麵的建議。所以,對於法律方麵的問題建議你谘詢自己的法律顧問。你的法律顧問能夠告訴你入侵者應該承擔的法律責任(民事的或者是刑事的),以及有關的法律程序。

現在,是你決定如何處理這起事故的時候了,你可以加強自己係統的安全或者選擇報警。

如果你想找出入侵者是誰,建議你與管理人員協商並谘詢法律顧問,看看入侵者是否觸犯了地方或者全國的法律。根據這些,你可以報案,看看警方是否願意對此進行調查。

針對與入侵事件,你應該與管理人員和法律顧問討論以下問題:

如果你要追蹤入侵者或者跟蹤網絡連接,是否會觸犯法律。

如果你的站點已經意識到入侵但是沒有采取措施阻止,要承擔什麼法律責任。

入侵者是否觸犯了全國或者本地的法律。

是否需要進行調查。

是否應該報警。

3.報警

通常,如果你想進行任何類型的調查或者起訴入侵者,最好先跟管理人員和法律顧問商量以下。然後通知有關執法機構。

一定要記住,除非執法部門的參與,否則你對入侵者進行的一切跟蹤都可能是非法的。

4.知會其他有關人員

除了管理者和法律顧問之外,你還需要通知你的恢複工作可能影響到的人員,例如其他網絡管理人員和用戶。

二、記錄恢複過程中所有的步驟

毫不誇張地講,記錄恢複過程中你采取的每一步措施,是非常重要的。恢複一個被侵入的係統是一件很麻煩的事,要耗費大量的時間,因此經常會使人作出一些草率的決定。記錄自己所做的每一步可以幫助你避免作出草率的決定,還可以留作以後的參考。記錄還可能對法律調查提供幫助。

奪回對係統的控製權

一、將被侵入的係統從網絡上斷開

為了奪回對被侵入係統的控製權,你需要將其從網絡上斷開,包括播號連接。斷開以後,你可能想進入UNIX係統的單用戶模式或者NT的本地管理者(local administrator)模式,以奪回係統控製權。然而,重啟或者切換到單用戶/本地管理者模式,會丟失一些有用的信息,因為被侵入係統當前運行的所有進程都會被殺死。

因此,你可能需要進入"檢查網絡嗅探器"一節,以確定被侵入的係統是否有網絡嗅探器正在運行。

在對係統進行恢複的過程中,如果係統處於UNIX單用戶模式下,會阻止用戶、入侵者和入侵進程對係統的訪問或者切換主機的運行狀態。

如果在恢複過程中,沒有斷開被侵入係統和網絡的連接,在你進行恢複的過程中,入侵者就可能連接到你的主機,破壞你的恢複工作。

二、複製一份被侵入係統的影象

在進行入侵分析之前,建議你備份被侵入的係統。以後,你可能會用得著。

如果有一個相同大小和類型的硬盤,你就可以使用UNIX命令dd將被侵入係統複製到這個硬盤。

例如,在一個有兩個SCSI硬盤的Linux係統,以下命令將在相同大小和類型的備份硬盤(/dev/sdb)上複製被侵入係統(在/dev/sda盤上)的一個精確拷貝。

# dd if=/dev/sda of=/dev/sdb

還有一些其它的方法備份被侵入的係統。在NT係統中沒有類似於dd的內置命令,你可以使用一些第三方的程序複製被侵入係統的整個硬盤影象。

建立一個備份非常重要,你可能會需要將係統恢複到侵入剛被發現時的狀態。它對法律調查可能有幫助。記錄下備份的卷標、標誌和日期,然後保存到一個安全的地方以保持數據的完整性。

入侵分析

現在你可以審查日誌文件和係統配置文件了,檢查入侵的蛛絲馬跡,入侵者對係統的修改,和係統配置的脆弱性。

一、檢查入侵者對係統軟件和配置文件的修改

校驗係統中所有的二進製文件

在檢查入侵者對係統軟件和配置文件的修改時,一定要記住:你使用的校驗工具本身可能已經被修改過,操作係統的內核也有可能被修改了,這非常普遍。因此,建議你使用一個可信任的內核啟動係統,而且你使用的所有分析工具都應該是幹淨的。對於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。特洛伊木馬會取代處理網絡連接的一些係統文件。

一些木馬程序具有和原始二進製文件相同的時間戳和sum校驗值,通過校驗和無法判斷文件是否被修改。因此,對於UNIX係統,我們建議你使用cmp程序直接把係統中的二進製文件和原始發布介質上對應的文件進行比較。

你還可以選擇另一種方法檢查可疑的二進製文件。向供應商索取其發布的二進製文件的MD5校驗值,然後使用MD5校驗值對可疑的二進製文件進行檢查。這種方法適用於UNIX和NT。

校驗係統配置文件

在UNIX係統中,你應該進行如下檢查:

檢查/etc/passwd文件中是否有可疑的用戶

檢查/etc/inet.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"命令和服務器管理工具共有的非驗證隱藏文件

檢查pulist.ext程序無法識別的進程

二、檢查被修改的數據

入侵者經常會修改係統中的數據。所以建議你對web頁麵文件、ftp存檔文件、用戶目錄下的文件以及其它的文件進行校驗。

三、檢查入侵者留下的工具和數據

入侵者通常會在係統中安裝一些工具,以便繼續監視被侵入的係統。

入侵者一般會在係統中留下如下種類的文件:

網絡嗅探器

網絡嗅探器就是監視和記錄網絡行動的一種工具程序。入侵者通常會使用網絡嗅探器獲得在網絡上以明文進行傳輸的用戶名和密碼。

嗅探器在UNIX係統中更為常見。

特洛伊木馬程序

特洛伊木馬程序能夠在表麵上執行某種功能,而實際上執行另外的功能。因此,入侵者可以使用特洛伊木馬程序隱藏自己的行為,獲得用戶名和密碼數據,建立後門以便將來對係統在此訪問被侵入係統。

後門

後門程序將自己隱藏在被侵入的係統,入侵者通過它就能夠不通過正常的係統驗證,不必使用安全缺陷攻擊程序就可以進入係統。

安全缺陷攻擊程序

係統運行存在安全缺陷的軟件是其被侵入的一個主要原因。入侵者經常會使用一些針對已知安全缺陷的攻擊工具,以此獲得對係統的非法訪問權限。這些工具通常會留在係統中,保存在一個隱蔽的目錄中。

入侵者使用的其它工具

以上所列無法包括全部的入侵工具,攻擊者在係統中可能還會留下其它入侵工具。這些工具包括:

係統安全缺陷探測工具

對其它站點發起大規模探測的腳本

發起拒絕服務攻擊的工具

使用被侵入主機計算和網絡資源的程序

入侵工具的輸出

你可能會發現入侵工具程序留下的一些日誌文件。在這些文件中可能會包含被牽扯的其它站點,攻擊者利用的安全缺陷,以及其它站點的安全缺陷。

因此,建議你對係統進行徹底的搜索,找出上麵列出的工具及其輸出文件。一定要注意:在搜索過程中,要使用沒有被攻擊者修改過的搜索工具拷貝。

搜索主要可以集中於以下方向:

檢查UNIX係統/dev/目錄下意外的ASCII文件。一些特洛伊木馬二進製文件使用的配置文件通常在/dev目錄中。

仔細檢查係統中的隱藏文件和隱藏目錄。如果入侵者在係統中建立一個一個新的帳戶,那麼這個新帳戶的起始目錄以及他使用的文件可能是隱藏的。

檢查一些名字非常奇怪的目錄和文件,例如:...(三個點)、..(兩個點)以及空白(在UNIX係統中)。入侵者通常會在這樣的目錄中隱藏文件。對於NT,應該檢查那些名字和一些係統文件名非常接近的目錄和文件。

四、審查係統日誌文件

詳細地審查你的係統日誌文件,你可以了解係統是如何被侵入的,入侵過程中,攻擊者執行了哪些操作,以及哪些遠程主機訪問了你的主機。通過這些信息,你能夠對入侵有更加清晰的認識。

記住:係統中的任何日誌文件都可能被入侵者改動過。

對於UNIX係統,你可能需要查看/etc/syslog.conf文件確定日誌信息文件在哪些位置。NT通常使用三個日誌文件,記錄所有的NT事件,每個NT事件都會被記錄到其中的一個文件中,你可以使用Event Viewer查看日誌文件。其它一些NT應用程序可能會把自己的日誌放到其它的地方,例如ISS服務器默認的日誌目錄是c:winntsystem32logfiles。

以下是一個通常使用的UNIX係統日誌文件列表。由於係統配置的不同可能你的係統中沒有其中的某些文件。

messages

messages日誌文件保存了大量的信息。可以從這個文件中發現異常信息,檢查入侵過程中發生了哪些事情。

xferlog

如果被侵入係統提供FTP服務,xferlog文件就會記錄下所有的FTP傳輸。這些信息可以幫助你確定入侵者向你的係統上載了哪些工具,以及從係統下載了哪些東西。

utmp

保存當前登錄每個用戶的信息,使用二進製格式。這個文件隻能確定當前哪些用戶登錄。使用who命令可以讀出其中的信息。

wtmp

每次用戶成功的登錄、退出以及係統重啟,都會在wtmp文件中留下記錄。這個文件也使用二進製格式,你需要使用工具程序從中獲取有用的信息。last就是一個這樣的工具。它輸出一個表,包括用戶名、登錄時間、發起連接的主機名等信息,詳細用法可以使用man last查詢。檢查在這個文件中記錄的可疑連接,可以幫助你確定牽扯到這起入侵事件的主機,找出係統中的哪些帳戶可能被侵入了。

secure

某些些版本的UNIX係統(例如:RedHat Linux)會將tcp_wrappers信息記錄到secure文件中。如果係統的inetd精靈使用tcp_wrappers,每當有連接請求超出了inetd提供的服務範圍,就會在這個文件中加入一條日誌信息。通過檢查這個日誌文件,可以發現一些異常服務請求,或者從陌生的主機發起的連接。

審查日誌,最基本的一條就是檢查異常現象。

五、檢查網絡嗅探器

入侵者侵入一個UNIX係統後,為了獲得用戶名和密碼信息,一般會在係統上安裝一個網絡監視程序,這種程序就叫作嗅探器或者數據包嗅探器。對於NT,入侵者會使用遠程管理程序實現上述目的。

判斷係統是否被安裝了嗅探器,首先要看當前是否有進程使你的網絡接口處於混雜(Promiscuous)模式下。如果任何網絡接口處於promiscuous模式下,就表示可能係統被安裝了網絡嗅探器。注意如果你重新啟動了係統或者在單用戶模式下操作,可能無法檢測到Promiscuous模式。使用ifconfig命令就可以知道係統網絡接口是否處於promoscuous模式下(注意一定使用沒有被侵入者修改的ifconfig):

#/path-of-clean-ifconfig/ifconfig -a

有一些工具程序可以幫助你檢測係統內的嗅探器程序:

cpm(Check Promiscuous Mode)--UNIX

可以從以下地址下載:ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/

ifstatus--UNIX

可以從以下地址下載:ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/

neped.c

可以從以下地址下載:ftp://apostols.org/AposTolls/snoapshots/neped/neped.c

一定要記住一些合法的網絡監視程序和協議分析程序也會把網絡接口設置為promiscuous模式。檢測到網絡接口處於promicuous模式下,並不意味著係統中有嗅探器程序正在運行。

但是,在Phrack雜誌的一篇文章:(Phrack Magazine Volume 8,Issue 53 July 8,1998,article 10 of 15, Interface Promiscuity Obscurity)中,有人提供了一些針對FreeBSD、Linux、HP-UX、IRIX和Solaris係統的模塊,可以擦除IFF_PROMISC標誌位,從而使嗅探器逃過此類工具的檢查。以此,即使使用以上的工具,你沒有發現嗅探器,也不能保證攻擊者沒有在係統中安裝嗅探器。

現在,LKM(Loadable Kernel Model,可加載內核模塊)的廣泛應用,也增加了檢測難度。關於這一方麵的檢測請參考使用KSAT檢測可加載內核模塊。

還有一個問題應該注意,嗅探器程序的日誌文件的大小會急劇增加。使用df程序查看文件係統的某個部分的大小是否太大,也可以發現嗅探器程序的蛛絲馬跡。建議使用lsof程序發現嗅探器程序打開的日誌文件和訪問訪問報文設備的程序。在此,還要注意:使用的df程序也應該是幹淨的。

一旦在係統中發現了網絡嗅探器程序,我們建議你檢查嗅探器程序的輸出文件確定哪些主機受到攻擊者威脅。被嗅探器程序捕獲的報文中目的主機將受到攻擊者的威脅,不過如果係統的密碼是通過明文傳輸,或者目標主機和源主機互相信任,那麼源主機將受到更大的威脅。

通常嗅探器程序的日誌格式如下:

-- TCP/IP LOG -- TM: Tue Nov 15 15:12:29 --

PATH: not_at_risk.domain.com(1567) => at_risk.domain.com(telnet)

使用如下命令可以從嗅探器程序的日誌文件中得到受到威脅的主機列表:

% grep PATH: $sniffer_log_file | awk '{print $4}' |

awk -F( '{print $1}'| sort -u

你可能需要根據實際情況對這個命令進行一些調整。一些嗅探器程序會給日誌文件加密,增加了檢查的困難。

你應該知道不隻是在嗅探器程序日誌文件中出現的主機受到攻擊者的威脅,其它的主機也可能受到威脅。

建議你參考http://www.cert.org/advisories/CA-94.01.ongoing.network.monitoring.attacks.html獲得更為詳細的信息。

六、檢查網絡上的其它係統

除了已知被侵入的係統外,你還應該對網絡上所有的係統進行檢查。主要檢查和被侵入主機共享網絡服務(例如:NIX、NFS)或者通過一些機製(例如:hosts.equiv、.rhosts文件,或者kerberos服務器)和被侵入主機相互信任的係統。

建議你使用CERT的入侵檢測檢查列表進行這一步檢查工作。

http://www.cert.org/tech_tips/intruder_detection_checklist.html

http://www.cert.org/tech_tips/win_intruder_detection_checklist.html

七、檢查涉及到的或者受到威脅的遠程站點

在審查日誌文件、入侵程序的輸出文件和係統被侵入以來被修改的和新建立的文件時,要注意哪些站點可能會連接到被侵入的係統。根據經驗那些連接到被侵入主機的站點,通常已經被侵入了。所以要盡快找出其它可能遭到入侵的係統,通知其管理人員。

通知相關的CSIRT和其它被涉及的站點

一、事故報告

入侵者通常會使用被侵入的帳戶或者主機發動對其它站點的攻擊。如果你發現針對其它站點的入侵活動,建議你馬上和這些站點聯絡。告訴他們你發現的入侵征兆,建議他們檢查自己的係統是否被侵入,以及如何防護。要盡可能告訴他們所有的細節,包括:日期/時間戳、時區,以及他們需要的信息。

你還可以向CERT(計算機緊急反應組)提交事故報告,從他們那裏的到一些恢複建議。

中國大陸地區的網址是: http://www.cert.org.cn

二、與CERT調節中心(CERT Coordination Center)聯係

你還可以填寫一份事故報告表,使用電子郵件發送到http://www.cert.org,從那裏可以得到更多幫助。CERT會根據事故報告表對攻擊趨勢進行分析,將分析結果總結到他們的安全建議和安全總結,從而防止攻擊的蔓延。可以從以下網址獲得事故報告表: