入侵檢測系統(tǒng)(IDS)是防火墻的合理補充,它幫助安全系統(tǒng)發(fā)現(xiàn)可能的入侵前兆,并對付網(wǎng)絡(luò)攻擊。入侵檢測系統(tǒng)能在不影響網(wǎng)絡(luò)性能的情況下對網(wǎng)絡(luò)進行監(jiān)測,提供對內(nèi)部攻擊、外部攻擊和誤操作的實時保護,能夠擴展系統(tǒng)管理員的安全管理能力(包括安全審計、監(jiān)視、進攻識別和響應(yīng)),提高了信息安全基礎(chǔ)結(jié)構(gòu)的完整性。但是,入侵檢測系統(tǒng)并不是萬能的,高昂的價格也讓人退卻,而且,單個服務(wù)器或者小型網(wǎng)絡(luò)配置入侵檢測系統(tǒng)或者防火墻等投入也太大了。
一、對于WWW服務(wù)入侵的前兆檢測
對于網(wǎng)絡(luò)上開放的服務(wù)器來說,WWW服務(wù)是最常見的服務(wù)之一;80端口的入侵也因此是最普遍的。很多sceipt kids就對修改WEB頁面非常熱衷。WWW服務(wù)面對的用戶多,流量相對來說都很高,同時WWW服務(wù)的漏洞和相應(yīng)的入侵方法和技巧也非常多,并且也相對容易,很多“黑客”使用的漏洞掃描器就能夠掃描80端口的各種漏洞,比如wwwscan 、X-scanner等,甚至也有只針對80端口的漏洞掃描器。Windows系統(tǒng)上提供WWW服務(wù)的IIS也一直漏洞不斷,成為系統(tǒng)管理員頭疼的一部分。
雖然80端口入侵和掃描很多,但是80端口的日志記錄也非常容易。IIS提供記錄功能很強大的日志記錄功能。在“Internet 服務(wù)管理器”中站點屬性可以啟用日志記錄。默認情況下日志都存放在%WinDir%System32LogFiles,按照每天保存在exyymmdd.log文件中。這些都可以進行相應(yīng)配置,包括日志記錄的內(nèi)容。
在配置IIS的時候應(yīng)該讓IIS日志盡量記錄得盡量詳細,可以幫助進行入侵判斷和分析,F(xiàn)在我們要利用這些日志來發(fā)現(xiàn)入侵前兆,或者來發(fā)現(xiàn)服務(wù)器是否被掃描。打開日志文件,我們能夠得到類似這樣的掃描記錄(以Unicode漏洞舉例):
2002-03-10 05:42:27 192.168.1.2 - 192.168.1.1 80 HEAD /script/..卡../..卡../..
卡../winnt/system32/cmd.exe /c+dir 404 -
2002-03-10 05:42:28 192.168.1.2 - 192.168.1.1 80
GET /script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404 -
需要注意類似這樣的內(nèi)容:
/script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404
如果是正常用戶,那么他是不會發(fā)出這樣的請求的,這些是利用IIS的Unicode漏洞掃描的結(jié)果。后面的404表示并沒有這樣的漏洞。如果出現(xiàn)的是200,那么說明存在Unicode漏洞,也說明它已經(jīng)被別人掃描到了或者已經(jīng)被人利用了。不管是404或者200,這些內(nèi)容出現(xiàn)在日志中,都表示有人在掃描(或者利用)服務(wù)器的漏洞,這就是入侵前兆。日志也記錄下掃描者的來源:192.168.1.2這個IP地址。
再比如這個日志:
2002-03-10 06:17:50 192.168.1.2 - 192.168.1.1 80 HEAD / - 400 -
這是一個使用HEAD請求來掃描WWW服務(wù)器軟件類型的記錄,攻擊者能夠通過了解WWW使用的軟件來選擇掃描工具掃描的范圍。
IIS通常都能夠記錄下所有的請求,這里面包含很多正常用戶的請求記錄,這也讓IIS的日志文件變得非常龐大,上十兆或者更大,人工瀏覽分析就變得不可取。這時可以使用一些日志分析軟件,幫助日志分析。或者使用下面這個簡單的命令來檢查是否有Unicode漏洞的掃描事件存在:
find /I "winnt/system32/cmd.exe" C:logex020310.log
“find”這個命令就是在文件中搜索字符串的。我們可以根據(jù)掃描工具或者漏洞情況建立一個敏感字符串列表,比如“HEAD”、“cmd.exe”(Unicode漏洞)、“.ida”“.idq”(IDA/IDQ遠程溢出漏洞)、“.printer”(Printer遠程溢出漏洞)等等。
二、對于FTP等服務(wù)入侵的前兆檢測
根據(jù)前面對于WWW服務(wù)入侵前兆的檢測,我們可以照樣來檢測FTP或者其他服務(wù)(POP、SMTP等)。以FTP服務(wù)來舉例,對于FTP服務(wù),通常最初的掃描或者入侵必然是進行帳號的猜解。對于IIS提供的FTP服務(wù),也跟WWW服務(wù)一樣提供了詳盡的日志記錄(如果使用其他的FTP服務(wù)軟件,它們也應(yīng)該有相應(yīng)的日志記錄)。
我們來分析這些日志:
2002-03-10 06:41:19 192.168.21.130 administrator [36]USER administrator 331
2002-03-10 06:41:19 192.168.21.130 - [36]PASS - 530
這表示用戶名administrator請求登錄,但是登錄失敗了。當(dāng)在日志中出現(xiàn)大量的這些登錄失敗的記錄,說明有人企圖進行FTP的帳號猜解。這就是從FTP服務(wù)來入侵的入侵前兆。
分析這些日志的方法也跟前面分析WWW服務(wù)的日志方法類似。因為FTP并不能進行帳號的枚舉,所以,如果發(fā)現(xiàn)有攻擊者猜測的用戶名正好和你使用的帳號一致,那么就需要修改帳號并加強密碼長度。
三、系統(tǒng)帳號密碼猜解入侵的前兆檢測
對于Windows 2003服務(wù)器來說,一個很大的威脅也來自系統(tǒng)帳號密碼的猜解,因為如果配置不佳的服務(wù)器允許進行空會話的建立,這樣,攻擊者能夠進行遠程的帳號枚舉等,然后根據(jù)枚舉得到的帳號進行密碼的猜測。即使服務(wù)器拒絕進行空會話的建立,攻擊者同樣能夠進行系統(tǒng)帳號的猜測,因為基本上很多服務(wù)器的系統(tǒng)管理員都使用administrator、admin、root等這樣的帳號名。那些黑客工具,比如“流光”等,就可以進行這樣的密碼猜測,通過常用密碼或者進行密碼窮舉來破解系統(tǒng)帳號的密碼。
要檢測通過系統(tǒng)帳號密碼猜解的入侵,需要設(shè)置服務(wù)器安全策略,在審核策略中進行記錄,需要審核記錄的基本事件包括:審核登錄事件、審核帳戶登錄事件、帳戶管理事件。審核這些事件的“成功、失敗”,然后我們可以從事件查看器中的安全日志查看這些審核記錄。
比如:如果我們在安全日志中發(fā)現(xiàn)了很多失敗審核,就說明有人正在進行系統(tǒng)帳號的猜解。我們查看其中一條的詳細內(nèi)容,可以看到:
登錄失。
原因:用戶名未知或密碼錯誤
用戶名:administrator
域:ALARM
登錄類型:3
登錄過程:NtLmSsp
身份驗證程序包:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
工作站名:REFDOM
進行密碼猜解的攻擊者打算猜測系統(tǒng)帳號administrator的密碼,攻擊者的來源就是工作站名:REFDOM,這里記錄是攻擊者的計算機名而不是他的IP地址。
當(dāng)我們發(fā)現(xiàn)有人打算進行密碼猜解的時候,就需要對相應(yīng)的配置和策略進行修改。比如:對IP地址進行限制、修改被猜解密碼的帳號的帳號名、加強帳號密碼的長度等等來應(yīng)對這樣的入侵。
四、終端服務(wù)入侵的前兆檢測
Windows2003 提供終端控制服務(wù)(Telminal Service),它是一個基于遠程桌面協(xié)議(RDP)的工具,方便管理員進行遠程控制,是一個非常好的遠程控制工具。終端服務(wù)使用的界面化控制讓管理員使用起來非常輕松而且方便,速度也非常快,這一樣也讓攻擊者一樣方便。而且以前終端服務(wù)存在輸入法漏洞,可以繞過安全檢查獲得系統(tǒng)權(quán)限。對于打開終端服務(wù)的服務(wù)器來說,很多攻擊者喜歡遠程連接,看看服務(wù)器的樣子(即使他們根本沒有帳號)。
對終端服務(wù)進行的入侵一般在系統(tǒng)帳號的猜解之后,攻擊者利用猜解得到的帳號進行遠程終端連接和登錄。
在管理工具中打開遠程控制服務(wù)配置,點擊"連接",右擊你想配置的RDP服務(wù)(比如 RDP-TCP(Microsoft RDP 5.0),選中書簽"權(quán)限",點擊"高級",加入一個Everyone組,代表所有的用戶,然后審核他的"連接"、"斷開"、"注銷"的成功和"登錄"的成功和失敗,這個審核是記錄在安全日志中的,可以從"管理工具"->"日志查看器"中查看。但是這個日志就象前面的系統(tǒng)密碼猜解那樣,記錄的是客戶端機器名而不是客戶端的IP地址。我們可以做一個簡單的批處理bat文件(文件名為TerminalLog.bat),用它來記錄客戶端的IP,文件內(nèi)容是:
time /t >>Terminal.log
netstat -n -p tcp | find ":3389">>Terminal.log
start Explorer
端服務(wù)使用的端口是TCP 3389,文件第一行是記錄用戶登錄的時間,并把這個時間記入文件Terminal.log中作為日志的時間字段;第二行是記錄用戶的IP地址,使用netstat來顯示當(dāng)前網(wǎng)絡(luò)連接狀況的命令,并把含有3389端口的記錄到日志文件中去。這樣就能夠記錄下對方建立3389連接的IP地址了。
要設(shè)置這個程序運行,可以在終端服務(wù)配置中,登錄腳本設(shè)置指定TerminalLOG.bat作為用戶登錄時需要打開的腳本,這樣每個用戶登錄后都必須執(zhí)行這個腳本,因為默認的腳本是Explorer(資源管理器),所以在Terminal.bat的最后一行加上了啟動Explorer的命令start Explorer,如果不加這一行命令,用戶是沒有辦法進入桌面的。當(dāng)然,可以把這個腳本寫得更加強大,但是請把日志記錄文件放置到安全的目錄中去。
通過Terminal.log文件記錄的內(nèi)容,配合安全日志,我們就能夠發(fā)現(xiàn)通過終端服務(wù)的入侵事件或者前兆了。
對于Windows2003服務(wù)器來說,上面四種入侵是最常見的,也占入侵Windows2003事件的絕大多數(shù)。從上面的分析,我們能夠及時地發(fā)現(xiàn)這些入侵的前兆,根據(jù)這些前兆發(fā)現(xiàn)攻擊者的攻擊出發(fā)點,然后采取相應(yīng)的安全措施,以杜絕攻擊者入侵。
我們也可以從上面分析認識到,服務(wù)器的安全配置中各種日志記錄和事件審核的重要性。這些日志文件在被入侵后是攻擊者的重要目標(biāo),他們會刪除和修改記錄,以便抹掉他們的入侵足跡。因此,對于各種日志文件,我們更應(yīng)該好好隱藏并設(shè)置權(quán)限等保護起來。同時,僅僅記錄日志而不經(jīng)常性地查看和分析,那么所有的工作就等于白做了。
在安全維護中,系統(tǒng)管理員應(yīng)該保持警惕,并熟悉黑客使用的入侵手段,做好入侵前兆的檢測和分析,這樣才能未雨綢繆,阻止入侵事件的發(fā)生。