趙 隴,王志勃,章萬靜
(1.江蘇省電子產(chǎn)品裝備與制造中心,江蘇 淮安 223003;2.淮安信息職業(yè)技術(shù)學(xué)院,江蘇 淮安 223003)
針對物聯(lián)網(wǎng)設(shè)備的DDoS攻擊是一種新型的網(wǎng)絡(luò)攻擊,越來越多的攻擊目標是廣播系統(tǒng)、金融系統(tǒng)以及全球性的基于互聯(lián)網(wǎng)的服務(wù)。由于物聯(lián)網(wǎng)設(shè)備的小型化,它們很容易受到攻擊,同時,這些攻擊會偽造物聯(lián)網(wǎng)設(shè)備的源IP[1]。打印機、掃描儀、基于IP的閉路電視系統(tǒng)、無線路由器、IP攝像頭等,這些都是一個智能家居網(wǎng)絡(luò)的主要組成部分,簡單服務(wù)發(fā)現(xiàn)協(xié)議(SSDP)被許多物聯(lián)網(wǎng)設(shè)備所使用[2],而很多針對物聯(lián)網(wǎng)設(shè)備的DDoS攻擊正是利用SSDP漏洞發(fā)起的,特別是SSDP放大攻擊很難應(yīng)對,因此,物聯(lián)網(wǎng)設(shè)備IP追蹤技術(shù)非常重要[3-4]。
當(dāng)前,DDoS攻擊領(lǐng)域的源IP追蹤技術(shù)有很多,文中提出了一種新的檢測源偽造IP的方法。該方法旨在同時保護多個目標免受DDoS攻擊[5]。通過建立一個參考表,存儲網(wǎng)絡(luò)中正常的TTL跳數(shù),通過和異常流量的跳數(shù)比較,可以快速檢測出偽造IP[6]。
對進入DDoS安全區(qū)正常流量的可靠TCP數(shù)據(jù)包進行檢測的示意圖見圖1。從這些TCP數(shù)據(jù)包中,檢測出源操作系統(tǒng)(OS)簽名和TTL跳數(shù),并將這些用于網(wǎng)絡(luò)參考表中。當(dāng)發(fā)生DDoS攻擊時,DDoS安全區(qū)檢測來自攻擊流量的TCP數(shù)據(jù)包,比較有關(guān)操作系統(tǒng)和跳數(shù)信息,并進行統(tǒng)計分析以確定是否是偽造的,當(dāng)發(fā)現(xiàn)偽造IP,就可以迅速阻止相關(guān)的IP流量。
圖1 偽造IP檢測示意
IP包每經(jīng)過一個路由器,TTL值都減1,由源TTL值減去目標TTL值,就可以得到總跳數(shù)。所以應(yīng)對各種操作系統(tǒng)和通信協(xié)議進行分析,收集其初始TTL值,計算出總跳數(shù)[7]。表1列出了各種操作系統(tǒng)的初始TTL值。
表1 操作系統(tǒng)的初始TTL值
為了創(chuàng)建參考表,必須從DDoS安全區(qū)的流量中檢測源操作系統(tǒng)類型。這可以從TCP/IP分組收集的OS簽名信息來檢測。OS簽名信息可以從TCP-SYN、TCP-SYN/ACK或TCP-RST數(shù)據(jù)包中獲得[8]。
以下內(nèi)容顯示了從TCP-SYN數(shù)據(jù)包中截取的信息,用以檢測OS簽名和TTL跳數(shù)[9]。
·Initial packet size:16 bits
·Initial TTL:8 bits
·Windows size:16 bits
·MSS(maximum segment size):8 bits
·“DF(do not fragment)” flag:1 bit
·“SackOS” flag:1 bit
·“nop” flag:1 bit
CAIDA是一家提供互聯(lián)網(wǎng)數(shù)據(jù)共享服務(wù)的機構(gòu),參考其提供的Traceroute網(wǎng)關(guān)因特網(wǎng)跳數(shù)統(tǒng)計數(shù)據(jù),就可以估計出全球范圍內(nèi)的正常跳數(shù)。TTL值隨著TCP數(shù)據(jù)包發(fā)送到目的地而減小,并且正常的因特網(wǎng)路徑信息也可用于檢測異常跳數(shù)[10-11]。
如圖2所示,正常Internet路徑中的最大跳數(shù)平均不超過30跳[12]。因此,當(dāng)目的端的TTL值為114,初始TTL值必定在114+30以內(nèi)。例如,初始TTL值為128,目的TTL值為114,報文的總跳數(shù)就為128-114=14。然后將扣除的跳數(shù)與參考表進行比較,如果偏離了相關(guān)網(wǎng)絡(luò)平均跳數(shù)的容限范圍,那么這個報文就被證實為偽造的。
圖2 基于路由網(wǎng)關(guān)的Internet跳數(shù)統(tǒng)計
為了準確確定TTL值,必須要知道IP分組的操作系統(tǒng),并且利用參考表來檢查操作系統(tǒng)信息。該技術(shù)將IP帶寬中的平均跳數(shù)與跳數(shù)參考表進行比較,從是否偏離了平均值來判斷該流量是否為偽造的。此時,需收集非欺騙IP跳數(shù)信息來創(chuàng)建參考表。在單一的網(wǎng)絡(luò)中,網(wǎng)絡(luò)結(jié)構(gòu)不易改變,從AS邊界路由器到終端設(shè)備的跳數(shù)似乎呈現(xiàn)一種正態(tài)分布。因此,在一定規(guī)模的網(wǎng)絡(luò)中對構(gòu)成的IP樣本群進行統(tǒng)計預(yù)測是有可能的,網(wǎng)絡(luò)分類標準將它們分類為IP所屬的B類、C類和AS網(wǎng)絡(luò)。DDOS安全區(qū)與相關(guān)網(wǎng)絡(luò)之間的距離表示為網(wǎng)絡(luò)組的平均跳數(shù)和平均標準偏差。
(1)
(2)
提取非偽造的IP以建立參考表,并識別具有正常TCP連接的SYN分組。從收集的分組中提取操作系統(tǒng)信息,并從TTL中提取跳數(shù)以構(gòu)建最終參考表。為了確保完整性,只提取了通過三次握手完成的TCP連接。開源Bro[13]分析工具用于檢測TCP會話,并且使用TCP會話的歷史信息用于驗證TCP會話是否正常進行。
圖3 使用P0f的OS指紋識別
圖4 IP網(wǎng)絡(luò)到C類的轉(zhuǎn)換
AS是由一個或多個網(wǎng)絡(luò)運營商運營的一組IP網(wǎng)絡(luò),具有單一且明確定義的外部路由策略。外部路由協(xié)議用于在自治系統(tǒng)之間交換路由信息。如果網(wǎng)絡(luò)連接到具有不同路由策略的多個AS時,則需要創(chuàng)建AS。僅當(dāng)AS與公共Internet上的其他自治系統(tǒng)交換路由信息時,才需要公共AS號。AS號是分配給網(wǎng)絡(luò)的因特網(wǎng)上的固有編號,使用相同的路由策略,其中C類網(wǎng)絡(luò)最小分配單元為256(28)。C類分類方法所建參考表受限于參考表過大,可以將它歸類為B類,以減小參考表,但隨之帶來的問題就是信息精度的降低。
APNIC在亞太地區(qū)分配IP和AS號,AS號一般由ISP運營。使用單個AS號分類的優(yōu)點是它被分類為獨立組成網(wǎng)絡(luò)的最小單元,盡管它比C類網(wǎng)絡(luò)更大,但是因為它具有獨立的網(wǎng)絡(luò)路由策略,所以其信息精度更高。
檢測偽造IP的步驟如下:
步驟1:構(gòu)造一個表,存儲從CAIDA得到的正常跳數(shù)Ts;
步驟2:檢查來自正常流量的TCP-SYN數(shù)據(jù)包的OS簽名;
步驟3:從TCP-SYN數(shù)據(jù)包中獲取最終的TTL跳數(shù)(Tf);
步驟4:從TCP-SYN數(shù)據(jù)包中推斷初始TTL跳數(shù)(Ti);
步驟5:計算跳數(shù):Hc=Ti-Tf;
步驟6:比較Hc和Ts。如果Hc大于Ts,那么它必然是偽造IP地址;
步驟7:如果IP地址是偽造的,則該分組必定被系統(tǒng)阻塞。
為了建立參考表,從DDoS安全區(qū)收集了針對WEB服務(wù)的10次攻擊共1 490個日志文件,分析其10 TB的數(shù)據(jù)。表2顯示了從DDoS安全區(qū)收集的DDoS攻擊流量中的非欺騙IP的結(jié)果。在總共10個攻擊案例中,在刪除重復(fù)的IP之后,共提取了849 391個非欺騙IP。這個值約占分配給中國的大約3.3億個IP的0.25%。
表2 從DDoS攻擊案例中提取的非欺騙IP
C類參考表應(yīng)盡可能多地表示網(wǎng)絡(luò)帶寬。10 TB流量日志的10個攻擊案例中,檢測到的非欺騙IP僅占分配給中國IP總量的0.25%。當(dāng)使用B類和C類對網(wǎng)絡(luò)進行分類時,也會有局限性,可以使用AS網(wǎng)絡(luò)單元的分類技術(shù)進行測試以彌補這種缺點。
從收集的IP中提取和分類AS信息,以檢查分配給中國的AS數(shù)量,來驗證AS分類參考表的合理性。APNIC分配給中國的IP數(shù)量大約3.3億,AS數(shù)量大約13萬[15]。通過AS對來自DDoS安全區(qū)日志中的84萬個非欺騙IP進行的分析顯示,它們大約分屬于11萬個AS網(wǎng)絡(luò)。
分析偽造IP工具分為三種狀態(tài):欺騙,非欺騙和未知。未知狀態(tài)是當(dāng)源IP難以區(qū)分時的狀態(tài);非欺騙狀態(tài)是處于跳數(shù)參考表允許范圍內(nèi)的狀態(tài),這被認為是非欺騙IP;欺騙狀態(tài)是指它偏離了跳數(shù)參考表允許范圍,這被認為是欺騙IP。圖5顯示了使用參考表對WEB服務(wù)攻擊案例檢測的結(jié)果,在WEB攻擊的案例1中,發(fā)現(xiàn)IP欺騙率約為總流量的2%,這些IP在源端即被偽造,1%無法識別,其余97%未涉及欺騙。
圖5 針對WEB服務(wù)的偽造IP檢測結(jié)果
如圖6所示,攻擊案例的跳數(shù)平均距離遵循正態(tài)分布,而大多數(shù)情況落在97%以內(nèi),這與參考表值的平均跳數(shù)±5跳有關(guān)。
圖6 基于AS的偽造IP檢測結(jié)果
在這個實驗中,發(fā)現(xiàn)大約900 000個DDoS攻擊的案件中有18 000個案例在源端被偽造,大約占2%。1%的案例(90 000個),無法識別是否偽造,其余97%未涉及欺騙IP。通過使用跳數(shù)和參考表在檢測之后過濾IP,可以快速檢測出DDoS攻擊并減輕DDoS攻擊。
文中提出了使用DDoS安全區(qū)快速檢測偽造IP的方法。為了對提出的方案進行驗證,收集并分析了來自10次攻擊的DDoS日志。檢查DDoS安全區(qū)的正常源IP平均跳數(shù)來構(gòu)建參考表,并在DDoS攻擊的情況下,從TTL提取跳數(shù)并與參考表進行比較以驗證其真?zhèn)?。通過實驗證明了所提出方案對檢測偽造IP的有效性。