用于防范DDos攻擊的系統(tǒng)的制作方法
【專利摘要】提出了一種使服務(wù)器能夠利用客戶端或者第三方資源的方法??蛻舳苏埱髷?shù)據(jù)包含關(guān)于客戶端的網(wǎng)絡(luò)位置的數(shù)據(jù)。服務(wù)器可以存儲每一個客戶端的該位置數(shù)據(jù)。在請求執(zhí)行之前或者之后,服務(wù)器確定該服務(wù)器是否處于或者接近過載情況。如果服務(wù)器沒有處于過載情況,那么不需要進一步改變。如果服務(wù)器處于或者接近過載情況,那么服務(wù)器從具有所有客戶端位置的數(shù)據(jù)庫中選擇網(wǎng)絡(luò)中的新位置。服務(wù)器將服務(wù)器函數(shù)的新實例分配給在該新位置上(或接近該新位置)的資源提供者。服務(wù)器可以從數(shù)據(jù)庫中選擇一個或多個客戶端。所選擇的客戶端被透明地重定向到減載的服務(wù)器函數(shù)。通過減載的服務(wù)器函數(shù)處理來自客戶端的后續(xù)請求。減載的服務(wù)器函數(shù)采用相同的功能,并且因此可以決定將服務(wù)器函數(shù)卸載到另一個網(wǎng)絡(luò)位置。
【專利說明】
用于防范DDos攻擊的系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及保護連接到網(wǎng)絡(luò)的設(shè)備免受經(jīng)由該網(wǎng)絡(luò)的攻擊的分布式拒絕服務(wù)攻 擊防御方法和設(shè)備、W及用于該方法的計算機程序。
【背景技術(shù)】
[0002] 當今,由于DDos攻擊,流行的網(wǎng)頁服務(wù)器會遭受嚴重的(雖然通常僅是暫時的)月良 務(wù)器過載。根據(jù)增加響應(yīng)時間或者甚至服務(wù)器不可用,服務(wù)器過載將引起網(wǎng)頁瀏覽性能降 低。對于強烈依賴網(wǎng)絡(luò)服務(wù)的公司或者機構(gòu),控制網(wǎng)絡(luò)服務(wù)器性能將是至關(guān)重要的。在客戶 端服務(wù)器應(yīng)用程序中,服務(wù)器處理來自客戶端的服務(wù)請求(例如,檢索網(wǎng)頁、發(fā)送命令到外 圍設(shè)備)。通常,通過諸如局域網(wǎng)、互聯(lián)網(wǎng)或者電信網(wǎng)絡(luò)的介質(zhì)處理客戶端和服務(wù)器通信。客 戶端服務(wù)器會話可W被限制為單個服務(wù)請求和響應(yīng),但也可W包括許多連續(xù)的請求和響 應(yīng)。所感知的服務(wù)質(zhì)量(例如,響應(yīng)時間候若干因素影響,諸如通信介質(zhì)中的吞吐量和延遲 W及服務(wù)器的計算容量。大量的同時請求會導(dǎo)致服務(wù)器的容量過載并且導(dǎo)致請求遲或者未 答復(fù)。在分布式拒絕服務(wù)(DDos)攻擊中,來自位于網(wǎng)絡(luò)中不同位置的大量的客戶端的請求 到達。
[0003] 在DDos攻擊的檢測策略中可W發(fā)現(xiàn)針對DDos攻擊的響應(yīng),并且針對其采取防范措 施??蒞通過在網(wǎng)絡(luò)服務(wù)前方的設(shè)備執(zhí)行DDos攻擊網(wǎng)絡(luò)流量檢查的檢測,該設(shè)備獲取網(wǎng)絡(luò) 流量數(shù)據(jù)包用于分析目的。在分析期間,網(wǎng)絡(luò)數(shù)據(jù)包的內(nèi)容(通常協(xié)議報頭)被提交給一組 規(guī)則或者簽名,該規(guī)則或者簽名定義該網(wǎng)絡(luò)數(shù)據(jù)包(W及來自同一網(wǎng)絡(luò)會話的相關(guān)流量)是 惡意網(wǎng)絡(luò)流量的概率?;谠撾A段的概率結(jié)果,部署采取另一個防范措施(例如,速率限制) W防止孤OS攻擊。
[0004] 另一個檢測方法是背散射流量分析。通過客戶端發(fā)送的DDos攻擊網(wǎng)絡(luò)流量通常利 用不正確的源網(wǎng)絡(luò)地址,(IP欺騙)其意味著該網(wǎng)絡(luò)流量包含另一個系統(tǒng)的源地址指針,該 源地址指針在互聯(lián)網(wǎng)上某處而不是在發(fā)送數(shù)據(jù)包的客戶端上。運種網(wǎng)絡(luò)流量會導(dǎo)致所謂的 背散射流量:受到攻擊的服務(wù)器將網(wǎng)絡(luò)流量發(fā)送到傳入網(wǎng)絡(luò)數(shù)據(jù)包的欺騙地址。所謂的網(wǎng) 絡(luò)望遠鏡(CAIDA),被特別設(shè)計為獲取背散射流量,并且通過網(wǎng)絡(luò)望遠鏡能夠檢測進行中的 DDos攻擊。例如,當應(yīng)用準入控制時,使用計算的模型,計算機服務(wù)器可W預(yù)測到達過載情 況的可能性,參見:。一旦發(fā)起新客戶端服務(wù)器會話,運些方法可W預(yù)測近期的預(yù)期的計算 的負載。當預(yù)期的計算的負載超過闊值:服務(wù)器的容量時,不允許新會話進入服務(wù)(參見阻 擋)。運種過載情況可W是進行中的DDos攻擊的指示,孤OS攻擊在同一時間可W觸發(fā)準入控 制程序作為計數(shù)器測量。
[0005] 進一步,已知的防范措施包括準入控制解決方案,其被稱為速率限制、節(jié)流或者阻 擋機制。速率限制開關(guān)、路由器或者服務(wù)器控制在網(wǎng)絡(luò)接口上傳輸或者接收流量的速率。丟 棄或者延遲超過特定速率限制的網(wǎng)絡(luò)流量。在DDos攻擊的情況下,速率限制設(shè)備可W用于 保護服務(wù)器防止變得過載,W及甚至崩潰。在同一時間,單單速率限制并不能防止服務(wù)變得 不能到達。
[0006] 在其最極端的形式下,速率限制或者節(jié)流等于阻擋(無限延遲)。有狀態(tài)防火墻是 網(wǎng)絡(luò)流量檢查的應(yīng)用程序。其中無狀態(tài)防火墻基于單獨的數(shù)據(jù)包的內(nèi)容檢查網(wǎng)絡(luò)流量,有 狀態(tài)防火墻在進行中的通信會話的背景下進行檢查。
[0007] 美國專利第7188366號公開了檢測在容納服務(wù)器的LAN的邊緣路由器中的攻擊數(shù) 據(jù)包的方法。該數(shù)據(jù)包隨后被破壞,檢索到了接近攻擊源的上游路由器的地址,并且將攻擊 源檢索模塊從邊緣路由器傳輸?shù)剿猩嫌温酚善?。當?shù)竭_了最上游處的路由器時,執(zhí)行保 護模塊W破壞攻擊數(shù)據(jù)包。當攻擊停止時,刪除保護模塊本身并且保護處理結(jié)束。
[0008] EP1612674關(guān)注處理對信息處理系統(tǒng)的訪問請求的方法。檢測了系統(tǒng)是否過載或 者將要過載。在運種情況下,檢測一種類型的訪問請求并且將其與一種類型的系統(tǒng)過載進 行比較。當超過指定類型的訪問控制參數(shù)的預(yù)定閥值水平時,不允許被認為促成過載情況 的訪問請求。然而,對于被提出不許可的地址請求,其沒有提供解決方案。
[0009] 與基于網(wǎng)絡(luò)流量過濾的現(xiàn)有技術(shù)相關(guān)聯(lián)的問題是,期望關(guān)于惡意網(wǎng)絡(luò)流量的內(nèi)容 的一些了解?;跈z查網(wǎng)絡(luò)流量的檢測機制會導(dǎo)致誤檢和未檢測到的DDos攻擊。運通過客 戶端服務(wù)器程序示出,客戶端服務(wù)器程序利用加密的或者模糊的網(wǎng)絡(luò)流量。檢查網(wǎng)絡(luò)流量 的網(wǎng)絡(luò)設(shè)備不能訪問加密的或模糊的數(shù)據(jù),并且因此不能推導(dǎo)通信的類型,并且不能判定 會話是合法的還是非法的。
【發(fā)明內(nèi)容】
[0010] 根據(jù)本申請的一個方面,提供了用于處理訪問請求的方法,借此在訪問請求的進 一步處理中考慮了各種資源的可用容量。因此,提供了用于處理服務(wù)器過載的方法,包括:
[0011] -通過服務(wù)器函數(shù)(SF)提供服務(wù)器應(yīng)用程序的一部分或者全部功能;所述服務(wù)器 函數(shù)(SF)包括一個或多個能夠減載(Offlodable)的服務(wù)器函數(shù)(OSF),能夠減載的服務(wù)器 函數(shù)提供服務(wù)器應(yīng)用程序的一部分或者全部功能,并且能夠加載在其他資源上;
[0012] -提供多個資源提供者(一個資源提供者),資源提供者能夠提供用于承載所述能 夠減載的服務(wù)器函數(shù)的資源;
[0013] -通過負載檢測函數(shù)(過載檢測函數(shù))檢測服務(wù)器負載,該負載檢測函數(shù)被構(gòu)建為 確定服務(wù)器函數(shù)是否處于或者接近過載情況;W及
[0014] -響應(yīng)于負載檢測函數(shù)檢測到過載情況,將所檢測的客戶端請求重定向到減載的 (offloaded)服務(wù)器函數(shù)。
[0015] 因此,提供了解決方案,用于響應(yīng)于服務(wù)請求的過載,將服務(wù)請求透明地上傳到在 客戶端或者第=方設(shè)備上的服務(wù)器軟件并且執(zhí)行該服務(wù)器軟件。通過在多個位置提供裝置 承載服務(wù)器功能,對于一組客戶端,可W緩和由DDos攻擊引起的過載情況。
[0016] 與現(xiàn)有技術(shù)相比,該解決方案的一個優(yōu)點是,不要求關(guān)于惡意網(wǎng)絡(luò)流量的內(nèi)容的 了解。因此,該解決方案可W是理想的零日(沒有看到之前)攻擊?;诰W(wǎng)絡(luò)流量過濾的當前 現(xiàn)有技術(shù)基于信息,該信息基于網(wǎng)絡(luò)層。由于DDos攻擊的緩解發(fā)生在應(yīng)用層(服務(wù)器函數(shù)被 復(fù)制成客戶端的方向),該解決方案更適合用于應(yīng)用層DDos攻擊的緩解。本發(fā)明提供了解決 方案用于響應(yīng)于服務(wù)請求的過載,將服務(wù)請求透明地上傳到在客戶端或者第=方設(shè)備上的 服務(wù)器軟件并且執(zhí)行該服務(wù)器軟件。
[0017] 在一個實施方式中,服務(wù)器進一步包括資源提供者查找函數(shù),W從所述資源提供 者中選擇資源。查找函數(shù)可W形成有效的方式,將客戶端請求重定向到可用資源提供者,而 不給系統(tǒng)資源帶來壓力。另外或可替換地,可W通過指示能選擇資源的客戶端請求通告提 供選擇。如果客戶端具有可用資源或者具有功能W檢測可用資源,那么可W是運種情況。運 可W用于最小服務(wù)器負載的優(yōu)點。
[0018] 在又一個實施方式中,反過來,減載的服務(wù)器函數(shù)可W包括一個或多個能夠減載 的服務(wù)器函數(shù)(OSF),0SF提供服務(wù)器應(yīng)用程序的一部分或者全部功能,并且可W在另一個 網(wǎng)絡(luò)位置的其他資源上加載0SF。運對于將資源轉(zhuǎn)移到另一個設(shè)備是方便的,其反過來可W 將功能轉(zhuǎn)發(fā)到位于網(wǎng)絡(luò)中合適位置的資源,運可能不被主服務(wù)器的查找函數(shù)得知。
[0019] 在又一個實施方式中,可W檢索到在上游接近攻擊源的通信設(shè)備的地址;并且可 W將減載的服務(wù)器函數(shù)傳輸?shù)皆谏嫌蔚姆烙恢玫馁Y源提供者。運具有最小化服務(wù)器負載 的優(yōu)點并且提供攻擊的傳染機制,其可W壓制(throttle)攻擊者。例如,資源提供者查找函 數(shù)可W包括攻擊源確定函數(shù),攻擊源確定函數(shù)能夠提取通信設(shè)備的地址,通信設(shè)備的地址 是由資源提供者查找函數(shù)檢索到的從接近攻擊源的上游通信設(shè)備的候選中選出作為上游 防御位置。
[0020] 在又一個實施方式中,多個資源對象包括物理資源和虛擬資源中的至少一種。
【附圖說明】
[0021] 圖1示出了根據(jù)本發(fā)明的實施方式的客戶端服務(wù)器交互的示意性配置;
[0022] 圖2示出了使用重定向到第=方資源的客戶端服務(wù)器交互的詳細實施方式;
[0023] 圖3示出了依賴于所檢測的服務(wù)器過載條件的行為的示意性流程;
[0024] 圖4示出了減載的服務(wù)器函數(shù)的上游重定向;
[0025] 圖5示出了使用重定向到本地資源的客戶端服務(wù)器交互的詳細實施方式。
【具體實施方式】
[0026] 提出了一種使服務(wù)器能夠利用客戶端或者第=方資源的方法??蛻舳苏埱髷?shù)據(jù)包 括關(guān)于客戶端的網(wǎng)絡(luò)位置的數(shù)據(jù)。服務(wù)器可W存儲每一個客戶端的該位置數(shù)據(jù)。在請求的 執(zhí)行之前或者之后,服務(wù)器判定該服務(wù)器是否處于或者接近過載情況。如果服務(wù)器沒有處 于過載情況,那么不需要進一步改變。如果服務(wù)器處于或者接近過載情況,那么服務(wù)器從具 有所有客戶端位置的數(shù)據(jù)庫中選擇網(wǎng)絡(luò)中的新位置。服務(wù)器將服務(wù)器函數(shù)的新實例分配給 在該位置上(或接近該位置)的資源提供者。服務(wù)器可W從數(shù)據(jù)庫中選擇一個或多個客戶 端。所選擇的客戶端被透明地重定向到減載的服務(wù)器函數(shù)。由減載的服務(wù)器函數(shù)處理來自 客戶端的后續(xù)請求。減載的服務(wù)器函數(shù)采用相同的功能,并且因此可W決定將服務(wù)器函數(shù) 卸載到另一個網(wǎng)絡(luò)位置。
[0027] 為執(zhí)行該方法,提供了所描述的功能的系統(tǒng)可W由W下功能部件組成。
[00%].服務(wù)器函數(shù)(SF)提供服務(wù)器應(yīng)用程序的(一部分)功能。服務(wù)器應(yīng)用程序可W包 含一個或多個不同的服務(wù)器函數(shù)。
[0029] ?減載的服務(wù)器函數(shù)(OSF)提供服務(wù)器的(一部分)功能,能夠減載的服務(wù)器函數(shù) 可W在其他資源上加載。
[0030] .資源提供者(資源提供者)是能夠提供用于承載減載的服務(wù)器函數(shù)的資源的第 =方或者客戶端設(shè)備。
[0031] ?過載檢測函數(shù)(過載檢測函數(shù))使用來自客戶端請求的信息和服務(wù)器函數(shù)的當 前資源消耗,W確定服務(wù)器函數(shù)是否處于或者接近過載情況。
[0032] 除非另外定義,否則如在描述和附圖的背景下閱讀,本文中使用的所有術(shù)語(包括 技術(shù)術(shù)語和科學(xué)術(shù)語)與本發(fā)明所屬領(lǐng)域內(nèi)的普通技術(shù)人員通常所理解的具有相同的含 義。將進一步理解,諸如在通常使用的詞典中定義的那些術(shù)語應(yīng)被解釋為具有與它們在相 關(guān)技術(shù)的背景下的含義一致的含義,并且將不W理想化的或者過于正式的意義解釋,除非 本文中明確如此定義。在一些實例中,可W省略公知設(shè)備和方法的詳細描述,W便不模糊本 系統(tǒng)和本方法的描述。術(shù)語"和/或"包括相關(guān)聯(lián)的所列項中的一個或多個的任何和所有組 合。將進一步理解,術(shù)語"包括(comprises)"和/或"包含(comprising)"指定所陳述的特征 的存在,但是不排除存在或者附加一個或多個其他特征。本文中提及的所有出版物、專利申 請、專利W及其他引用通過引用其全部內(nèi)容結(jié)合于此。如果沖突,本說明書,包括定義,將控 制。
[0033] 貫穿本申請,用于執(zhí)行所公開的方法的任何函數(shù),具體地,如W下進一步明確的: 服務(wù)器函數(shù)、減載的/能夠減載的服務(wù)器函數(shù)、負載檢測函數(shù)、資源提供者查找函數(shù)W及攻 擊源確定函數(shù),W硬件和/或軟件實現(xiàn)并且作為可由函數(shù)結(jié)構(gòu)識別,其在系統(tǒng)中執(zhí)行,即函 數(shù)在硬件和/或軟件中物理實現(xiàn)或者通過網(wǎng)絡(luò)傳輸信息結(jié)構(gòu)??蒞 W硬件或者軟件實現(xiàn)函 數(shù),W提供專用處理電路,專用處理電路處理從系統(tǒng)資源讀取的輸入數(shù)據(jù)。例如,服務(wù)器函 數(shù)可W由連接的物理網(wǎng)絡(luò)設(shè)備提供,但也可W被形成為在網(wǎng)絡(luò)中運行的虛擬設(shè)備,并且服 務(wù)器函數(shù)可W在硬件資源上實現(xiàn),硬件資源可W經(jīng)由網(wǎng)絡(luò)通信到達。可W由一個或多個處 理器執(zhí)行運些函數(shù),處理器被配置為根據(jù)本系統(tǒng)和本方法執(zhí)行操作行為,諸如向各種其他 模塊部件提供控制信號。處理器可W是用于根據(jù)本系統(tǒng)執(zhí)行的專用處理器,或者可W是通 用處理器,其中,僅運行許多函數(shù)中的一個用于根據(jù)本系統(tǒng)執(zhí)行。處理器可W利用程序部 分、多個程序段運行,或者可W是利用專用集成電路或者多功能集成電路的硬件設(shè)備??蒞 使用任何類型的處理器,諸如專用的或者共享的一個處理器。處理器可W包括微控制器、中 央處理單元(CPU)、數(shù)字信號處理器(DSP)、ASIC或者任何其他處理器或控制器(諸如數(shù)字光 學(xué)器件)或者執(zhí)行相同函數(shù)并且采用電子技術(shù)和電子架構(gòu)的模擬電路。控制器或者處理器 還可W包括存儲器,該存儲器可W部分或者可操作地禪接到控制器。存儲器可W是存儲數(shù) 據(jù)的任何合適類型的存儲器。任何可W存儲和/或傳輸適合用于本系統(tǒng)和本方法的信息的 已知的或者已開發(fā)的介質(zhì)可W用作存儲器。存儲器還可W存儲可由控制器訪問的用戶偏好 和/或應(yīng)用程序數(shù)據(jù),用于配置存儲器W根據(jù)本系統(tǒng)和本方法執(zhí)行操作行為。
[0034] 參考附圖,在下文中更全面地描述了本發(fā)明,附圖中示出了本發(fā)明的實施方式。然 而,本發(fā)明可W W許多不同的形式實現(xiàn),并不應(yīng)被解釋為限制于本文中所闡述的實施方式。 而是提供運些實施方式使得本公開將更詳盡和完整,并將全面地將本發(fā)明的范圍傳達給本 領(lǐng)域內(nèi)的技術(shù)人員。示例性實施方式的描述旨在結(jié)合附圖來閱讀,附圖被認為是整個書面 描述的一部分。在附圖中,為了清晰可W放大系統(tǒng)、部件、層W及區(qū)域的大小和相對大小。參 考本發(fā)明的可能理想化的和/或中間的結(jié)構(gòu)的示意圖描述實施方式。
[0035] 圖1更詳細地示出了提供用于處理服務(wù)器過載的方法的系統(tǒng)??蛻舳藨?yīng)用程序利 用請求的操作參數(shù)向服務(wù)器應(yīng)用程序發(fā)送請求(1)。操作參數(shù)可W包括位置信息(例如,網(wǎng) 絡(luò)地址、IP地址、憑證、會話密鑰)(的引用)。服務(wù)器可W將客戶端的位置信息存儲在數(shù)據(jù)存 儲(例如,在數(shù)據(jù)庫)中(2)。可W通過幾種方法完成服務(wù)器函數(shù)的過載檢測,例如使用資源 負載闊值(CP啡良制)或者基于模型的辦法,該辦法基于履行(例如,在Meulenhoff et al., Intelligent overload control for composite web services, Service-Oriented Computing, 2009中公開的代理類型的)請求的平均服務(wù)時間。如果過載情況的可能性低,那 么由服務(wù)器函數(shù)處理請求(1)。在通過引用結(jié)合于此的EP1612674中給出的過載檢測函數(shù)的 另一個實例接收請求的操作參數(shù)(3),并且可W讀取服務(wù)器的當前資源消耗,得到所計算的 服務(wù)器函數(shù)成為過載情況的可能性。
[0036] 如果過載檢測函數(shù)估計高過載可能性(3),則響應(yīng)于檢測過載情況的負載檢測函 數(shù),服務(wù)器函數(shù)將檢測到的客戶端請求重定向到在所選擇的資源提供者上的減載的服務(wù)器 函數(shù)(1和7)。例如,運可W通過從數(shù)據(jù)存儲(2)中限定位置為新服務(wù)器位置來完成。在其他 方法之中,限定新服務(wù)器位置可W通過集群(例如利用k均值,其中將集群的數(shù)量k設(shè)為2)或 者通過基于圖形的辦法(其中將圖像分割并且指派給新服務(wù)器)來完成。服務(wù)器可W利用資 源提供者查找函數(shù)得到資源提供者的位置和詳細聯(lián)系方式(4),并且減載的服務(wù)器函數(shù)分 配給在該位置上的資源提供者(5和6)。指派給減載的服務(wù)器函數(shù)的客戶端的子集由服務(wù)器 函數(shù)重定向(例如,由HTTP重定向或者DNS重新配置)。在運種情況下,客戶端函數(shù)利用減載 的服務(wù)器函數(shù)(7)。減載的服務(wù)器函數(shù)可W與在同一物理設(shè)備上執(zhí)行的或者在物理網(wǎng)絡(luò)中 的別處執(zhí)行的另一個服務(wù)器函數(shù)通信(8)。
[0037] 圖2示出經(jīng)由例如互聯(lián)網(wǎng)連接的用戶或者客戶終端1和服務(wù)器2。終端1可W W重定 向函數(shù),經(jīng)由互聯(lián)網(wǎng)將訪問請求(15a、l化)發(fā)送給服務(wù)器2。如圖2所示,發(fā)送到服務(wù)器應(yīng)用 程序的客戶端請求(2)可W包含并且通告有關(guān)一個或多個資源提供者3(例如,由ISP提供的 云資源提供者、Azure、Amazon)的信息。也可W在另一個時刻經(jīng)由另一個路徑將通告發(fā)送給 服務(wù)器;或者可替換地,可W通過資源提供者自身經(jīng)由指定的協(xié)議發(fā)送通告。通告可W包含 關(guān)于本地和第S方資源提供者的數(shù)據(jù)(例如,TOU操作參數(shù)、設(shè)定、憑證、記號、密鑰)的列 表。如果減載的服務(wù)器函數(shù)可用并且減載的服務(wù)器函數(shù)判定函數(shù)決定利用減載的服務(wù)器函 數(shù)(16),那么重定向函數(shù)將來自客戶端應(yīng)用程序的請求重定向到減載的服務(wù)器函數(shù)(23)。 重定向和減載的服務(wù)器函數(shù)判定函數(shù)的位置可W變化:在客戶端設(shè)備、在服務(wù)器應(yīng)用程序 或者在客戶端與服務(wù)器之間的路徑上的設(shè)備(例如,代理服務(wù)器、路由器、深度包檢測設(shè)備) 上。重定向函數(shù)可W在各種等級下運行,并且可W通過網(wǎng)絡(luò)地址轉(zhuǎn)換、網(wǎng)絡(luò)流量路由(路由 表配置)、名稱服務(wù)查找(例如,DNS查找)、專用代理(例如,網(wǎng)絡(luò)代理服務(wù)器)實施。如果沒有 配備重定向函數(shù),那么請求到達服務(wù)器(1化)。服務(wù)器使用減載的服務(wù)器函數(shù)判定函數(shù)(17) 和資源提供者選擇函數(shù)(18),W判定放置減載的服務(wù)器函數(shù)是否是更優(yōu)的,并且使用哪個 資源(選擇哪個資源提供者)承載減載的服務(wù)器函數(shù)。減載的服務(wù)器函數(shù)判定函數(shù)和資源提 供者選擇函數(shù)的輸入是:減載的服務(wù)器函數(shù)的預(yù)期資源消耗、由客戶端提供的資源提供者 信息化化、訪問憑證、當前狀態(tài)、接口協(xié)議)、由第S方資源提供者提供的資源使用數(shù)據(jù)。例 如,如圖1中示出的在客戶端存儲中實現(xiàn)的資源提供者選擇函數(shù)可W查詢己知的資源提供 者(19)用于更新資源使用數(shù)據(jù)(例如,計算負載、存儲器消耗、網(wǎng)絡(luò)延遲)。在選擇最佳位置 之后,通過服務(wù)器2請求資源提供者創(chuàng)建減載的服務(wù)器函數(shù)(20)(例如,經(jīng)由HTTP網(wǎng)絡(luò)服務(wù) 調(diào)用)。由在第=方3上的資源提供者創(chuàng)建減載的服務(wù)器函數(shù)(21)。資源提供者還從客戶端 應(yīng)用程序?qū)⒅囟ㄏ蚝瘮?shù)配備到減載的服務(wù)器函數(shù)(22)。重定向函數(shù)的位置可W變化:在客 戶端設(shè)備(例如,網(wǎng)絡(luò)代理、路由、DNS配置或者網(wǎng)絡(luò)瀏覽器的插件)、在服務(wù)器的位置(例如, HTTP重定向、網(wǎng)絡(luò)服務(wù)器的插件)或者在客戶端和服務(wù)器之間的路徑上的某處(例如,應(yīng)用 程序協(xié)議代理、路由、DNS)。當重定向函數(shù)、減載的服務(wù)器函數(shù)W及客戶端設(shè)備位于在同一 組織的控制下的計算機網(wǎng)絡(luò)中時,還可W W相同計算機網(wǎng)絡(luò)的重新配置(例如,路由器的配 置、代理服務(wù)器、在ISP網(wǎng)絡(luò)中的DNS配置或者在家庭網(wǎng)絡(luò)中的家用路由器的配置,其中在像 機頂盒的本地設(shè)備上安裝減載的服務(wù)器函數(shù))的形式實現(xiàn)重定向函數(shù),使得來自客戶端的 請求可W被直接路由到減載的服務(wù)器函數(shù)。最終,來自客戶端的請求被重定向到減載的服 務(wù)器函數(shù)并且在那里處理該請求(23)。
[003引重定向函數(shù)的實現(xiàn)利用化vaWebs^d的減載的服務(wù)器函數(shù)
[0039] 在運里,我們描述在實現(xiàn)HTTP和化va Web Stad的情況下的本發(fā)明的處理??蛻?端應(yīng)用程序是網(wǎng)頁瀏覽器應(yīng)用程序??蒞通過引起(原代碼的)新處理、在腳本引擎中運行 腳本、在管理程序中開始新虛擬機實現(xiàn)減載的服務(wù)器函數(shù)。在運里我們使用在客戶端計算 機運行的化va Web 81曰的應(yīng)用程序。在下方示出通過客戶端發(fā)送HTTP請求(步驟7曰、15a)的 最小實例。
[0040] GET/webapplication HTTP/1.1
[0041] Host:WWW. server. com
[0042] Resource-Provider: http://www. client.com/ResourceProvider
[0043] 運是在服務(wù)器WWW. server. com對服務(wù)器應(yīng)用程序Ywebapplication'的請求。通 過HTTP報頭屬性'Resource-Provider'提供有關(guān)本地資源的信息,HTTP報頭屬性 'Resource-Provider ' 說明資源提供者在 'http: //www. client. com/ResourceProvider' (例如,在客戶端的地址)可用。用于將該HTW報頭屬性添加到請求的兩個可能的選項,可W 通過在客戶端和將屬性插入請求的服務(wù)器之間的路徑上創(chuàng)建瀏覽器插件或者代理服務(wù)器 完成。
[0044] 可W W各種形式實現(xiàn)重定向函數(shù):添加到網(wǎng)絡(luò)瀏覽器的插件(例如,firefox擴展 允許更改請求內(nèi)容)、安裝在客戶端計算機上的HTTP代理服務(wù)器(例如,利用apache HTTP服 務(wù)器,能夠重寫請求并且將傳入的請求重定向到其他系統(tǒng),將報頭添加到轉(zhuǎn)發(fā)的請求)。
[0045] 可W在網(wǎng)頁瀏覽器或者實現(xiàn)重定向函數(shù)的HTTP代理的相同插件中實現(xiàn)資源提供 者。資源提供者還運行網(wǎng)頁服務(wù)(webservice),使得服務(wù)器可訪問。到達資源提供者的創(chuàng)建 新減載的服務(wù)器函數(shù)的請求(11、20),將化va Webstad程序(從一些位置下載的數(shù)據(jù)文件) 的位置給予資源提供者
[0046] GET
[0047] /ResourceProvider?operation = create&location = http://www. server. com/ serv
[004引 er Jnlp HTTP/1.1
[0049] 化st:WWW.cl ient.com
[0050] 將操作(創(chuàng)建減載的服務(wù)器函數(shù))和化va Web Stad程序的位置兩者作為請求的 參數(shù)傳遞給資源提供者。資源提供者解析請求對象arguments,在解析之后開始從指定位置 下載化va Web Stad程序。資源提供者改變重定向函數(shù)的配置(網(wǎng)絡(luò)瀏覽器的插件或者在 客戶端上的HTTP代理),W僅將由減載的服務(wù)器函數(shù)實現(xiàn)的對于服務(wù)器功能的請求重定向 到新減載的服務(wù)器函數(shù)(例如,基于U化的重定向規(guī)則)。在該處理完成之后,資源提供者響 應(yīng)于服務(wù)器,將通知服務(wù)器減載的服務(wù)器函數(shù)的位置。
[0051 ] HTTP/1.1 2000K
[0052] Date:Wed,22NOV 2012 11:31:OOGMT
[0053] Content-Type:text/html
[0054] of S = http://www.client.com/osf
[0055] 現(xiàn)在服務(wù)器可W響應(yīng)于客戶端的原始請求生成重定向。
[0056] HTTP/1.1 SOlMoved F*e;rmanently
[0057] Location:http://www.client.com/osf
[0058] 對于服務(wù)器的客戶端的新請求被重定向函數(shù)截取,重定向函數(shù)由網(wǎng)絡(luò)瀏覽器插件 或者代理服務(wù)器實現(xiàn),并且該新請求被重定向到本地化va Web 8*曰的應(yīng)用程序。在運種情 況下,Java Web 8化的應(yīng)用程序是實現(xiàn)網(wǎng)頁服務(wù)的化va程序。
[0059] 由云提供者承載的減載的服務(wù)器函數(shù)
[0060] 減載的服務(wù)器函數(shù)還可W由第=方資源提供者承載化OSt)。運種第=方的實例是 云提供者,像amazon EC2或者windows azureW及Google A卵Engine(其提供平臺作為服 務(wù)或者化aS)。如果是Amazon EC2服務(wù),用戶還需要將amazon服務(wù)的訪問憑證通告給服務(wù) 器。如果是Amazon,運些憑證通過AWS訪問密鑰形成,用于查詢EC2接口(參見:http :// docs .amazonwebservices . com)。運提供了到服務(wù)器和資源提供者選擇函數(shù)的Amazon EC2 接口的訪問。在運里,由Amazon EC2服務(wù)扮演資源提供者的角色。由EC2網(wǎng)頁服務(wù)提供該服 務(wù)的接口(11、19、20)。
[0061] 可W通過將擴展添加到網(wǎng)頁服務(wù)器,完成減載的服務(wù)器函數(shù)地點判定函數(shù)和資源 提供者選擇函數(shù)的實現(xiàn)。大多數(shù)網(wǎng)頁服務(wù)器實現(xiàn)(互聯(lián)網(wǎng)信息服務(wù)器、Apache HTTP服務(wù)器、 Nginx)允許添加擴展,添加擴展是將額外的處理功能添加到傳入的請求。在下方示出了減 載的服務(wù)器函數(shù)判定函數(shù)的樣本實現(xiàn)。
[0n^9l
[0063
[0064] 該函數(shù)的輸入是己知的該服務(wù)器和客戶端的減載的服務(wù)器函數(shù)數(shù)組,W及描述減 載的服務(wù)器函數(shù)需要的資源的數(shù)據(jù)結(jié)構(gòu)。在減載的服務(wù)器函數(shù)的列表上的迭代中,將需求 與在減載的服務(wù)器函數(shù)上的可用資源進行比較。返回具有足夠資源的第一減載的服務(wù)器函 數(shù),用于重定向函數(shù)的輸入。如果沒有發(fā)現(xiàn)減載的服務(wù)器函數(shù),返回作為創(chuàng)建新減載的服務(wù) 器函數(shù)的信號的NU化。
[0065] 在下方示出了在資源提供者選擇函數(shù)的偽代碼中的樣本實現(xiàn):
[0066;
[0067;
[0068]該函數(shù)的輸入是己知資源提供者的數(shù)組和描述減載的服務(wù)器函數(shù)需要的資源的 數(shù)據(jù)結(jié)構(gòu)。在資源提供者的列表上的迭代中,將需求與資源提供者的可用資源進行比較。在 該實例中,查詢每一個資源提供者W得到關(guān)于可用資源的最新數(shù)據(jù)。如果由函數(shù)返回資源 提供者,那么該資源提供者用于創(chuàng)建新減載的服務(wù)器函數(shù)。如果什么都沒有返回(NU化),沒 有發(fā)現(xiàn)資源提供者,那么服務(wù)器必須借助于默認路徑并且生成響應(yīng)本身或者生成服務(wù)器錯 誤(例如,HTTP503服務(wù)不可用狀態(tài)代碼)。
[0069] 圖3示出了響應(yīng)于DDos攻擊,如圖1或者圖2中公開的網(wǎng)絡(luò)配置中的過載處理的又 一個圖示。首先,由客戶端發(fā)送服務(wù)請求。服務(wù)請求可W包含在客戶端網(wǎng)絡(luò)位置上的位置信 息。作為響應(yīng),服務(wù)器可W更新利用該服務(wù)器的客戶端的網(wǎng)絡(luò)位置的數(shù)據(jù)庫。接下來,由過 載檢測函數(shù)確定請求的執(zhí)行是否會導(dǎo)致過載情況。如果不會,則執(zhí)行請求,W常規(guī)方式傳回 數(shù)據(jù)。如果會,則服務(wù)器基于數(shù)據(jù)庫在網(wǎng)絡(luò)中選擇新位置,并且將減載的服務(wù)器函數(shù)分配到 所選擇的資源上,所選擇的資源由設(shè)置在服務(wù)器上的資源提供者查找函數(shù)從所述資源提供 者中選擇資源而選出。接下來,由數(shù)據(jù)庫識別的客戶端的子集被重定向到設(shè)置在所選擇的 資源提供者上的減載的服務(wù)器函數(shù)。
[0070] W類似于US7188366的方式,圖4示出了實施方式,其中,可W確定是否可能在上游 設(shè)備400(即虛擬地和或物理地位于客戶端和服務(wù)器之間的路徑的上游的設(shè)備)上安裝減載 的服務(wù)器函數(shù)。如果確定的結(jié)果是是,那么上游設(shè)備400的挑戰(zhàn)是確定其是否具有資源,W 將所檢測的客戶端請求重定向到減載的服務(wù)器函數(shù),W在設(shè)備上實現(xiàn)。如果不可能安裝(即 如果確定的結(jié)果是否),程序移動到步驟:其中,通過參考可W在上游設(shè)備中提供的相鄰路 由器數(shù)據(jù)庫,服務(wù)器2檢索可能變成上游路由器的相鄰設(shè)備。如果路由器是400,提取路由器 401和路由器402作為相鄰路由器。在后續(xù)步驟中,復(fù)制持有關(guān)于DDos攻擊的信息的攻擊源 檢索模塊,并且將其發(fā)送給所選擇的上游設(shè)備,該上游設(shè)備被識別為資源提供者,用于執(zhí)行 減載的服務(wù)器函數(shù)??蒞在客戶端應(yīng)用程序上執(zhí)行減載的服務(wù)器函數(shù)的一部分。因此,該方 法可W包括檢索在上游接近攻擊源的通信設(shè)備的地址,并且將減載的服務(wù)器函數(shù)傳輸?shù)皆?上游防御地點的資源提供者。為此,資源提供者查找函數(shù)可W包括攻擊源確定函數(shù)部,攻擊 源確定函數(shù)部能夠提取通信設(shè)備的地址,通信設(shè)備的地址由資源提供者查找函數(shù)檢索到, 該通信設(shè)備是從接近攻擊源的上游通信設(shè)備的候選中選出作為上游防御地點。
[0071] 為了運個目的,圖5示出了客戶端設(shè)備利用請求的操作參數(shù)(7a、7b)將請求發(fā)送到 服務(wù)器應(yīng)用程序。雖然前述已參考其他服務(wù)器或者在網(wǎng)絡(luò)中可用的路由器設(shè)備(包括第= 方資源)示出,但是該機制還適用于由客戶端自身所主張的資源。請求可W包含在客戶端設(shè) 備的一個或多個資源提供者的信息的通告(例如,rau操作參數(shù)、設(shè)定、憑證、記號、密鑰)。 該通告也可W經(jīng)由另一個路徑或者在另一個時間被發(fā)送到服務(wù)器。如果減載的服務(wù)器函數(shù) 判定函數(shù)決定使用減載的服務(wù)器函數(shù)(8),并且減載的服務(wù)器函數(shù)在客戶端可用,那么重定 向函數(shù)將請求重定向到減載的服務(wù)器函數(shù)(14)。否則,請求到達服務(wù)器應(yīng)用程序(7b)。由客 戶端(7b)的一個資源提供者的通告的可能的實現(xiàn)是通過將通告嵌入到發(fā)送給服務(wù)器應(yīng)用 程序的HTTP請求中。
[0072] 服務(wù)器應(yīng)用程序可W使用通告中的信息,并且將其提交給減載的服務(wù)器函數(shù)判定 函數(shù)(9)和資源提供者選擇函數(shù)(10),W判定是否創(chuàng)建減載的服務(wù)器函數(shù),并且選擇最佳位 置用于減載的服務(wù)器函數(shù),并且因此選擇哪個資源提供者。兩個函數(shù)(資源提供者選擇函 數(shù)、減載的服務(wù)器函數(shù)判定函數(shù))將通過客戶端在通告中發(fā)送的信息與減載的服務(wù)器函數(shù) 的資源需求進行比較(例如,當資源提供者具有足夠的處理能力可用時,資源提供者選擇函 數(shù)可W決定創(chuàng)建減載的服務(wù)器函數(shù))。如果決定創(chuàng)建減載的服務(wù)器函數(shù),那么服務(wù)器將創(chuàng)建 減載的服務(wù)器函數(shù)的請求發(fā)送到所選擇的資源提供者(11)。在其他可能的解決方案之中, 通過服務(wù)器發(fā)送到資源提供者的請求(11)可W在HTT內(nèi)青求中內(nèi)嵌。請求中的信息將會是請 求的操作(創(chuàng)建減載的服務(wù)器函數(shù))和操作參數(shù),像用于減載的服務(wù)器函數(shù)的圖像(的引 用)。
[0073] 資源提供者處理創(chuàng)建減載的服務(wù)器函數(shù)的請求并且創(chuàng)建新減載的服務(wù)器函數(shù) (12)。資源提供者還配備重定向函數(shù)(13)。重定向函數(shù)是將請求從客戶端重定向到減載的 服務(wù)器函數(shù)的裝置。該函數(shù)的配備可W表示客戶端設(shè)備的配置(例如,更新本地DNS信息、配 置代理服務(wù)、改變路由表、改變防火墻、改變網(wǎng)絡(luò)瀏覽器插件的配置、改變客戶端應(yīng)用程序 配置),W便將請求重定向到減載的服務(wù)器函數(shù)(14)。在配備之后,服務(wù)器可W(例如,利用 HTTP重定向)將客戶端請求重定向到減載的服務(wù)器函數(shù)。
[0074] 最終,W上論述僅僅旨在說明本系統(tǒng)并且不應(yīng)被解釋為將所附權(quán)利要求限制于任 何【具體實施方式】或者實施方式的組合。因此,雖然已參考其中的具體示例性實施方式特別 詳細地描述了本系統(tǒng),但是還應(yīng)理解,可W由本領(lǐng)域內(nèi)的那些普通技術(shù)人員設(shè)計出許多變 形和替換實施方式,而不背離如W下權(quán)利要求中所闡述的本系統(tǒng)和本方法的范圍。因此,說 明書和附圖應(yīng)被視為W說明的方式,而不旨在限制所附權(quán)利要求的范圍。
[0075] 在解釋所附權(quán)利要求中,應(yīng)理解,與給定的權(quán)利要求中列出的那些相比,單詞"包 括(comprising)"不排除存在其他元件或者行為;在元件之前的單詞"一(a)"或者"一個 (an)"不排除存在多個運種元件;權(quán)利要求中的任何參考符號不限制它們的范圍;可W通過 相同或者不同的項或者實現(xiàn)的結(jié)構(gòu)或者功能表示幾個"裝置(means)";除非另外特別聲明, 否則所公開的設(shè)備中的任何或者其部分可W結(jié)合到一起或者被分成又一部分;事實上,在 互相不同的權(quán)利要求中陳述的某些測量并不表示運些測量的組合不能被加 W利用,并且認 為通過主體申請明確公開了運些測量的組合。
【主權(quán)項】
1. 一種用于處理服務(wù)器過載的方法,包括: -通過服務(wù)器函數(shù)(SF)提供服務(wù)器應(yīng)用程序的一部分或者全部功能;所述服務(wù)器函數(shù) (SF)包括一個或多個能夠減載的服務(wù)器函數(shù)(OSF),所述能夠減載的服務(wù)器函數(shù)(OSF)提供 所述服務(wù)器應(yīng)用程序的一部分或者全部功能,并且能夠加載在其他資源上; -提供資源提供者(RP),所述資源提供者能夠提供用于承載所述能夠減載的服務(wù)器函 數(shù)的資源; -通過負載檢測函數(shù)(ODF)檢測服務(wù)器負載,所述負載檢測函數(shù)被構(gòu)建為確定所述服務(wù) 器函數(shù)是否處于或者接近過載情況;以及-響應(yīng)于所述負載檢測函數(shù)檢測到過載情況,將所 檢測的客戶端請求重定向到在所選擇的資源上的減載的服務(wù)器函數(shù)。2. 根據(jù)權(quán)利要求1所述的方法,其中,所述服務(wù)器進一步包括從所述資源提供者中選擇 資源的資源提供者查找函數(shù)。3. 根據(jù)權(quán)利要求1或2所述的方法,其中,所述選擇由指示能選擇的資源的客戶端請求 通告提供。4. 根據(jù)權(quán)利要求1所述的方法,其中,所述減載的服務(wù)器函數(shù)在資源提供者上能夠執(zhí) 行,并且其中,所述減載的服務(wù)函數(shù)反過來包括提供所述服務(wù)器應(yīng)用程序的一部分或者全 部功能的能夠減載的服務(wù)器函數(shù)(OSF),并且所述減載的服務(wù)器函數(shù)能夠加載在另一個網(wǎng) 絡(luò)位置中的其他資源上。5. 根據(jù)權(quán)利要求1所述的方法,進一步包括: -檢索在上游接近攻擊源的通信設(shè)備的地址; -將所述減載的服務(wù)器函數(shù)傳輸?shù)皆谏嫌蔚姆烙恢玫馁Y源提供者。6. 根據(jù)權(quán)利要求5所述的方法,其中,所述資源提供者查找函數(shù)包括攻擊源確定函數(shù), 所述攻擊源確定函數(shù)能夠提取通信設(shè)備的地址,所述通信設(shè)備的地址是由所述資源提供者 查找函數(shù)檢索到的從接近所述攻擊源的上游通信設(shè)備的候選中選出作為上游防御位置。7. 根據(jù)前述權(quán)利要求中的任一項所述的方法,其中,所述資源提供者包括物理資源和 虛擬資源中的至少一種。8. 根據(jù)前述權(quán)利要求中的任一項所述的方法,其中,所述物理資源包括CPU負載以及通 信帶寬中的至少一種。9. 根據(jù)前述權(quán)利要求中的任一項所述的方法,其中,非物理資源包括每時間單位數(shù)據(jù) 庫讀取的數(shù)量、每時間單位數(shù)據(jù)庫寫入的數(shù)量、每時間單位請求的數(shù)量以及同時會話的數(shù) 量中的至少一項。10. 根據(jù)前述權(quán)利要求中的任一項所述的方法,其中,信息處理系統(tǒng)(5)包括系統(tǒng)控制 裝置(6)、接口裝置(7)以及客戶端應(yīng)用程序裝置(8a、8b、8c),當所述系統(tǒng)(5)過載或者將要 過載時,所述方法包括接下來的步驟: -檢測所述系統(tǒng)控制裝置、所述接口裝置或者相關(guān)的客戶端應(yīng)用程序裝置是否過載或 者是否將要過載; -檢測所請求的訪問是否將使所述系統(tǒng)控制裝置、所述接口裝置或者相關(guān)的所述客戶 端應(yīng)用程序裝置加重負載; -如果認為所請求的訪問不促成相關(guān)系統(tǒng)裝置的過載,那么判斷為允許所請求的訪問, 和/或如果認為所請求的訪問使所述相關(guān)系統(tǒng)裝置加重負載,那么判斷為不允許所述請求 的訪問。11. 根據(jù)前述權(quán)利要求中的任一項所述的方法,數(shù)個客戶端請求訪問信息處理系統(tǒng)(5) 并且服務(wù)等級指示符被分配給那些客戶端,所述方法包括如果認為這種所請求的訪問促成 系統(tǒng)過載,那么對具有相對高服務(wù)等級指示符的客戶端的所請求的訪問給予比具有相對低 服務(wù)等級指示符的客戶端高的優(yōu)選或優(yōu)先權(quán)。12. 根據(jù)前述權(quán)利要求中的任一項所述的方法,被認為是促成所述系統(tǒng)過載的所請求 的訪問,對于具有相對高服務(wù)等級指示符的客戶端,被判斷為是允許的,和/或?qū)τ诰哂邢?對低服務(wù)等級指示符的客戶端,被判斷為是不允許的。13. -種用于處理對信息處理系統(tǒng)(5)的訪問請求的系統(tǒng),包括處理裝置和存儲器裝 置,借此所述裝置通信地連接到所述信息處理系統(tǒng),借此所述裝置進一步連接到用于傳輸 所述訪問請求的網(wǎng)絡(luò),其特征在于,所述裝置被適配為執(zhí)行根據(jù)權(quán)利要求1至權(quán)利要求12所 述的步驟。14. 一種具有程序指令的非暫態(tài)計算機可讀存儲介質(zhì),當在根據(jù)權(quán)利要求13所述的系 統(tǒng)上運行時,促使所述系統(tǒng)執(zhí)行權(quán)利要求1至權(quán)利要求12所述的方法。
【文檔編號】H04L29/06GK105940655SQ201480074435
【公開日】2016年9月14日
【申請日】2014年11月28日
【發(fā)明人】皮耶特·揚·默倫霍夫, 魯?shù)婪颉ぜs瑟夫·斯特里克爾斯
【申請人】荷蘭應(yīng)用科學(xué)研究會(Tno)