曹 寶,郭 爽,陳 洋,何遠(yuǎn)杭
(中國(guó)電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,各種類型和規(guī)模的數(shù)據(jù)中心應(yīng)運(yùn)而生,數(shù)據(jù)中心承載了大量的關(guān)鍵、敏感數(shù)據(jù)。數(shù)據(jù)中心作為最重要的網(wǎng)絡(luò)資產(chǎn),也成了黑客和敵對(duì)勢(shì)力的重點(diǎn)攻擊目標(biāo)。數(shù)據(jù)集中后出現(xiàn)的數(shù)據(jù)安全問(wèn)題,其影響面和破壞程度大大增大[1],針對(duì)數(shù)據(jù)中心的安全防護(hù)是網(wǎng)絡(luò)安全防護(hù)的重中之重。
網(wǎng)絡(luò)攻擊分為主動(dòng)攻擊和被動(dòng)攻擊,主動(dòng)攻擊包括篡改消息、數(shù)據(jù)偽造、拒絕服務(wù)等,被動(dòng)攻擊包括竊聽(tīng)、流量分析等。重放攻擊是數(shù)據(jù)偽造攻擊的重要方式。
重放攻擊(Replay Attacks)是最基本、最常用、危害性最大的一種攻擊形式[2],針對(duì)重放攻擊的防護(hù)通常采用平臺(tái)加軟件模塊的方式實(shí)現(xiàn),但這種方式在大流量、重負(fù)載的數(shù)據(jù)中心中的效果并不理想?;诖耍疚脑O(shè)計(jì)了一種基于現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)的抗重放攻擊組件,滿足高帶寬、低時(shí)延的網(wǎng)絡(luò)安全防護(hù)需求,同時(shí)標(biāo)準(zhǔn)化的模塊設(shè)計(jì)也能夠滿足未來(lái)數(shù)據(jù)中心的安全資源服務(wù)化[3]的需求。
重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,原指攻擊者發(fā)送一個(gè)目的主機(jī)已經(jīng)接收過(guò)的包,來(lái)達(dá)到欺騙系統(tǒng)的目的,主要用于在身份認(rèn)證過(guò)程中破壞認(rèn)證的正確性。例如,在認(rèn)證協(xié)議交互過(guò)程中,針對(duì)系統(tǒng)開(kāi)展重放攻擊,可以欺騙系統(tǒng),使其疲于響應(yīng)攻擊包,導(dǎo)致系統(tǒng)不能響應(yīng)正常認(rèn)證流程,造成認(rèn)證失敗,更甚者可能造成系統(tǒng)崩潰。
作為曾經(jīng)的“合法包”,重放攻擊中的數(shù)據(jù)包若沒(méi)有被及時(shí)識(shí)別、丟棄,會(huì)占用大量的安全防護(hù)設(shè)備的資源,導(dǎo)致防護(hù)效能下降。因此重放攻擊在網(wǎng)絡(luò)中大行其道,已經(jīng)不僅僅局限于針對(duì)認(rèn)證流程的攻擊,在業(yè)務(wù)通信過(guò)程中也被廣泛使用。此外,重放攻擊的流量攻擊特性被應(yīng)用于分布式拒絕服務(wù)(Distributed Denial of Service,DDoS)攻擊,起到致癱效果,從而嚴(yán)重威脅數(shù)據(jù)中心的安全防護(hù)效能。
基于長(zhǎng)期對(duì)抗重放攻擊的經(jīng)驗(yàn),針對(duì)不同數(shù)據(jù)包的格式、特點(diǎn),總結(jié)形成了6 種主要的抗重放攻擊方案[4],如表1 所示。
表1 6 種主要抗重放攻擊方案的優(yōu)劣比較
如表1 所示的6 種抗重放攻擊方案各有利弊,單獨(dú)使用時(shí)通常效果不好??紤]當(dāng)前數(shù)據(jù)中心的多連接、大數(shù)據(jù)量、長(zhǎng)時(shí)間、高可用的特點(diǎn),方案4和方案6 因其效率較低或是占用資源太多而基本不被采用。
目前的安全防護(hù)設(shè)備基本采用兩種方案結(jié)合的方式抗重放攻擊,如將方案1 和方案2 結(jié)合,將方案3 和方案5 結(jié)合,并通?;诟咝阅芴幚砥髟O(shè)計(jì)抗重放攻擊軟件,實(shí)現(xiàn)對(duì)重放攻擊數(shù)據(jù)包的檢測(cè)、丟包、上報(bào)等功能,但軟件實(shí)現(xiàn)的抗重放攻擊在檢測(cè)處理能力和移植性方面還存在不少問(wèn)題,具體如下文所述。
(1)檢測(cè)、處理能力弱,主要體現(xiàn)在帶寬受限和時(shí)延較大兩個(gè)方面。由于重放攻擊的檢測(cè)需要占用較多的資源,雖然現(xiàn)在的處理器性能、核數(shù)都有了很大提升,但是當(dāng)有多個(gè)連接或是網(wǎng)絡(luò)流量達(dá)到數(shù)個(gè)Gbit/s 時(shí),仍然會(huì)帶來(lái)處理器性能的急劇下降,嚴(yán)重時(shí)會(huì)導(dǎo)致處理器死機(jī)。而頻繁的軟硬件交互和協(xié)議棧內(nèi)的處理則帶來(lái)了時(shí)延的增加。
(2)移植性不強(qiáng)。軟件的靈活性也意味著開(kāi)發(fā)者可以隨意發(fā)揮,因此功能模塊接口各異,參數(shù)選擇復(fù)雜,針對(duì)新的重放攻擊類型,一般通過(guò)“打補(bǔ)丁”的方式進(jìn)行處理,沒(méi)有設(shè)計(jì)科學(xué)的架構(gòu)和制定統(tǒng)一的標(biāo)準(zhǔn),因此可移植性不強(qiáng)。
因此,本文研究設(shè)計(jì)了一種基于FPGA 的組件化抗重放攻擊模塊,采用基于FPGA 的實(shí)現(xiàn)方式,具備高可用、可配置、可擴(kuò)展、移植性好等特點(diǎn),可以極大提升數(shù)據(jù)中心的抗重放攻擊防護(hù)效能。
針對(duì)企業(yè)級(jí)數(shù)據(jù)中心邊界安全防護(hù)設(shè)備,本設(shè)計(jì)在組件化設(shè)計(jì)思想的指導(dǎo)下,將抗重放攻擊功能從復(fù)雜的系統(tǒng)中解耦[5-6],定義精簡(jiǎn)的內(nèi)外部接口,選擇兩種典型的業(yè)務(wù)數(shù)據(jù)包作為防御目標(biāo),充分利用FPGA 實(shí)時(shí)、并行、高效的處理特點(diǎn)[7-8],支持處理器的關(guān)鍵配置,實(shí)現(xiàn)高效、靈活、可擴(kuò)展的抗重放攻擊功能。
在分析現(xiàn)有抗重放攻擊技術(shù)的基礎(chǔ)上,進(jìn)行組件化設(shè)計(jì),以抗重放攻擊功能為核心,劃定功能模塊的邊界,明確抗重放攻擊模塊的對(duì)外接口。
該方案針對(duì)兩種典型的傳輸控制協(xié)議(Transmission Control Protocol,TCP)業(yè)務(wù)數(shù)據(jù)包場(chǎng)景,分別定義為業(yè)務(wù)包和協(xié)商包。業(yè)務(wù)包為通常認(rèn)識(shí)中的業(yè)務(wù)數(shù)據(jù)包,具有數(shù)量大的特點(diǎn),包頭中有包序號(hào)字段;協(xié)商包本質(zhì)上是業(yè)務(wù)數(shù)據(jù)包,作為業(yè)務(wù)流程中的協(xié)議包處理,包頭中沒(méi)有包序號(hào)字段,有一定長(zhǎng)度的自定義字段。
本文設(shè)計(jì)了抗重放攻擊模塊的功能架構(gòu)、關(guān)鍵數(shù)據(jù)包處理狀態(tài)機(jī)、重要配置表項(xiàng)等,實(shí)現(xiàn)高帶寬、低時(shí)延的數(shù)據(jù)包重放攻擊檢測(cè)和處理??怪胤殴裟K的功能架構(gòu)組成如圖1 所示。
圖1 抗重放攻擊模塊功能架構(gòu)
抗重放攻擊模塊分為數(shù)據(jù)包處理和處理器配置兩個(gè)部分。
數(shù)據(jù)包處理部分包括協(xié)商包/普通業(yè)務(wù)包分路子模塊、協(xié)商包抗重放處理子模塊、普通業(yè)務(wù)包抗重放處理子模塊和合路子模塊。各子模塊之間數(shù)據(jù)接口形式為串行外設(shè)接口(Serial Peripheral Interface,SPI)。數(shù)據(jù)包在子模塊中采用并行、流水線處理,不存在反饋、重復(fù)處理等情況。
處理器配置部分包括處理器配置處理子模塊和序列號(hào)基準(zhǔn)值、隨機(jī)數(shù)黑名單、協(xié)商次數(shù)等配置表項(xiàng)處理子模塊。
整個(gè)模塊設(shè)計(jì)功能劃分清晰,信號(hào)處理流程順暢,通過(guò)軟件配置表項(xiàng),數(shù)據(jù)包根據(jù)表項(xiàng)的參數(shù)及配置進(jìn)行重放包檢測(cè)、處理。
2.2.1 業(yè)務(wù)包抗重放處理子模塊
因?yàn)闃I(yè)務(wù)包格式中在包頭位置有4 個(gè)字節(jié)的包序號(hào)字段,所以業(yè)務(wù)包的抗重放攻擊采用滑動(dòng)窗口與序列號(hào)結(jié)合的方式。
每次協(xié)商成功后,由處理器配置一個(gè)初始的4字節(jié)業(yè)務(wù)報(bào)文序號(hào),作為基準(zhǔn)值;然后提取進(jìn)入模塊的業(yè)務(wù)包的包序號(hào),將該包序號(hào)與基準(zhǔn)值在一個(gè)設(shè)定的窗口范圍內(nèi)進(jìn)行比較,不同的比較結(jié)果會(huì)輸出不同的處理結(jié)果,同時(shí)需要更新基準(zhǔn)值。
以上為一個(gè)連接的典型處理流程,針對(duì)數(shù)據(jù)中心面臨多個(gè)連接的情況,在FPGA 內(nèi)基于BlockRAM構(gòu)建一個(gè)深度為256 的基準(zhǔn)值表項(xiàng),將接收到的業(yè)務(wù)包序列號(hào)與基準(zhǔn)值表項(xiàng)中的相應(yīng)值進(jìn)行比較,從而實(shí)現(xiàn)針對(duì)255 個(gè)連接通道的重放攻擊檢測(cè)。
業(yè)務(wù)包抗重放攻擊狀態(tài)轉(zhuǎn)移[9-10]如圖2 所示。狀態(tài)機(jī)工作原理如下:
圖2 業(yè)務(wù)包抗重放攻擊狀態(tài)轉(zhuǎn)移
(1)若當(dāng)前業(yè)務(wù)包為首包,則為正常包,放行;
(2)若當(dāng)前業(yè)務(wù)包不是首包,比較當(dāng)前包序號(hào)和基準(zhǔn)值,若當(dāng)前包序號(hào)大于基準(zhǔn)值,且差值大于或等于上窗口門限,則為合法包,同時(shí)更新基準(zhǔn)值,清零歷史寄存器;
(3)若當(dāng)前包序號(hào)大于基準(zhǔn)值,且差值小于上窗口門限,則為合法包,同時(shí)更新基準(zhǔn)值,移位歷史寄存器;
(4)若當(dāng)前包序號(hào)等于基準(zhǔn)值,則為重放包,丟棄;
(5)若當(dāng)前包序號(hào)小于基準(zhǔn)值,且差值大于或等于下窗口門限,則為重放包,丟棄,不更新基準(zhǔn)值;
(6)若當(dāng)前包序號(hào)小于基準(zhǔn)值,且差值小于下窗口門限,且與歷史值不重復(fù),則為合法包,否則為非法包;
(7)業(yè)務(wù)包判別完成后返回空閑狀態(tài),等待處理下一個(gè)業(yè)務(wù)包。
本模塊能夠?qū)崿F(xiàn)255 個(gè)連接通道的業(yè)務(wù)重放包檢測(cè)、處理功能,當(dāng)需要更多連接、更高帶寬的業(yè)務(wù)重放包檢測(cè)能力時(shí),可以通過(guò)擴(kuò)大基準(zhǔn)值表項(xiàng)的深度、提高處理時(shí)鐘的速率或是采用多個(gè)模塊并行處理的方式,因而本模塊具有良好的擴(kuò)展性。
2.2.2 協(xié)商包抗重放處理子模塊
協(xié)商包作為一種特殊的業(yè)務(wù)包,主要出現(xiàn)在通道建立過(guò)程中或是檢測(cè)到異常情況時(shí),用于傳遞重要信息,相對(duì)于業(yè)務(wù)包的數(shù)據(jù)量小很多。
由于協(xié)商包頭中沒(méi)有包序號(hào)字段,利用其自定義字段承載隨機(jī)數(shù),針對(duì)協(xié)商包采用時(shí)間戳與隨機(jī)數(shù)結(jié)合的抗重放攻擊防御方式。
設(shè)備啟動(dòng)后,由處理器配置時(shí)間信息和隨機(jī)數(shù)黑名單表項(xiàng)。鑒于協(xié)商包出現(xiàn)的頻率,結(jié)合系統(tǒng)時(shí)間同步情況,將時(shí)間信息定義為“天”;提取進(jìn)入模塊的協(xié)商包的時(shí)間字段、隨機(jī)數(shù)字段,分別與時(shí)間信息和隨機(jī)數(shù)黑名單進(jìn)行比較。不同的比較結(jié)果會(huì)輸出不同的處理結(jié)果。
協(xié)商包抗重放攻擊狀態(tài)轉(zhuǎn)移如圖3 所示。
圖3 協(xié)商包抗重放攻擊狀態(tài)轉(zhuǎn)移
狀態(tài)機(jī)工作原理:
(1)判斷當(dāng)前協(xié)商包的時(shí)間字段是否等于{昨天,今天,明天}中任意一個(gè),如果都不等,則判定為非法包,如果等于其中一個(gè),則進(jìn)入下一步判別;
(2)判斷當(dāng)前協(xié)商包的隨機(jī)數(shù)字段是否在黑名單內(nèi),如果在,則判定為非法包,如果不在,則為合法包,放行。
本模塊針對(duì)特定場(chǎng)景將時(shí)間戳的粒度定義得非常粗,為了提高檢測(cè)率采用了深度為512 的隨機(jī)數(shù)黑名單表項(xiàng),每一個(gè)合法協(xié)商包在進(jìn)行隨機(jī)數(shù)黑名單檢測(cè)時(shí)會(huì)額外帶來(lái)512 個(gè)時(shí)鐘周期的時(shí)延。因?yàn)閰f(xié)商包出現(xiàn)的頻率很低且有重傳機(jī)制,一般情況下不會(huì)帶來(lái)通信效率的下降。針對(duì)時(shí)間同步相對(duì)精確的系統(tǒng)或是對(duì)時(shí)延敏感的系統(tǒng),可以通過(guò)細(xì)化時(shí)間戳粒度、降低單個(gè)黑名單深度并行處理的方式。因而本模塊支持靈活配置、動(dòng)態(tài)可調(diào)。
2.2.3 表項(xiàng)配置子模塊
當(dāng)前主流的高性能FPGA 除了提供各種高速接口,都提供了大量的BlockRAM,相應(yīng)的Slice 數(shù)量反而不是非常的充足。本模塊支持最大255 個(gè)連接通道的重放攻擊檢測(cè),為了提高每一個(gè)通道檢測(cè)率,滑動(dòng)窗口的門限設(shè)置和隨機(jī)數(shù)黑名單的長(zhǎng)度需要滿足一定的要求。
基于以上兩點(diǎn),在FPGA 內(nèi)例化了相應(yīng)的BlockRAM 作為重要配置的存儲(chǔ)表項(xiàng),從而節(jié)約了寶貴的Slice 資源,實(shí)現(xiàn)了高速、動(dòng)態(tài)、可靠的配置表項(xiàng)處理。
在設(shè)計(jì)了結(jié)構(gòu)清晰的架構(gòu)和簡(jiǎn)潔嚴(yán)謹(jǐn)?shù)臓顟B(tài)機(jī)的基礎(chǔ)上,本模塊采用嚴(yán)格的時(shí)序設(shè)計(jì),避免了組合邏輯設(shè)計(jì)帶來(lái)的不穩(wěn)定性,整個(gè)設(shè)計(jì)簡(jiǎn)潔、高效。
通過(guò)仿真腳本,功能、性能仿真覆蓋率達(dá)到100%,重放攻擊包的檢測(cè)率達(dá)到100%,狀態(tài)機(jī)運(yùn)行穩(wěn)定、糾錯(cuò)能力強(qiáng),結(jié)果符合預(yù)期。
本模塊在保障處理性能的基礎(chǔ)上,在面積與速度之間取得了良好的平衡,并基于BlockRAM 設(shè)計(jì)了關(guān)鍵配置表項(xiàng),資源占用情況如表2 所示
表2 模塊資源占用情況
相比于7K325T FPGA 豐富的邏輯資源,抗重放攻擊模塊BlockRAM、Slice 等關(guān)鍵資源的消耗比例是非常低的。
本設(shè)計(jì)采用62.5 MHz 時(shí)鐘,處理帶寬理論上可以達(dá)到500 Mbit/s;業(yè)務(wù)包的處理時(shí)延為120 個(gè)時(shí)鐘周期(1.92 μs),協(xié)商包的處理時(shí)延為632個(gè)時(shí)鐘周期(10.112 μs)。
在實(shí)際運(yùn)行環(huán)境中開(kāi)展重放攻擊測(cè)試,分別驗(yàn)證處理帶寬、時(shí)延和檢測(cè)率,由于協(xié)商包的數(shù)量較少,沒(méi)有進(jìn)行大帶寬的測(cè)試,時(shí)延為設(shè)計(jì)的理論值10.112 μs,檢測(cè)率達(dá)到100%。
本文重點(diǎn)驗(yàn)證業(yè)務(wù)包的抗重放攻擊處理能力,針對(duì)不同包長(zhǎng)的業(yè)務(wù)包分別測(cè)試其處理帶寬、時(shí)延和檢測(cè)率,并與基于傳統(tǒng)協(xié)議棧軟件實(shí)現(xiàn)的抗重放攻擊模塊進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表3 所示。
表3 業(yè)務(wù)包測(cè)試結(jié)果對(duì)比
通過(guò)以上對(duì)比測(cè)試,當(dāng)攻擊數(shù)據(jù)量未達(dá)到處理器能力瓶頸時(shí),基于FPGA 的組件化抗重放攻擊模塊在處理帶寬和檢測(cè)率方面稍微優(yōu)于軟件實(shí)現(xiàn)的抗重放攻擊模塊,在降低時(shí)延方面有非常大的提升。
本文面向數(shù)據(jù)中心抗重放攻擊的安全防護(hù)需求,采用組件化的設(shè)計(jì)思想,設(shè)計(jì)了結(jié)構(gòu)清晰的架構(gòu)和簡(jiǎn)潔嚴(yán)謹(jǐn)?shù)臓顟B(tài)機(jī),并采用規(guī)范化FPGA 設(shè)計(jì),平衡了面積與速度。經(jīng)過(guò)驗(yàn)證,所提方法滿足高帶寬、低時(shí)延的數(shù)據(jù)包重放攻擊檢測(cè)和處理需求,具有高可用、可配置、可擴(kuò)展、移植性好等特點(diǎn),適用于企業(yè)級(jí)的數(shù)據(jù)中心邊界安全防護(hù),可滿足未來(lái)安全防護(hù)設(shè)備對(duì)安全資源服務(wù)化的需求。