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