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