基于TCPN的铁路时间同步网延迟攻击应对策略研究
2022-08-09赵庭达武晓春
赵庭达,武晓春
(兰州交通大学自动化与电气工程学院,兰州 730070)
随着铁路列车运行速度的不断提高,铁路内部各个系统时间的一致性对行车安全至关重要,如时间不同步,则会造成故障定位不准确、影响调度指挥或引发其他安全问题。在早期信号系统设备中,由于一些网络设备或涉及安全分析的系统缺少时间同步接口,导致时间偏差较大。在7.23事故后的铁路安全大检查中,发现各个信号设备系统的时间信息不统一,具有一定安全隐患,需进行整改[1]。而随着综合网管在铁路中的引入[2],系统内部时间信号的统一变得越发重要。由于上述情况,铁路时间同步网在铁路系统中得到了越来越多的应用,保证了铁路系统时间信息的准确性和一致性。
我国铁路时间同步网采用时间同步协议NTP,然而,近年来针对NTP协议的攻击在全球范围内已造成了数以亿计的经济损失[3]。目前,国内外学者对时间同步的安全性进行了一定研究,李欣等[4]分析了近年来针对NTP的典型攻击手段和行为,提出了安全建议;张昊磊,张友鹏等[5-7]对铁路时间同步网进行安全性分析,指出NTP协议在身份认证过程中容易遭受中间人攻击,存在安全隐患;张友鹏[8]通过大数据方法监测铁路时间同步网异常流量,以达到检测NTP协议DDOS攻击的目的;ULLMANN[9]分析了针对NTP协议的延迟攻击,说明了攻击原理及对时间同步过程的影响,并提出了检测方法。延迟攻击不需对时间同步报文进行篡改就可以破坏时间同步的准确性,因此,更加难以检测,容易给系统带来安全隐患。已有研究中,并未涉及到NTP协议延迟攻击的缓解方法,对延迟攻击的应对策略进行研究并提出缓解方法具有重要意义。
有色Petri网(CPN)作为一种图形化的建模语言,适用于通信、同步以及资源共享等类型系统的建模。TCPN在CPN的基础上增加了时间参数,用以表述变迁发生所经过的时间,相比CPN能更好地对时间同步过程进行描述,本次重点分析NTP协议的对时阶段,对延迟攻击进行建模仿真,并提出应对策略。
1 铁路时间同步网组网结构
我国铁路时间同步网完成铁路各个系统内部时间的统一,其结构包括了时间同步节点、众多被同步设备和时间同步链路。时间同步节点分3级,按照主从树结构排列,一、二、三级时间节点分别位于国铁集团调度中心,铁路局或客专调度所,车站、段、所等位置[10],铁路时间同步网结构如图1所示。
图1 铁路时间同步网结构
我国铁路时间同步网采用自上而下逐级同步的方式。其中,一级时间同步节点内的接收机通过接收天线引入外部时间标准源,并将时间信号传给一级母钟设备[11]。一级母钟按照设定的时间同步周期与诸多二级时间节点和被同步设备等进行时间同步,二级时间节点接收一级时间节点的时间信号,更新自身时间并向三级时间节点和被同步设备提供时间信号,三级时间节点接收二级时间节点的时间信号,更新自身时间并与各被同步设备进行时间同步,当各时间同步节点无时间信号输入时进入守时状态,在一定时间精度内与外部标准时间源保持时间同步[12]。
2 NTP协议和时间有色Petri网
2.1 NTP协议
网络时间协议(NTP)于1985年美国特拉华大学提出,其时间同步精度可达到毫秒级。我国铁路时间同步网采用NTP主从工作模式,通过服务器与客户端之间的往返信息包来确定两地时钟的差值和报文在网络中传输的延时[13]。
NTP协议的时间同步分为认证阶段和对时阶段。在认证阶段,服务器与客户端完成初始关联、交换证书和Cookie请求[14],之后进入对时阶段。在对时阶段,客户端与服务器通过交互报文来更新客户端时间并完成时间同步,客户端与服务器在对时阶段的报文交换如图2所示[15]。
图2 NTP协议对时过程
图2中左侧为服务器时间,右侧为客户端时间。当开始进行时间同步时,客户端向服务器发送时间同步请求报文syns_Request,其中,记录了报文的发送时间t1;服务器接收到时间请求报文后记录报文接收时间t2并编制时间同步回复报文Syns_Response,其中,记录了报文的发送时间t3以及t1和t2;客户端收到时间同步回复报文之后记录时间t4,此时,客户端记录了t1,t2,t3和t4。由于NTP协议假定时间同步请求报文与时间同步回复报文的传输延迟相同,因此,NTP协议的报文传输延迟可表示为
(1)
式中,P为传输延迟,根据t1,t2和P,可计算出服务器与客户端之间的时间偏移量
(2)
式中,D为时间偏移量,客户端通过计算出的偏移量来调整自身时间与服务器一致,调整后的客户端时间tc=tc0+D(tc0为未调整的客户端时间)。
2.2 时间有色Petri网
时间有色Petri网的形式化定义为[16-19]
TCPN=(∑,P,T,A,N,C,E,G,τ)
(3)
式中,∑为一个非空有限集合,称为颜色集;P为一个有限集合,表示模型中所有库所的集合,库所通常用圆形表示;T为一个有限集合,表示模型中所有变迁的集合,变迁在模型中用矩形表示;A为有向弧的集合,表示为P×T∪T×P,有向弧的两端分别为库所和变迁;N为节点函数,是从A映射至P×T∪T×P的函数;C为颜色函数,是从P映射到∑的函数,即为每个库所定义一个颜色集;E为弧表达式函数;G为守卫表达式函数,表示变迁发生的约束;τ为时间参数,时间有色Petri网模型为变迁增加了时间参数,用来表示变迁发生所经过的时间,适用于描述对时阶段的时间变化。此外,模型中还存在一个表示模拟器时间的全局时钟,用于表示模型的运行时间并协调各个变迁发生的优先度,以保证模型中各个变迁的有序发生。
3 铁路时间同步网时间同步模型的建立
3.1 NTP协议在正常情况下时间同步模型
正常情况下,时间同步周期结束后客户端时间应与服务器时间相同。根据NTP协议的时间同步原理和信息交互过程,使用CPN Tools工具建立一级时间同步节点和子钟设备之间的时间同步过程模型,在主从工作模式下,一级节点母钟设备为服务器,子钟设备为客户端,其时间同步过程模型如图3所示。
图3 NTP协议时间同步模型
模型模拟了正常情况下NTP协议时间同步过程,为对时间同步的周期性进行描述,该模型可循环运行,模型中各个库所和变迁的含义如表1、表2所示。
表1 时间同步模型中各个库所的含义
在模型中,表示时间的库所颜色集为T,其代表令牌值的数据类型为浮点型;表示时间周期数的库所N0和N1颜色集为NU,代表令牌值的数据类型为整型。库所Cli至库所R0的路径表示时间同步请求报文的传递过程,在一级节点收到请求报文后,通过变迁S1获得时间t3,并经由库所res和库所TS将时间t1、t2、t3传递给子钟设备,之后通过变迁AD来计算偏移量并对子钟设备时间进行调整。变迁TN(N=1…4)表示时间保持器,其保证了在仿真器时间不断流逝的情况下令牌的时间能实时更新,而指向TN的抑制弧保证了变迁TN不会影响到时间t3与偏移量的计算。
表2 时间同步模型中各个变迁的含义
3.2 仿真验证
使用CPN Tools工具对模型进行仿真,为对模型的效果进行验证,一级节点与子钟设备的初始时间设定为互不相等的正数,并进行多次试验。当子钟设备发送请求报文后,由时间保持器模拟子钟设备时间的流逝,当一级节点收到请求报文时,记录时间t1和t2,之后发送时间同步回复报文,并记录发送时间t3,当子钟设备收到时间同步回复报文时,根据其中记录的时间t1、t2和t3计算时间偏移量并调整子钟设备。在多组不同母钟与子钟时间初值情况下,对模型进行多次仿真测试,仿真结果如表3所示。
表3 时间同步模型仿真测试结果 ms
由仿真结果可知,当子钟设备的初始时间与母钟设备不同时,在模型运行结束后,各组子钟设备时间经过调整均与母钟设备时间一致,验证了本文所建立的NTP时间同步模型的正确性。
4 铁路时间同步网延迟攻击
攻击者通过伪造服务器、中间人攻击等方式对数据包进行延迟操纵,在NTP协议时间同步报文的通信链路中引入延迟[5]。延迟攻击破坏NTP所假定的主从网络延迟对称性,进而影响偏移量计算,达到破坏时间同步准确性的目的[20]。
假定攻击者在一级节点母钟向子钟设备发送时间同步回复报文的过程中引入延迟,引入延迟值μ,则有
(4)
式中,Dattack1为受到攻击时子钟设备计算的偏移量。由结果可知,在一级节点回复报文过程中引入延迟值为μ的延迟攻击后,计算偏移量会出现μ/2的偏差,若以该偏移量对子钟设备时间进行调整,在时间同步周期结束时子钟设备时间落后一级节点时间μ/2。
设μm和μm-1分别为攻击者在开始攻击后第m个时间同步周期和第m-1个时间同步周期引入的延迟,在开始攻击后第m个周期开始时,子钟设备时间落后一级节点μm-1/2,结合公式(2)可得
(5)
其中,Dattackm为攻击者引入延迟攻击的第m个周期的计算偏移量,dm为非攻击因素造成的客户端时间偏差。由式(5)可知,当μm=μm-1,即攻击者在前后两个时间同步周期引入的延迟相同时,除第一个时间同步周期之外,前后两个时间同步周期所计算的偏移量与未受攻击时所计算的偏移量一致,故客户端难以通过监测计算偏移量来确定是否遭受了延迟攻击。
由以上分析可知,在受到延迟攻击后,客户端所计算的偏移量只在引入延迟的第1个周期存在变化,同时延迟攻击又避免了对时间同步报文内容的篡改,因此,延迟攻击具有破坏时间同步的精确度、不易察觉的特点。在铁路时间同步网中,由于采用了从一级时间同步节点逐级向下进行时间同步的方式,当时间同步链路遭受攻击后,在攻击节点下游所有设备均会收到错误的时间信号,从而对铁路系统内部时间的一致性造成很大影响。
为检测延迟攻击,增加铁路时间同步网应对网络攻击的弹性,建议充分利用铁路时间同步网中引入外部标准时间源(GPS/北斗)的时间同步设备。在时间同步过程中,引入外部标准时间源的客户端在与服务器完成时间同步报文交互后不对自身时钟进行调整,而是验证所计算的偏移量。若在该客户端上游未发生攻击时,其计算偏移量应接近于0,若计算的偏移量违反超过一定次数时便会报警,表明受到了延迟攻击。
5 延迟攻击的缓解
5.1 缓解方法
为应对延迟攻击并提高时间同步的稳定性,应提出NTP协议延迟攻击的缓解策略,当收到报警时,客户端应调整自身时钟尽量与服务器保持一致。提出了一种通过求取引入延迟近似值来缓解攻击的方法,具体方法如下。
由式(4)可知,当受到攻击时,时间同步周期结束后客户端时间落后服务器时间μ/2,因此,只需确定μ值就可对客户端时钟进行缓解。为确定μ值,客户端计算并存储偏移量的均值Avg(n),可表示为
(6)
式中,n为时间同步周期数,D(n)为第n个周期的计算偏移量。设攻击者在第n+1个周期进行延迟攻击,客户端在第n+m个周期收到报警,当收到报警时,客户端储存了Avg(n),…,Avg(n+m)和D(n),…,D(n+m),由式(5)、式(6)可得到各个周期的μ值为
(7)
式中,k为小于m的正整数,由于影响时钟漂移的湿度、温度和其他因素在很长一段时间内逐渐变化,且很少出现急剧变化[21],则可由Avg(n)代替di,各周期的μ值也可表示为
(8)
在求出每个周期的μ值后,由各个周期μ值的平均值来表示引入延迟的近似值,在攻击结束前用该近似值的1/2来调整客户端时钟,从而达到缓解延迟攻击的目的。
5.2 缓解方法建模
为对缓解方法进行仿真验证,需对上文中的时间同步模型进行拓展。首先,假定攻击者在一级节点向子钟设备发送回复报文的过程中引入延迟攻击,在模型中加入攻击节点来对延迟攻击进行模拟,加入的延迟攻击部分如图4所示。
图4 延迟攻击节点模型
在原时间同步模型中的库所P1和TS之间引入了一个变迁ATK,在令牌经过此变迁时会增加令牌的时间戳,时间戳的增加量由函数DELAY确定,以此模拟延迟攻击。在原模型的基础上加入攻击部分后,继续对模型进行拓展,加入延迟攻击缓解部分,如图5所示。
图5 NTP延迟攻击缓解模型
在进行了一个时间同步周期后,子钟设备计算的偏移量通过变迁SW1传递给缓解部分,之后由缓解部分对偏移量进行计算处理,模型中各个库所和变迁的含义如表4所示。
模型由变迁CAL1计算未受攻击时的Avg(n),由变迁CAL3计算攻击者引入延迟μ的近似值,在收到警报后,由变迁AD2完成对子钟设备的缓解,缓解后代表子钟设备时间的令牌值存放在库所FC中。
5.3 仿真验证
为验证缓解方法的有效性,使用CPN Tools仿真功能对拓展后模型进行仿真验证。仿真时,在第11个时间同步周期引入延迟攻击,设偏移量违规次数阈值为3,时间同步周期间的时间间隔为3 min,根据时间间隔并参考晶体时钟的漂移率,时间偏差设定为2~3 ms。在开始缓解后,分别测定了在不同引入延迟下使用和未使用缓解方法时的缓解效果,其仿真结果如表5所示。
由仿真结果可知,在不同引入延迟值的情况下,使用缓解方法后的主从偏移量绝对值均小于2 ms,缓解了延迟攻击带来的影响,与理论分析相符,仿真结果验证了缓解方法和缓解模型的有效性和正确性。
6 结语
(1)使用时间有色Petri网建立NTP时间同步模型,利用时间有色Petri网的时间特性来对时间同步效果进行量化分析,并验证了模型的正确性,为时间同步协议的进一步研究提供了模型参考。
(2)针对铁路时间同步协议延迟攻击,分析了延迟攻击对时间同步过程造成的影响,并建议增加准确的外部标准时间源,以增加应对攻击的弹性。
(3)根据引入延迟与计算偏移量的关系,提出了延迟攻击的缓解方法,通过模型对缓解方法进行仿真后可知,缓解过后的时间偏差小于2 ms,验证了所提方法的有效性。