分布式攻擊的防范系統(tǒng)漏洞的措施
分布式攻擊的防范系統(tǒng)漏洞的措施
拒絕服務(wù)攻擊是一種遍布全球的系統(tǒng)漏洞,黑客們正醉心于對(duì)它的研究,而無(wú)數(shù)的網(wǎng)絡(luò)用戶將成為這種攻擊的受害者。Tribe Flood Network, tfn2k, smurf, targa…還有許多的程序都在被不斷的開發(fā)出來(lái)。這些程序想瘟疫一樣在網(wǎng)絡(luò)中散布開來(lái),使得我們的村落更為薄弱,我們不得不找出一套簡(jiǎn)單易用的安全解決方案來(lái)應(yīng)付黑暗中的攻擊。 接下來(lái)是小編為大家收集的分布式攻擊的防范系統(tǒng)漏洞的措施 ,希望能幫到大家。
分布式攻擊的防范系統(tǒng)漏洞的措施
由于我們防范手段的加強(qiáng),拒絕服務(wù)攻擊手法也在不斷的發(fā)展。 Tribe Flood Network (tfn) 和tfn2k引入了一個(gè)新概念:分布式。這些程序可以使得分散在互連網(wǎng)各處的機(jī)器共同完成對(duì)一臺(tái)主機(jī)攻擊的操作,從而使主機(jī)看起來(lái)好象是遭到了不同位置的許多主機(jī)的攻擊。這些分散的機(jī)器由幾臺(tái)主控制機(jī)操作進(jìn)行多種類型的攻擊,如UDP flood, SYN flood等。
操作系統(tǒng)和網(wǎng)絡(luò)設(shè)備的缺陷在不斷地被發(fā)現(xiàn)并被黑客所利用來(lái)進(jìn)行惡意的攻擊。如果我們清楚的認(rèn)識(shí)到了這一點(diǎn),我們應(yīng)當(dāng)使用下面的兩步來(lái)盡量阻止網(wǎng)絡(luò)攻擊保護(hù)我們的網(wǎng)絡(luò):
盡可能的修正已經(jīng)發(fā)現(xiàn)的問題和系統(tǒng)漏洞。
識(shí)別,跟蹤或禁止這些令人討厭的機(jī)器或網(wǎng)絡(luò)對(duì)我們的訪問。
我們先來(lái)關(guān)注第二點(diǎn)我們面臨的主要問題是如何識(shí)別那些惡意攻擊的主機(jī),特別是使用拒絕服務(wù)攻擊的機(jī)器。因?yàn)檫@些機(jī)器隱藏了他們自己的地址,而冒用被攻擊者的地址。攻擊者使用了數(shù)以千記的惡意偽造包來(lái)使我們的主機(jī)受到攻擊。"tfn2k"的原理就象上面講的這么簡(jiǎn)單,而他只不過又提供了一個(gè)形象的界面。假如您遭到了分布式的拒絕服務(wù)攻擊,實(shí)在是很難處理。
有一些簡(jiǎn)單的手法來(lái)防止拒絕服務(wù)式的攻擊。最為常用的一種當(dāng)然是時(shí)刻關(guān)注安全信息以期待最好的方法出現(xiàn)。管理員應(yīng)當(dāng)訂閱安全信息報(bào)告,實(shí)時(shí)的關(guān)注所有安全問題的發(fā)展。:) 第二步是應(yīng)用包過濾的技術(shù),主要是過濾對(duì)外開放的端口。這些手段主要是防止假冒地址的攻擊,使得外部機(jī)器無(wú)法假冒內(nèi)部機(jī)器的地址來(lái)對(duì)內(nèi)部機(jī)器發(fā)動(dòng)攻擊。
對(duì)于應(yīng)該使用向內(nèi)的包過濾還是使用向外的包過濾一直存在著爭(zhēng)論。RFC 2267建議在全球范圍的互連網(wǎng)上使用向內(nèi)過濾的機(jī)制,但是這樣會(huì)帶來(lái)很多的麻煩,在中等級(jí)別的路由器上使用訪問控制列表不會(huì)帶來(lái)太大的麻煩,但是已經(jīng)滿載的骨干路由器上會(huì)受到明顯的威脅。另一方面,ISP如果使用向外的包過濾措施會(huì)把過載的流量轉(zhuǎn)移到一些不太忙的設(shè)備上?!SP也不關(guān)心消費(fèi)者是否在他們的邊界路由器上使用這種技術(shù)。當(dāng)然,這種過濾技術(shù)也并不是萬(wàn)無(wú)一失的,這依賴于管理人員采用的過濾機(jī)制。
1.ICMP防護(hù)措施
ICMP最初開發(fā)出來(lái)是為了"幫助"網(wǎng)絡(luò),經(jīng)常被廣域網(wǎng)管理員用作診斷工具。但今天各種各樣的不充分的ICMP被濫用,沒有遵守RFC 792原先制訂的標(biāo)準(zhǔn),要執(zhí)行一定的策略可以讓它變得安全一些。
入站的ICMP時(shí)間標(biāo)記(Timestamp)和信息請(qǐng)求(Information Request)數(shù)據(jù)包會(huì)得到響應(yīng),帶有非法或壞參數(shù)的偽造數(shù)據(jù)包也能產(chǎn)生ICMP參數(shù)問題數(shù)據(jù)包,從而允許另外一種形式的主機(jī)搜尋。這仍使得站點(diǎn)沒有得到適當(dāng)保護(hù)。
以秘密形式從主方到客戶方發(fā)布命令的一種通用方法,就是使用ICMP Echo應(yīng)答數(shù)據(jù)包作為載波。 回聲應(yīng)答本身不能回答,一般不會(huì)被防火墻阻塞。
首先,我們必須根據(jù)出站和入站處理整個(gè)的"ICMP限制"問題。ICMP回聲很容易驗(yàn)證遠(yuǎn)程機(jī)器,但出站的ICMP回聲應(yīng)該被限制只支持個(gè)人或單個(gè)服務(wù)器/ICMP代理(首選)。
如果我們限制ICMP回聲到一個(gè)外部IP地址(通過代理),則我們的ICMP回聲應(yīng)答只能進(jìn)入我們網(wǎng)絡(luò)中預(yù)先定義的主機(jī)。
重定向通??梢栽诼酚善髦g找到,而不是在主機(jī)之間。防火墻規(guī)則應(yīng)該加以調(diào)整,使得這些類型的ICMP只被允許在需要信息的網(wǎng)際連接所涉及的路由器之間進(jìn)行。
建議所有對(duì)外的傳輸都經(jīng)過代理,對(duì)內(nèi)的ICMP傳輸回到代理地址的時(shí)候要經(jīng)過防火墻。這至少限制了ICMP超時(shí)數(shù)據(jù)包進(jìn)入一個(gè)內(nèi)部地址,但它可能阻塞超時(shí)數(shù)據(jù)包。
當(dāng)ICMP數(shù)據(jù)包以不正確的參數(shù)發(fā)送時(shí),會(huì)導(dǎo)致數(shù)據(jù)包被丟棄,這時(shí)就會(huì)發(fā)出ICMP參數(shù)出錯(cuò)數(shù)據(jù)包。主機(jī)或路由器丟棄發(fā)送的數(shù)據(jù)包,并向發(fā)送者回送參數(shù)ICMP出錯(cuò)數(shù)據(jù)包,指出壞的參數(shù)。
總的來(lái)說(shuō),只有公開地址的服務(wù)器(比如Web、電子郵件和FTP服務(wù)器)、防火墻、聯(lián)入因特網(wǎng)的路由器有真正的理由使用ICMP與外面的世界對(duì)話。如果調(diào)整適當(dāng),實(shí)際上所有使用進(jìn)站和出站ICMP的隱密通訊通道都會(huì)被中止。
2. SYN Flood防范
SYN Flood是當(dāng)前最流行的DoS(拒絕服務(wù)攻擊)與DdoS(分布式拒絕服務(wù)攻擊)的方式之一,這是一種利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請(qǐng)求,從而使得被攻擊方資源耗盡(CPU滿負(fù)荷或內(nèi)存不足)的攻擊方式。對(duì)于SYN Flood攻擊,目前尚沒有很好的監(jiān)測(cè)和防御方法,不過如果系統(tǒng)管理員熟悉攻擊方法和系統(tǒng)架構(gòu),通過一系列的設(shè)定,也能從一定程度上降低被攻擊系統(tǒng)的負(fù)荷,減輕負(fù)面的影響。
一般來(lái)說(shuō),如果一個(gè)系統(tǒng)(或主機(jī))負(fù)荷突然升高甚至失去響應(yīng),使用Netstat 命令能看到大量SYN_RCVD的半連接(數(shù)量>500或占總連接數(shù)的10%以上),可以認(rèn)定,這個(gè)系統(tǒng)(或主機(jī))遭到了SYN Flood攻擊。遭到SYN Flood攻擊后,首先要做的是取證,通過Netstat –n –p tcp >resault.txt記錄目前所有TCP連接狀態(tài)是必要的,如果有嗅探器,或者TcpDump之類的工具,記錄TCP SYN報(bào)文的所有細(xì)節(jié)也有助于以后追查和防御,需要記錄的字段有:源地址、IP首部中的標(biāo)識(shí)、TCP首部中的序列號(hào)、TTL值等,這些信息雖然很可能是攻擊者偽造的,但是用來(lái)分析攻擊者的心理狀態(tài)和攻擊程序也不無(wú)幫助。特別是TTL值,如果大量的攻擊包似乎來(lái)自不同的IP但是TTL值卻相同,我們往往能推斷出攻擊者與我們之間的路由器距離,至少也可以通過過濾特定TTL值的報(bào)文降低被攻擊系統(tǒng)的負(fù)荷(在這種情況下TTL值與攻擊報(bào)文不同的用戶就可以恢復(fù)正常訪問)。從防御角度來(lái)說(shuō),有幾種簡(jiǎn)單的解決方法:
2.1 縮短SYN Timeout時(shí)間:由于SYN Flood攻擊的效果取決于服務(wù)器上保持的SYN半連接數(shù),這個(gè)值=SYN攻擊的頻度 x SYN Timeout,所以通過縮短從接收到SYN報(bào)文到確定這個(gè)報(bào)文無(wú)效并丟棄改連接的時(shí)間,例如設(shè)置為20秒以下(過低的SYN Timeout設(shè)置可能會(huì)影響客戶的正常訪問),可以成倍的降低服務(wù)器的負(fù)荷。
2.2 設(shè)置SYN Cookie:就是給每一個(gè)請(qǐng)求連接的IP地址分配一個(gè)Cookie,如果短時(shí)間內(nèi)連續(xù)受到某個(gè)IP的重復(fù)SYN報(bào)文,就認(rèn)定是受到了攻擊,以后從這個(gè)IP地址來(lái)的包會(huì)被丟棄。可是上述的兩種方法只能對(duì)付比較原始的SYN Flood攻擊,縮短SYN Timeout時(shí)間僅在對(duì)方攻擊頻度不高的情況下生效,SYN Cookie更依賴于對(duì)方使用真實(shí)的IP地址,如果攻擊者以數(shù)萬(wàn)/秒的速度發(fā)送SYN報(bào)文,同時(shí)利用SOCK_RAW隨機(jī)改寫IP報(bào)文中的源地址,以上的方法將毫無(wú)用武之地。
2.3 負(fù)反饋策略:參考一些流行的操作系統(tǒng),如Windows2000的SYN攻擊保護(hù)機(jī)制:正常情況下,OS對(duì)TCP連接的一些重要參數(shù)有一個(gè)常規(guī)的設(shè)置: SYN Timeout時(shí)間、SYN-ACK的重試次數(shù)、SYN報(bào)文從路由器到系統(tǒng)再到Winsock的延時(shí)等等。這個(gè)常規(guī)設(shè)置針對(duì)系統(tǒng)優(yōu)化,可以給用戶提供方便快捷的服務(wù);一旦服務(wù)器受到攻擊,SYN Half link 的數(shù)量超過系統(tǒng)中TCP活動(dòng) Half Connction最大連接數(shù)的設(shè)置,系統(tǒng)將會(huì)認(rèn)為自己受到了SYN Flood攻擊,并將根據(jù)攻擊的判斷情況作出反應(yīng):減短SYN Timeout時(shí)間、減少SYN-ACK的重試次數(shù)、自動(dòng)對(duì)緩沖區(qū)中的報(bào)文進(jìn)行延時(shí)等等措施,力圖將攻擊危害減到最低。如果攻擊繼續(xù),超過了系統(tǒng)允許的最大Half Connection 值,系統(tǒng)已經(jīng)不能提供正常的服務(wù)了,為了保證系統(tǒng)不崩潰,可以將任何超出最大Half Connection 值范圍的SYN報(bào)文隨機(jī)丟棄,保證系統(tǒng)的穩(wěn)定性。
所以,可以事先測(cè)試或者預(yù)測(cè)該主機(jī)在峰值時(shí)期的Half Connction 的活動(dòng)數(shù)量上限,以其作為參考設(shè)定TCP活動(dòng) Half Connction最大連接數(shù)的值,然后再以該值的倍數(shù)(不要超過2)作為TCP最大Half Connection值,這樣可以通過負(fù)反饋的手段在一定程度上阻止SYN攻擊。
2.4 退讓策略:退讓策略是基于SYN Flood攻擊代碼的一個(gè)缺陷,我們重新來(lái)分析一下SYN Flood攻擊者的流程:SYN Flood程序有兩種攻擊方式,基于IP的和基于域名的,前者是攻擊者自己進(jìn)行域名解析并將IP地址傳遞給攻擊程序,后者是攻擊程序自動(dòng)進(jìn)行域名解析,但是它們有一點(diǎn)是相同的,就是一旦攻擊開始,將不會(huì)再進(jìn)行域名解析,我們的切入點(diǎn)正是這里:假設(shè)一臺(tái)服務(wù)器在受到SYN Flood攻擊后迅速更換自己的IP地址,那么攻擊者仍在不斷攻擊的只是一個(gè)空的IP地址,并沒有任何主機(jī),而防御方只要將DNS解析更改到新的IP地址就能在很短的時(shí)間內(nèi)(取決于DNS的刷新時(shí)間)恢復(fù)用戶通過域名進(jìn)行的正常訪問。為了迷惑攻擊者,我們甚至可以放置一臺(tái)“犧牲”服務(wù)器讓攻擊者滿足于攻擊的“效果”(由于DNS緩沖的原因,只要攻擊者的瀏覽器不重起,他訪問的仍然是原先的IP地址)。
2.5 分布式DNS負(fù)載均衡:在眾多的負(fù)載均衡架構(gòu)中,基于DNS解析的負(fù)載均衡本身就擁有對(duì)SYN Flood的免疫力,基于DNS解析的負(fù)載均衡能將用戶的請(qǐng)求分配到不同IP的服務(wù)器主機(jī)上,攻擊者攻擊的永遠(yuǎn)只是其中一臺(tái)服務(wù)器,一來(lái)這樣增加了攻擊者的成本,二來(lái)過多的DNS請(qǐng)求可以幫助我們追查攻擊者的真正蹤跡(DNS請(qǐng)求不同于SYN攻擊,是需要返回?cái)?shù)據(jù)的,所以很難進(jìn)行IP偽裝)。
2.6 防火墻Qos:對(duì)于防火墻來(lái)說(shuō),防御SYN Flood攻擊的方法取決于防火墻工作的基本原理,一般說(shuō)來(lái),防火墻可以工作在TCP層之上或IP層之下,工作在TCP層之上的防火墻稱為網(wǎng)關(guān)型防火墻,網(wǎng)關(guān)型防火墻布局中,客戶機(jī)與服務(wù)器之間并沒有真正的TCP連接,客戶機(jī)與服務(wù)器之間的所有數(shù)據(jù)交換都是通過防火墻代理的,外部的DNS解析也同樣指向防火墻,所以如果網(wǎng)站被攻擊,真正受到攻擊的是防火墻,這種防火墻的優(yōu)點(diǎn)是穩(wěn)定性好,抗打擊能力強(qiáng),但是因?yàn)樗械腡CP報(bào)文都需要經(jīng)過防火墻轉(zhuǎn)發(fā),所以效率比較低由于客戶機(jī)并不直接與服務(wù)器建立連接,在TCP連接沒有完成時(shí)防火墻不會(huì)去向后臺(tái)的服務(wù)器建立新的TCP連接,所以攻擊者無(wú)法越過防火墻直接攻擊后臺(tái)服務(wù)器,只要防火墻本身做的足夠強(qiáng)壯,這種架構(gòu)可以抵抗相當(dāng)強(qiáng)度的SYN Flood攻擊。但是由于防火墻實(shí)際建立的TCP連接數(shù)為用戶連接數(shù)的兩倍(防火墻兩端都需要建立TCP連接),同時(shí)又代理了所有的來(lái)自客戶端的TCP請(qǐng)求和數(shù)據(jù)傳送,在系統(tǒng)訪問量較大時(shí),防火墻自身的負(fù)荷會(huì)比較高,所以這種架構(gòu)并不能適用于大型網(wǎng)站。(我感覺,對(duì)于這樣的防火墻架構(gòu),使用TCP_STATE攻擊估計(jì)會(huì)相當(dāng)有效:)
工作在IP層或IP層之下的稱為路由型防火墻,其工作原理有所不同:客戶機(jī)直接與服務(wù)器進(jìn)行TCP連接,防火墻起的是路由器的作用,它截獲所有通過的包并進(jìn)行過濾,通過過濾的包被轉(zhuǎn)發(fā)給服務(wù)器,外部的DNS解析也直接指向服務(wù)器,這種防火墻的優(yōu)點(diǎn)是效率高,可以適應(yīng)100Mbps-1Gbps的流量,但是這種防火墻如果配置不當(dāng),不僅可以讓攻擊者越過防火墻直接攻擊內(nèi)部服務(wù)器,甚至有可能放大攻擊的強(qiáng)度,導(dǎo)致整個(gè)系統(tǒng)崩潰。
在這兩種基本模型之外,有一種新的防火墻模型,它集中了兩種防火墻的優(yōu)勢(shì),這種防火墻的工作原理如下所示:
第一階段,客戶機(jī)請(qǐng)求與防火墻建立連接:
第二階段,防火墻偽裝成客戶機(jī)與后臺(tái)的服務(wù)器建立連接
第三階段,之后所有從客戶機(jī)來(lái)的TCP報(bào)文防火墻都直接轉(zhuǎn)發(fā)給后臺(tái)的服務(wù)器
這種結(jié)構(gòu)吸取了上兩種防火墻的優(yōu)點(diǎn),既能完全控制所有的SYN報(bào)文,又不需要對(duì)所有的TCP數(shù)據(jù)報(bào)文進(jìn)行代理,是一種兩全其美的方法。近來(lái),國(guó)外和國(guó)內(nèi)的一些防火墻廠商開始研究帶寬控制技術(shù),如果能真正做到嚴(yán)格控制、分配帶寬,就能很大程度上防御絕大多數(shù)的SYN攻擊。
3.Smurf防范的幾種方法
阻塞Smurf攻擊的源頭:Smurf攻擊依靠攻擊者的力量使用欺騙性源地址發(fā)送echo請(qǐng)求。用戶可以使用路由路的訪問保證內(nèi)部網(wǎng)絡(luò)中發(fā)出的所有傳輸信息都具有合法的源地址,以防止這種攻擊。這樣可以使欺騙性分組無(wú)法找到反彈站點(diǎn)。
阻塞Smurf的反彈站點(diǎn):用戶可以有兩種選擇以阻塞Smurf攻擊的反彈站點(diǎn)。第一種方法可以簡(jiǎn)單地阻塞所有入站echo請(qǐng)求,這們可以防止這些分組到達(dá)自己的網(wǎng)絡(luò)。如果不能阻塞所有入站echo請(qǐng)求,用戶就需要讓自己的路由器把網(wǎng)絡(luò)廣播地址映射成為L(zhǎng)AN廣播地址。制止了這個(gè)映射過程,自己的系統(tǒng)就不會(huì)再收到這些echo請(qǐng)求。
阻止Smurf平臺(tái):為防止系統(tǒng)成為 smurf攻擊的平臺(tái),要將所有路由器上IP的廣播功能都禁止。一般來(lái)講,IP廣播功能并不需要。 如果攻擊者要成功地利用你成為攻擊平臺(tái),你的路由器必須要允許信息包以不是從你的內(nèi)網(wǎng)中產(chǎn)生的源地址離開網(wǎng)絡(luò)。配置路由器,讓它將不是由你的內(nèi)網(wǎng)中生成的信息包過濾出去,這是有可能做到的。這就是所謂的網(wǎng)絡(luò)出口過濾器功能。
防止Smurf攻擊目標(biāo)站點(diǎn):除非用戶的ISP愿意提供幫助,否則用戶自己很難防止Smurf對(duì)自己的WAN接連線路造成的影響。雖然用戶可以在自己的網(wǎng)絡(luò)設(shè)備中阻塞這種傳輸,但對(duì)于防止Smurf吞噬所有的WAN帶寬已經(jīng)太晚了。但至少用戶可以把Smurf的影響限制在外圍設(shè)備上。通過使用動(dòng)態(tài)分組過濾技術(shù),或者使用防火墻,用戶可以阻止這些分組進(jìn)入自己的網(wǎng)絡(luò)。防火墻的狀態(tài)表很清楚這些攻擊會(huì)話不是本地網(wǎng)絡(luò)中發(fā)出的(狀態(tài)表記錄中沒有最初的echo請(qǐng)求記錄),因些它會(huì)象對(duì)待其它欺騙性攻擊行為那樣把這樣信息丟棄。
4.UDP Flood防范
以前文提到的trinoo為例,分析如下:
在master程序與代理程序的所有通訊中,trinoo都使用了UDP協(xié)議。入侵檢測(cè)軟件能夠?qū)ふ沂褂肬DP協(xié)議的數(shù)據(jù)流(類型17)。
Trinoo master程序的監(jiān)聽端口是27655,攻擊者一般借助telnet通過TCP連接到master程序所在計(jì)算機(jī)。入侵檢測(cè)軟件能夠搜索到使用TCP (類型6)并連接到端口27655的數(shù)據(jù)流。
所有從master程序到代理程序的通訊都包含字符串"l44",并且被引導(dǎo)到代理的UDP 端口27444。入侵檢測(cè)軟件檢查到UDP 端口27444的連接,如果有包含字符串l44的信息包被發(fā)送過去,那么接受這個(gè)信息包的計(jì)算機(jī)可能就是DDoS代理。
Master和代理之間通訊受到口令的保護(hù),但是口令不是以加密格式發(fā)送的,因此它可以被“嗅探”到并被檢測(cè)出來(lái)。使用這個(gè)口令以及來(lái)自Dave Dittrich的trinot腳本http://staff.washington.edu/dittrich/misc/trinoo.analysis,要準(zhǔn)確地驗(yàn)證出trinoo代理的存在是很可能的。
一旦一個(gè)代理被準(zhǔn)確地識(shí)別出來(lái),trinoo網(wǎng)絡(luò)就可以安裝如下步驟被拆除:
在代理daemon上使用"strings"命令,將master的IP地址暴露出來(lái)。
與所有作為trinoo master的機(jī)器管理者聯(lián)系,通知它們這一事件。
在master計(jì)算機(jī)上,識(shí)別含有代理IP地址列表的文件(默認(rèn)名"..."),得到這些計(jì)算機(jī)的IP地址列表。
向代理發(fā)送一個(gè)偽造"trinoo"命令來(lái)禁止代理。通過crontab 文件(在UNIX系統(tǒng)中)的一個(gè)條目,代理可以有規(guī)律地重新啟動(dòng), 因此,代理計(jì)算機(jī)需要一遍一遍地被關(guān)閉,直到代理系統(tǒng)的管理者修復(fù)了crontab文件為止。
檢查master程序的活動(dòng)TCP連接,這能顯示攻擊者與trinoo master程序之間存在的實(shí)時(shí)連接。
如果網(wǎng)絡(luò)正在遭受trinoo攻擊,那么系統(tǒng)就會(huì)被UDP 信息包所淹沒。Trinoo從同一源地址向目標(biāo)主機(jī)上的任意端口發(fā)送信息包。探測(cè)trinoo就是要找到多個(gè)UDP信息包,它們使用同一來(lái)源IP地址、同一目的IP地址、同一源端口,但是不同的目的端口。
在http://www.fbi.gov/nipc/trinoo.htm上有一個(gè)檢測(cè)和根除trinoo的自動(dòng)程序。
5.使用DNS來(lái)跟蹤匿名攻擊
從一個(gè)網(wǎng)管的觀點(diǎn)來(lái)看,防范的目標(biāo)并不是僅僅阻止拒絕服務(wù)攻擊,而是要追究到攻擊的發(fā)起原因及操作者。當(dāng)網(wǎng)絡(luò)中有人使用假冒了源地址的工具(如tfn2k)時(shí),我們雖然沒有現(xiàn)成的工具來(lái)確認(rèn)它的合法性,但我們可以通過使用DNS來(lái)對(duì)其進(jìn)行分析:
假如攻擊者選定了目標(biāo)www.ttttt.com,他必須首先發(fā)送一個(gè)DNS請(qǐng)求來(lái)解析這個(gè)域名,通常那些攻擊工具工具會(huì)自己執(zhí)行這一步,調(diào)用gethostbyname()函數(shù)或者相應(yīng)的應(yīng)用程序接口,也就是說(shuō),在攻擊事件發(fā)生前的DNS請(qǐng)求會(huì)提供給我們一個(gè)相關(guān)列表,我們可以利用它來(lái)定位攻擊者。
使用現(xiàn)成工具或者手工讀取DNS請(qǐng)求日志,來(lái)讀取DNS可疑的請(qǐng)求列表都是切實(shí)可行的,然而,它有三個(gè)主要的缺點(diǎn):
攻擊者一般會(huì)以本地的DNS為出發(fā)點(diǎn)來(lái)對(duì)地址進(jìn)行解析查詢,因此我們查到的DNS請(qǐng)求的發(fā)起者有可能不是攻擊者本身,而是他所請(qǐng)求的本地DNS服務(wù)器。盡管這樣,如果攻擊者隱藏在一個(gè)擁有本地DNS的組織內(nèi),我們就可以把該組織作為查詢的起點(diǎn)。
攻擊者有可能已經(jīng)知道攻擊目標(biāo)的IP地址,或者通過其他手段(host, ping)知道了目標(biāo)的IP地址,亦或是攻擊者在查詢到IP地址后很長(zhǎng)一段時(shí)間才開始攻擊,這樣我們就無(wú)法從DNS請(qǐng)求的時(shí)間段上來(lái)判斷攻擊者(或他們的本地服務(wù)器)。
DNS對(duì)不同的域名都有一個(gè)卻省的存活時(shí)間,因此攻擊者可以使用存儲(chǔ)在DNS緩存中的信息來(lái)解析域名。為了更好做出詳細(xì)的解析記錄,您可以把DNS卻省的TTL時(shí)間縮小,但這樣會(huì)導(dǎo)致DNS更多的去查詢所以會(huì)加重網(wǎng)絡(luò)帶寬的使用。
6.主機(jī)防范
所有對(duì)因特網(wǎng)提供公開服務(wù)的主機(jī)都應(yīng)該加以限制。下面建議的策略可以保護(hù)暴露在因特網(wǎng)上的主機(jī)。
將所有公開服務(wù)器與DMZ隔離
提供的每種服務(wù)都應(yīng)該有自己的服務(wù)器。
如果使用Linux(建議這樣做),你就可以使用一個(gè)或幾個(gè)"緩沖溢出/堆棧執(zhí)行"補(bǔ)丁或增強(qiáng)來(lái)防止絕大多數(shù)(如果不能全部)本地或遠(yuǎn)程緩沖溢出,以避免這些溢出危及根的安全。強(qiáng)烈建議將Solar Designer的補(bǔ)丁包括在附加的安全特征中。
使用SRP(Secure Remote Password 安全遠(yuǎn)程口令)代替SSH。
限制只有內(nèi)部地址才能訪問支持SRP的telnet和FTP守護(hù)程序,強(qiáng)調(diào)只有支持SRP的客戶端才可以與這些程序?qū)υ挕H绻惚仨殲楣_訪問運(yùn)行常規(guī)的FTP(比如匿名FTP),可以在另一個(gè)端口運(yùn)行SRP FTP。
使用可信任的路徑。根用戶擁有的二進(jìn)制執(zhí)行程序應(yīng)該放置的目錄的所有權(quán)應(yīng)該是根,不能讓全部用戶或組都有寫權(quán)限。如果有必要的話,為了強(qiáng)制這樣做,你可以改變內(nèi)核。
使用內(nèi)置防火墻功能。通過打開防火墻規(guī)則,可以經(jīng)常利用內(nèi)核狀態(tài)表。
使用一些防端口掃描措施。這可以使用Linux的后臺(tái)程序功能或通過修改內(nèi)核實(shí)現(xiàn)。
使用Tripwire 和相同作用的軟件來(lái)幫助發(fā)覺對(duì)重要文件的修改。
7.電子郵件炸彈防護(hù)
對(duì)于保護(hù)電子件的安全來(lái)說(shuō),了解一下電子郵件的發(fā)送過程是很有必要的。它的過程是這樣的,當(dāng)有用戶將郵件寫好之后首先連接到郵件服務(wù)器上,當(dāng)郵件服務(wù)器有響應(yīng)時(shí)便會(huì)啟動(dòng)郵件工具,調(diào)用路由(這里指的是郵件的路由)程序Sendmail進(jìn)行郵件路由,根據(jù)郵件所附的接收地址中指定的接收主機(jī),比如: a@163.net里的163.net,與位于主機(jī)163.net電子郵件后臺(tái)守護(hù)程序建立25端口的TCP連接,建立后雙方按照SMTP協(xié)議進(jìn)行交互第進(jìn),從而完成郵件的投遞工作,接收方電子郵件接收郵件后,再根據(jù)接收用戶名稱,放置在系統(tǒng)的郵件目錄里,如/usr/電子郵件目錄的semxa文件中。接收用戶同樣使用郵件工具獲取和閱讀這些已投遞的郵件。如果投遞失敗的話,這些郵件將重新返回到發(fā)送方。實(shí)際上電子郵件的發(fā)送過程要比這里所說(shuō)的更為復(fù)雜些,在過程里將會(huì)涉及很多的配置文件。在現(xiàn)在的SMTP協(xié)議是一個(gè)基于文本的協(xié)議,理解和實(shí)現(xiàn)都相對(duì)比較簡(jiǎn)單些,你可以使用telnet直接登陸到郵件服務(wù)器的25端口(由LANA授權(quán)分配給SMTP協(xié)議)進(jìn)行交互。
保護(hù)電子信箱郵件的信息安全最有效的辦法就是使用加密的簽名技術(shù),像PGP來(lái)驗(yàn)證郵件,通過驗(yàn)證可以保護(hù)到信息是從正確的地方發(fā)來(lái)的,而且在傳送過程中不被修改。但是這就不是個(gè)人用戶所能達(dá)到的了,因?yàn)镻GP比較復(fù)雜。
就電子郵件炸彈而言,保護(hù)還是可以做得很好的。因?yàn)樗膹?fù)雜性不是很高,多的僅僅是垃圾郵件而已。你可以使用到http://semxa.kstar.com/hacking/echom201.zip E-mail Chomper(砍信機(jī))來(lái)保護(hù)自己。但是目前就國(guó)內(nèi)用戶而言,大多用戶所使用的都是免費(fèi)的郵箱,像yeah.net、163.net、263.net等,即便是有人炸頂多也是留在郵件服務(wù)器上了,危害基本上是沒有的。如果是用pop3接的話,可以用Outlook或Foxmail等pop的收信工具來(lái)接收的mail,大多用戶使用的是windows的Outlook Express,可以在“工具-收件箱助理”中設(shè)置過濾。對(duì)于各種利用電子郵件而傳播的Email蠕蟲病毒和對(duì)未知的Emai蠕蟲病毒你可以使用防電子郵件病毒軟件來(lái)防護(hù)。
另外,郵件系統(tǒng)管理員可以使用“黑名單”來(lái)過濾一些垃圾信件。對(duì)于不同的郵件系統(tǒng),大都可以在網(wǎng)絡(luò)上找到最新的黑名單程序或者列表。
8.使用ngrep工具來(lái)處理tfn2k攻擊
根據(jù)使用DNS來(lái)跟蹤tfn2k駐留程序的原理,現(xiàn)在已經(jīng)出現(xiàn)了稱為ngrep的實(shí)用工具。經(jīng)過修改的ngrep可以監(jiān)聽大約五種類型的tfn2k拒絕服務(wù)攻擊(targa3, SYN flood, UDP flood, ICMP flood 和 smurf),它還有一個(gè)循環(huán)使用的緩存用來(lái)記錄DNS和ICMP請(qǐng)求。如果ngrep發(fā)覺有攻擊行為的話,它會(huì)將其緩存中的內(nèi)容打印出來(lái)并繼續(xù)記錄ICMP回應(yīng)請(qǐng)求。假如攻擊者通過ping目標(biāo)主機(jī)的手段來(lái)鉚定攻擊目標(biāo)的話,在攻擊過程中或之后記錄ICMP的回應(yīng)請(qǐng)求是一種捕獲粗心的攻擊者的方法。由于攻擊者還很可能使用其他的服務(wù)來(lái)核實(shí)其攻擊的效果(例如web),所以對(duì)其他的標(biāo)準(zhǔn)服務(wù)也應(yīng)當(dāng)有盡量詳細(xì)的日志記錄。
還應(yīng)當(dāng)注意,ngrep采用的是監(jiān)聽網(wǎng)絡(luò)的手段,因此,ngrep無(wú)法在交換式的環(huán)境中使用。但是經(jīng)過修改的ngrep可以不必和你的DNS在同一個(gè)網(wǎng)段中,但是他必須位于一個(gè)可以監(jiān)聽到所有DNS請(qǐng)求的位置。經(jīng)過修改的ngrep也不關(guān)心目標(biāo)地址,您可以把它放置在DMZ網(wǎng)段,使它能夠檢查橫貫該網(wǎng)絡(luò)的tfn2k攻擊。從理論上講,它也可以很好的檢測(cè)出對(duì)外的tfn2k攻擊。
在ICMP flood事件中,ICMP回應(yīng)請(qǐng)求的報(bào)告中將不包括做為tfn2k flood一部分的ICMP包。Ngrep還可以報(bào)告檢測(cè)出來(lái)的除smurf之外的攻擊類型(TARGA, UDP, SYN, ICMP等)。混合式的攻擊在缺省情況下表現(xiàn)為ICMP攻擊,除非你屏蔽了向內(nèi)的ICMP回應(yīng)請(qǐng)求,這樣它就表現(xiàn)為UDP或SYN攻擊。這些攻擊的結(jié)果都是基本類似的。
9.有關(guān)入侵檢測(cè)系統(tǒng)的建議
由于許多用來(lái)?yè)魯』诰W(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)的方法對(duì)絕大多數(shù)商業(yè)入侵檢測(cè)系統(tǒng)產(chǎn)品仍然是有效的,因此建議入侵檢測(cè)系統(tǒng)應(yīng)該至少有能重組或發(fā)覺碎片的自尋址數(shù)據(jù)包。下面是部分要注意的事項(xiàng):
確信包括了現(xiàn)有的所有規(guī)則,包括一些針對(duì)分布式拒絕服務(wù)攻擊的新規(guī)則。
如果遵循了ICMP建議項(xiàng),許多ICMP會(huì)被阻塞,入侵檢測(cè)系統(tǒng)觸發(fā)器存在許多機(jī)會(huì)。任何通常情況下要被阻塞的入站或出站的ICMP數(shù)據(jù)包可以被觸發(fā)。
"任何"被你用防火墻分離的網(wǎng)絡(luò)傳輸都可能是一個(gè)潛在的IDS觸發(fā)器。
如果你的入侵檢測(cè)系統(tǒng)支持探測(cè)長(zhǎng)時(shí)間周期的攻擊,確信沒有把允許通過防火墻的被信任主機(jī)排除在外。這也包括虛擬專用網(wǎng)。
如果你能訓(xùn)練每個(gè)使用ping的用戶在ping主機(jī)時(shí)使用小數(shù)據(jù)包,就可能設(shè)置入侵檢測(cè)系統(tǒng)尋找超29字節(jié)的Echo和Echo應(yīng)答數(shù)據(jù)包。
看了“分布式攻擊的防范系統(tǒng)漏洞的措施 ”還想看: