徐書華,徐麗娜
(1.華中科技大學(xué) 電子與信息工程系,湖北 武漢 430074;2.武漢科技大學(xué) 管理學(xué)院,湖北 武漢 430074)
近年來,無線局域網(wǎng)以超乎想象的速度迅猛發(fā)展。在迅速普及的同時,相應(yīng)的網(wǎng)絡(luò)安全性問題日益凸現(xiàn),開放式信道以及某些自組織組網(wǎng)形式導(dǎo)致了形形色色的安全威脅。在各類安全威脅中,非法接入設(shè)備對網(wǎng)絡(luò)系統(tǒng)攻擊造成的危害最大。在這類網(wǎng)絡(luò)攻擊中,MAC地址被非法盜用來竊取網(wǎng)絡(luò)資源和數(shù)據(jù),而目前對MAC地址盜用缺乏行之有效的辦法。如果加入網(wǎng)絡(luò)設(shè)備識別技術(shù),即便MAC地址仍然被盜用,但是非法網(wǎng)絡(luò)設(shè)備的特征不能匹配合法設(shè)備的特征,這將大大增強網(wǎng)絡(luò)用戶的安全性。
在網(wǎng)絡(luò)設(shè)備安全鑒別中,偵測遠程主機的操作系統(tǒng)不僅能夠檢測非法攻擊,而且有利于制定和采取更為有效的反制措施。目前,研究人員已經(jīng)提出了不少探測遠程操作系統(tǒng)的方法和技術(shù)。參考文獻[1]提出通過探測主機操作系統(tǒng)進行遠程設(shè)備識別;參考文獻[2]、[3]提出利用不同操作系統(tǒng)TCP協(xié)議中存在的差異來探測遠程主機,并將不同操作系統(tǒng)在TCP協(xié)議中體現(xiàn)出來的差異視為TCP指紋特征。這種被動探測方式隱蔽性較強,具有一定的實用性。但是,這種依賴操作系統(tǒng)探測進行遠程主機識別的方式具有很大的局限性。主要表現(xiàn)在兩個方面:一是非法用戶可以通過多種方式進行操作系統(tǒng)偽裝;二是依賴操作系統(tǒng)特征識別目標(biāo)網(wǎng)絡(luò)設(shè)備數(shù)量極為有限,一旦設(shè)備增多就難以進行有效的安全識別。
為了解決上述問題,研究人員對網(wǎng)絡(luò)設(shè)備自身的硬件設(shè)備差異進行了研究。參考文獻[4]首次在網(wǎng)絡(luò)時延測量中觀測到物理設(shè)備時鐘偏移現(xiàn)象,并提出了對時鐘偏移的估計和消除方法;參考文獻[1]分析了遠程物理設(shè)備中存在的差異可能用作遠程設(shè)備探測的兩大類特征,包括操作系統(tǒng)差異和時鐘偏差;參考文獻[5]還進一步對網(wǎng)絡(luò)分組的精確時間戳進行了分析。在上述研究的基礎(chǔ)上,本文提出了一種基于TCP時間戳(硬件設(shè)備時鐘差異)進行遠程網(wǎng)絡(luò)設(shè)備識別的方法。與遠程操作系統(tǒng)探測技術(shù)不同,這種技術(shù)能夠在測量工具協(xié)作的情形下,利用細(xì)微的硬件設(shè)備偏差(時鐘脈沖相位差)來識別遠程網(wǎng)絡(luò)設(shè)備。這種識別技術(shù)可以用來判斷網(wǎng)絡(luò)上兩個可能在時間和IP地址上有變動的設(shè)備是否為同一物理設(shè)備,從而提高網(wǎng)絡(luò)接入設(shè)備的安全性。
RFC 1323協(xié)議定義了兩個新的TCP選項,即窗口擴大選項和時間戳(Timestamp)選項,選項格式如圖1所示。其中,時間戳選項可以使TCP對報文段進行更加精確的RTT測量。即發(fā)送方在每個報文段中放置一個時間戳數(shù)值,接收方在確認(rèn)中返回這個數(shù)值,從而允許發(fā)送方為每一個收到的ACK計算RTT。時間戳是一個單調(diào)遞增的值,RFC 1323推薦在1 ms~1 s之間將時間戳值加1。例如,BSD4.4在啟動時將時間戳始終設(shè)置為0,然后每隔500 ms將時間戳?xí)r鐘加1。
圖1 RFC 1323 TCP選項
一個特定的網(wǎng)絡(luò)設(shè)備可能具備多個獨立的時鐘脈沖,包括設(shè)備系統(tǒng)時間和設(shè)備自身的TCP堆棧時鐘脈沖(時間戳選項時鐘脈沖)。雖然專業(yè)管理下的設(shè)備系統(tǒng)時鐘脈沖可以通過NTP協(xié)議與真實時間同步,然而對于大多數(shù)操作系統(tǒng)而言,它們的默認(rèn)安裝并不能使主機的系統(tǒng)時鐘脈沖與真實時間保持同步或者只是偶爾能保持同步。這樣,對于一個非專業(yè)管理設(shè)備,如果測量設(shè)備能夠及時掌握設(shè)備系統(tǒng)時鐘脈沖值,那么就能推斷出系統(tǒng)時鐘脈沖相位差的信息。事實上,任何網(wǎng)絡(luò)通信設(shè)備的系統(tǒng)時鐘脈沖都不是絕對穩(wěn)定的,實際的時鐘脈沖頻率總是存在或大或小的相位偏差?;谏鲜鲇布A(chǔ),可以利用TCP時間戳原理測量實際存在的網(wǎng)絡(luò)設(shè)備相位差。
本文用如下方法分析TCP時間戳信息。假定網(wǎng)絡(luò)監(jiān)測設(shè)備得到的被監(jiān)測網(wǎng)絡(luò)設(shè)備發(fā)送TCP數(shù)據(jù)包的網(wǎng)絡(luò)路徑為P,為了估算網(wǎng)絡(luò)設(shè)備的TSopt時鐘脈沖相位差,本文使用ti表示監(jiān)測設(shè)備在路徑P中觀測到第i個數(shù)據(jù)包的時刻 (以 s為單位),Pi表示在第 i個數(shù)據(jù)包的TCP時間戳。定義如下:
其中,wi是第i個數(shù)據(jù)包中可觀測的偏差,是與路徑P相對應(yīng)的一系列偏差,其單位為s;t的數(shù)值代表真實的時間。假定被測量主機產(chǎn)生第i個數(shù)據(jù)包的時間和測量者記錄第i個數(shù)據(jù)包的時間沒有延時,那么yi=off(xi+t1),進而OP點的斜率可以近似為CTcp的相位差。為了從OP中取得相位差,本文借用了MOON S B等人提出的線性規(guī)劃解決方案[5]:線性規(guī)劃可行解輸出一條直線αX+β,是OP上一系列點的上限。直線的斜率α是CTcp時鐘脈沖相位差的估算值。這條直線的線性規(guī)劃約束為:對于所有點 i∈{1,…,|T|},αxi+β≥yi,那么線性規(guī)劃可行解是目標(biāo)函數(shù)的最小值。
本項目擬設(shè)計遠程網(wǎng)絡(luò)設(shè)備TCP時間戳捕獲識別系統(tǒng),對遠程設(shè)備進行識別,進而判定網(wǎng)絡(luò)接入設(shè)備的合法性。系統(tǒng)方案總體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)的總體結(jié)構(gòu)圖
其中,運行服務(wù)器程序的主機作為發(fā)起掃描的主機,運行掃描模塊、捕獲模塊和控制平臺,并建有設(shè)備識別模塊。掃描模塊直接從主機上通過網(wǎng)絡(luò)以其他主機為對象對用戶指定IP和端口發(fā)送各種數(shù)據(jù)包;捕獲模塊采集被掃描主機回送給系統(tǒng)的數(shù)據(jù)包,并取出其中的相應(yīng)網(wǎng)絡(luò)字段;識別模塊完成數(shù)據(jù)包的解析與識別,通過回送數(shù)據(jù)包的各首部字段查找相應(yīng)的設(shè)備特征,最后給出判斷結(jié)果。
本項目構(gòu)建的軟件系統(tǒng)內(nèi)部傳遞捕獲數(shù)據(jù)包的各個首部字段以及發(fā)送和捕獲的相關(guān)數(shù)據(jù)。根據(jù)對系統(tǒng)輸入輸出信息的分析,系統(tǒng)流程如圖3所示。
圖3 系統(tǒng)的工作流程
對本文提出的前述基于TCP時間戳的遠程網(wǎng)絡(luò)設(shè)備識別技術(shù)進行實驗驗證,所搭建的網(wǎng)絡(luò)實驗環(huán)境如圖4所示。實驗中使用了3臺主機,分別編為1號機、2號機和3號機。其中,1號主機作為服務(wù)器,其余兩臺主機用作待探測識別的主機。本項目在1號機和其余兩臺主機上分別運行服務(wù)器端程序和客戶端程序。在兩臺主機進行網(wǎng)絡(luò)通信的同時,在服務(wù)器端運行數(shù)據(jù)包解析程序,捕獲數(shù)據(jù)包并提取TCP時間戳,然后通過線性規(guī)劃分析對目標(biāo)主機進行安全性識別。
圖4 實驗網(wǎng)絡(luò)環(huán)境圖
本項目進行了兩組遠程探測識別實驗,實驗過程和結(jié)果說明如下。
本實驗中服務(wù)器主機 (主機 1)IP地址為 222.*.*.134,其他兩臺客戶端主機(主機 2和主機 3)IP地址分別為222.*.*.140和222.*.*.142。主機 2在 1小時內(nèi)不間斷地發(fā)送了725個數(shù)據(jù)包,主機3也同時不間斷地發(fā)送了810個數(shù)據(jù)包。采用前文所述線性規(guī)劃分析方法分析數(shù)據(jù)包提取的TCP時間戳信息,可以觀察到主機2和主機3的可觀測偏差和真實時間的關(guān)系,如圖5所示。可以測量出主機2的TSopt時間脈沖相位差估算為133.3 ppm(1 ppm為百萬分之一),而主機 3的TSopt時間脈沖相位差估算為108.3 ppm。
圖5 不同客戶端主機在不同地址接入網(wǎng)絡(luò)時TSopt時鐘偏差
本實驗中服務(wù)器主機IP地址為222.*.*.134,其他兩臺客戶端主機(主機2和主機3)先后運行在同一IP地址222.*.*.140上。主機2在某時段1小時內(nèi)不間斷地發(fā)送了743個數(shù)據(jù)包,主機3隨后也不間斷地發(fā)送了821個數(shù)據(jù)包。仍然采用前文的分析方法,可以觀測到主機2和主機3的可觀測偏差和真實時間關(guān)系如圖6所示??梢詼y量到主機2的TSopt時間脈沖相位差估算為133.1 ppm,而主機3的TSopt時間脈沖相位差估算為108.5 ppm。
圖6 不同客戶端主機在同一地址接入網(wǎng)絡(luò)時TSopt時鐘偏差
從上述兩組實驗結(jié)果可以看到,不論是從不同的IP地址發(fā)出數(shù)據(jù)包還是從同一IP地址發(fā)出數(shù)據(jù)包,待探測客戶端主機2和主機3的時鐘脈沖相位差基本保持不變(差別沒有超過1 ppm),而且這兩臺主機的時鐘脈沖相位差存在較大的區(qū)別(約為25 ppm),因而可以對這兩臺遠程網(wǎng)絡(luò)設(shè)備進行有效的辨識,從而達到了項目預(yù)期目標(biāo)。
本文基于TCP時間戳原理,利用現(xiàn)代網(wǎng)絡(luò)設(shè)備微小的時鐘脈沖相位偏差,成功地對遠程設(shè)備進行了安全性辨識,并為網(wǎng)絡(luò)體系的安全性增強提供了一個新的有效檢測方法。這種技術(shù)將來可以有效應(yīng)用到計算機安全取證、追蹤從不同通路端連接入互聯(lián)網(wǎng)的網(wǎng)絡(luò)設(shè)備等領(lǐng)域。
基于TCP時間戳的遠程主機識別是一種較新的研究方法和領(lǐng)域,還需要進一步對提高設(shè)備特征的提取精度和更多的實際目標(biāo)進行研究;同時,如果結(jié)合尚未成熟的被動探測機制,并借助現(xiàn)代模式識別技術(shù),本文的研究方法將在前景廣闊的網(wǎng)絡(luò)通信安全領(lǐng)域有著極大的應(yīng)用價值。
[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協(xié)議棧的操作系統(tǒng)識別技術(shù)[J].計算機技術(shù)和發(fā)展,2006,16(10):125-127.
[3]陳剛.基于TCP指紋的遠程操作系統(tǒng)探測技術(shù)[J].信息系統(tǒng)與網(wǎng)絡(luò),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.