基于片上网络的安全路由器研究与设计
2018-03-19陈松涛徐金甫张立朝李军伟
陈松涛,徐金甫,张立朝,李军伟
(信息工程大学 密码工程学院,河南 郑州 450001)
0 引 言
随着集成电路制造工艺和设计水平的不断提高,SoC(system on chip,SoC)上集成的IP核越来越多,共享总线通信结构已不能满足日益增长的应用需求。片上网络由于其扩展性好、通信效率高、低功耗等优势,成为有效解决SoC规模扩展问题的通信结构[1,2]。在SoC设计过程中,安全性是不容忽视的问题。在一个嵌入式系统中,攻击者可以通过病毒、木马等手段获取秘密信息或者修改系统的配置[3]。由于NoC结构的特殊性,除了上述的安全攻击外,还容易受到多种方式的拒绝服务攻击(denial of services,DoS),从而使系统的性能下降,甚至不能正常工作[4,5]。
为了应对片上网络的拒绝服务攻击,文献[6]设计了基于优先级的仲裁机制,把重要数据包设定为较高的优先级,从而在网络堵塞时保障重要信息的传输,但对恶意的拒绝服务攻击,该方案却无能为力;文献[7]在网络接口和路由器之间加入了安全模块,过滤无效的目标节点地址以及调节该从节点进入网络的流量,然而该方案造成了较大的传输延时;文献[8]提出了一个实时检测机制,通过分析两个节点之间数据传输延时的大小,判断是否遭受到攻击,然而这种方案的判定结果容易受到网络拥塞状况的影响。
针对上述方案存在的不足,本文分析了造成拒绝服务的不同种类攻击方式,利用攻击树模型,建立相应的片上网络DoS攻击树。设计了能抵御多种攻击方式的安全路由器,通过在路由器内嵌入安全模块和机制,检测和抵抗DoS攻击,从而保证NoC上的数据正常传输。
1 DoS攻击分析
为了应对不同种类的拒绝服务攻击,提出有针对性的解决方案,需要首先对造成NoC拒绝服务的攻击方式进行分析,建立相应的攻击模型,对攻击方式进行梳理和总结。
1.1 攻击树模型
攻击树是用来描述在不同攻击下的系统安全性。如图1所示,把攻击产生后果或危害G0作为攻击树结构的根节点,把攻击者造成危害使用的方法G1,G2…Gn作为更低一级的分支节点。一个系统可能有好几个与之安全性相关的攻击树,每一个攻击树都列举出了攻击者为了造成攻击发生可以使用的方法,攻击树的每条路径都代表了不同的攻击方法[9,10]。
图1 攻击树
攻击树的每个节点都可以被分解为多个下级子节点,在OR结构的攻击树,只要有一个子节点的攻击行为发生,根节点的攻击就会被实现,在AND结构的攻击树,只有当所有的子节点的攻击行为发生时,根节点的攻击才会被实现。OR攻击树结构如图1(a)所示,G1,G2…Gn只要有一个发生,G0就能实现。AND攻击树结构如图1(b)所示,只有当G1,G2…Gn全部发生时,G0才会实现。在一个攻击树中,可能有多级节点,既有OR结构的又有AND结构的。
1.2 NoC上的DoS攻击分析
目前NoC广泛使用数据包交换和虫孔路由的方式进行通信,数据包在网络上传播时,被分解为头微片(Head flit),若干个负载微片(Body flit)和尾微片(Tail flit),头微片里包含了源节点地址、目标节点地址、存储地址、操作类型、优先级等信息,负载微片是要传输的数据,尾微片出现时表示该数据包将要传输完成。
根据NoC上数据传输的特点,本文对造成DoS的攻击方式进行分析,用攻击树的方式列举出了不同的攻击方式。如图2所示,共有3种方式会使NoC的性能下降(G0),造成DoS攻击。
(1)攻击者利用软件攻击的方式(如溢出攻击),在IP核上执行恶意的程序代码,发送大量无用的数据包占据带宽(G1)。
(2)受到攻击的IP核发送的数据包的源节点地址或目标节点地址是无效的(G2)。当源节点地址不等于本地节点地址时(G4),应答数据包就不能到达发起操作的IP核。无效的目标节点地址又可分为两种情况,目标节点地址和源节点地址相同(G5),目标节点地址超过了网络的边界(G6)。
(3)恶意破坏路由器(G3)。恶意破坏路由器最常见的方法是修改路由表(G7),使数据没有从正确的输出端口输出,从而造成网络的堵塞或不能正常工作。
图2 NoC上DoS攻击树
2 安全路由器结构设计
为了应对上面提到的攻击手段,抵抗DoS攻击,保证NoC的正常工作,本文在路由器中加入了安全模块和机制,以提高NoC的安全性。
NoC上的IP核是通过路由器进行通信的,传统的路由器包括了4个主要的组件:输入缓存(Buffer)、路由逻辑(Routing logic)、仲裁逻辑(Arbiter)、交叉开关(Crossbar)[11]。输入缓存临时存储经过路由器的数据,路由逻辑根据目标地址和路由算法为数据包选择合适的输出端口,仲裁逻辑决定哪一个输入缓存中的数据可以使用交叉开关,交叉开关把数据包从输入端口送到正确的输出端口[12]。
安全模块一般在网络接口或路由器内实现,在本文中,为了抵御上述提到的各种攻击,要对数据包的地址进行验证和监视网络的流量,因此我们在路由器中设计并实现了安全模块(security module,SM),如图3所示,是标准路由器加入安全模块之后的结构图。安全模块主要包括有地址过滤模块、流量调节模块、端口监视模块。地址过滤模块和流量调节模块在本地输入端口处实现,在数据包从本地输入端口进入网络时,分别实现数据包的地址过滤和流量带宽的调节。端口监视模块在输出端口实现,通过对各输出端口流量的进行监视,发现因路由表破坏造成的输出端口流量异常。
图3 安全路由器结构
3 安全子模块设计
3.1 地址过滤模块
地址过滤模块(address filter module,AFM)的结构如图4所示,该模块包括了3个主要的部分:数据包解析,比较器和控制器。数据包解析模块负责对数据包进行分解,得到相应的源节点地址和目标节点地址。比较器则主要对源地址和目标地址进行过滤,并把最终的检测结果发送给控制器。控制器对于符合要求的数据包允许它注入网络,对异常的数据包则把它丢弃,并发送中断信号到IP核,通知系统遭受到无效地址攻击。
图4 地址过滤模块结构
比较器是地址过滤模块最主要的部件,它根据已经存储在模块内的本地节点地址和网络边界大小,比较源节点地址是否等于本地节点的地址,目标节点地址是否等于本地节点的地址以及是否超过了网络边界。当源节点地址不等于本地节点地址时,应答回来的数据包就会找不到正确的源地址,当目标节点地址等于本地节点地址时,就会无效地消耗路由资源,当目标节点地址超过网络边界时,数据包找不到目的节点就会在网络上一直传输,所有这些都会造成无用的带宽消耗。
由于在路由器的路由计算模块中,需要数据包的源地址和目标地址来进行路由计算。因此在地址过滤模块中,数据包解析模块就可以不用额外实现,而直接利用路由计算模块中得到的源地址和目标地址。并且,数据包地址比较和路由计算过程可并行进行,从而可以有效减少地址过滤带来的传输延时。
3.2 流量调节模块
为了防止受到攻击的IP核发送过多的数据包到同一个目标地址,从而占据带宽和影响网络性能。本文在本地输入端口处实现了一个流量调节模块(flow regulator module,FRM),它的结构如图5所示,包括了4个主要的部分:数据包解析、计数器、控制器和计算单元。与地址过滤模块类似,数据包解析也可由路由器内本来存在的模块完成,而不用额外实现。
图5 流量调节模块结构
计数器负责记录传输一个数据包所花费的时间,当一个数据包的头微片开始传输时,控制器使计数器1开始工作,每一个时钟周期加1。控制器根据记录的时间和系统分配给该IP核的最大带宽判断带宽消耗情况,当数据包注入网络的速率大于系统分配给该IP核的最大带宽时,控制器就会启动计算单元,计算单元根据系统允许的传输速率(相应的时间已存储在计算单元)和计数器1计录的时间,计算出传输数据包时需要插入的时间间隔。计算单元把得到的时间间隔传送给计数器2,在一个数据包传输完成后,计数器2以计算单元计算出的时间间隔做减法运算,每个时钟周期减1,当计数器为0时,控制器才允许下一个数据包开始传输。
3.3 端口监视模块
路由计算通常是通过路由表或路由逻辑实现的,无论是确定性路由算法还是自适应路由算法都可以采用路由表,路由表一般是由存储部件(如查找表)实现的。路由信息在系统初始化时需要被正确的配置,如果攻击者非法修改了路由表,就会影响到网络的通信,使数据包不能选择最佳的路径,甚至造成系统不能正常工作等后果[13]。
一个修改路由表攻击的例子如图6所示,在一个4×4的2D mesh片上网络上,假设路由算法使用的是XY路由算法,即数据包先沿X方向传输,再沿Y方向传输。表1(a)是路由端口ID和方向之间的对应关系,表1(b)是正常情况下路由器(1,0)的路由表,表1(c)是路由器被恶意攻击后的路由表。经过分析可知,当数据包经过节点(1,0)时,将不会到达正确的目的地,而是都从本地输出端口输出,到达节点(1,0)处的IP核,从而造成本地输出端口流量堵塞,这样不仅会影响到正常应用对节点(1,0) 处IP的访问,而且整个系统的功能也将受到严重的影响。
在上述的攻击发生之后,可以看出,本地输出端口的流量较多,而其它方向的输出端口则没有数据包输出。因此,为了抵抗路由表攻击,本文在每个路由器内部设计了一个端口监视模块(port monitor module,PMM),对每个输出端口的流量进行监视,端口监视模块的结构如图7所示。模块在路由器每个输出端口都有一个计数器,系统开始工作以后,计数器的值每个时钟周期加1,当有数据包从输出端口输出时,计数器的值复位为0。当计数器的值超过设定的阈值时,发送timeout信号给寄存器写模块,寄存器写模块在相应的状态寄存器位写1,当控制器读到状态寄存器有比特位的值为1时,则表明该路由器受到了路由表攻击。控制器随即发送路由节点地址,通知系统该路由器受到了路由表攻击。嵌入式系统都有一些固定的应用需要执行,因此利用系统仿真模型,就可以得到计数器的阈值。监视模块和路由器的其它操作是并行执行的,所以它并不会带来任何额外的传输延时,对系统的性能也不会有任何的影响。
图6 NoC结构
端口方向端口IDlocal0east1west2south3north4
(b)正常情况下路由器(1,0)的路由表
(c)受到攻击后路由器(1,0)的路由表
图7 端口监视器结构
4 实验结果与分析
本文用verilog硬件描述语言在路由器内实现安全模块,并搭建一个4×4的片上网络,模拟不同方式的DoS攻击,编写相应的测试激励,验证安全路由器的防护效果,实验结果见表2,安全路由器能够抵抗和检测3种DoS攻击。并且地址过滤模块只增加了一个时钟周期的传输延时,而由于流量调节和端口监视模块与路由器的其它功能模块是并行工作的,因此,在正常情况下,这两个模块并不会增加额外的传输延时。
表2 各方案防护效果比较
本文使用synopsys design compiler在55nm工艺条件下对安全模块和路由器进行综合,分析安全模块与整个安全路由器的面积占比。路由器有5个端口,数据通道位宽是64位,每个端口的buffer可以缓存是8个微片。综合结果见表3,为路由器和各个安全子模块的面积。
安全路由器各模块面积占比如图8所示,安全模块SM占整个路由器的面积比例是8.9%,其中地址过滤模块AFM、流量调节模块FRM、端口监视模块PMM分别占安全路由器的比例是2.3%、3.1%、3.5%。因此,安全模块并没有显著增加路由器的面积。
表3 路由器与安全模块面积
图8 安全路由器各模块面积占比
5 结束语
本文分析了造成DoS攻击的不同方式,并用攻击树模型对攻击进行总结归纳,得出无效地址、无用数据包占据带宽、修改路由表是比较常见的攻击方式。为了抵御不同种类的DoS攻击,设计了安全路由器,在路由器内嵌入安全模块,包括地址过滤模块、流量调节模块、端口监视模块。用硬件描述语言实现安全模块,仿真综合结果表明,安全模块能够有效抵御和检测DoS攻击,并且安全模块并没有显著增加整个路由器的面积和影响网络的性能。为了进一步提高片上网络通信的安全性,在未来的工作中,将继续研究更复杂的DoS攻击,例如分布式拒绝服务攻击(distributed denial of service,DDoS),并找到相应的解决方案。
[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].计算机应用研究,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).[刘炎华.片上网络映射及路由器关键技术研究[D].上海:华东师范大学,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.