徐書華,徐麗娜
(1.華中科技大學 電子與信息工程系,湖北 武漢 430074;2.武漢科技大學 管理學院,湖北 武漢 430074)
近年來,無線局域網以超乎想象的速度迅猛發展。在迅速普及的同時,相應的網絡安全性問題日益凸現,開放式信道以及某些自組織組網形式導致了形形色色的安全威脅。在各類安全威脅中,非法接入設備對網絡系統攻擊造成的危害最大。在這類網絡攻擊中,MAC地址被非法盜用來竊取網絡資源和數據,而目前對MAC地址盜用缺乏行之有效的辦法。如果加入網絡設備識別技術,即便MAC地址仍然被盜用,但是非法網絡設備的特征不能匹配合法設備的特征,這將大大增強網絡用戶的安全性。
在網絡設備安全鑒別中,偵測遠程主機的操作系統不僅能夠檢測非法攻擊,而且有利于制定和采取更為有效的反制措施。目前,研究人員已經提出了不少探測遠程操作系統的方法和技術。參考文獻[1]提出通過探測主機操作系統進行遠程設備識別;參考文獻[2]、[3]提出利用不同操作系統TCP協議中存在的差異來探測遠程主機,并將不同操作系統在TCP協議中體現出來的差異視為TCP指紋特征。這種被動探測方式隱蔽性較強,具有一定的實用性。但是,這種依賴操作系統探測進行遠程主機識別的方式具有很大的局限性。主要表現在兩個方面:一是非法用戶可以通過多種方式進行操作系統偽裝;二是依賴操作系統特征識別目標網絡設備數量極為有限,一旦設備增多就難以進行有效的安全識別。
為了解決上述問題,研究人員對網絡設備自身的硬件設備差異進行了研究。參考文獻[4]首次在網絡時延測量中觀測到物理設備時鐘偏移現象,并提出了對時鐘偏移的估計和消除方法;參考文獻[1]分析了遠程物理設備中存在的差異可能用作遠程設備探測的兩大類特征,包括操作系統差異和時鐘偏差;參考文獻[5]還進一步對網絡分組的精確時間戳進行了分析。在上述研究的基礎上,本文提出了一種基于TCP時間戳(硬件設備時鐘差異)進行遠程網絡設備識別的方法。與遠程操作系統探測技術不同,這種技術能夠在測量工具協作的情形下,利用細微的硬件設備偏差(時鐘脈沖相位差)來識別遠程網絡設備。這種識別技術可以用來判斷網絡上兩個可能在時間和IP地址上有變動的設備是否為同一物理設備,從而提高網絡接入設備的安全性。
RFC 1323協議定義了兩個新的TCP選項,即窗口擴大選項和時間戳(Timestamp)選項,選項格式如圖1所示。其中,時間戳選項可以使TCP對報文段進行更加精確的RTT測量。即發送方在每個報文段中放置一個時間戳數值,接收方在確認中返回這個數值,從而允許發送方為每一個收到的ACK計算RTT。時間戳是一個單調遞增的值,RFC 1323推薦在1 ms~1 s之間將時間戳值加1。例如,BSD4.4在啟動時將時間戳始終設置為0,然后每隔500 ms將時間戳時鐘加1。

圖1 RFC 1323 TCP選項
一個特定的網絡設備可能具備多個獨立的時鐘脈沖,包括設備系統時間和設備自身的TCP堆棧時鐘脈沖(時間戳選項時鐘脈沖)。雖然專業管理下的設備系統時鐘脈沖可以通過NTP協議與真實時間同步,然而對于大多數操作系統而言,它們的默認安裝并不能使主機的系統時鐘脈沖與真實時間保持同步或者只是偶爾能保持同步。這樣,對于一個非專業管理設備,如果測量設備能夠及時掌握設備系統時鐘脈沖值,那么就能推斷出系統時鐘脈沖相位差的信息。事實上,任何網絡通信設備的系統時鐘脈沖都不是絕對穩定的,實際的時鐘脈沖頻率總是存在或大或小的相位偏差。基于上述硬件基礎,可以利用TCP時間戳原理測量實際存在的網絡設備相位差。
本文用如下方法分析TCP時間戳信息。假定網絡監測設備得到的被監測網絡設備發送TCP數據包的網絡路徑為P,為了估算網絡設備的TSopt時鐘脈沖相位差,本文使用ti表示監測設備在路徑P中觀測到第i個數據包的時刻 (以 s為單位),Pi表示在第 i個數據包的TCP時間戳。定義如下:


其中,wi是第i個數據包中可觀測的偏差,是與路徑P相對應的一系列偏差,其單位為s;t的數值代表真實的時間。假定被測量主機產生第i個數據包的時間和測量者記錄第i個數據包的時間沒有延時,那么yi=off(xi+t1),進而OP點的斜率可以近似為CTcp的相位差。為了從OP中取得相位差,本文借用了MOON S B等人提出的線性規劃解決方案[5]:線性規劃可行解輸出一條直線αX+β,是OP上一系列點的上限。直線的斜率α是CTcp時鐘脈沖相位差的估算值。這條直線的線性規劃約束為:對于所有點 i∈{1,…,|T|},αxi+β≥yi,那么線性規劃可行解是目標函數的最小值。
本項目擬設計遠程網絡設備TCP時間戳捕獲識別系統,對遠程設備進行識別,進而判定網絡接入設備的合法性。系統方案總體結構如圖2所示。

圖2 系統的總體結構圖
其中,運行服務器程序的主機作為發起掃描的主機,運行掃描模塊、捕獲模塊和控制平臺,并建有設備識別模塊。掃描模塊直接從主機上通過網絡以其他主機為對象對用戶指定IP和端口發送各種數據包;捕獲模塊采集被掃描主機回送給系統的數據包,并取出其中的相應網絡字段;識別模塊完成數據包的解析與識別,通過回送數據包的各首部字段查找相應的設備特征,最后給出判斷結果。
本項目構建的軟件系統內部傳遞捕獲數據包的各個首部字段以及發送和捕獲的相關數據。根據對系統輸入輸出信息的分析,系統流程如圖3所示。

圖3 系統的工作流程
對本文提出的前述基于TCP時間戳的遠程網絡設備識別技術進行實驗驗證,所搭建的網絡實驗環境如圖4所示。實驗中使用了3臺主機,分別編為1號機、2號機和3號機。其中,1號主機作為服務器,其余兩臺主機用作待探測識別的主機。本項目在1號機和其余兩臺主機上分別運行服務器端程序和客戶端程序。在兩臺主機進行網絡通信的同時,在服務器端運行數據包解析程序,捕獲數據包并提取TCP時間戳,然后通過線性規劃分析對目標主機進行安全性識別。

圖4 實驗網絡環境圖
本項目進行了兩組遠程探測識別實驗,實驗過程和結果說明如下。
本實驗中服務器主機 (主機 1)IP地址為 222.*.*.134,其他兩臺客戶端主機(主機 2和主機 3)IP地址分別為222.*.*.140和222.*.*.142。主機 2在 1小時內不間斷地發送了725個數據包,主機3也同時不間斷地發送了810個數據包。采用前文所述線性規劃分析方法分析數據包提取的TCP時間戳信息,可以觀察到主機2和主機3的可觀測偏差和真實時間的關系,如圖5所示。可以測量出主機2的TSopt時間脈沖相位差估算為133.3 ppm(1 ppm為百萬分之一),而主機 3的TSopt時間脈沖相位差估算為108.3 ppm。

圖5 不同客戶端主機在不同地址接入網絡時TSopt時鐘偏差
本實驗中服務器主機IP地址為222.*.*.134,其他兩臺客戶端主機(主機2和主機3)先后運行在同一IP地址222.*.*.140上。主機2在某時段1小時內不間斷地發送了743個數據包,主機3隨后也不間斷地發送了821個數據包。仍然采用前文的分析方法,可以觀測到主機2和主機3的可觀測偏差和真實時間關系如圖6所示。可以測量到主機2的TSopt時間脈沖相位差估算為133.1 ppm,而主機3的TSopt時間脈沖相位差估算為108.5 ppm。

圖6 不同客戶端主機在同一地址接入網絡時TSopt時鐘偏差
從上述兩組實驗結果可以看到,不論是從不同的IP地址發出數據包還是從同一IP地址發出數據包,待探測客戶端主機2和主機3的時鐘脈沖相位差基本保持不變(差別沒有超過1 ppm),而且這兩臺主機的時鐘脈沖相位差存在較大的區別(約為25 ppm),因而可以對這兩臺遠程網絡設備進行有效的辨識,從而達到了項目預期目標。
本文基于TCP時間戳原理,利用現代網絡設備微小的時鐘脈沖相位偏差,成功地對遠程設備進行了安全性辨識,并為網絡體系的安全性增強提供了一個新的有效檢測方法。這種技術將來可以有效應用到計算機安全取證、追蹤從不同通路端連接入互聯網的網絡設備等領域。
基于TCP時間戳的遠程主機識別是一種較新的研究方法和領域,還需要進一步對提高設備特征的提取精度和更多的實際目標進行研究;同時,如果結合尚未成熟的被動探測機制,并借助現代模式識別技術,本文的研究方法將在前景廣闊的網絡通信安全領域有著極大的應用價值。
[1]KOHNO T, BROIDO A, CLAFFY K C.Remote physics device fingerprinting[J].IEEE Transactions on Dependable and Secure Computing, 2005, 2(2): 93-108.
[2]沙超.一種基于TCP/IP協議棧的操作系統識別技術[J].計算機技術和發展,2006,16(10):125-127.
[3]陳剛.基于TCP指紋的遠程操作系統探測技術[J].信息系統與網絡,2006,36(9):7-11.
[4]MOON S B, SKELLY P, TOWSLEY D.Estimation and removal of clock skew from network delay measurements[C].IEEE ProceedingsofINFOCOM′99, Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies,1999(1): 227-234.
[5]MICHEEL J, DONNELLY S, GRAHAM I.Precision timestamping of network packets[C].Proceedings of the 1st ACM SIGCOMM Workshop on InternetMeasurement,2001:273-277.