欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于防御拒絕服務(wù)攻擊的方法和系統(tǒng)的制作方法

文檔序號(hào):7653850閱讀:105來(lái)源:國(guó)知局
專利名稱:用于防御拒絕服務(wù)攻擊的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
所公開(kāi)的發(fā)明主要涉及信息領(lǐng)域,并且更具體地涉及一種方法和系統(tǒng),其用于為使用權(quán)標(biāo)的客戶確定信任、服務(wù)質(zhì)量以及個(gè)人化。
背景技術(shù)
近來(lái),我們已看到針對(duì)在線服務(wù)和Web應(yīng)用的、日益增加的拒絕服務(wù)(DoS)攻擊行為強(qiáng)取、停用或損害了服務(wù)器。復(fù)雜的DoS攻擊越來(lái)越多地不僅集中于低層級(jí)網(wǎng)絡(luò)洪流(network flooding),而且還集中于應(yīng)用級(jí)攻擊,該應(yīng)用級(jí)攻擊利用模擬了瞬時(shí)擁塞(flash crowd)的請(qǐng)求對(duì)受害者造成洪流。應(yīng)用級(jí)DoS攻擊指的是這樣的攻擊即其利用應(yīng)用專屬語(yǔ)義和領(lǐng)域知識(shí)發(fā)起DoS攻擊,從而使得任何的DoS過(guò)濾器都很難對(duì)一連串攻擊請(qǐng)求與一連串合法請(qǐng)求進(jìn)行區(qū)分。兩種特性使得應(yīng)用級(jí)DoS攻擊特別具有破壞性。首先,應(yīng)用級(jí)DoS攻擊模仿與合法客戶機(jī)的請(qǐng)求語(yǔ)法和網(wǎng)絡(luò)級(jí)業(yè)務(wù)特性相同的請(qǐng)求語(yǔ)法和網(wǎng)絡(luò)級(jí)業(yè)務(wù)特性,由此使得對(duì)它們的檢測(cè)難得多。其次,攻擊者可以選擇發(fā)送以像套接字(socket)、磁盤帶寬、數(shù)據(jù)庫(kù)帶寬以及工作過(guò)程這樣的較高層服務(wù)器資源為目標(biāo)的昂貴請(qǐng)求(expensiverequests)。
在保護(hù)在線電子商務(wù)網(wǎng)站免遭應(yīng)用級(jí)DoS攻擊時(shí)存在兩個(gè)主要問(wèn)題。首先,應(yīng)用級(jí)DoS攻擊可能非常狡猾,使得DoS過(guò)濾器很難區(qū)分來(lái)自DoS攻擊者與合法客戶機(jī)的請(qǐng)求流。即使DoS過(guò)濾器會(huì)對(duì)有關(guān)請(qǐng)求速率的任何統(tǒng)計(jì)量(平均值、方差等)、請(qǐng)求分組頭的內(nèi)容(IP、TCP、HTTP等),以及甚至是請(qǐng)求分組本身的全部?jī)?nèi)容進(jìn)行檢查,仍然會(huì)很難區(qū)分DoS攻擊請(qǐng)求與合法請(qǐng)求。另外,應(yīng)用級(jí)DoS攻擊的狡猾性質(zhì)使得很難窮舉可以由對(duì)手發(fā)起的所有可能的攻擊。因此,存在這樣的需求即在不知道其明確的操作性質(zhì)的情況下抵御應(yīng)用級(jí)DoS攻擊。
抵御DoS攻擊的一種方法是僅準(zhǔn)許預(yù)先授權(quán)的客戶機(jī)訪問(wèn)Web服務(wù)器??梢允褂镁哂袔鈾C(jī)制的IPSec(IP安全性或IPSEC)或SSL(安全套接層)來(lái)實(shí)現(xiàn)預(yù)先授權(quán),以便在預(yù)先授權(quán)的客戶機(jī)與Web服務(wù)器之間建立共享密鑰?,F(xiàn)在,可以在防火墻過(guò)濾來(lái)自非預(yù)先授權(quán)的客戶機(jī)的任何分組。然而,要求預(yù)先授權(quán)可能阻止客戶機(jī)使用在線服務(wù)。另外,對(duì)于像eBay或Amazon這樣的開(kāi)放式電子商務(wù)網(wǎng)站,做出應(yīng)被授權(quán)來(lái)訪問(wèn)服務(wù)的所有客戶機(jī)的窮舉性列表也許是不可行的。另外,確保所有授權(quán)的客戶機(jī)會(huì)表現(xiàn)良好將是非常困難的。來(lái)自預(yù)先授權(quán)的客戶機(jī)的小子集的DoS攻擊可能致使服務(wù)器不可用。
基于詢問(wèn)(challenge-based)的機(jī)制為DoS防御提供了可選的解決方案而不需要預(yù)先授權(quán)。詢問(wèn)是抑制DoS攻擊的強(qiáng)度的優(yōu)質(zhì)方法。例如,基于圖像的詢問(wèn)(圖靈測(cè)試)可以用于確定客戶是真實(shí)的人類還是自動(dòng)腳本。密碼詢問(wèn)[參見(jiàn)X.Wang and M.Reiter,“Mitigating Bandwidth ExhaustionAttacks Using Congestion Puzzles,”Proceedings of ACM CCS,2004]可以用于確??蛻魴C(jī)使用其計(jì)算能力為服務(wù)付出代價(jià)。然而,大多數(shù)詢問(wèn)機(jī)制使得好客戶機(jī)和壞客戶機(jī)都為服務(wù)付出代價(jià),由此對(duì)于好客戶機(jī)來(lái)說(shuō),還降低了吞吐量并且引入了不便。例如,基于圖像的詢問(wèn)并不區(qū)分合法的自動(dòng)客戶機(jī)腳本與DoS攻擊腳本。
一種抵御DoS攻擊的有效解決方案是在攻擊請(qǐng)求消耗大量的服務(wù)器資源之前,在最早的點(diǎn)(比方說(shuō)網(wǎng)站的防火墻)過(guò)濾攻擊請(qǐng)求。攻擊請(qǐng)求來(lái)自大量的、在地域上分布的機(jī)器,并且因而不能夠在IP前綴上進(jìn)行過(guò)濾。一些網(wǎng)站在客戶機(jī)可以訪問(wèn)網(wǎng)站之前要求口令和登錄信息。然而,檢查站點(diǎn)專屬口令需要建立連接并且允許未驗(yàn)證的客戶機(jī)訪問(wèn)套接字緩沖區(qū)和工作過(guò)程,這使得易于在驗(yàn)證機(jī)制本身上設(shè)置攻擊。一些站點(diǎn)使用了強(qiáng)大的、基于數(shù)字簽名的傳輸級(jí)驗(yàn)證機(jī)制[例如,安全套接層,SSL];然而,檢驗(yàn)數(shù)字證書所需要的、復(fù)雜的服務(wù)器端計(jì)算使得對(duì)手能夠以握手協(xié)議為目標(biāo)發(fā)起DoS攻擊。通常,操作于網(wǎng)絡(luò)棧中較高層的驗(yàn)證機(jī)制使得攻擊者能夠以較低層為目標(biāo)。
一些網(wǎng)站可以使用基于消息驗(yàn)證代碼(MAC)的IP級(jí)驗(yàn)證機(jī)制,例如IPSec。具有預(yù)先配置的密鑰的IPSec使得來(lái)自未驗(yàn)證的客戶機(jī)的分組能夠被防火墻丟棄。因此,未驗(yàn)證的客戶機(jī)不能夠?qū)ο裉捉幼志彌_區(qū)和傳輸控制塊(TCB)這樣的即使是低層級(jí)的服務(wù)器資源進(jìn)行訪問(wèn)。然而,IPSec以幾種方式打破了客戶透明性(i)安裝IPSec需要對(duì)客戶端網(wǎng)絡(luò)棧進(jìn)行改變,(ii)安裝IPSec需要客戶機(jī)上的超級(jí)用戶特權(quán),(iii)IPSec準(zhǔn)許使用因特網(wǎng)密鑰交換協(xié)議(IKE)的密鑰交換和人工密鑰設(shè)置。IKE協(xié)議使用Diffie-Hellman密鑰交換協(xié)議。與數(shù)字簽名類似,該協(xié)議在服務(wù)器上施加了繁重的計(jì)算負(fù)荷,由此使得對(duì)手能夠以IKE協(xié)議為目標(biāo)發(fā)起DoS攻擊。(iv)人工建立共享密鑰繞過(guò)了昂貴的IKE協(xié)議。然而,人工IPSec密鑰設(shè)置需要客戶機(jī)上的超級(jí)用戶特權(quán)。
在使用客戶機(jī)驗(yàn)證來(lái)抵御DoS攻擊與客戶透明性之間存在固有的矛盾。對(duì)DoS攻擊的有效抵御似乎必須操作于網(wǎng)絡(luò)棧中的較低層,以便防火墻可以在分組可能消耗服務(wù)器上的大量資源之前對(duì)該分組進(jìn)行過(guò)濾。另一方面,在網(wǎng)絡(luò)棧中的較低層引入驗(yàn)證頭通常是通過(guò)需要對(duì)客戶端網(wǎng)絡(luò)棧的改變以及通過(guò)需要客戶機(jī)上的超級(jí)用戶特權(quán)來(lái)廢止客戶透明性。因此,存在對(duì)克服上述缺點(diǎn)的解決方案的需求。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的實(shí)施例,一種用于在客戶機(jī)-服務(wù)器系統(tǒng)中處理多個(gè)服務(wù)請(qǐng)求的方法包括下面的服務(wù)器步驟從客戶機(jī)接收對(duì)服務(wù)的至少一個(gè)請(qǐng)求,以及基于所述至少一個(gè)請(qǐng)求中所提供的信任等級(jí)提供服務(wù)等級(jí)。根據(jù)另一實(shí)施例,一種驗(yàn)證消息的方法包括以下步驟在應(yīng)用級(jí)將驗(yàn)證信息嵌入消息;從計(jì)算機(jī)下載腳本用于發(fā)送所述消息;運(yùn)行所述腳本以便將所述消息發(fā)送到服務(wù)器;以及由所述服務(wù)器在網(wǎng)絡(luò)級(jí)對(duì)所述消息進(jìn)行檢查。


圖1示出了本發(fā)明的實(shí)施例的高層級(jí)體系結(jié)構(gòu);圖2是示出了信任網(wǎng)絡(luò)跟蹤器(trust cookie)的構(gòu)造的高層級(jí)框圖;圖3和圖4示出了信任網(wǎng)絡(luò)跟蹤器的控制流;圖5示出了本發(fā)明的另一實(shí)施例的高層級(jí)體系結(jié)構(gòu);圖6說(shuō)明了端口隱藏過(guò)程;圖7和圖8示出了端口隱藏的控制流圖;以及圖9和圖10示出了詢問(wèn)服務(wù)器的控制流圖。
具體實(shí)施例方式
根據(jù)本發(fā)明的實(shí)施例,一種機(jī)制保護(hù)了在線電子商務(wù)網(wǎng)站免受應(yīng)用級(jí)DoS攻擊。我們的機(jī)制并不試圖區(qū)分DoS攻擊請(qǐng)求與合法請(qǐng)求。作為替代,我們的機(jī)制檢查服務(wù)器在處理請(qǐng)求時(shí)所花費(fèi)的資源量而不是請(qǐng)求本身。我們使用請(qǐng)求的效用以及在處理該請(qǐng)求時(shí)所獲得的服務(wù)器資源量來(lái)為每個(gè)請(qǐng)求計(jì)算分?jǐn)?shù)。我們構(gòu)造了這樣的反饋環(huán)路,即該反饋環(huán)路將請(qǐng)求的分?jǐn)?shù)作為其輸入并對(duì)客戶機(jī)的優(yōu)先級(jí)進(jìn)行更新。在其最簡(jiǎn)單的意義上,優(yōu)先級(jí)可以對(duì)客戶機(jī)能夠發(fā)布的每單位時(shí)間最大請(qǐng)求數(shù)進(jìn)行編碼。因此,高分的請(qǐng)求增加了客戶機(jī)的優(yōu)先級(jí),由此準(zhǔn)許客戶機(jī)每單位時(shí)間發(fā)送更多數(shù)目的請(qǐng)求。另一方面,低分的請(qǐng)求降低了客戶機(jī)的優(yōu)先級(jí),由此限制了客戶機(jī)每單位時(shí)間可以發(fā)布的請(qǐng)求數(shù)。因此,資源密集的并且對(duì)電子商務(wù)網(wǎng)站具有低效用的應(yīng)用級(jí)DoS攻擊請(qǐng)求會(huì)降低攻擊者的優(yōu)先級(jí)。隨著攻擊者的優(yōu)先級(jí)降低,其DoS攻擊的強(qiáng)度也降低。
我們的保護(hù)在線服務(wù)免受應(yīng)用級(jí)DoS攻擊的方法具有幾個(gè)優(yōu)點(diǎn)從對(duì)我們的DoS防御機(jī)制的描述得出的明顯好處在于其不依賴于攻擊者的明確的操作性質(zhì)。如同上面所指出的那樣,通常難以預(yù)測(cè)、檢測(cè)或列舉攻擊者可以使用的所有可能的攻擊。不依賴于攻擊類型的機(jī)制能夠暗中對(duì)適配和攻擊系統(tǒng)的智能攻擊者進(jìn)行處理。實(shí)際上,應(yīng)用級(jí)DoS攻擊的任何適配都會(huì)在不需要對(duì)請(qǐng)求的語(yǔ)法或業(yè)務(wù)特性進(jìn)行任何可察覺(jué)的改變的情況下導(dǎo)致服務(wù)器上嚴(yán)重的資源消耗。我們的機(jī)制并不基于請(qǐng)求速率、分組頭或請(qǐng)求的內(nèi)容對(duì)請(qǐng)求進(jìn)行區(qū)分。使用請(qǐng)求速率或是請(qǐng)求的內(nèi)容來(lái)區(qū)分攻擊請(qǐng)求與合法請(qǐng)求是非常困難的。
本實(shí)施例包括請(qǐng)求抑制機(jī)制,其將較多的服務(wù)器資源分配給合法客戶機(jī),同時(shí),嚴(yán)格抑制分配給DoS攻擊者的服務(wù)器資源量。這是通過(guò)響應(yīng)于客戶機(jī)的請(qǐng)求,以可以合并應(yīng)用級(jí)語(yǔ)義的方式自適應(yīng)地設(shè)置客戶機(jī)的優(yōu)先級(jí)來(lái)實(shí)現(xiàn)的。我們提供了簡(jiǎn)單的應(yīng)用編程接口(API),其準(zhǔn)許應(yīng)用編程者使用我們的DoS防御機(jī)制。所提出的解決方案不需要對(duì)客戶機(jī)進(jìn)行預(yù)先授權(quán)。無(wú)預(yù)先授權(quán)意味著服務(wù)器不必與客戶機(jī)建立任何帶外信任關(guān)系。我們所提出的解決方案是客戶透明的;也就是說(shuō),用戶或自動(dòng)客戶端腳本能夠以與瀏覽無(wú)防御網(wǎng)站相同的方式瀏覽DoS防御網(wǎng)站。我們的DoS防御機(jī)制不需要對(duì)客戶端軟件的任何改變或是客戶機(jī)上的超級(jí)用戶特權(quán)。可以將實(shí)現(xiàn)我們的提案所需要的全部設(shè)備合并到服務(wù)器端上??梢栽诜?wù)器端防火墻(IP層)與應(yīng)用層之間模塊化地劃分我們的設(shè)備。
本發(fā)明的實(shí)施例包括本解決方案在Linux內(nèi)核上的具體實(shí)現(xiàn)。我們現(xiàn)在討論應(yīng)用級(jí)DoS攻擊的兩個(gè)例子,其示出了用于DoS防御的現(xiàn)有方法,并且突出了這些方法在抵御應(yīng)用級(jí)DoS攻擊方面的不足。
試圖從電子商務(wù)網(wǎng)站提取大的圖像文件的一長(zhǎng)串HTTP請(qǐng)求可以構(gòu)成簡(jiǎn)單的應(yīng)用級(jí)DoS攻擊。在這種情況下,攻擊者(許多僵尸機(jī)(zombiemachine))以與合法客戶機(jī)同樣的速率發(fā)送HTTP請(qǐng)求。因此,DoS過(guò)濾器也許不能夠通過(guò)檢查包括IP、TCP和HTTP頭在內(nèi)的分組頭來(lái)檢測(cè)出特定的請(qǐng)求是否是DoS攻擊請(qǐng)求。事實(shí)上,攻擊請(qǐng)求的速率和攻擊請(qǐng)求的分組頭將不能與由表現(xiàn)良好的客戶機(jī)所發(fā)送的請(qǐng)求區(qū)分開(kāi)來(lái)。
對(duì)HTTP請(qǐng)求URL進(jìn)行檢查的DoS過(guò)濾器也許能夠區(qū)分請(qǐng)求大量圖像文件的DoS攻擊者與好客戶機(jī)的請(qǐng)求。然而,攻擊者可以使用更為狡猾的技術(shù)來(lái)攻擊Web應(yīng)用。例如,大多數(shù)在線電子商務(wù)應(yīng)用使用數(shù)據(jù)庫(kù)服務(wù)器來(lái)保證持久運(yùn)行。給定HTTP請(qǐng)求,應(yīng)用邏輯將請(qǐng)求轉(zhuǎn)換為一個(gè)或多個(gè)數(shù)據(jù)庫(kù)查詢。數(shù)據(jù)庫(kù)查詢的代價(jià)不僅取決于查詢的類型,而且還取決于查詢變?cè)?argument)。例如,HTTP請(qǐng)求可能需要遍及整個(gè)數(shù)據(jù)庫(kù)的窮盡性搜索,或者需要在兩個(gè)大的數(shù)據(jù)庫(kù)表之間進(jìn)行連接操作。這使得DoS過(guò)濾器很難通過(guò)檢查分組頭及其所有的內(nèi)容來(lái)檢測(cè)給定的請(qǐng)求是否是DoS攻擊請(qǐng)求。實(shí)際上,攻擊請(qǐng)求的速率和攻擊請(qǐng)求的分組頭及內(nèi)容將不能與由任何表現(xiàn)良好的客戶機(jī)所發(fā)送的那些請(qǐng)求區(qū)分開(kāi)來(lái),除非在DoS過(guò)濾器中對(duì)整個(gè)應(yīng)用邏輯進(jìn)行編碼。然而,這可能使得請(qǐng)求過(guò)濾的代價(jià)幾乎與對(duì)實(shí)際應(yīng)用請(qǐng)求本身進(jìn)行處理的代價(jià)一樣高昂。實(shí)際上,像這樣的復(fù)雜DoS過(guò)濾器自身可能會(huì)成為攻擊者的目標(biāo)。
我們假設(shè)對(duì)手可以假冒源IP地址。我們還假設(shè)對(duì)手具有在其控制下的大量但數(shù)量有界的IP地址。如果IP地址受對(duì)手的控制,那么對(duì)手可以從該IP地址發(fā)送和接收分組。我們假設(shè)對(duì)手對(duì)IP地址不受該對(duì)手控制的客戶機(jī)既不能觀察又不能修改業(yè)務(wù)。然而,對(duì)手總是可以用本質(zhì)上不受對(duì)手控制的、假冒的源IP地址發(fā)送分組。我們還假設(shè)對(duì)手具有由其支配的大量但數(shù)量有界的連網(wǎng)和計(jì)算資源,并且因而不能夠向IP網(wǎng)絡(luò)注入任意多數(shù)目的分組。我們假設(shè)對(duì)手能夠完美地對(duì)行動(dòng)進(jìn)行協(xié)調(diào)以便最大化地利用其資源。
圖1示出了系統(tǒng)100的高層級(jí)體系結(jié)構(gòu)。系統(tǒng)100包括一個(gè)或多個(gè)應(yīng)用服務(wù)器102。服務(wù)器內(nèi)核(或防火墻)104耦合于服務(wù)器102??蛻魴C(jī)由塊106表示??蛻魴C(jī)106還連接到自適應(yīng)詢問(wèn)服務(wù)器108。我們的方法向好客戶機(jī)分配較多的服務(wù)器資源,同時(shí)嚴(yán)格限制在DoS攻擊者上所花費(fèi)的資源量。分配給客戶機(jī)的最大資源量由客戶機(jī)的服務(wù)質(zhì)量(QoS)等級(jí)表示。我們使用信任權(quán)標(biāo)來(lái)對(duì)客戶機(jī)適于接收的QoS等級(jí)進(jìn)行編碼。盡管我們的體系結(jié)構(gòu)能夠支持任意的QoS策略,然而為簡(jiǎn)化起見(jiàn),我們專門用客戶機(jī)的優(yōu)先級(jí)(全有序數(shù)字值)來(lái)描繪其QoS等級(jí)。在含于從服務(wù)器到客戶機(jī)的所有響應(yīng)中的標(biāo)準(zhǔn)HTTP網(wǎng)絡(luò)跟蹤器中嵌入客戶機(jī)的信任權(quán)標(biāo)。使用標(biāo)準(zhǔn)網(wǎng)絡(luò)跟蹤器語(yǔ)義,合法客戶機(jī)可以在其將來(lái)對(duì)服務(wù)器的所有請(qǐng)求中包括該信任權(quán)標(biāo)??梢杂镁幋a于權(quán)標(biāo)中的優(yōu)先級(jí)對(duì)向服務(wù)器出示有效信任權(quán)標(biāo)的客戶機(jī)進(jìn)行服務(wù)。否則,可以在服務(wù)器的IP層或防火墻丟棄該客戶機(jī)的請(qǐng)求。
客戶機(jī)的優(yōu)先級(jí)用于在服務(wù)器的IP層或防火墻對(duì)客戶機(jī)的請(qǐng)求進(jìn)行速率限制。我們使用IP級(jí)分組過(guò)濾器來(lái)過(guò)濾來(lái)自客戶機(jī)的HTTP請(qǐng)求。分組過(guò)濾器使用加權(quán)公平排隊(duì)[I.Stoica,S.Shenker and H.Zhang,“Core-Stateless Fair QueuingA Scalable Architecture to ApproximateFair Bandwidth Allocations in High Speed Networks,”Proceedings ofACM SIGCOMM,1998]來(lái)基于客戶機(jī)的優(yōu)先級(jí)對(duì)客戶機(jī)的請(qǐng)求速率進(jìn)行抑制。因此,來(lái)自試圖發(fā)布不成比例地大量請(qǐng)求(相對(duì)于其優(yōu)先級(jí))的攻擊者的請(qǐng)求在其自身的IP層或防火墻104被丟棄。在IP層過(guò)濾請(qǐng)求顯著降低了在該請(qǐng)求上所花費(fèi)的處理器、存儲(chǔ)器、網(wǎng)絡(luò)以及磁盤資源的數(shù)量。
使用應(yīng)用專屬語(yǔ)義和領(lǐng)域知識(shí),客戶機(jī)的優(yōu)先級(jí)由應(yīng)用自適應(yīng)地進(jìn)行改變。出于該目的,我們?yōu)閼?yīng)用編程者提供了一種簡(jiǎn)單且靈活的API。我們?cè)赲ref{impl}部分用三個(gè)樣例實(shí)現(xiàn)對(duì)具體的API進(jìn)行描述。允許應(yīng)用設(shè)置客戶機(jī)的優(yōu)先級(jí)準(zhǔn)許我們合并應(yīng)用專屬語(yǔ)義(領(lǐng)域知識(shí)),并且因而具有高度的靈活性。IP級(jí)(防火墻)等級(jí)請(qǐng)求過(guò)濾確保了非法請(qǐng)求在它們可能消耗大量的服務(wù)器資源之前就被丟棄。在本實(shí)施例中我們探究了可以用于改變客戶機(jī)的優(yōu)先級(jí)的幾種算法,并且研究其在Web服務(wù)器性能上的影響。
當(dāng)客戶機(jī)首次試圖訪問(wèn)Web服務(wù)器時(shí),使用由詢問(wèn)服務(wù)器108發(fā)布的初始信任權(quán)標(biāo)來(lái)引導(dǎo)(bootstrap)信任權(quán)標(biāo)。以這樣的方式加密信任權(quán)標(biāo),從而使得對(duì)于客戶機(jī)來(lái)說(shuō),對(duì)權(quán)標(biāo)進(jìn)行不可檢測(cè)的修改在計(jì)算上將是不可行的。我們確保將客戶機(jī)的優(yōu)先級(jí)保持為最新;由于客戶機(jī)的優(yōu)先級(jí)連續(xù)地被改變,因此服務(wù)器留存客戶機(jī)的優(yōu)先級(jí)的最新值是非常重要的,尤其是在客戶機(jī)的優(yōu)先級(jí)正在下降的情況下。
本實(shí)施例是客戶透明的,并且不需要對(duì)客戶端軟件進(jìn)行改變。我們的所有設(shè)備都是在服務(wù)器端完成的,由此使得部署非常容易。服務(wù)器端的設(shè)備包括以下部件。
詢問(wèn)服務(wù)器108用于引導(dǎo)系統(tǒng)。詢問(wèn)服務(wù)器108負(fù)責(zé)初始化對(duì)客戶機(jī)的初始優(yōu)先級(jí)進(jìn)行編碼的信任權(quán)標(biāo)。注意到,應(yīng)當(dāng)對(duì)詢問(wèn)服務(wù)器108本身進(jìn)行保護(hù)以防御DoS攻擊者。我們使用基于密碼詢問(wèn)的抵御機(jī)制來(lái)保護(hù)詢問(wèn)服務(wù)器108。當(dāng)客戶機(jī)正確解答了密碼詢問(wèn)時(shí),那么詢問(wèn)服務(wù)器108會(huì)為客戶機(jī)提供合適的信任權(quán)標(biāo)。我們確保解答密碼詢問(wèn)在代價(jià)上比產(chǎn)生并初始化信任權(quán)標(biāo)高幾個(gè)數(shù)量級(jí)。
修改服務(wù)器102上的IP層104,以便使用客戶機(jī)的優(yōu)先級(jí)來(lái)過(guò)濾客戶機(jī)所發(fā)送的HTTP請(qǐng)求。通過(guò)在IP級(jí)對(duì)請(qǐng)求公平排隊(duì)來(lái)推行優(yōu)先級(jí)。在IP層上過(guò)濾請(qǐng)求節(jié)省了許多計(jì)算和存儲(chǔ)資源,要不然這些計(jì)算和存儲(chǔ)資源會(huì)隨著請(qǐng)求遍歷服務(wù)器的網(wǎng)絡(luò)棧而被花費(fèi)在該請(qǐng)求上。
修改服務(wù)器102上的應(yīng)用層,以便使用應(yīng)用專屬規(guī)則來(lái)更新客戶機(jī)的優(yōu)先級(jí)。使用基于效用的模型來(lái)計(jì)算客戶機(jī)的新優(yōu)先級(jí),該模型考慮了客戶機(jī)所發(fā)送的一組最近的請(qǐng)求以及由這些請(qǐng)求所消耗的服務(wù)器資源量。
參照?qǐng)D2,我們現(xiàn)在討論如何構(gòu)造信任權(quán)標(biāo)。然后,在圖3和圖4中我們描述使用信任權(quán)標(biāo)來(lái)抵御應(yīng)用級(jí)DoS攻擊的技術(shù)。在圖2中示出了用于構(gòu)建信任網(wǎng)絡(luò)跟蹤器的體系結(jié)構(gòu)200。HTTP層202向IP層204提供Javascript網(wǎng)絡(luò)跟蹤器,IP層204構(gòu)建了信任網(wǎng)絡(luò)跟蹤器(TC)的其余部分。FQ過(guò)濾器/TC過(guò)濾器/IP層206接收TC并且將其傳遞至Web服務(wù)器208,以便更新TC中的QoS。
如下構(gòu)造16字節(jié)長(zhǎng)的信任權(quán)標(biāo)(tt)tt=E_MK(cip,sip,tv,prio,flag),其中,cip(4字節(jié))表示客戶機(jī)的IP地址,sip(4字節(jié))表示服務(wù)器的IP地址,tv(4字節(jié))表示發(fā)布信任權(quán)標(biāo)的時(shí)間(將時(shí)間表示為從1970年1月1日開(kāi)始的秒數(shù)),prio(2字節(jié))表示由服務(wù)器分派給客戶機(jī)的優(yōu)先級(jí),flag(2字節(jié))表示標(biāo)記(sentinel),MK表示服務(wù)器所使用的保密密鑰,并且E表示對(duì)稱密鑰加密算法。零優(yōu)先級(jí)指示服務(wù)器會(huì)丟棄來(lái)自客戶機(jī)的所有請(qǐng)求。
參照?qǐng)D3,其示出了過(guò)程400,其中,合法客戶機(jī)操作如下。在步驟302中,當(dāng)客戶機(jī)解答詢問(wèn)時(shí)獲得其權(quán)標(biāo)tt。在客戶機(jī)的瀏覽器中將權(quán)標(biāo)存儲(chǔ)為HTTP網(wǎng)絡(luò)跟蹤器。在步驟304中,客戶機(jī)在其對(duì)服務(wù)器的所有HTTP請(qǐng)求中包括權(quán)標(biāo)tt。
在服務(wù)器端防火墻104上,我們進(jìn)行兩種操作。首先,在步驟306中,我們基于信任權(quán)標(biāo)的有效性過(guò)濾HTTP請(qǐng)求。其次,在步驟308中,我們檢查信任權(quán)標(biāo)是否有效,如果信任權(quán)標(biāo)無(wú)效或不存在TC,那么丟棄該請(qǐng)求。如果其有效,則服務(wù)器102提取客戶機(jī)的優(yōu)先級(jí)并且使用公平排隊(duì)來(lái)抑制客戶機(jī)的請(qǐng)求速率(步驟310)。然后在步驟312中,我們使用有效的優(yōu)先權(quán)加權(quán)公平排隊(duì)。
服務(wù)器102檢查分組是否是HTTP請(qǐng)求,并且如果是的話,則其提取HTTP網(wǎng)絡(luò)跟蹤器tt。其如下確認(rèn)信任權(quán)標(biāo)tt。如果tt.cip與客戶機(jī)的IP地址匹配、tt.sip與服務(wù)器的IP地址匹配、tt.tv是過(guò)去的某個(gè)時(shí)間(tt.tv<cur_time),并且tt.flag與標(biāo)記匹配,則信任權(quán)標(biāo)tt有效。如果是這樣的話,則服務(wù)器從tt中提取優(yōu)先級(jí)(tt.prio);否則,由防火墻丟棄該請(qǐng)求。
對(duì)手可能表現(xiàn)良好直到其獲得高優(yōu)先級(jí),并且然后開(kāi)始行為不端。因此,服務(wù)器將發(fā)布具有較低優(yōu)先級(jí)的信任權(quán)標(biāo)。然而,對(duì)手可能在其將來(lái)的請(qǐng)求中向服務(wù)器發(fā)送舊的權(quán)標(biāo)(具有高優(yōu)先級(jí))。如果從服務(wù)器到客戶機(jī)的所有響應(yīng)都隧穿經(jīng)由防火墻,那么防火墻可以記錄客戶機(jī)的已更新的優(yōu)先級(jí)。然而,出于性能的原因,以這樣的方式配置大多數(shù)應(yīng)用服務(wù)器即請(qǐng)求隧穿經(jīng)由防火墻,但響應(yīng)卻不是。在這樣的情形下,我們通過(guò)如下計(jì)算有效的優(yōu)先級(jí)來(lái)防御DoS攻擊。
服務(wù)器102使用請(qǐng)求的優(yōu)先級(jí)prio、網(wǎng)絡(luò)跟蹤器發(fā)布的時(shí)間(tt.tv)以及客戶機(jī)的請(qǐng)求速率r來(lái)如下計(jì)算有效優(yōu)先級(jí)eprioeprio=prio*e-δ*max(cur_time-tt.tv-1/r,0),其中,cur_time表示當(dāng)前的時(shí)間。這里的關(guān)鍵直覺(jué)是如果cur_time-tt.tv顯著大于客戶機(jī)的請(qǐng)求到達(dá)時(shí)間之間的平均值(1/r),那么客戶機(jī)可能在發(fā)送舊的信任權(quán)標(biāo)。(cur_time-tt.tv)與1/r之間的差越大,客戶機(jī)越有可能試圖發(fā)送舊的權(quán)標(biāo)。因此,我們按照(cur_time-tt.tv)與1/r之間的差的指數(shù)規(guī)律降低有效優(yōu)先級(jí)eprio。注意到,公平排隊(duì)過(guò)濾器估計(jì)客戶機(jī)的請(qǐng)求速率r,用于進(jìn)行加權(quán)概率公平排隊(duì)。
在已經(jīng)確認(rèn)信任權(quán)標(biāo)并且提取了其優(yōu)先級(jí)的情況下,服務(wù)器102使用eprio在來(lái)自客戶機(jī)的所有輸入HTTP請(qǐng)求上進(jìn)行加權(quán)概率公平排隊(duì)。公平排隊(duì)將來(lái)自客戶機(jī)的最大請(qǐng)求速率限制在其公平份額。因此,防火墻104丟棄來(lái)自試圖以大于其公平份額的速率發(fā)送請(qǐng)求的攻擊者的請(qǐng)求。我們將客戶機(jī)的公平份額設(shè)置為與其有效優(yōu)先級(jí)成比例。因此,如果客戶機(jī)具有低優(yōu)先級(jí),那么實(shí)際上僅有來(lái)自該客戶機(jī)的很少量的請(qǐng)求到達(dá)Web服務(wù)器102。
參照?qǐng)D4,其示出了信任網(wǎng)絡(luò)跟蹤器控制流過(guò)程400。在步驟402中,應(yīng)用對(duì)所接受的請(qǐng)求以其優(yōu)先級(jí)進(jìn)行服務(wù)。在步驟404中,服務(wù)器截獲HTTP響應(yīng)并且更新TC中的優(yōu)先級(jí)。在步驟406中,服務(wù)器應(yīng)用將新的TC添加到HTTP響應(yīng)頭。然后在步驟408中,客戶瀏覽器將TC作為任何常規(guī)的網(wǎng)絡(luò)跟蹤器進(jìn)行處理。
我們現(xiàn)在討論確保向DoS攻擊者分派低優(yōu)先級(jí)而向合法客戶機(jī)分派較高優(yōu)先級(jí)的技術(shù)。一旦IP層分組過(guò)濾器接受請(qǐng)求,請(qǐng)求就被轉(zhuǎn)發(fā)至應(yīng)用。當(dāng)服務(wù)器向客戶機(jī)發(fā)送響應(yīng)時(shí),其基于幾個(gè)應(yīng)用專屬規(guī)則和參數(shù)來(lái)更新客戶機(jī)的優(yōu)先級(jí)。出于此目的,我們使用對(duì)客戶機(jī)的請(qǐng)求rq的效益進(jìn)行估計(jì)的效益函數(shù)B(rq)。請(qǐng)求的效益考慮了請(qǐng)求的效用以及在處理該請(qǐng)求時(shí)所花費(fèi)的資源。例如,如果請(qǐng)求rq是信用卡事務(wù),那么請(qǐng)求rq的效用可以是服務(wù)器從該事務(wù)獲得的貨幣利潤(rùn)。我們還定義了優(yōu)先權(quán)更新函數(shù)G,其基于效益B(rq)對(duì)客戶機(jī)的優(yōu)先級(jí)進(jìn)行更新。
在我們的第一樣機(jī)中,我們打算使用基于效用的效益函數(shù)B(rq)=F(rt,ut),其中,rq表示客戶機(jī)的請(qǐng)求,rt是服務(wù)器產(chǎn)生對(duì)請(qǐng)求rq的響應(yīng)所用的時(shí)間,并且ut表示rq的效用。我們使用簡(jiǎn)單的效益函數(shù)B(rq)=ut-γ*rt,其中,γ是可調(diào)參數(shù)。響應(yīng)時(shí)間rt用作服務(wù)器處理請(qǐng)求rq所花費(fèi)的努力的粗略近似。觀察到,在計(jì)算效益B(rq)時(shí),響應(yīng)時(shí)間rt(其表示服務(wù)器所花費(fèi)的努力)是從請(qǐng)求的效益ut扣除的。
新的優(yōu)先級(jí)nprio可以被計(jì)算為nprio=G(eprio,B(rq)),其中,eprio是客戶機(jī)當(dāng)前的有效優(yōu)先級(jí)。在我們的第一樣機(jī)中,我們使用加性增加和乘性減少策略如下更新優(yōu)先級(jí)如果B(rq)≥0,那么nprio=eprio+α*B(rq),否則,nprio=eprio/(β*(1-B(rq)))。加性增加策略確保優(yōu)先級(jí)由于客戶機(jī)表現(xiàn)良好而緩慢增加;而乘性減少策略確保優(yōu)先級(jí)在檢測(cè)到來(lái)自客戶機(jī)的DoS攻擊時(shí)很快地降低。
總之,我們?cè)诜?wù)器端IP層或防火墻104上進(jìn)行請(qǐng)求過(guò)濾。如同我們已在較早時(shí)指出的那樣,在防火墻104上過(guò)濾請(qǐng)求使得在其上花費(fèi)的服務(wù)器資源量最小化。然而,確定該過(guò)濾過(guò)程的參數(shù)(客戶機(jī)的優(yōu)先級(jí))由應(yīng)用設(shè)置。這種方法具有高度的靈活性,因?yàn)橛锌赡茉谟?jì)算客戶機(jī)的優(yōu)先級(jí)時(shí)利用應(yīng)用專屬語(yǔ)義和領(lǐng)域知識(shí)。
我們的實(shí)施方式既不需要改變客戶端軟件,也不需要客戶機(jī)上的超級(jí)用戶特權(quán)。我們使用標(biāo)準(zhǔn)HTTP網(wǎng)絡(luò)跟蹤器來(lái)實(shí)現(xiàn)信任權(quán)標(biāo)。因此,客戶機(jī)可以使用像Microsoft IE或FireFox這樣的標(biāo)準(zhǔn)Web瀏覽器來(lái)以與瀏覽無(wú)防御網(wǎng)站相同的方式瀏覽DoS防御網(wǎng)站。采取對(duì)處理HTTP網(wǎng)絡(luò)跟蹤器進(jìn)行支持的自動(dòng)客戶端腳本;這樣的腳本在如今的Web上是常用的。
在服務(wù)器端,我們使用網(wǎng)絡(luò)過(guò)濾器(NetFilters)在IP層過(guò)濾請(qǐng)求。網(wǎng)絡(luò)過(guò)濾器是Linux內(nèi)核內(nèi)部的框架,其啟用分組過(guò)濾、網(wǎng)絡(luò)地址轉(zhuǎn)換和其它的分組拆分(packet mangling)。我們使用網(wǎng)絡(luò)過(guò)濾器來(lái)掛接(hookonto)IP層的分組處理。給定IP分組,我們檢查其是否是HTTP請(qǐng)求并檢查其在HTTP請(qǐng)求頭中是否具有tt網(wǎng)絡(luò)跟蹤器。如果是的話,我們提取信任權(quán)標(biāo)tt,檢查其有效性并提取嵌于權(quán)標(biāo)中的優(yōu)先級(jí)。我們從其優(yōu)先級(jí)prio以及來(lái)自客戶機(jī)的請(qǐng)求速率r計(jì)算有效優(yōu)先級(jí)eprio。我們使用簡(jiǎn)單的加權(quán)概率公平排隊(duì)過(guò)濾器對(duì)來(lái)自客戶機(jī)的請(qǐng)求用其有效優(yōu)先級(jí)(eprio)進(jìn)行速率限制。
在輸入請(qǐng)求被轉(zhuǎn)發(fā)至小服務(wù)程序引擎之前,我們使用Apache Tomcat過(guò)濾器來(lái)掛接HTTP請(qǐng)求處理。該過(guò)濾器用于記錄請(qǐng)求處理開(kāi)始的時(shí)間。類似地,輸出響應(yīng)上的過(guò)濾器用于記錄請(qǐng)求處理結(jié)束的時(shí)間。該過(guò)濾器為應(yīng)用編程者提供了下面的API,以便使用應(yīng)用專屬規(guī)則和領(lǐng)域知識(shí)在對(duì)請(qǐng)求rq進(jìn)行處理之后更新客戶機(jī)的優(yōu)先級(jí)priority updatePrio(priorityoldPrio,URL requestURLHistory,responseTime rt),其中,oldPrio表示客戶機(jī)在發(fā)布請(qǐng)求rq之前的優(yōu)先級(jí),requestURLHistory表示發(fā)送自客戶機(jī)的請(qǐng)求的有限歷史,并且rt表示對(duì)請(qǐng)求rq的服務(wù)器響應(yīng)時(shí)間。此外,該過(guò)濾器對(duì)信任權(quán)標(biāo)tt加密并且將其作為網(wǎng)絡(luò)跟蹤器嵌入HTTP響應(yīng)。
現(xiàn)在描述對(duì)我們的API的三種樣例實(shí)現(xiàn),以便演示其靈活性。
我們已經(jīng)給出了一種基于客戶機(jī)的請(qǐng)求響應(yīng)時(shí)間和效用更新其優(yōu)先級(jí)的技術(shù)。通??梢允褂脩?yīng)用專屬語(yǔ)義和領(lǐng)域知識(shí)從請(qǐng)求URL計(jì)算請(qǐng)求的效用;注意到,客戶機(jī)提供的參數(shù)可作為請(qǐng)求URL的一部分獲得。通過(guò)我們的服務(wù)器端設(shè)備自動(dòng)測(cè)量對(duì)請(qǐng)求的響應(yīng)時(shí)間。
許多電子商務(wù)應(yīng)用要求來(lái)自用戶的輸入遵循某些隱含的語(yǔ)義。例如,請(qǐng)求客戶機(jī)年齡的字段會(huì)期望1到100之間的值。人們可以使用客戶機(jī)提供的參數(shù)(其可作為請(qǐng)求URL的一部分獲得)來(lái)估計(jì)給定請(qǐng)求URL是或不是DoS攻擊的可能性。缺乏構(gòu)造語(yǔ)義正確的請(qǐng)求的完整領(lǐng)域知識(shí)的、初級(jí)DoS攻擊腳本(不同于合法的自動(dòng)客戶端腳本)可能在輸入?yún)?shù)值上犯錯(cuò)。
在許多Web應(yīng)用和Web服務(wù)器中,服務(wù)的語(yǔ)義可能要求用戶遵循某種鏈接結(jié)構(gòu)。假設(shè)客戶機(jī)已經(jīng)訪問(wèn)了頁(yè)面P,人們可以識(shí)別伴隨概率tp1,tp2,...,tpk的一組可能的接下來(lái)的頁(yè)面P1,P2,...,Pk,其中,tpi表示在合法客戶機(jī)已經(jīng)訪問(wèn)頁(yè)面P后該客戶機(jī)立即訪問(wèn)頁(yè)面Pi的概率。如果服務(wù)器觀察到客戶機(jī)已經(jīng)顯著偏離所期望的行為,則其可以降低客戶機(jī)的優(yōu)先級(jí)。注意到,跟蹤基于客戶機(jī)的鏈接結(jié)構(gòu)的行為需要該客戶機(jī)所請(qǐng)求的URL的有限歷史。
雖然像輸入語(yǔ)義和鏈接結(jié)構(gòu)這樣的啟發(fā)式方法能夠保護(hù)Web服務(wù)器免遭幾種類別的應(yīng)用級(jí)DoS攻擊,但是應(yīng)當(dāng)注意,這些啟發(fā)式方法可能不足以緩和所有的應(yīng)用級(jí)DoS攻擊。例如,DoS攻擊者可能使用這樣的請(qǐng)求,即該請(qǐng)求的代價(jià)是嵌于請(qǐng)求中的參數(shù)的任意復(fù)雜的函數(shù)。盡管如此,通過(guò)實(shí)際測(cè)量請(qǐng)求的代價(jià)而不是試圖基于請(qǐng)求來(lái)推斷DoS攻擊,基于資源消耗的技術(shù)提供了一種解決此問(wèn)題的方案。
現(xiàn)在討論一種自適應(yīng)詢問(wèn)機(jī)制。在本實(shí)施例中使用Java小應(yīng)用程序?qū)崿F(xiàn)詢問(wèn)服務(wù)器108在客戶端的實(shí)現(xiàn),而使用C實(shí)現(xiàn)服務(wù)器上的詢問(wèn)產(chǎn)生器和解答驗(yàn)證器。盡管使用Java小應(yīng)用程序?qū)Υ蠖鄶?shù)客戶端瀏覽器(使用Java VM的標(biāo)準(zhǔn)瀏覽器插件)來(lái)說(shuō)是透明的,其對(duì)自動(dòng)客戶端腳本來(lái)說(shuō)可能不是透明的。然而,客戶端腳本可以使用其自身的機(jī)制來(lái)解答詢問(wèn),而不必依賴于Java小應(yīng)用程序框架。
在另一實(shí)施例中,我們使用了通過(guò)JavaScripts使之成為可能的客戶端計(jì)算,以便以客戶透明的方式將弱驗(yàn)證代碼嵌入網(wǎng)絡(luò)棧的TCP/IP層中。與在網(wǎng)絡(luò)棧中的對(duì)等層之間操作的大多數(shù)驗(yàn)證協(xié)議不同,我們的協(xié)議是非對(duì)稱的其在客戶機(jī)上的HTTP層與服務(wù)器上的IP層之間操作??蛻魴C(jī)上的HTTP級(jí)操作準(zhǔn)許我們的實(shí)現(xiàn)是客戶透明的,而服務(wù)器上的IP級(jí)操作允許分組在服務(wù)器的防火墻上被過(guò)濾。
特別地,我們?cè)赥CP分組的端口號(hào)字段嵌入16比特的驗(yàn)證符。這是使用諸如JavaScripts的客戶透明技術(shù)在客戶機(jī)的HTTP層(Web瀏覽器)實(shí)現(xiàn)的。服務(wù)器在防火墻上基于在分組的目的端口字段中所嵌入的驗(yàn)證代碼對(duì)IP分組進(jìn)行過(guò)濾。如果驗(yàn)證代碼是有效的,則服務(wù)器使用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)端口轉(zhuǎn)發(fā)來(lái)將分組轉(zhuǎn)發(fā)至實(shí)際的目的端口(比方說(shuō),HTTP的端口80)。因此,未修改的服務(wù)器端應(yīng)用可以在我們的DoS防御下的Web服務(wù)器上無(wú)縫運(yùn)作。
IP層過(guò)濾。我們?cè)赥CP分組的目的端口字段中嵌入16比特的驗(yàn)證代碼。這確保了驗(yàn)證頭在IP分組最初的40個(gè)字節(jié)內(nèi),并且因而免于IP分組分段。因此,服務(wù)器的網(wǎng)絡(luò)邊緣處的防火墻可以在未驗(yàn)證的IP分組進(jìn)入網(wǎng)絡(luò)之前對(duì)其進(jìn)行過(guò)濾。在防火墻上過(guò)濾分組節(jié)省了大量的計(jì)算、連網(wǎng)、存儲(chǔ)器和磁盤資源,要不然這些資源將被花費(fèi)在當(dāng)分組遍歷服務(wù)器的網(wǎng)絡(luò)棧時(shí)對(duì)其所進(jìn)行的處理上。
我們所提出的解決方案是客戶透明的,也就是說(shuō),人工或自動(dòng)客戶端腳本能夠以與瀏覽無(wú)防御網(wǎng)站相同的方式瀏覽DoS防御網(wǎng)站。我們的DoS防御機(jī)制不需要對(duì)客戶端軟件的任何改變或客戶機(jī)上的超級(jí)用戶特權(quán)。可以將實(shí)現(xiàn)我們的提案所需要的所有設(shè)備合并于服務(wù)器端,由此使得我們的提案可易于部署。
應(yīng)用服務(wù)器透明性。我們所提出的解決方案對(duì)Web服務(wù)器上的TCP層以及更高的層來(lái)說(shuō)是透明的。我們的設(shè)備僅在防火墻上修改了IP層,以便在目的端口字段中并入驗(yàn)證校驗(yàn)。這準(zhǔn)許Web服務(wù)器在我們的機(jī)制之上堆置基于口令和登錄或數(shù)字簽名的驗(yàn)證協(xié)議,以便獲得強(qiáng)有力的驗(yàn)證以及對(duì)DoS攻擊的復(fù)原能力。由Web服務(wù)器充當(dāng)主機(jī)的應(yīng)用可以不在意我們的DoS防御機(jī)制。
我們描述了所提出的解決方案在Linux內(nèi)核上的具體實(shí)現(xiàn)。我們給出了Web服務(wù)器和客戶機(jī)上的具體威脅模型。我們假設(shè)Web服務(wù)器是誠(chéng)實(shí)的。假設(shè)Web服務(wù)器所服務(wù)的所有Web頁(yè)面都是有效且正確的。然而,可以構(gòu)建反饋機(jī)制,其中,客戶機(jī)周期性地對(duì)服務(wù)提供商進(jìn)行評(píng)定。在一段時(shí)間后,客戶機(jī)將僅訪問(wèn)高質(zhì)量的服務(wù)提供商,而低質(zhì)量的服務(wù)提供商將最終退出交易。
我們假設(shè)客戶機(jī)可能是不誠(chéng)實(shí)的。不誠(chéng)實(shí)的客戶機(jī)可能向其它未授權(quán)的客戶機(jī)泄露其授權(quán)信息。我們假設(shè)對(duì)手控制了一組IP地址。如果IP地址受到對(duì)手控制,那么該對(duì)手可以接收發(fā)送到該地址的分組。另一方面,如果IP地址沒(méi)有受到對(duì)手控制,那么對(duì)手既不能觀察也不能修改發(fā)送到該地址的分組。盡管如此,對(duì)手總是可以用本質(zhì)上不受該對(duì)手控制的任意IP地址來(lái)假冒分組上的源IP地址。我們假設(shè)有界實(shí)力對(duì)手模型。我們假設(shè)對(duì)手具有由其支配的大量但數(shù)量有界的資源,并且因而不能夠向IP網(wǎng)絡(luò)注入任意多數(shù)目的分組。我們假設(shè)對(duì)手可以完美地對(duì)行動(dòng)進(jìn)行協(xié)調(diào)以便最大化地利用其資源;例如,對(duì)系統(tǒng)來(lái)說(shuō)所有暴露的僵尸機(jī)看起來(lái)像單個(gè)的大型計(jì)算機(jī)。
圖5示出了根據(jù)另一實(shí)施例的系統(tǒng)500的高層級(jí)體系結(jié)構(gòu)。系統(tǒng)500包括應(yīng)用服務(wù)器502、耦合于服務(wù)器502的服務(wù)器內(nèi)核(防火墻)504、客戶機(jī)506,以及自適應(yīng)詢問(wèn)服務(wù)器508。我們使用許可控制獲得對(duì)DoS攻擊的復(fù)原能力。許可控制主要限制訪問(wèn)Web服務(wù)器的并行客戶機(jī)506的數(shù)目。我們使用兩個(gè)部件來(lái)實(shí)現(xiàn)許可控制詢問(wèn)服務(wù)器508和服務(wù)器防火墻504。詢問(wèn)服務(wù)器508限制向客戶機(jī)506發(fā)布的有效端口密鑰的數(shù)目。僅在客戶機(jī)506知道其端口密鑰的條件下,客戶機(jī)506才可以高效率地產(chǎn)生正確的驗(yàn)證代碼??蛻舳藶g覽器506然后使用JavaScript將驗(yàn)證代碼嵌入到其分組的目的端口號(hào)字段中。
我們使用服務(wù)器端防火墻504來(lái)過(guò)濾來(lái)自未許可的客戶機(jī)506的IP分組。服務(wù)器上的分組過(guò)濾器丟棄所有的非TCP業(yè)務(wù)。另外,其丟棄不具有正確的目的端口號(hào)的所有TCP分組。因此,由于分組的目的端口號(hào)上的驗(yàn)證校驗(yàn)失敗,不知道其端口密鑰的客戶機(jī)506所發(fā)送的大多數(shù)分組會(huì)被防火墻丟棄。在防火墻504上對(duì)分組進(jìn)行過(guò)濾顯著降低了在其上所花費(fèi)的處理、存儲(chǔ)器、網(wǎng)絡(luò)以及磁盤資源的數(shù)量。由于分組不必遍歷服務(wù)器的網(wǎng)絡(luò)棧,因此節(jié)省了處理能力;另外,向應(yīng)用層502發(fā)送非法分組涉及昂貴的、內(nèi)核到用戶的上下文轉(zhuǎn)接(通常,應(yīng)用作為常規(guī)用戶運(yùn)行)。
由于不必在存儲(chǔ)器中為被丟棄的分組分配任何空間,因此節(jié)省了存儲(chǔ)器。如果輸入分組是TCP SYN分組,則由于節(jié)點(diǎn)(或Web服務(wù)器)不必發(fā)送TCP SYN-ACK分組而節(jié)省了網(wǎng)絡(luò)帶寬。最后,可以節(jié)省一些磁盤I/O。通過(guò)不在主存儲(chǔ)器中存儲(chǔ)非法分組,Web服務(wù)器不將頁(yè)面換入/換出主存儲(chǔ)器。
瀏覽DoS防御網(wǎng)站的客戶機(jī)必須能夠(i)與詢問(wèn)服務(wù)器508交互,以及(ii)在TCP分組的目的端口號(hào)字段中嵌入驗(yàn)證代碼。使用HTTP層(Web瀏覽器)的JavaScripts,我們以客戶透明的方式實(shí)現(xiàn)了這兩種功能性。盡管我們操作于客戶端的HTTP層,我們的協(xié)議允許在服務(wù)器端防火墻504上的IP層分組過(guò)濾。我們的所有設(shè)備都在服務(wù)器端完成,由此使得部署非常容易。服務(wù)器端的設(shè)備包括詢問(wèn)服務(wù)器508和防火墻504。
通過(guò)向受許可的客戶機(jī)506傳送端口密鑰,詢問(wèn)服務(wù)器508用于引導(dǎo)我們的系統(tǒng)。端口密鑰由客戶機(jī)506用于計(jì)算將被嵌入TCP分組的目的端口號(hào)字段中的驗(yàn)證代碼。注意到,詢問(wèn)服務(wù)器自身不能夠使用端口隱藏來(lái)防御DoS攻擊者。因此,我們使用基于密碼詢問(wèn)的抵御機(jī)制來(lái)保護(hù)詢問(wèn)服務(wù)器508 [X.Wang and M.Reiter,“Mitigating Bandwidth ExhaustionAttacks Using Congestion Puzzles,”Proceedings of ACM CCS,2004]。通過(guò)向客戶機(jī)506提供能夠解答密碼詢問(wèn)的JavaScript,我們使得詢問(wèn)服務(wù)器508是客戶透明的。當(dāng)客戶機(jī)506正確解答了密碼詢問(wèn)并且如果系統(tǒng)能夠處理更多的客戶機(jī)506時(shí),那么詢問(wèn)服務(wù)器508將向客戶機(jī)506提供端口密鑰。我們確保解答密碼詢問(wèn)在代價(jià)上比產(chǎn)生密碼詢問(wèn)的代價(jià)高幾個(gè)數(shù)量級(jí)。
對(duì)服務(wù)器端的防火墻504進(jìn)行修改,以便在輸入TCP/IP分組上進(jìn)行兩種操作(i)基于目標(biāo)端口號(hào)過(guò)濾分組;以及(ii)使用概率公平排隊(duì)來(lái)限制客戶機(jī)506發(fā)送分組的速率。防火墻504另外被裝備以進(jìn)行端口轉(zhuǎn)發(fā)防火墻504將合法輸入分組上的目的端口號(hào)修改為應(yīng)用的真實(shí)端口號(hào)。因此,對(duì)基礎(chǔ)DoS防御機(jī)制來(lái)說(shuō),服務(wù)器端上的應(yīng)用層502可以是不明朗的。
在本實(shí)施例中,提供了用于端口隱藏的詳細(xì)設(shè)計(jì)。圖6示出了用于端口隱藏的我們的體系結(jié)構(gòu),并且圖7和圖8示出了用于端口隱藏的操作控制流。
使用端口密鑰K,利用客戶機(jī)IP地址(CIP)、服務(wù)器IP地址(SIP)和當(dāng)前時(shí)間(t)(t被測(cè)量為從1970年1月1日GMT開(kāi)始已經(jīng)過(guò)去的秒數(shù))的帶密鑰偽隨機(jī)函數(shù)(PRF)H,將實(shí)際的目的端口(dest_port)轉(zhuǎn)換為已驗(yàn)證的端口(hide-port)hide-port=dest_port XOR HK(CIP,SIP,tnb)。為了說(shuō)明客戶機(jī)與服務(wù)器之間的松時(shí)間同步,我們使用tnb=t>>nb(代替t);這允許最大為2nb秒的時(shí)鐘漂移。下面我們描述對(duì)客戶機(jī)與服務(wù)器之間的初始時(shí)鐘偏移和時(shí)鐘漂移進(jìn)行處理的技術(shù)。
觀察到驗(yàn)證代碼每tnb秒發(fā)生改變(并且由此hide-port每tnb秒發(fā)生改變)。因此,試圖猜測(cè)驗(yàn)證代碼的任何對(duì)手都有tnb秒的時(shí)間做這件事。在該時(shí)間間隔結(jié)束時(shí),驗(yàn)證代碼改變。即使對(duì)手猜到了用于一個(gè)時(shí)間周期的驗(yàn)證代碼,它也不具有關(guān)于下一周期的驗(yàn)證代碼的任何有用信息。通過(guò)確保沒(méi)有兩個(gè)客戶機(jī)得到相同的端口密鑰,我們進(jìn)一步使驗(yàn)證代碼不可轉(zhuǎn)移。
我們將客戶機(jī)專屬端口密鑰構(gòu)造為K=HSK(t)(CIP),其中,使用PRFH和時(shí)變的服務(wù)器密鑰SK(t),由客戶機(jī)的IP地址(CIP)得出密鑰K。按照SK(t)=HMK(t/T),由服務(wù)器的主密鑰MK得出時(shí)變的密鑰SK(t),其中,T是端口密鑰有效的時(shí)間周期。主密鑰MK由Web服務(wù)器保存為秘密。持有密鑰K的受許可的客戶機(jī)可以向合適的目的TCP端口發(fā)送分組。注意到,如果hide_port被不正確地計(jì)算,那么在服務(wù)器上重構(gòu)的dest_port′=hide_port XOR HK(CIP,SIP,tnb)會(huì)是0到216-1之間的某隨機(jī)端口號(hào)。因此,基于重構(gòu)的目的端口號(hào)dest_port′(比方說(shuō)使用IP表),可以使用標(biāo)準(zhǔn)防火墻規(guī)則過(guò)濾掉非法分組。
注意到,端口隱藏僅防止未許可的客戶機(jī)506訪問(wèn)服務(wù)。然而,受許可的客戶機(jī)506可能試圖使用服務(wù)器上不成比例的資源量。我們使用公平排隊(duì)技術(shù)來(lái)確保受許可的客戶機(jī)506將不能夠消耗服務(wù)器上不成比例的資源量。我們?cè)诙丝陔[藏過(guò)濾器之上直接添加公平排隊(duì)過(guò)濾器,也就是說(shuō),來(lái)到該過(guò)濾器的所有分組均具有其上的正確端口號(hào)。公平排隊(duì)確保只要客戶機(jī)的分組到達(dá)速率小于容許分組速率或公平分組速率,丟棄客戶機(jī)的分組的概率就為零。因此,僅丟棄來(lái)自試圖使用大于其公平份額的客戶機(jī)的分組。不丟棄來(lái)自誠(chéng)實(shí)客戶機(jī)的業(yè)務(wù)尤其重要,因?yàn)檎\(chéng)實(shí)客戶機(jī)使用TCP,并且被丟棄的分組可能導(dǎo)致TCP減小其窗口大小并因此影響其吞吐量。另一方面,對(duì)手可能冒充TCP分組(比方說(shuō)使用原始套接字);因此,被丟棄的分組對(duì)對(duì)手的影響不會(huì)像它對(duì)誠(chéng)實(shí)客戶機(jī)的影響那么大。
我們現(xiàn)在討論對(duì)端口隱藏的實(shí)現(xiàn)。參照?qǐng)D6,其示出了端口隱藏過(guò)程600??蛻魴C(jī)HTTP層602向客戶機(jī)IP層604發(fā)送JavaSript,客戶機(jī)IP層604向防火墻網(wǎng)絡(luò)過(guò)濾器606發(fā)送hide_port消息。網(wǎng)絡(luò)過(guò)濾器606然后將dest_port轉(zhuǎn)發(fā)至防火墻的HTTP層608。
我們的實(shí)施方案操作于客戶機(jī)和服務(wù)器二者之上??蛻舳藢?shí)施方案使用置入大多數(shù)Web瀏覽器的通用功能性,并且因而不需要任何附加的軟件安裝。服務(wù)器端實(shí)施方案包括可裝載的內(nèi)核模塊,其對(duì)Linux內(nèi)核中的IP層分組處理進(jìn)行修改。
客戶端上的端口隱藏完全使用在標(biāo)準(zhǔn)Web瀏覽器中可獲得的標(biāo)準(zhǔn)JavaSript支持來(lái)實(shí)現(xiàn),并且不需要對(duì)基礎(chǔ)內(nèi)核進(jìn)行任何改變。實(shí)際上,目的端口號(hào)似乎是基礎(chǔ)TCP分組中可以被使用Web瀏覽器直接處理的唯一字段。
參照?qǐng)D7,在步驟702中,我們使用簡(jiǎn)單的JavaScripts將請(qǐng)求重定向到protocol://domain:hide_port/path_name而不是protocal://domain/path_name(通常,在給定協(xié)議的情況下,端口號(hào)是隱含的例如,HTTP使用端口80)。通過(guò)在客戶瀏覽器上將其存儲(chǔ)為標(biāo)準(zhǔn)HTTP網(wǎng)絡(luò)跟蹤器而使得端口密鑰對(duì)JavaScript可用。我們使用用于MAC(消息驗(yàn)證代碼)計(jì)算的JavaScript方法在客戶端由dest_port計(jì)算hide_port。下面我們討論對(duì)客戶機(jī)與服務(wù)器之間的初始時(shí)鐘偏移和時(shí)鐘漂移進(jìn)行處理的技術(shù)。使用JavaScripts使得該方法不依賴于基礎(chǔ)OS;另外,JavaScripts作為大多數(shù)Web瀏覽器(Microsoft IE、Mozilla FireFox)的一部分可用。
端口隱藏的服務(wù)器端實(shí)施方案工作如下。服務(wù)器上的端口隱藏過(guò)濾器操作于內(nèi)核中的IP層。在步驟704中,服務(wù)器內(nèi)核在IP層截獲分組。在步驟706和708中,服務(wù)器端過(guò)濾器使用(網(wǎng)絡(luò)地址轉(zhuǎn)換)NAT端口轉(zhuǎn)發(fā)將請(qǐng)求從hide_port轉(zhuǎn)發(fā)至dest_port。注意到,客戶機(jī)的TCP層認(rèn)為其被連接到服務(wù)器上的hide_port。因此,在所有的服務(wù)器響應(yīng)中,我們將源端口從dest_port替換為hide_port,以便使客戶機(jī)認(rèn)為分組出現(xiàn)自hide_port。在我們改變分組的源或目的端口時(shí),我們還適當(dāng)?shù)馗淖僒CP校驗(yàn)和。注意到,更新TCP校驗(yàn)和并不需要我們掃描整個(gè)分組。我們可以使用舊的校驗(yàn)和、dest_port和hide_port,用簡(jiǎn)單的16比特整數(shù)運(yùn)算計(jì)算出新的校驗(yàn)和。我們使用網(wǎng)絡(luò)過(guò)濾器來(lái)實(shí)現(xiàn)這些IP層過(guò)濾器,網(wǎng)絡(luò)過(guò)濾器是Linux內(nèi)核內(nèi)部啟用分組過(guò)濾、網(wǎng)絡(luò)地址轉(zhuǎn)換和其它的分組拆分的框架。
參照?qǐng)D8,在步驟802中,服務(wù)器上的應(yīng)用產(chǎn)生對(duì)服務(wù)的請(qǐng)求的響應(yīng)。在步驟804中,防火墻用hide_port替換dest_port并對(duì)校驗(yàn)和進(jìn)行更新。然后在步驟806中,客戶瀏覽器呈現(xiàn)所接收的HTML頁(yè)面。
另外,我們需要由服務(wù)器進(jìn)行服務(wù)的每一Web頁(yè)面均包括對(duì)在客戶端實(shí)現(xiàn)端口隱藏的JavaScript的調(diào)用。一個(gè)選項(xiàng)會(huì)是改變所有的靜態(tài)Web頁(yè)面以及產(chǎn)生了動(dòng)態(tài)Web頁(yè)面的腳本,以便嵌入對(duì)端口隱藏JavaScript的調(diào)用。然而,我們認(rèn)為這樣的實(shí)現(xiàn)將是不可行的。我們動(dòng)態(tài)地修改HTTP響應(yīng),以便使用服務(wù)器端包括(SSI)在Web服務(wù)器中插入對(duì)JavaScripts的調(diào)用。SSI準(zhǔn)許我們高效率地向由Web服務(wù)器產(chǎn)生的實(shí)際HTTP響應(yīng)注入小的附加物。
按照下面的方式我們?nèi)菰S客戶機(jī)與服務(wù)器之間的時(shí)鐘偏移和時(shí)鐘漂移。首先,當(dāng)客戶機(jī)聯(lián)系詢問(wèn)服務(wù)器以獲得端口密鑰時(shí),我們計(jì)算客戶機(jī)時(shí)鐘與服務(wù)器時(shí)鐘之間的初始時(shí)間差。我們將這一初始時(shí)鐘偏移作為網(wǎng)絡(luò)跟蹤器包括在含有客戶機(jī)的端口密鑰的HTTP響應(yīng)中。周期性更新驗(yàn)證代碼的客戶端JavaScript使用初始時(shí)鐘偏移來(lái)同步客戶機(jī)本地時(shí)間與服務(wù)器的時(shí)間。假設(shè)時(shí)鐘漂移小到可以忽略,說(shuō)明初始時(shí)鐘偏移是足夠的。
另外,可以按照下面的方式容許少量的時(shí)鐘漂移。服務(wù)器可以在每次向客戶機(jī)發(fā)送HTTP響應(yīng)時(shí)更新時(shí)鐘偏移網(wǎng)絡(luò)跟蹤器。假設(shè)客戶機(jī)與服務(wù)器之間的時(shí)鐘漂移并未在來(lái)自客戶機(jī)的兩個(gè)連續(xù)HTTP響應(yīng)之間顯著增長(zhǎng),客戶機(jī)將能夠計(jì)算出正確的驗(yàn)證代碼。然而,如果客戶機(jī)在連續(xù)的HTTP請(qǐng)求之間的思考時(shí)間非常大,那么客戶機(jī)的時(shí)鐘漂移會(huì)有可能大于容許等級(jí)。甚至在這種情況下,發(fā)送具有不正確的驗(yàn)證頭(目的端口號(hào))的IP分組的客戶機(jī)會(huì)被自動(dòng)地重定向到詢問(wèn)服務(wù)器。在解答詢問(wèn)時(shí),詢問(wèn)服務(wù)器會(huì)更新含有客戶機(jī)與服務(wù)器之間的時(shí)鐘偏移的網(wǎng)絡(luò)跟蹤器。
我們現(xiàn)在討論對(duì)我們的詢問(wèn)服務(wù)器的設(shè)計(jì)。圖9和圖10示出了詢問(wèn)服務(wù)器的詳細(xì)控制流。參照?qǐng)D9,在步驟902中,客戶機(jī)開(kāi)啟到dest_port的TCP連接。然后在步驟904中,防火墻在IP層截獲分組。在步驟906中,防火墻由hide_port得出dest_port并檢查dest_port的有效性。在步驟908中,如果確認(rèn)失敗,則防火墻使用原始套接字來(lái)模仿TCP并向客戶機(jī)發(fā)送詢問(wèn)(而不開(kāi)啟TCP連接)。
參照?qǐng)D10,在步驟1002中,客戶瀏覽器使用JavaScript/Java小應(yīng)用程序來(lái)解答詢問(wèn)。在步驟1004中,防火墻在IP層截獲分組。在步驟1006中,檢查詢問(wèn)解答的有效性。在步驟1008中,如果有效,則防火墻向客戶機(jī)發(fā)送其嵌于HTTP網(wǎng)絡(luò)跟蹤器中的端口密鑰。
詢問(wèn)服務(wù)器促進(jìn)了向客戶機(jī)的客戶透明端口密鑰傳送。這是通過(guò)確保網(wǎng)站的URL訪問(wèn)詢問(wèn)服務(wù)器來(lái)實(shí)現(xiàn)的。換句話說(shuō),在URL的域名上的DNS(域名服務(wù))查找將返回詢問(wèn)服務(wù)器的IP地址。因此,客戶機(jī)對(duì)網(wǎng)站的第一訪問(wèn)被自動(dòng)指向詢問(wèn)服務(wù)器。另外,當(dāng)客戶機(jī)發(fā)送具有不正確的端口號(hào)的分組時(shí),其被重定向到詢問(wèn)服務(wù)器。這是確保經(jīng)歷大的時(shí)鐘漂移的客戶機(jī)能夠繼續(xù)訪問(wèn)Web服務(wù)器所需要的。
詢問(wèn)服務(wù)器將密碼詢問(wèn)隨解答詢問(wèn)的JavaScript一起發(fā)送給客戶機(jī)??蛻舳藶g覽器可以使用該JavaSciprt來(lái)解答詢問(wèn)。注意到,進(jìn)行客戶端計(jì)算可以顯著抑制DoS攻擊者。我們已經(jīng)實(shí)現(xiàn)了自適應(yīng)詢問(wèn)算法,其類似于上面所描述的算法。在正確解答了詢問(wèn)時(shí),詢問(wèn)服務(wù)器508向客戶端瀏覽器發(fā)送作為標(biāo)準(zhǔn)HTTP網(wǎng)絡(luò)跟蹤器的端口密鑰和初始時(shí)鐘偏移。進(jìn)一步地,詢問(wèn)服務(wù)器508使用HTTP重定向自動(dòng)將客戶機(jī)重定向到Web服務(wù)器。在服務(wù)器端防火墻檢驗(yàn)IP分組上的驗(yàn)證代碼(目的端口號(hào))之后,其將來(lái)自客戶機(jī)的所有進(jìn)一步的請(qǐng)求轉(zhuǎn)發(fā)至Web服務(wù)器。
注意到,詢問(wèn)服務(wù)器不能夠使用端口隱藏而受到保護(hù)。因此,我們需要確保很難在詢問(wèn)服務(wù)器上發(fā)起DoS攻擊。出于此目的,我們?cè)谶@樣的原始套接字上運(yùn)行詢問(wèn)服務(wù)器,即該原始套接字使用無(wú)狀態(tài)TCP/IP服務(wù)器方法來(lái)部分地模仿TCP連接。這使得我們的詢問(wèn)服務(wù)器對(duì)試圖耗盡Web服務(wù)器上開(kāi)啟的TCP連接數(shù)的、諸如SYN洪流和SYN+ACK洪流的TCP級(jí)攻擊具有復(fù)原能力。
詢問(wèn)服務(wù)器的客戶端實(shí)現(xiàn)使用Java小應(yīng)用程序,而服務(wù)器上的詢問(wèn)產(chǎn)生器和解答驗(yàn)證器使用C來(lái)實(shí)現(xiàn)。盡管使用Java小應(yīng)用程序?qū)Υ蠖鄶?shù)客戶端瀏覽器(使用Java VM的標(biāo)準(zhǔn)瀏覽器插件)來(lái)說(shuō)是透明的,其對(duì)自動(dòng)的客戶端腳本來(lái)說(shuō)可能不是透明的。然而,客戶端腳本可以使用其自身的機(jī)制來(lái)解答詢問(wèn),而不必依賴Java小應(yīng)用程序框架。
到目前為止我們假設(shè)一個(gè)客戶機(jī)IP地址對(duì)應(yīng)于一個(gè)客戶機(jī)。然而,當(dāng)多個(gè)客戶機(jī)位于客戶端代理后面時(shí),這樣的假設(shè)可能并不成立。在這種情況下,幾個(gè)客戶機(jī)會(huì)共享相同的IP地址。處理這樣的客戶機(jī)的關(guān)鍵問(wèn)題如下(i)我們的驗(yàn)證頭是客戶機(jī)IP地址的函數(shù),客戶機(jī)IP地址在這種情況下指的會(huì)是代理的IP地址。因此,我們的公平排隊(duì)過(guò)濾器將不能夠區(qū)分來(lái)自代理后面的不同客戶機(jī)的請(qǐng)求;以及(ii)防火墻后面的客戶瀏覽器可能不知道計(jì)算hide_port必需的、代理的IP地址。注意到,使用客戶機(jī)的專用IP地址會(huì)導(dǎo)致無(wú)效的hide_port。
對(duì)客戶端IP網(wǎng)絡(luò)地址轉(zhuǎn)換器(NAT)的進(jìn)一步觀察顯示,客戶端代理使用端口地址轉(zhuǎn)換(PAT)以在相同的IP地址上多路復(fù)用多個(gè)客戶機(jī)。PAT是通過(guò)用代理的公共IP地址和唯一識(shí)別的源端口號(hào)來(lái)代替客戶機(jī)的專用IP地址和原始源端口號(hào)來(lái)工作的。當(dāng)分組從因特網(wǎng)回到代理時(shí),代理使用唯一的目的端口號(hào)(在響應(yīng)中,分組源端口和目的端口可能已被交換)來(lái)確定客戶機(jī)的專用IP地址和端口號(hào)。
我們按照K=HSK(t)(CIP,CPN)來(lái)修改每客戶密鑰產(chǎn)生,以便包括客戶機(jī)的IP地址和端口號(hào),其中,CIP表示代理的IP地址,并且CPN指的是如代理所分派的、客戶機(jī)的已轉(zhuǎn)換的端口號(hào)。客戶機(jī)使用密鑰K來(lái)從dest_port得出hide_port。注意到,對(duì)于具有公共IP地址的客戶機(jī),CIP指的會(huì)是客戶機(jī)的IP地址,并且CPN指的會(huì)是其實(shí)際的端口號(hào)。
雖然以上解決方案準(zhǔn)許代理后面的客戶機(jī)操作,但其卻揭開(kāi)了令人感興趣的問(wèn)題。其準(zhǔn)許一個(gè)懷有惡意的客戶機(jī)偽裝成好像在其防火墻后面有幾個(gè)客戶機(jī)。注意到,我們的公平排隊(duì)過(guò)濾器在所有的客戶機(jī)中均勻地劃分服務(wù)器資源。然而,如果一個(gè)懷有惡意的客戶機(jī)準(zhǔn)備偽裝成100個(gè)客戶機(jī),那么其會(huì)得到100倍的其服務(wù)器資源的公平份額。然而,偽裝成代理后面的多個(gè)客戶機(jī)的惡意節(jié)點(diǎn)必須在詢問(wèn)服務(wù)器上付出沉重的代價(jià)。回想我們使用計(jì)算密集的詢問(wèn)響應(yīng)協(xié)議來(lái)初始化客戶密鑰。偽裝成100個(gè)不同客戶機(jī)的懷有惡意的客戶機(jī)將不得不解答100個(gè)詢問(wèn)以獲得與那100個(gè)虛構(gòu)的客戶機(jī)關(guān)聯(lián)的客戶密鑰。這將大大阻礙了懷有惡意的客戶機(jī)模擬代理后面的幾個(gè)虛構(gòu)的客尸機(jī)。
現(xiàn)在討論對(duì)我們的基本端口隱藏設(shè)計(jì)的定性分析。然后我們基于該定性分析對(duì)我們的基本設(shè)計(jì)進(jìn)行改良,以便達(dá)到我們最終的設(shè)計(jì)。
由于我們的驗(yàn)證代碼的大小被限制為N=16比特,懷有惡意的客戶機(jī)可能能夠以不小的概率發(fā)現(xiàn)對(duì)應(yīng)于其IP地址的目的端口。假設(shè)理想的偽隨機(jī)函數(shù)(PRF)H,對(duì)懷有惡意的客戶機(jī)來(lái)說(shuō),所有可能的N比特的整數(shù)似乎都是候選hide_port。對(duì)于任何非交互式的對(duì)抗算法,用大于2-N的概率猜測(cè)正確的hide_port在計(jì)算上是不可行的。
因此,懷有惡意的客戶機(jī)被迫使用交互式對(duì)抗算法來(lái)猜測(cè)hide_port的值。懷有惡意的客戶機(jī)可以選擇隨機(jī)的N比特的整數(shù)rand_port作為目的端口號(hào)??蛻魴C(jī)可以構(gòu)造具有目的端口rand_port的TCP分組,并且將該分組發(fā)送到Web服務(wù)器。如果客戶機(jī)具有獲知該分組被過(guò)濾器接受的一些手段,那么該客戶機(jī)具有有效的hide_port=rand_port。應(yīng)當(dāng)注意,即使懷有惡意的客戶機(jī)成功地猜到hide_port的值,hide_port的該值也僅對(duì)當(dāng)前的時(shí)間段有效。在該時(shí)間段結(jié)束時(shí),懷有惡意的客戶機(jī)必須再度嘗試猜測(cè)hide_port的新值。另外觀察到,使用對(duì)一個(gè)時(shí)期有效的hide_port值并不為試圖猜測(cè)下一時(shí)期的hide_port值的、懷有惡意的客戶機(jī)帶來(lái)任何好處。
假設(shè)客戶機(jī)不能夠直接觀察服務(wù)器,客戶機(jī)獲知分組是否被防火墻接受的唯一方法是希望Web服務(wù)器對(duì)其分組進(jìn)行響應(yīng)。發(fā)送隨機(jī)的TCP分組不會(huì)有所幫助,因?yàn)閃eb服務(wù)器的TCP層將在缺乏有效連接時(shí)丟棄分組。因此,懷有惡意的客戶機(jī)必須發(fā)送具有其對(duì)hide_port的猜測(cè)的TCPSYN分組。如果Web服務(wù)器用TCP SYN-ACK分組進(jìn)行響應(yīng),那么客戶機(jī)具有有效的hide_port。
注意到,由于所有的N比特的整數(shù)似乎都像是同樣有可能的有效hide_port,因此懷有惡意的客戶機(jī)除了選擇一些隨機(jī)枚舉之外,不具有任何智能策略來(lái)枚舉端口號(hào)空間。顯然,隨機(jī)選擇的hide_port具有連著的2N個(gè)機(jī)會(huì)中的1個(gè),由此將對(duì)手的實(shí)力降低了極大的數(shù)量級(jí)。在密碼學(xué)上,在65,536(N=16)中一個(gè)的概率并不被認(rèn)為是特別小的;然而,我們的技術(shù)能夠控制對(duì)手可以侵入我們的系統(tǒng)的速率。觀察到,懷有惡意的客戶機(jī)有可能會(huì)推斷出有效的hide_port的唯一方法是通過(guò)用多個(gè)SYN分組來(lái)探查服務(wù)器并且希望從Web服務(wù)器接收到SYN-ACK分組?,F(xiàn)在,如果服務(wù)器每單位時(shí)間從客戶機(jī)接收到的具有不正確的目的端口的SYN分組數(shù)多于閾值r,則其可以將客戶機(jī)標(biāo)記為懷有惡意。注意到,可以使用我們的公平排隊(duì)過(guò)濾器來(lái)對(duì)每客戶機(jī)SYN分組數(shù)進(jìn)行速率限制。
然而,以上所描述的技術(shù)是有缺點(diǎn)的。讓我們?cè)O(shè)想懷有惡意的客戶機(jī)知道某合法客戶機(jī)C的IP地址。在將分組的源IP地址假冒為CIP的情況下,懷有惡意的客戶機(jī)可以用每單位時(shí)間多于r個(gè)的SYN分組對(duì)Web服務(wù)器造成洪流(用隨機(jī)選擇的目的端口號(hào)),其中,CIP是客戶機(jī)C的IP地址?,F(xiàn)在,防火墻會(huì)將具有IP地址CIP的客戶機(jī)標(biāo)記為懷有惡意。因此,將來(lái)從該合法客戶機(jī)C發(fā)送的所有分組都可能被防火墻丟棄。
按照下面的方式使用SYN網(wǎng)絡(luò)跟蹤器可以防止以上所描述的問(wèn)題。Web服務(wù)器現(xiàn)在用SYN-ACK分組對(duì)所有的SYN分組進(jìn)行響應(yīng)(無(wú)論它們是否與目的端口號(hào)匹配)。Web服務(wù)器在TCP序號(hào)字段中對(duì)在密碼上可檢驗(yàn)的網(wǎng)絡(luò)跟蹤器進(jìn)行編碼。當(dāng)客戶機(jī)發(fā)送TCP ACK分組時(shí),服務(wù)器在開(kāi)啟到該客戶機(jī)的TCP連接之前檢驗(yàn)嵌于TCP序號(hào)字段中的網(wǎng)絡(luò)跟蹤器。另外,防火墻為TCP SYN分組以外的所有分組檢查目的端口號(hào)。如果懷有惡意的客戶機(jī)準(zhǔn)備在TCP SYN分組中假冒其源IP地址,那么在IP地址CIP不受對(duì)手控制的情況下,其將不能夠發(fā)送具有匹配網(wǎng)絡(luò)跟蹤器(序號(hào))的TCP ACK分組。回想我們的威肋模型假設(shè)對(duì)手將不能夠觀察或破壞發(fā)送到不受對(duì)手控制的IP地址的任何分組。因此,使用SYN網(wǎng)絡(luò)跟蹤器排除了含有不受對(duì)手控制的假冒源地址的所有ACK分組?,F(xiàn)在,Web服務(wù)器將限制每單位時(shí)間ACK分組數(shù),而不是限制每單位時(shí)間SYN分組數(shù)。顯然,修改后的技術(shù)確保了對(duì)手不能夠迫使防火墻丟棄發(fā)送自合法客戶機(jī)C的分組。
然而,對(duì)手可能仍然用無(wú)限數(shù)目的SYN分組對(duì)Web服務(wù)器造成洪流。協(xié)議希望Web服務(wù)器用SYN-ACK分組對(duì)所有的SYN分組進(jìn)行響應(yīng),而不論SYN分組是否與嵌于目的端口號(hào)字段中的驗(yàn)證代碼匹配。通過(guò)將接受自客戶機(jī)的SYN分組數(shù)的上界設(shè)置在每單位時(shí)間至多r個(gè)SYN分組,可以緩和這一問(wèn)題。使用有限的r準(zhǔn)許對(duì)手迫使Web服務(wù)器丟棄來(lái)自于合法客戶機(jī)的分組。例如,懷有惡意的客戶機(jī)可以用CIP假冒源IP地址,并且每單位時(shí)間發(fā)送多于r個(gè)SYN分組。顯然,隨著r的增加,對(duì)手這樣做的代價(jià)變得越大。然而,隨著r的增加,壞客戶機(jī)將能夠用更多的SYN分組對(duì)Web服務(wù)器造成洪流。允許每單位時(shí)間更多的SYN分組準(zhǔn)許壞客戶機(jī)猜測(cè)其正確的hide_port。因此,Web服務(wù)器必須仔細(xì)選擇參數(shù)r。
因此,雖然已經(jīng)描述了目前被認(rèn)為是優(yōu)選實(shí)施例的內(nèi)容,但是本領(lǐng)域技術(shù)人員將會(huì)理解,可以在本發(fā)明的精神范圍內(nèi)進(jìn)行其它的修改。
權(quán)利要求
1.一種用于在客戶機(jī)-服務(wù)器系統(tǒng)中處理多個(gè)請(qǐng)求的方法,所述方法包括以下步驟接收來(lái)自客戶機(jī)的至少一個(gè)請(qǐng)求;以及基于所述至少一個(gè)請(qǐng)求,分派或修改所述客戶機(jī)的信任等級(jí)。
2.根據(jù)權(quán)利要求1的方法,其進(jìn)一步包括為所述至少一個(gè)請(qǐng)求計(jì)算信任等級(jí)分?jǐn)?shù),其中,所述分?jǐn)?shù)基于所述服務(wù)器在處理所述請(qǐng)求時(shí)所花費(fèi)的資源量。
3.根據(jù)權(quán)利要求2的方法,其進(jìn)一步包括基于隨后的請(qǐng)求修改提供給所述客戶機(jī)的所述信任等級(jí)分?jǐn)?shù)。
4.根據(jù)權(quán)利要求2的方法,其中,較高的信任等級(jí)分?jǐn)?shù)由消耗較少系統(tǒng)資源的請(qǐng)求獲得。
5.根據(jù)權(quán)利要求2的方法,其中,低信任等級(jí)分?jǐn)?shù)限制了具有低分?jǐn)?shù)的客戶機(jī)每單位時(shí)間可以發(fā)布的請(qǐng)求數(shù)。
6.根據(jù)權(quán)利要求2的方法,其中,所述信任等級(jí)分?jǐn)?shù)嵌于要發(fā)送到所述客戶機(jī)的信任網(wǎng)絡(luò)跟蹤器中。
7.根據(jù)權(quán)利要求6的方法,其中,所述信任網(wǎng)絡(luò)跟蹤器包括所述客戶機(jī)IP地址、所述服務(wù)器IP地址、所述信任網(wǎng)絡(luò)跟蹤器被發(fā)布的時(shí)間,以及所述信任等級(jí)分?jǐn)?shù)。
8.根據(jù)權(quán)利要求7的方法,其中,所述信任網(wǎng)絡(luò)跟蹤器進(jìn)一步包括表示標(biāo)記的標(biāo)志。
9.根據(jù)權(quán)利要求7的方法,其中,所述網(wǎng)絡(luò)跟蹤器進(jìn)一步包括保密密鑰。
10.根據(jù)權(quán)利要求9的方法,其中,所述網(wǎng)絡(luò)跟蹤器進(jìn)一步包括對(duì)稱密鑰加密算法。
11.一種信息處理系統(tǒng),所述系統(tǒng)包括應(yīng)用服務(wù)器;耦合于所述應(yīng)用服務(wù)器的服務(wù)器內(nèi)核,所述應(yīng)用服務(wù)器包括與至少一個(gè)客戶機(jī)的接口;以及詢問(wèn)服務(wù)器,所述詢問(wèn)服務(wù)器具有用于與客戶機(jī)通信的接口,所述接口向所述客戶機(jī)發(fā)布詢問(wèn),并且響應(yīng)于對(duì)所述詢問(wèn)的可接受的解答,發(fā)布信任網(wǎng)絡(luò)跟蹤器。
12.根據(jù)權(quán)利要求11的系統(tǒng),其中,所述應(yīng)用服務(wù)器基于客戶機(jī)請(qǐng)求更新所述信任網(wǎng)絡(luò)跟蹤器。
13.根據(jù)權(quán)利要求11的系統(tǒng),其中,較高的信任等級(jí)分?jǐn)?shù)由消耗較少系統(tǒng)資源的服務(wù)請(qǐng)求獲得。
14.一種在包括客戶機(jī)和服務(wù)器的系統(tǒng)中防御拒絕服務(wù)攻擊的方法,所述方法包括以下步驟通過(guò)在應(yīng)用級(jí)對(duì)至少一個(gè)消息進(jìn)行處理,嵌入所述至少一個(gè)消息的驗(yàn)證信息;將所述至少一個(gè)消息發(fā)送到所述服務(wù)器;在所述服務(wù)器上的網(wǎng)絡(luò)級(jí)檢查消息的驗(yàn)證信息;以及拒絕具有無(wú)效驗(yàn)證信息的至少一個(gè)消息。
15.根據(jù)權(quán)利要求14的方法,其中,所述驗(yàn)證信息嵌于TCP分組的端口號(hào)字段中。
16.根據(jù)權(quán)利要求15的方法,其中,所述驗(yàn)證信息包括十六比特。
17.根據(jù)權(quán)利要求16的方法,其中,使用Java Scripts嵌入所述信息。
18.一種將驗(yàn)證信息嵌入消息的方法,所述方法包括以下步驟基于所述消息或者與所述消息關(guān)聯(lián)的信息,在應(yīng)用級(jí)計(jì)算所述消息的驗(yàn)證信息,以及改變至少一個(gè)端口號(hào),以便嵌入所述驗(yàn)證信息。
19.一種將驗(yàn)證信息嵌入消息的方法,所述方法包括以下步驟基于與所述消息關(guān)聯(lián)的信息,計(jì)算所述消息的驗(yàn)證信息,以及改變所述消息主體,以便嵌入將要由所述消息的接收機(jī)在網(wǎng)絡(luò)級(jí)進(jìn)行檢查的所述驗(yàn)證信息。
20.一種驗(yàn)證消息的方法,所述方法包括以下步驟在應(yīng)用級(jí)將驗(yàn)證信息嵌入消息;從計(jì)算機(jī)下載程序代碼用于發(fā)送所述消息;運(yùn)行所述程序代碼以便向服務(wù)器發(fā)送所述消息;以及由所述服務(wù)器在網(wǎng)絡(luò)級(jí)檢查所述消息。
21.一種用于防御拒絕服務(wù)攻擊的系統(tǒng),所述系統(tǒng)包括應(yīng)用服務(wù)器;防火墻,所述防火墻被置于所述應(yīng)用服務(wù)器與客戶機(jī)之間;以及詢問(wèn)服務(wù)器,所述詢問(wèn)服務(wù)器用于通過(guò)在應(yīng)用級(jí)對(duì)至少一個(gè)消息進(jìn)行處理,嵌入所述至少一個(gè)消息的驗(yàn)證信息。
22.根據(jù)權(quán)利要求21的系統(tǒng),其中,響應(yīng)于從客戶機(jī)接收的、可接受的解答,所述詢問(wèn)服務(wù)器嵌入所述驗(yàn)證信息。
23.根據(jù)權(quán)利要求21的系統(tǒng),其中,所述詢問(wèn)服務(wù)器使用基于密碼詢問(wèn)的抵御機(jī)制來(lái)保護(hù)所述詢問(wèn)服務(wù)器。
24.根據(jù)權(quán)利要求21的系統(tǒng),其中,修改所述防火墻以便在輸入的TCP/IP分組上進(jìn)行兩種操作(i)基于目標(biāo)端口號(hào)過(guò)濾分組,以及(ii)使用概率公平排隊(duì)來(lái)限制客戶機(jī)發(fā)送分組的速率。
25.根據(jù)權(quán)利要求21的系統(tǒng),其中,所述防火墻將合法的輸入分組上的目的端口號(hào)修改為應(yīng)用的真實(shí)端口號(hào)。
26.根據(jù)權(quán)利要求21的系統(tǒng),其中,所述詢問(wèn)服務(wù)器向各客戶機(jī)發(fā)布端口密鑰,并且所述客戶機(jī)只有在其知道其端口密鑰的情況下才可以生成用于所述防火墻的、正確的驗(yàn)證代碼。
27.根據(jù)權(quán)利要求19的方法,其進(jìn)一步包括改變所述消息主體,以便以這樣的方式嵌入能夠免于分組分段的所述驗(yàn)證信息,即在所述方式下,所述驗(yàn)證信息仍可由接收機(jī)在網(wǎng)絡(luò)級(jí)進(jìn)行檢驗(yàn)。
28.一種用于在包括客戶機(jī)和服務(wù)器的系統(tǒng)中分配服務(wù)器資源的方法,所述方法包括以下步驟檢查來(lái)自客戶機(jī)的至少一個(gè)請(qǐng)求,以便確定所述客戶機(jī)正在設(shè)法消耗不必要的服務(wù)器資源的概率;以及基于所述概率向所述客戶機(jī)分派服務(wù)等級(jí)。
29.根據(jù)權(quán)利要求28的方法,其進(jìn)一步包括以下步驟確定由所述客戶機(jī)所做出的請(qǐng)求對(duì)所述服務(wù)器產(chǎn)生的收益;以及基于對(duì)所述服務(wù)器的所述收益,改變與所述客戶機(jī)關(guān)聯(lián)的服務(wù)等級(jí)。
30.根據(jù)權(quán)利要求28的方法,其進(jìn)一步包括步驟限制具有低服務(wù)等級(jí)的客戶機(jī)可訪問(wèn)的服務(wù)器資源。
31.根據(jù)權(quán)利要求1的方法,其進(jìn)一步包括以下步驟確定由所述客戶機(jī)所做出的請(qǐng)求對(duì)所述服務(wù)器產(chǎn)生的收益;以及基于對(duì)所述服務(wù)器的所述收益,改變與所述客戶機(jī)關(guān)聯(lián)的服務(wù)等級(jí)。
32.根據(jù)權(quán)利要求1的方法,其進(jìn)一步包括步驟限制具有低服務(wù)等級(jí)的客戶機(jī)可訪問(wèn)的服務(wù)器資源。
全文摘要
根據(jù)本發(fā)明的實(shí)施例,一種用于在客戶機(jī)-服務(wù)器系統(tǒng)中處理多個(gè)服務(wù)請(qǐng)求的方法,所述方法包括這樣的服務(wù)器步驟從客戶機(jī)接收對(duì)服務(wù)的至少一個(gè)請(qǐng)求,以及基于所述至少一個(gè)請(qǐng)求中所提供的信任等級(jí)提供服務(wù)等級(jí)。根據(jù)另一實(shí)施例,一種驗(yàn)證消息的方法包括以下步驟在應(yīng)用級(jí)將驗(yàn)證信息嵌入消息;從計(jì)算機(jī)下載腳本用于發(fā)送所述消息;運(yùn)行所述腳本以便向服務(wù)器發(fā)送所述消息;以及由所述服務(wù)器在網(wǎng)絡(luò)級(jí)對(duì)所述消息進(jìn)行檢查。
文檔編號(hào)H04L12/56GK101072106SQ20071010741
公開(kāi)日2007年11月14日 申請(qǐng)日期2007年5月10日 優(yōu)先權(quán)日2006年5月12日
發(fā)明者M·斯里瓦薩, A·K·延格爾, 殷鑒 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
崇左市| 广州市| 文化| 雷州市| 车险| 临城县| 夏河县| 合山市| 南华县| 封丘县| 平潭县| 田东县| 石棉县| 旬阳县| 青龙| 黔南| 旅游| 沙河市| 偏关县| 稷山县| 曲麻莱县| 昌黎县| 名山县| 南投县| 瑞金市| 沁水县| 屯昌县| 黑龙江省| 东宁县| 杂多县| 承德县| 墨玉县| 阿克| 阿荣旗| 乐都县| 增城市| 克山县| 克拉玛依市| 屏东市| 阜平县| 湘乡市|