在網(wǎng)絡(luò)安全領(lǐng)域,隨著黑客應(yīng)用技術(shù)的不斷“傻瓜化”,入侵檢測系統(tǒng)IDS的地位正在逐漸增加。一個網(wǎng)絡(luò)中,只有有效實施了IDS,才能敏銳地察覺攻擊者的侵犯行為,才能防患于未然!本文對IDS的概念、行為及策略等方面內(nèi)容以問答形式進行全面介紹,期望幫助管理者更快和更好地使用IDS。
問:都有哪些重要的IDS系統(tǒng)?
根據(jù)監(jiān)測對象不同,IDS系統(tǒng)分為很多種,以下是幾種很重要的IDS系統(tǒng):
1、NIDS
NIDS是network intrusion detection system的縮寫,即網(wǎng)絡(luò)入侵檢測系統(tǒng),主要用于檢測hacker或cracker通過網(wǎng)絡(luò)進行的入侵行為。
NIDS的運行方式有兩種,一種是在目標(biāo)主機上運行以監(jiān)測其本身的通訊信息,另一種是在一臺單獨的機器上運行以監(jiān)測所有網(wǎng)絡(luò)設(shè)備的通訊信息,比如hub、路由器。
2、SIV
SIV是system integrity verifiers的縮寫,即系統(tǒng)完整性檢測,主要用于監(jiān)視系統(tǒng)文件或者Windows 注冊表等重要信息是否被修改,以堵上攻擊者日后來訪的后門。SIV更多的是以工具軟件的形式出現(xiàn),比如“Tripwire”,它可以檢測到重要系統(tǒng)組件的變換情況,但并不產(chǎn)生實時的報警信息。
3、LFM
LFM是log file monitors的縮寫,即日志文件監(jiān)測器,主要用于監(jiān)測網(wǎng)絡(luò)服務(wù)所產(chǎn)生的日志文件。LFM通過檢測日志文件內(nèi)容并與關(guān)鍵字進行匹配的方式判斷入侵行為,例如對于HTTP服務(wù)器的日志文件,只要搜索“swatch”關(guān)鍵字,就可以判斷出是否有“phf”攻擊。
4、Honeypots
蜜罐系統(tǒng),也就是誘騙系統(tǒng),它是一個包含漏洞的系統(tǒng),通過模擬一個或多個易受攻擊的主機,給黑客提供一個容易攻擊的目標(biāo)。由于蜜罐沒有其它任務(wù)需要完成,因此所有連接的嘗試都應(yīng)被視為是可疑的。蜜罐的另一個用途是拖延攻擊者對其真正目標(biāo)的攻擊,讓攻擊者在蜜罐上浪費時間。與此同時,最初的攻擊目標(biāo)受到了保護,真正有價值的內(nèi)容將不受侵犯。蜜罐最初的目的之一是為起訴惡意黑客搜集證據(jù),這看起來有“誘捕”的感覺。
問:誰是入侵者?
通常我們將入侵者稱為hacker,但實際上這是不準(zhǔn)確的。可以這么說:hacker是發(fā)現(xiàn)系統(tǒng)漏洞并修補漏洞的,cracker才是利用漏洞占山頭搞破壞的入侵者。為了不混淆視聽,在此干脆統(tǒng)一叫作入侵者吧。一般來說,入侵者分為兩類:內(nèi)部和外部。內(nèi)部入侵者通常利用社會工程學(xué)盜用非授權(quán)帳戶進行非法活動,比如使用其他人的機器、冒充是處長或局長;外部入侵者則要借助一定的攻擊技術(shù)對攻擊目標(biāo)進行監(jiān)測、查漏,然后采取破壞活動。
有一點請牢記:統(tǒng)計表明,入侵行為有80%來自內(nèi)部。
問:入侵者如何進入系統(tǒng)?
主要有三種方式:
1、物理入侵
指入侵者以物理方式訪問一個機器進行破壞活動,例如趁人不備遛進機房重地趕緊敲打兩下鍵盤試圖闖入操作系統(tǒng)、拿著鉗子改錐卸掉機器外殼“借”走硬盤裝在另一臺機器上進行深入研究。
2、系統(tǒng)入侵
指入侵者在擁有系統(tǒng)的一個低級賬號權(quán)限下進行的破壞活動。通常,如果系統(tǒng)沒有及時“打”最近的補丁程序,那么擁有低級權(quán)限的用戶就可能利用系統(tǒng)漏洞獲取更高的管理特權(quán)。
3、遠(yuǎn)程入侵
指入侵者通過網(wǎng)絡(luò)滲透到一個系統(tǒng)中。這種情況下,入侵者通常不具備任何特殊權(quán)限,他們要通過漏洞掃描或端口掃描等技術(shù)發(fā)現(xiàn)攻擊目標(biāo),再利用相關(guān)技術(shù)執(zhí)行破壞活動。NIDS主要針對的就是這種入侵。
問:入侵者為何能闖入系統(tǒng)?
蒼蠅不盯無縫的蛋,入侵者只要找到復(fù)雜的計算機網(wǎng)絡(luò)中的一個縫,就能輕而易舉地闖入系統(tǒng)。所以,了解這些縫都有可能在哪里,對于修補它們至關(guān)重要。通常,裂縫主要表現(xiàn)在軟件編寫存在bug、系統(tǒng)配置不當(dāng)、口令失竊、明文通訊信息被監(jiān)聽以及初始設(shè)計存在缺陷等方面。
1、軟件編寫存在bug
無論是服務(wù)器程序、客戶端軟件還是操作系統(tǒng),只要是用代碼編寫的東西,都會存在不同程度的bug。Bug主要分為以下幾類:
緩沖區(qū)溢出:指入侵者在程序的有關(guān)輸入項目中了輸入了超過規(guī)定長度的字符串,超過的部分通常就是入侵者想要執(zhí)行的攻擊代碼,而程序編寫者又沒有進行輸入長度的檢查,最終導(dǎo)致多出的攻擊代碼占據(jù)了輸入緩沖區(qū)后的內(nèi)存而執(zhí)行。別以為為登錄用戶名留出了200個字符就夠了而不再做長度檢查,所謂防小人不防君子,入侵者會想盡一切辦法嘗試攻擊的途徑的。
意料外的聯(lián)合使用問題:一個程序經(jīng)常由功能不同的多層代碼組成,甚至?xí)婕暗阶畹讓拥牟僮飨到y(tǒng)級別。入侵者通常會利用這個特點為不同的層輸入不同的內(nèi)容,以達(dá)到竊取信息的目的。例如:對于由Perl編寫的程序,入侵者可以在程序的輸入項目中輸入類似“ mail < /etc/passwd”的字符串,從而使perl讓操作系統(tǒng)調(diào)用郵件程序,并發(fā)送出重要的密碼文件給入侵者。借刀殺人、借Mail送“信”,實在是高!
不對輸入內(nèi)容進行預(yù)期檢查:有些編程人員怕麻煩,對輸入內(nèi)容不進行預(yù)期的匹配檢查,使入侵者輸送炸彈的工作輕松簡單。
Race conditions:多任務(wù)多線程的程序越來越多,在提高運行效率的同時,也要注意Race conditions的問題。比如說:程序A和程序B都按照“讀/改/寫”的順序操作一個文件,當(dāng)A進行完讀和改的工作時,B啟動立即執(zhí)行完“讀/改/寫”的全部工作,這時A繼續(xù)執(zhí)行寫工作,結(jié)果是A的操作沒有了表現(xiàn)!入侵者就可能利用這個處理順序上的漏洞改寫某些重要文件從而達(dá)到闖入系統(tǒng)的目的,所以,編程人員要注意文件操作的順序以及鎖定等問題。
2、系統(tǒng)配置不當(dāng)
默認(rèn)配置的不足:許多系統(tǒng)安裝后都有默認(rèn)的安全配置信息,通常被稱為easy to use。但遺憾的是,easy to use還意味著easy to break in。所以,一定對默認(rèn)配置進行揚棄的工作。
管理員懶散:懶散的表現(xiàn)之一就是系統(tǒng)安裝后保持管理員口令的空值,而且隨后不進行修改。要知道,入侵者首先要做的事情就是搜索網(wǎng)絡(luò)上是否有這樣的管理員為空口令的機器。
臨時端口:有時候為了測試之用,管理員會在機器上打開一個臨時端口,但測試完后卻忘記了禁止它,這樣就會給入侵者有洞可尋、有漏可鉆。通常的解決策略是:除非一個端口是必須使用的,否則禁止它!一般情況下,安全審計數(shù)據(jù)包可用于發(fā)現(xiàn)這樣的端口并通知管理者。
信任關(guān)系:網(wǎng)絡(luò)間的系統(tǒng)經(jīng)常建立信任關(guān)系以方便資源共享,但這也給入侵者帶來借牛打力、間接攻擊的可能,例如,只要攻破信任群中的一個機器,就有可能進一步攻擊其他的機器。所以,要對信任關(guān)系嚴(yán)格審核、確保真正的安全聯(lián)盟。
3、口令失竊
弱不禁破的口令:就是說雖然設(shè)置了口令,但卻簡單得再簡單不過,狡猾的入侵者只需吹灰之力就可破解。
字典攻擊:就是指入侵者使用一個程序,該程序借助一個包含用戶名和口令的字典數(shù)據(jù)庫,不斷地嘗試登錄系統(tǒng),直到成功進入。毋庸置疑,這種方式的關(guān)鍵在于有一個好的字典。
暴力攻擊:與字典攻擊類似,但這個字典卻是動態(tài)的,就是說,字典包含了所有可能的字符組合。例如,一個包含大小寫的4字符口令大約有50萬個組合,1個包含大小寫且標(biāo)點符號的7字符口令大約有10萬億組合。對于后者,一般的計算機要花費大約幾個月的時間才能試驗一遍。看到了長口令的好處了吧,真正是一兩撥千斤啊!
4、嗅探未加密通訊數(shù)據(jù)
共享介質(zhì):傳統(tǒng)的以太網(wǎng)結(jié)構(gòu)很便于入侵者在網(wǎng)絡(luò)上放置一個嗅探器就可以查看該網(wǎng)段上的通訊數(shù)據(jù),但是如果采用交換型以太網(wǎng)結(jié)構(gòu),嗅探行為將變得非常困難。
服務(wù)器嗅探:交換型網(wǎng)絡(luò)也有一個明顯的不足,入侵者可以在服務(wù)器上特別是充當(dāng)路由功能的服務(wù)器上安裝一個嗅探器軟件,然后就可以通過它收集到的信息闖進客戶端機器以及信任的機器。例如,雖然不知道用戶的口令,但當(dāng)用戶使用Telnet軟件登錄時就可以嗅探到他輸入的口令了。
遠(yuǎn)程嗅探:許多設(shè)備都具有RMON(Remote monitor,遠(yuǎn)程監(jiān)控)功能以便管理者使用公共體字符串(public community strings)進行遠(yuǎn)程調(diào)試。隨著寬帶的不斷普及,入侵者對這個后門越來越感興趣了。
5、TCP/IP初始設(shè)計存在缺陷
即使軟件編寫不出現(xiàn)bug,程序執(zhí)行時也按照正確的步驟進行,但初始設(shè)計存在缺陷仍會導(dǎo)致入侵者的攻擊。TCP/IP協(xié)議現(xiàn)在已經(jīng)廣為應(yīng)用、大行其道了,但是它卻是在入侵者猖狂肆虐的今天之很早以前設(shè)計出來的。因此,存在許多不足造成安全漏洞在所難免,例如smurf攻擊、ICMP Unreachable數(shù)據(jù)包斷開、IP地址欺騙以及SYN湮沒。然而,最大的問題在于IP協(xié)議是非常容易“輕信”的,就是說入侵者可以隨意地偽造及修改IP數(shù)據(jù)包而不被發(fā)現(xiàn)。幸好,大救星Ipsec協(xié)議已經(jīng)開發(fā)出來以克服這個不足。
問:入侵者如何獲取口令?
1、監(jiān)聽明文口令信息
大量的通訊協(xié)議比如Telnet、Ftp、基本HTTP都使用明文口令,這意味著它們在網(wǎng)絡(luò)上是赤裸裸地以未加密格式傳輸于服務(wù)器端和客戶端,而入侵者只需使用協(xié)議分析器就能查看到這些信息,從而進一步分析出口令,成為真用戶的克隆。
2、監(jiān)聽加密口令信息
當(dāng)然,更多的通訊協(xié)議是使用加密信息傳輸口令的。這時,入侵者就需要借助字典或者采用暴力攻擊法來解密了。注意,我們并不能察覺到入侵者的監(jiān)聽行為,因為他在暗處,是完全被動的,沒有發(fā)送任何信息到網(wǎng)絡(luò)上,入侵者的機器僅被用于分析這些口令信息。
3、重放攻擊(Replay attack)
這又是一種間接的攻擊方式,就是說:入侵者不必對口令進行解密,需要的是重新編寫客戶端軟件以使用加密口令實現(xiàn)系統(tǒng)登錄。
4、竊取口令文件
口令文件通常都保存在一個單獨的文件中,例如UNIX系統(tǒng)的口令文件是/etc/passwd(也可能是那個文件的鏡像),WinNT系統(tǒng)的口令文件是/winnt/system32/config/sam。入侵者一旦獲取了口令文件,就可以使用破解程序發(fā)現(xiàn)其中的弱口令信息。
5、觀察
用戶可能由于設(shè)置的口令復(fù)雜難記而將它寫在一張紙上壓在鍵盤下隨時查看,或者在輸入口令的時候不管身后有沒有站著一位“看客”。入侵者的搜索力與記憶力都非常好,這些操作習(xí)慣對他們來說簡直就是輕松練兵。所以,別忽視入侵者的眼睛!
6、社會工程
前面提到過這個問題,社會工程就是指采用非隱蔽方法盜用非授權(quán)帳戶進行的非法活動,比如使用其他人的機器、冒充是處長或局長騙取管理員信任得到口令等等。記住:如果有人想要你的口令,無論他說是為了什么,請記住他,一旦發(fā)生了關(guān)于口令的案件,那個人就是頭號嫌疑犯!
問:典型的入侵場景有哪些?
所謂入侵場景,就是指入侵者都會從哪些方面采取哪些步驟嘗試攻擊系統(tǒng)。典型的入侵畫面是這樣一幕幕展開的:
1、外部調(diào)研
知己知彼,百戰(zhàn)不殆。入侵者攻擊的第一步就是盡一切可能對攻擊目標(biāo)進行調(diào)研以獲取充足的資料。采取的方法包括:使用whois工具獲取網(wǎng)絡(luò)注冊信息;使用nslookup或dig工具搜索DNS表以確定機器名稱;搜索關(guān)于公司的公開新聞。這一步對于被攻擊者是完全不知的。
2、內(nèi)部分析
確定了攻擊目標(biāo)的基本屬性(站點地址、主機名稱),入侵者將對它們進行深入剖析。方法有:遍歷每個Web頁面搜索是否存在CGI漏洞;使用ping工具一一探尋“活”著的機器;對目標(biāo)機器執(zhí)行UDP/TCP掃描以發(fā)現(xiàn)是否有可用服務(wù)。這些行為都屬于正常的網(wǎng)絡(luò)操作,還不能算作入侵行為,但是NIDS系統(tǒng)將能夠告訴管理者“有人正在撼動門把手……”
3、漏洞利用
現(xiàn)在到了開始動手的時候了!破壞花樣實在繁多,在此擇優(yōu)列舉如下:通過在輸入項目中寫入殼命令字符串(shell command)來考驗CGI腳本的安全性;通過發(fā)送大量數(shù)據(jù)以確定是否存在臭名昭著的緩沖區(qū)溢出漏洞;嘗試使用簡單口令破解登錄障礙。當(dāng)然,混合使用多種方式是攻占成功的不二法門。
4、站穩(wěn)腳跟
對于入侵者而言,一旦成功地入侵了網(wǎng)絡(luò)中的一臺機器,就可以說是站穩(wěn)腳跟了。入侵者現(xiàn)在要做的就是隱藏入侵痕跡并制造日后再攻的后門,這就需要對日志文件或其他系統(tǒng)文件進行改造,或者安裝上木馬程序、或者替換系統(tǒng)文件為后門程序。這時,SIV(系統(tǒng)完整性檢測)系統(tǒng)會注意到這些文件的變化。由于內(nèi)部網(wǎng)絡(luò)中的安全措施通常都比較少,進一步地,入侵者將以這第一臺機器作為跳板,攻擊網(wǎng)絡(luò)中的其他機器,尋找下一個安身之家。
5、享受成果
到此,入侵者可以說是完成了攻擊任務(wù),剩下的就是享受成果了:或者對竊取的秘密文件肆意使用、或者濫用系統(tǒng)資源、或者篡改Web頁面內(nèi)容,甚至將你的機器作為跳板攻擊其他機器。
以上討論是的有目的入侵者的通常行為。還有一種入侵場景通常被稱為“birthday attack”,我想其含義是模擬生日時接收到許多熟人或者未知朋友的禮物吧,不過用在這里還要在禮物前加上“攻擊”兩字了。Birthday attack的一般步驟是:隨機搜索一個Internet地址;搜索其上是否有指定的漏洞;如果有,根據(jù)已知的漏洞利用方法進行攻擊。