2012年,美國海軍的兩臺服務器時鐘回滾了12年,顯示日期變成了2000年。
這些服務器有著重要地位:它們是全球網絡時間協議網絡的組成部分,該網絡被用于幫助計算機獲得正確的時間。
與這兩臺海軍服務器進行通訊的電腦都相應調整了本機的時間,在手機系統、路由器和認證系統中造成了種種問題。
網絡時間協議是最古老的互聯網協議之一,發布于1985年。該事件表明使用該協議可能會造成嚴重的問題。
網絡時間協議具有很強的魯棒性,然而來自波士頓大學的研究人員在本周三表示,他們發現了該協議中存在的幾個漏洞,它們可能破壞加密通訊甚至阻塞比特幣交易。
他們發現的問題之一是,攻擊者可以使目標組織的服務器停止同步檢查時間。
論文綜述中稱,網絡時間協議配有限頻機制,所用到的數據包綽號為Kiss O’ Death。該數據包會阻止計算機由于技術故障重復查詢時間。發送該數據包后,系統可能會在未來幾天或幾年內停止查詢時間。
研究人員發現了一個大問題:攻擊者可以偽造Kiss O’ Death數據包,在系統正常的情況下偽造其已經損壞的假象。
波士頓大學計算機科學系副教授莎朗·戈德堡稱,他們并不是在查看代碼的過程中發現Kiss O’ Death數據包的。
她在周三接受電話采訪時稱:“我們僅通過閱讀網絡時間協議規范就發現了Kiss O’ Death漏洞。我們只是發現了這種數據包的存在,然后就在想‘你能拿這東西做什么?’”
研究人員猜測,黑客僅利用一臺電腦運行nmap、zmap等嗅探器,就可以攻擊找到的大量網絡時間協議客戶端。
這種欺騙攻擊之所以存在可能,一部分原因在于網絡時間服務器不會加密自身和客戶端間的通訊。
通訊未經加密的原因在于網絡時間協議沒有如SSL/TLS一般精細的密鑰交換協議。加密密鑰必須被手動編程寫入網絡時間設備,但大多數組織并不樂意這樣做。
如果計算機的時鐘存在錯誤,可能造成廣泛的問題。
假如時鐘被往早撥了,就意味著過期的SSL/TLS證書可以被視為有效,而攻擊者有可能已經拿到了這些證書的解密秘鑰。
對于比特幣而言,時鐘不準確可能導致比特幣客戶端拒絕合法交易,浪費算力。
研究人員還發現了兩個漏洞。使用某種拒絕服務攻擊,攻擊者可以偽造Kiss O’ Death數據包,讓它們看上去來自合法的網絡時間客戶端。之后時間服務器就會試圖放緩查詢,發送一個響應包,讓網絡時間客戶端停止更新時鐘。
第三個漏洞可能使得攻擊者干擾未加密的網絡時間通訊,在篡改目標計算機的時鐘,并在其重啟后生效。
由于研究者在今年八月份提前將研究成果私下透露給網絡時間基金會,官方目前已經放出了修復軟件。紅帽和思科等廠商也已經修復了其網絡時間協議的實現。
本周二發布的最新版網絡時間協議的版本號是ntp-4.2.8p4,我們建議管理員盡快更新。
戈德堡表示,由于人們普遍認為網絡時間協議十分強大,它近期幾乎沒有得到什么關注。但研究人員的成果表明,如今被最廣泛使用的版本號是4.1.1,它已經發布十來年了。
“你手上的都是老客戶端,它們已經不那么中用了。”
該研究論文的其他作者還有:安查爾·馬爾霍特拉、艾薩克·科恩、埃里克·布拉克。他們都來自波士頓大學。