陳松濤,徐金甫,張立朝,李軍偉
(信息工程大學(xué) 密碼工程學(xué)院,河南 鄭州 450001)
隨著集成電路制造工藝和設(shè)計水平的不斷提高,SoC(system on chip,SoC)上集成的IP核越來越多,共享總線通信結(jié)構(gòu)已不能滿足日益增長的應(yīng)用需求。片上網(wǎng)絡(luò)由于其擴(kuò)展性好、通信效率高、低功耗等優(yōu)勢,成為有效解決SoC規(guī)模擴(kuò)展問題的通信結(jié)構(gòu)[1,2]。在SoC設(shè)計過程中,安全性是不容忽視的問題。在一個嵌入式系統(tǒng)中,攻擊者可以通過病毒、木馬等手段獲取秘密信息或者修改系統(tǒng)的配置[3]。由于NoC結(jié)構(gòu)的特殊性,除了上述的安全攻擊外,還容易受到多種方式的拒絕服務(wù)攻擊(denial of services,DoS),從而使系統(tǒng)的性能下降,甚至不能正常工作[4,5]。
為了應(yīng)對片上網(wǎng)絡(luò)的拒絕服務(wù)攻擊,文獻(xiàn)[6]設(shè)計了基于優(yōu)先級的仲裁機(jī)制,把重要數(shù)據(jù)包設(shè)定為較高的優(yōu)先級,從而在網(wǎng)絡(luò)堵塞時保障重要信息的傳輸,但對惡意的拒絕服務(wù)攻擊,該方案卻無能為力;文獻(xiàn)[7]在網(wǎng)絡(luò)接口和路由器之間加入了安全模塊,過濾無效的目標(biāo)節(jié)點(diǎn)地址以及調(diào)節(jié)該從節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)的流量,然而該方案造成了較大的傳輸延時;文獻(xiàn)[8]提出了一個實(shí)時檢測機(jī)制,通過分析兩個節(jié)點(diǎn)之間數(shù)據(jù)傳輸延時的大小,判斷是否遭受到攻擊,然而這種方案的判定結(jié)果容易受到網(wǎng)絡(luò)擁塞狀況的影響。
針對上述方案存在的不足,本文分析了造成拒絕服務(wù)的不同種類攻擊方式,利用攻擊樹模型,建立相應(yīng)的片上網(wǎng)絡(luò)DoS攻擊樹。設(shè)計了能抵御多種攻擊方式的安全路由器,通過在路由器內(nèi)嵌入安全模塊和機(jī)制,檢測和抵抗DoS攻擊,從而保證NoC上的數(shù)據(jù)正常傳輸。
為了應(yīng)對不同種類的拒絕服務(wù)攻擊,提出有針對性的解決方案,需要首先對造成NoC拒絕服務(wù)的攻擊方式進(jìn)行分析,建立相應(yīng)的攻擊模型,對攻擊方式進(jìn)行梳理和總結(jié)。
攻擊樹是用來描述在不同攻擊下的系統(tǒng)安全性。如圖1所示,把攻擊產(chǎn)生后果或危害G0作為攻擊樹結(jié)構(gòu)的根節(jié)點(diǎn),把攻擊者造成危害使用的方法G1,G2…Gn作為更低一級的分支節(jié)點(diǎn)。一個系統(tǒng)可能有好幾個與之安全性相關(guān)的攻擊樹,每一個攻擊樹都列舉出了攻擊者為了造成攻擊發(fā)生可以使用的方法,攻擊樹的每條路徑都代表了不同的攻擊方法[9,10]。

圖1 攻擊樹
攻擊樹的每個節(jié)點(diǎn)都可以被分解為多個下級子節(jié)點(diǎn),在OR結(jié)構(gòu)的攻擊樹,只要有一個子節(jié)點(diǎn)的攻擊行為發(fā)生,根節(jié)點(diǎn)的攻擊就會被實(shí)現(xiàn),在AND結(jié)構(gòu)的攻擊樹,只有當(dāng)所有的子節(jié)點(diǎn)的攻擊行為發(fā)生時,根節(jié)點(diǎn)的攻擊才會被實(shí)現(xiàn)。OR攻擊樹結(jié)構(gòu)如圖1(a)所示,G1,G2…Gn只要有一個發(fā)生,G0就能實(shí)現(xiàn)。AND攻擊樹結(jié)構(gòu)如圖1(b)所示,只有當(dāng)G1,G2…Gn全部發(fā)生時,G0才會實(shí)現(xiàn)。在一個攻擊樹中,可能有多級節(jié)點(diǎn),既有OR結(jié)構(gòu)的又有AND結(jié)構(gòu)的。
目前NoC廣泛使用數(shù)據(jù)包交換和蟲孔路由的方式進(jìn)行通信,數(shù)據(jù)包在網(wǎng)絡(luò)上傳播時,被分解為頭微片(Head flit),若干個負(fù)載微片(Body flit)和尾微片(Tail flit),頭微片里包含了源節(jié)點(diǎn)地址、目標(biāo)節(jié)點(diǎn)地址、存儲地址、操作類型、優(yōu)先級等信息,負(fù)載微片是要傳輸?shù)臄?shù)據(jù),尾微片出現(xiàn)時表示該數(shù)據(jù)包將要傳輸完成。
根據(jù)NoC上數(shù)據(jù)傳輸?shù)奶攸c(diǎn),本文對造成DoS的攻擊方式進(jìn)行分析,用攻擊樹的方式列舉出了不同的攻擊方式。如圖2所示,共有3種方式會使NoC的性能下降(G0),造成DoS攻擊。
(1)攻擊者利用軟件攻擊的方式(如溢出攻擊),在IP核上執(zhí)行惡意的程序代碼,發(fā)送大量無用的數(shù)據(jù)包占據(jù)帶寬(G1)。
(2)受到攻擊的IP核發(fā)送的數(shù)據(jù)包的源節(jié)點(diǎn)地址或目標(biāo)節(jié)點(diǎn)地址是無效的(G2)。當(dāng)源節(jié)點(diǎn)地址不等于本地節(jié)點(diǎn)地址時(G4),應(yīng)答數(shù)據(jù)包就不能到達(dá)發(fā)起操作的IP核。無效的目標(biāo)節(jié)點(diǎn)地址又可分為兩種情況,目標(biāo)節(jié)點(diǎn)地址和源節(jié)點(diǎn)地址相同(G5),目標(biāo)節(jié)點(diǎn)地址超過了網(wǎng)絡(luò)的邊界(G6)。
(3)惡意破壞路由器(G3)。惡意破壞路由器最常見的方法是修改路由表(G7),使數(shù)據(jù)沒有從正確的輸出端口輸出,從而造成網(wǎng)絡(luò)的堵塞或不能正常工作。

圖2 NoC上DoS攻擊樹
為了應(yīng)對上面提到的攻擊手段,抵抗DoS攻擊,保證NoC的正常工作,本文在路由器中加入了安全模塊和機(jī)制,以提高NoC的安全性。
NoC上的IP核是通過路由器進(jìn)行通信的,傳統(tǒng)的路由器包括了4個主要的組件:輸入緩存(Buffer)、路由邏輯(Routing logic)、仲裁邏輯(Arbiter)、交叉開關(guān)(Crossbar)[11]。輸入緩存臨時存儲經(jīng)過路由器的數(shù)據(jù),路由邏輯根據(jù)目標(biāo)地址和路由算法為數(shù)據(jù)包選擇合適的輸出端口,仲裁邏輯決定哪一個輸入緩存中的數(shù)據(jù)可以使用交叉開關(guān),交叉開關(guān)把數(shù)據(jù)包從輸入端口送到正確的輸出端口[12]。
安全模塊一般在網(wǎng)絡(luò)接口或路由器內(nèi)實(shí)現(xiàn),在本文中,為了抵御上述提到的各種攻擊,要對數(shù)據(jù)包的地址進(jìn)行驗(yàn)證和監(jiān)視網(wǎng)絡(luò)的流量,因此我們在路由器中設(shè)計并實(shí)現(xiàn)了安全模塊(security module,SM),如圖3所示,是標(biāo)準(zhǔn)路由器加入安全模塊之后的結(jié)構(gòu)圖。安全模塊主要包括有地址過濾模塊、流量調(diào)節(jié)模塊、端口監(jiān)視模塊。地址過濾模塊和流量調(diào)節(jié)模塊在本地輸入端口處實(shí)現(xiàn),在數(shù)據(jù)包從本地輸入端口進(jìn)入網(wǎng)絡(luò)時,分別實(shí)現(xiàn)數(shù)據(jù)包的地址過濾和流量帶寬的調(diào)節(jié)。端口監(jiān)視模塊在輸出端口實(shí)現(xiàn),通過對各輸出端口流量的進(jìn)行監(jiān)視,發(fā)現(xiàn)因路由表破壞造成的輸出端口流量異常。

圖3 安全路由器結(jié)構(gòu)
地址過濾模塊(address filter module,AFM)的結(jié)構(gòu)如圖4所示,該模塊包括了3個主要的部分:數(shù)據(jù)包解析,比較器和控制器。數(shù)據(jù)包解析模塊負(fù)責(zé)對數(shù)據(jù)包進(jìn)行分解,得到相應(yīng)的源節(jié)點(diǎn)地址和目標(biāo)節(jié)點(diǎn)地址。比較器則主要對源地址和目標(biāo)地址進(jìn)行過濾,并把最終的檢測結(jié)果發(fā)送給控制器??刂破鲗τ诜弦蟮臄?shù)據(jù)包允許它注入網(wǎng)絡(luò),對異常的數(shù)據(jù)包則把它丟棄,并發(fā)送中斷信號到IP核,通知系統(tǒng)遭受到無效地址攻擊。

圖4 地址過濾模塊結(jié)構(gòu)
比較器是地址過濾模塊最主要的部件,它根據(jù)已經(jīng)存儲在模塊內(nèi)的本地節(jié)點(diǎn)地址和網(wǎng)絡(luò)邊界大小,比較源節(jié)點(diǎn)地址是否等于本地節(jié)點(diǎn)的地址,目標(biāo)節(jié)點(diǎn)地址是否等于本地節(jié)點(diǎn)的地址以及是否超過了網(wǎng)絡(luò)邊界。當(dāng)源節(jié)點(diǎn)地址不等于本地節(jié)點(diǎn)地址時,應(yīng)答回來的數(shù)據(jù)包就會找不到正確的源地址,當(dāng)目標(biāo)節(jié)點(diǎn)地址等于本地節(jié)點(diǎn)地址時,就會無效地消耗路由資源,當(dāng)目標(biāo)節(jié)點(diǎn)地址超過網(wǎng)絡(luò)邊界時,數(shù)據(jù)包找不到目的節(jié)點(diǎn)就會在網(wǎng)絡(luò)上一直傳輸,所有這些都會造成無用的帶寬消耗。
由于在路由器的路由計算模塊中,需要數(shù)據(jù)包的源地址和目標(biāo)地址來進(jìn)行路由計算。因此在地址過濾模塊中,數(shù)據(jù)包解析模塊就可以不用額外實(shí)現(xiàn),而直接利用路由計算模塊中得到的源地址和目標(biāo)地址。并且,數(shù)據(jù)包地址比較和路由計算過程可并行進(jìn)行,從而可以有效減少地址過濾帶來的傳輸延時。
為了防止受到攻擊的IP核發(fā)送過多的數(shù)據(jù)包到同一個目標(biāo)地址,從而占據(jù)帶寬和影響網(wǎng)絡(luò)性能。本文在本地輸入端口處實(shí)現(xiàn)了一個流量調(diào)節(jié)模塊(flow regulator module,F(xiàn)RM),它的結(jié)構(gòu)如圖5所示,包括了4個主要的部分:數(shù)據(jù)包解析、計數(shù)器、控制器和計算單元。與地址過濾模塊類似,數(shù)據(jù)包解析也可由路由器內(nèi)本來存在的模塊完成,而不用額外實(shí)現(xiàn)。

圖5 流量調(diào)節(jié)模塊結(jié)構(gòu)
計數(shù)器負(fù)責(zé)記錄傳輸一個數(shù)據(jù)包所花費(fèi)的時間,當(dāng)一個數(shù)據(jù)包的頭微片開始傳輸時,控制器使計數(shù)器1開始工作,每一個時鐘周期加1??刂破鞲鶕?jù)記錄的時間和系統(tǒng)分配給該IP核的最大帶寬判斷帶寬消耗情況,當(dāng)數(shù)據(jù)包注入網(wǎng)絡(luò)的速率大于系統(tǒng)分配給該IP核的最大帶寬時,控制器就會啟動計算單元,計算單元根據(jù)系統(tǒng)允許的傳輸速率(相應(yīng)的時間已存儲在計算單元)和計數(shù)器1計錄的時間,計算出傳輸數(shù)據(jù)包時需要插入的時間間隔。計算單元把得到的時間間隔傳送給計數(shù)器2,在一個數(shù)據(jù)包傳輸完成后,計數(shù)器2以計算單元計算出的時間間隔做減法運(yùn)算,每個時鐘周期減1,當(dāng)計數(shù)器為0時,控制器才允許下一個數(shù)據(jù)包開始傳輸。
路由計算通常是通過路由表或路由邏輯實(shí)現(xiàn)的,無論是確定性路由算法還是自適應(yīng)路由算法都可以采用路由表,路由表一般是由存儲部件(如查找表)實(shí)現(xiàn)的。路由信息在系統(tǒng)初始化時需要被正確的配置,如果攻擊者非法修改了路由表,就會影響到網(wǎng)絡(luò)的通信,使數(shù)據(jù)包不能選擇最佳的路徑,甚至造成系統(tǒng)不能正常工作等后果[13]。
一個修改路由表攻擊的例子如圖6所示,在一個4×4的2D mesh片上網(wǎng)絡(luò)上,假設(shè)路由算法使用的是XY路由算法,即數(shù)據(jù)包先沿X方向傳輸,再沿Y方向傳輸。表1(a)是路由端口ID和方向之間的對應(yīng)關(guān)系,表1(b)是正常情況下路由器(1,0)的路由表,表1(c)是路由器被惡意攻擊后的路由表。經(jīng)過分析可知,當(dāng)數(shù)據(jù)包經(jīng)過節(jié)點(diǎn)(1,0)時,將不會到達(dá)正確的目的地,而是都從本地輸出端口輸出,到達(dá)節(jié)點(diǎn)(1,0)處的IP核,從而造成本地輸出端口流量堵塞,這樣不僅會影響到正常應(yīng)用對節(jié)點(diǎn)(1,0) 處IP的訪問,而且整個系統(tǒng)的功能也將受到嚴(yán)重的影響。
在上述的攻擊發(fā)生之后,可以看出,本地輸出端口的流量較多,而其它方向的輸出端口則沒有數(shù)據(jù)包輸出。因此,為了抵抗路由表攻擊,本文在每個路由器內(nèi)部設(shè)計了一個端口監(jiān)視模塊(port monitor module,PMM),對每個輸出端口的流量進(jìn)行監(jiān)視,端口監(jiān)視模塊的結(jié)構(gòu)如圖7所示。模塊在路由器每個輸出端口都有一個計數(shù)器,系統(tǒng)開始工作以后,計數(shù)器的值每個時鐘周期加1,當(dāng)有數(shù)據(jù)包從輸出端口輸出時,計數(shù)器的值復(fù)位為0。當(dāng)計數(shù)器的值超過設(shè)定的閾值時,發(fā)送timeout信號給寄存器寫模塊,寄存器寫模塊在相應(yīng)的狀態(tài)寄存器位寫1,當(dāng)控制器讀到狀態(tài)寄存器有比特位的值為1時,則表明該路由器受到了路由表攻擊。控制器隨即發(fā)送路由節(jié)點(diǎn)地址,通知系統(tǒng)該路由器受到了路由表攻擊。嵌入式系統(tǒng)都有一些固定的應(yīng)用需要執(zhí)行,因此利用系統(tǒng)仿真模型,就可以得到計數(shù)器的閾值。監(jiān)視模塊和路由器的其它操作是并行執(zhí)行的,所以它并不會帶來任何額外的傳輸延時,對系統(tǒng)的性能也不會有任何的影響。

圖6 NoC結(jié)構(gòu)

端口方向端口IDlocal0east1west2south3north4

(b)正常情況下路由器(1,0)的路由表

(c)受到攻擊后路由器(1,0)的路由表

圖7 端口監(jiān)視器結(jié)構(gòu)
本文用verilog硬件描述語言在路由器內(nèi)實(shí)現(xiàn)安全模塊,并搭建一個4×4的片上網(wǎng)絡(luò),模擬不同方式的DoS攻擊,編寫相應(yīng)的測試激勵,驗(yàn)證安全路由器的防護(hù)效果,實(shí)驗(yàn)結(jié)果見表2,安全路由器能夠抵抗和檢測3種DoS攻擊。并且地址過濾模塊只增加了一個時鐘周期的傳輸延時,而由于流量調(diào)節(jié)和端口監(jiān)視模塊與路由器的其它功能模塊是并行工作的,因此,在正常情況下,這兩個模塊并不會增加額外的傳輸延時。

表2 各方案防護(hù)效果比較
本文使用synopsys design compiler在55nm工藝條件下對安全模塊和路由器進(jìn)行綜合,分析安全模塊與整個安全路由器的面積占比。路由器有5個端口,數(shù)據(jù)通道位寬是64位,每個端口的buffer可以緩存是8個微片。綜合結(jié)果見表3,為路由器和各個安全子模塊的面積。
安全路由器各模塊面積占比如圖8所示,安全模塊SM占整個路由器的面積比例是8.9%,其中地址過濾模塊AFM、流量調(diào)節(jié)模塊FRM、端口監(jiān)視模塊PMM分別占安全路由器的比例是2.3%、3.1%、3.5%。因此,安全模塊并沒有顯著增加路由器的面積。

表3 路由器與安全模塊面積

圖8 安全路由器各模塊面積占比
本文分析了造成DoS攻擊的不同方式,并用攻擊樹模型對攻擊進(jìn)行總結(jié)歸納,得出無效地址、無用數(shù)據(jù)包占據(jù)帶寬、修改路由表是比較常見的攻擊方式。為了抵御不同種類的DoS攻擊,設(shè)計了安全路由器,在路由器內(nèi)嵌入安全模塊,包括地址過濾模塊、流量調(diào)節(jié)模塊、端口監(jiān)視模塊。用硬件描述語言實(shí)現(xiàn)安全模塊,仿真綜合結(jié)果表明,安全模塊能夠有效抵御和檢測DoS攻擊,并且安全模塊并沒有顯著增加整個路由器的面積和影響網(wǎng)絡(luò)的性能。為了進(jìn)一步提高片上網(wǎng)絡(luò)通信的安全性,在未來的工作中,將繼續(xù)研究更復(fù)雜的DoS攻擊,例如分布式拒絕服務(wù)攻擊(distributed denial of service,DDoS),并找到相應(yīng)的解決方案。
[1]Fiorin L.High-level services for networks-on-chip[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2015,34(8):1344-1357.
[2]Chen S J,Lan Y C,Tsai W C,et al.Reconfigurable networks-on-chip[M].Springer New York,2012.
[3]Sepúlveda J,Flórez D,Gogniat G.Reconfigurable group-wise security architecture for NoC-based MPSoCs protection[C]//Proceedings of the 28th Sympo-sium on Integrated Circuits and Systems Design.ACM,2015:26.
[4]Biswas A K,Nandy S K,Narayan R.Network-on-chip router attacks and their prevention in MP-SoCs with multiple trusted execution environments[C]//IEEE International Conference on Electronics,Computing and Communication Technologies.IEEE,2015.
[5]Boraten T,Kodi A K.Mitigation of denial of service attack with hardware trojans in NoC architectures[C]//IEEE International Parallel and Distributed Processing Symposium.IEEE Computer Society,2016:1091-1100.
[6]Wang Y,Suh G E.Efficient timing channel protection for on-chip networks[C]//Sixth IEEE/ACM International Symposium on Networks on Chip.IEEE,2012:142-151.
[7]Baron S,Silva Wangham M,Albenes Zeferino C.Security mechanisms to improve the availability of a network-on-chip[C]//IEEE 20th International Conference on Electronics,Circuits,and Systems.New Delhi:IEEE,2013:609-612.
[8]Js R,Ancajas D M,Chakraborty K,et al.Runtime detection of a bandwidth denial attack from a rogue network-on-chip[C]//The International Symposium on Networks on Chip.Vancouver:ACM,2015:1-8.
[9]LG Metzger,CA Zeferino,MJS Florez.Modeling attacks on NoC-based SoCs[EB/OL].[2016-12-21].http://www.sbmicro.org.br/images/stories/Eventos/sforum2014/28.pdf.
[10]HE Mingliang,CHEN Zemao,LONG Xiaodong.Improvement of attack tree model based on analytic hierarchy process[J].Application Research of Computers,2016,33(12):3755-3758(in Chinese).[何明亮,陳澤茂,龍小東.一種基于層次分析法的攻擊樹模型改進(jìn)[J].計算機(jī)應(yīng)用研究,2016,33(12):3755-3758.]
[11]LI Yanhua.Research on key technologies of mapping and router in network-on-chip[D].Shanghai:East China Normal University,2013(in Chinese).[劉炎華.片上網(wǎng)絡(luò)映射及路由器關(guān)鍵技術(shù)研究[D].上海:華東師范大學(xué),2013.]
[12]Biswas A K,Nandy S K,Narayan R.Router attack toward NoC-enabled MPSoC and monitoring countermeasures against such threat[J].Circuits,Systems,and Signal Processing,2015,34(10):3241-3290.
[13]Fang D,Li H,Han J,et al.Robustness analysis of mesh-based network-on-chip architecture under flooding-based denial of service attacks[C]//Eighth International Conference on Networking,Architecture and Storage.Xi’an:IEEE,2013:178-186.