李洪波
(中國移動通信集團吉林有限公司 長春 130021)
中國移動在2002年前后完成自有同步網(wǎng)建設(shè)后,即大規(guī)模退租租用時鐘源,完成了全網(wǎng)設(shè)備的時鐘同步改造。隨著同步網(wǎng)的不斷發(fā)展和網(wǎng)絡(luò)IP化演進對時間同步需求的不斷增強,近年也開始在全網(wǎng)規(guī)范化普及NTP應(yīng)用。
值得注意的是,NTP協(xié)議的便利性顯而易見,安全性卻往往被忽視。本文從協(xié)議自身缺陷與現(xiàn)網(wǎng)業(yè)務(wù)特性出發(fā),舉例討論了3種常見的NTP安全問題并提出了相應(yīng)的防范措施。
在沒有大規(guī)模應(yīng)用NTP協(xié)議之前,常常采用手工方式定期檢查、修正設(shè)備的系統(tǒng)時間,以此來保證話單、系統(tǒng)日志等關(guān)鍵信息的準確性。即便修正不及時,系統(tǒng)時間也只是一個漸變的細微過程,一般不會對業(yè)務(wù)造成較大影響。但在NTP現(xiàn)網(wǎng)應(yīng)用之后,我們也發(fā)現(xiàn)了一些手工校正時不會出現(xiàn)的安全問題,往往為大家所忽視。根據(jù)產(chǎn)生原因我們將其歸納為如下3種典型問題。
在NTP協(xié)議的算法中,NTP客戶端的時間計算取決于NTP消息往返過程中的4個時間戳。當客戶端與服務(wù)器端的時間差異越大時,客戶端的同步跨度也就越大。但大跨度的時間跳變往往可能帶來嚴重的后果。例如某地智能網(wǎng)SCP設(shè)備設(shè)置為與網(wǎng)絡(luò)中某二級時間服務(wù)器同步。該二級時間服務(wù)器因硬件故障在某日凌晨進行了部件更換,但更換后系統(tǒng)時間比標準時間早了8h。當該SCP恢復與其通信時,直接將系統(tǒng)時間修改為“當前時間+8h”,繼而導致該SCP出現(xiàn)VPN業(yè)務(wù)超長話單。
針對此類問題,應(yīng)首先確認客戶端是否支持時間同步的步長控制,支持步長控制的設(shè)備一定要設(shè)置功能開啟。此時一旦時間差異超過步長間隔(例如10s),客戶端不會進行同步而是上報告警信息或?qū)⑵鋵懭胂到y(tǒng)日志。這樣既可以避免時間逐漸劣化的發(fā)生,又可以避免時間大跨度跳變的發(fā)生。
對于不支持步長控制而又對時間跳變敏感的設(shè)備則建議通過配置多個NTP服務(wù)端的方式避免單個NTP服務(wù)器失效,或干脆禁用NTP服務(wù)。
NTP提供準確時間,首先要有準確的時間來源,這一時間應(yīng)該是國際標準時間UTC。 NTP獲得UTC的時間來源可以是原子鐘、天文臺、衛(wèi)星,也可以從Internet上獲取。NTP按照離外部UTC 源的遠近將所有服務(wù)器歸入不同的Stratum(層)中。Stratum-1在頂層,有外部UTC接入,而Stratum-2則從Stratum-1獲取時間,Stratum-3從Stratum-2獲取時間,以此類推,但Stratum層的總數(shù)限制在15以內(nèi)。所有這些服務(wù)器在邏輯上形成階梯式的架構(gòu)相互連接,而Stratum-1的時間服務(wù)器是整個系統(tǒng)的基礎(chǔ)。
這一時間等級的設(shè)置,也同樣有利于NTP時間安全性的保證。對于一個NTP協(xié)議實現(xiàn)完整的客戶端來說,當服務(wù)器端出現(xiàn)故障導致時間等級下降到低于客戶端自身時間等級時,該客戶端會停止繼續(xù)同步,以避免時間精度隨服務(wù)器持續(xù)劣化。
通過對在網(wǎng)設(shè)備的調(diào)查及確認,我們發(fā)現(xiàn)多個廠家的不同產(chǎn)品線都存在不支持NTP時間等級識別的問題。例如某廠家早期軟交換產(chǎn)品因無法識別時間等級精度,與發(fā)生故障的時間服務(wù)器持續(xù)同步,最終導致用戶話單異常。
一般來說,能夠識別時間等級精度的設(shè)備,默認即啟用此項功能,不必單獨設(shè)置。但對于無法識別時間等級精度的設(shè)備,時間準確性同樣只能依賴于服務(wù)器端,或者通過手工校正保持。
由于IP協(xié)議本身的缺陷,以及NTP消息基于UDP協(xié)議這樣一個事實,NTP也成為最易受到欺騙數(shù)據(jù)包攻擊的網(wǎng)絡(luò)協(xié)議之一。實際上,基于NTP欺騙的數(shù)據(jù)包可以從IP路由可達的任意一點發(fā)起,并且指定任意的攻擊目標。我們針對一種常見的NTP攻擊場景進行了模擬,過程如下:
模擬過程一:NTP同步成功。
我們在這個抓包分析的過程中看到,NTP同步成功僅2條消息。并且由于NTP消息基于UDP傳輸,僅有單向數(shù)據(jù)包校驗字段“checksum”,并沒有基于連接的校驗機制。
當客戶端發(fā)起同步請求時,目的地址指向NTP Server;當服務(wù)器端響應(yīng)時,回復響應(yīng)給NTP Client。
模擬過程二:NTP欺騙的實現(xiàn)。
根據(jù)IP網(wǎng)絡(luò)的轉(zhuǎn)發(fā)方式,網(wǎng)絡(luò)僅會根據(jù)目的地址進行三層選路轉(zhuǎn)發(fā),并不會校驗源地址。因此只要利用發(fā)包工具修改相應(yīng)字段,再發(fā)往攻擊目標,即可實現(xiàn)NTP欺騙攻擊。我們設(shè)置了一臺Windows PC定期發(fā)送NTP同步到服務(wù)器端,在攻擊端模擬出NTP響應(yīng)包后以高頻率不斷發(fā)往受攻擊的PC,最終導致該PC收到偽造NTP響應(yīng)后,根據(jù)錯誤的時間戳進行計算并修改了系統(tǒng)時間。
針對此類問題,NTP協(xié)議已經(jīng)設(shè)計了一個采用MD5散列的鑒權(quán)字段。但該字段目前并非全網(wǎng)設(shè)備普遍支持。對于支持鑒權(quán)字段的設(shè)備,建議在服務(wù)器與客戶端之間啟用該功能,以保證客戶端可以確認服務(wù)器的身份。如果客戶端不支持啟用鑒權(quán)字段,則需要通過網(wǎng)絡(luò)層設(shè)備的路由配置或訪問控制列表來限制NTP報文的傳播范圍。
另外,部分NTP服務(wù)器產(chǎn)品無法支持單端口啟用MD5鑒權(quán)字段,只能全局啟用。這在只有部分客戶端支持鑒權(quán)字段的網(wǎng)絡(luò)環(huán)境中,也加大了安全策略的部署難度。
NTP的全面部署可以有效提升全網(wǎng)的時間精度,是打造精品網(wǎng)絡(luò)、提高用戶感知的重要措施。但在部署過程中,也要綜合考慮協(xié)議安全性上存在的一些問題以及客戶端對于協(xié)議的支持程度,通過合理的規(guī)劃與配置保證業(yè)務(wù)的穩(wěn)定運行。另外,本文僅針對NTP同步過程中客戶端的常見安全性問題進行了討論,實際上還沒有涉及到NTP服務(wù)器產(chǎn)品本身的安全性分析。希望能有機會再與大家討論。
[1]MILLS D L. Network Time Protocol (Version 3) Specification,Implementation and Analysis-RFC1305,1992
[2]黃沛芳. 高準確度時鐘程序算法. 電子技術(shù)應(yīng)用, 2001,27(8)
[3]梁廣民, 王津濤. TCP/IP協(xié)議時間自動同步系統(tǒng)設(shè)計與實現(xiàn).計算機工程與設(shè)計, 2006, 27(2):319~321