李洪波
(中国移动通信集团吉林有限公司 长春 130021)
中国移动在2002年前后完成自有同步网建设后,即大规模退租租用时钟源,完成了全网设备的时钟同步改造。随着同步网的不断发展和网络IP化演进对时间同步需求的不断增强,近年也开始在全网规范化普及NTP应用。
值得注意的是,NTP协议的便利性显而易见,安全性却往往被忽视。本文从协议自身缺陷与现网业务特性出发,举例讨论了3种常见的NTP安全问题并提出了相应的防范措施。
在没有大规模应用NTP协议之前,常常采用手工方式定期检查、修正设备的系统时间,以此来保证话单、系统日志等关键信息的准确性。即便修正不及时,系统时间也只是一个渐变的细微过程,一般不会对业务造成较大影响。但在NTP现网应用之后,我们也发现了一些手工校正时不会出现的安全问题,往往为大家所忽视。根据产生原因我们将其归纳为如下3种典型问题。
在NTP协议的算法中,NTP客户端的时间计算取决于NTP消息往返过程中的4个时间戳。当客户端与服务器端的时间差异越大时,客户端的同步跨度也就越大。但大跨度的时间跳变往往可能带来严重的后果。例如某地智能网SCP设备设置为与网络中某二级时间服务器同步。该二级时间服务器因硬件故障在某日凌晨进行了部件更换,但更换后系统时间比标准时间早了8h。当该SCP恢复与其通信时,直接将系统时间修改为“当前时间+8h”,继而导致该SCP出现VPN业务超长话单。
针对此类问题,应首先确认客户端是否支持时间同步的步长控制,支持步长控制的设备一定要设置功能开启。此时一旦时间差异超过步长间隔(例如10s),客户端不会进行同步而是上报告警信息或将其写入系统日志。这样既可以避免时间逐渐劣化的发生,又可以避免时间大跨度跳变的发生。
对于不支持步长控制而又对时间跳变敏感的设备则建议通过配置多个NTP服务端的方式避免单个NTP服务器失效,或干脆禁用NTP服务。
NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。NTP按照离外部UTC 源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。
这一时间等级的设置,也同样有利于NTP时间安全性的保证。对于一个NTP协议实现完整的客户端来说,当服务器端出现故障导致时间等级下降到低于客户端自身时间等级时,该客户端会停止继续同步,以避免时间精度随服务器持续劣化。
通过对在网设备的调查及确认,我们发现多个厂家的不同产品线都存在不支持NTP时间等级识别的问题。例如某厂家早期软交换产品因无法识别时间等级精度,与发生故障的时间服务器持续同步,最终导致用户话单异常。
一般来说,能够识别时间等级精度的设备,默认即启用此项功能,不必单独设置。但对于无法识别时间等级精度的设备,时间准确性同样只能依赖于服务器端,或者通过手工校正保持。
由于IP协议本身的缺陷,以及NTP消息基于UDP协议这样一个事实,NTP也成为最易受到欺骗数据包攻击的网络协议之一。实际上,基于NTP欺骗的数据包可以从IP路由可达的任意一点发起,并且指定任意的攻击目标。我们针对一种常见的NTP攻击场景进行了模拟,过程如下:
模拟过程一:NTP同步成功。
我们在这个抓包分析的过程中看到,NTP同步成功仅2条消息。并且由于NTP消息基于UDP传输,仅有单向数据包校验字段“checksum”,并没有基于连接的校验机制。
当客户端发起同步请求时,目的地址指向NTP Server;当服务器端响应时,回复响应给NTP Client。
模拟过程二:NTP欺骗的实现。
根据IP网络的转发方式,网络仅会根据目的地址进行三层选路转发,并不会校验源地址。因此只要利用发包工具修改相应字段,再发往攻击目标,即可实现NTP欺骗攻击。我们设置了一台Windows PC定期发送NTP同步到服务器端,在攻击端模拟出NTP响应包后以高频率不断发往受攻击的PC,最终导致该PC收到伪造NTP响应后,根据错误的时间戳进行计算并修改了系统时间。
针对此类问题,NTP协议已经设计了一个采用MD5散列的鉴权字段。但该字段目前并非全网设备普遍支持。对于支持鉴权字段的设备,建议在服务器与客户端之间启用该功能,以保证客户端可以确认服务器的身份。如果客户端不支持启用鉴权字段,则需要通过网络层设备的路由配置或访问控制列表来限制NTP报文的传播范围。
另外,部分NTP服务器产品无法支持单端口启用MD5鉴权字段,只能全局启用。这在只有部分客户端支持鉴权字段的网络环境中,也加大了安全策略的部署难度。
NTP的全面部署可以有效提升全网的时间精度,是打造精品网络、提高用户感知的重要措施。但在部署过程中,也要综合考虑协议安全性上存在的一些问题以及客户端对于协议的支持程度,通过合理的规划与配置保证业务的稳定运行。另外,本文仅针对NTP同步过程中客户端的常见安全性问题进行了讨论,实际上还没有涉及到NTP服务器产品本身的安全性分析。希望能有机会再与大家讨论。
[1]MILLS D L. Network Time Protocol (Version 3) Specification,Implementation and Analysis-RFC1305,1992
[2]黄沛芳. 高准确度时钟程序算法. 电子技术应用, 2001,27(8)
[3]梁广民, 王津涛. TCP/IP协议时间自动同步系统设计与实现.计算机工程与设计, 2006, 27(2):319~321