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