孫耀輝,賀 劼,齊 權(quán)
(北京知道未來信息技術(shù)有限公司,北京100102)
隨著我國對互聯(lián)網(wǎng)安全重視程度的不斷提升,社會對實現(xiàn)互聯(lián)網(wǎng)態(tài)勢感知的需求愈發(fā)顯著。構(gòu)建互聯(lián)網(wǎng)態(tài)勢感知系統(tǒng),不僅有利于提高我國網(wǎng)絡(luò)系統(tǒng)的應(yīng)急響應(yīng)能力,而且對緩解網(wǎng)絡(luò)攻擊造成的危害、發(fā)現(xiàn)潛在惡意入侵行為和提高網(wǎng)絡(luò)反擊能力具有重大意義[1]。
實現(xiàn)互聯(lián)網(wǎng)態(tài)勢感知,關(guān)鍵在于對互聯(lián)網(wǎng)空間中近40億個IP所屬主機(jī)的主機(jī)存活性、端口開放性、端口所提供的服務(wù)以及端口組件等信息進(jìn)行識別。為了實現(xiàn)上述要求,端口掃描技術(shù)是關(guān)鍵。從連接范圍來看,端口掃描技術(shù)可分為全連接掃描和半連接掃描兩類。其中,以NMAP為代表的全連接掃描引擎由于端口掃描建立在穩(wěn)定的TCP連接之上,具有漏報率較低、結(jié)果穩(wěn)定等優(yōu)點。相比于全連接掃描技術(shù),以ZMAP、MASSCAN為代表的半掃描技術(shù)由于數(shù)據(jù)包收發(fā)分離且無需維護(hù)TCP連接,具有更高的端口掃描效率[2]。由于互聯(lián)網(wǎng)態(tài)勢感知關(guān)注的是整個互聯(lián)網(wǎng)空間,而NMAP等全連接掃描引擎的掃描效率無法滿足實際的端口掃描需求,因此以ZMAP為代表的基于半連接技術(shù)的端口掃描引擎是建立態(tài)勢感知系統(tǒng)底層端口識別模塊的有效方法。
本文將介紹半連接端口掃描技術(shù)的原理,分析限制掃描效率的原因,并提出了一種解決方案。經(jīng)過試驗證明,本文方法能夠有效提升半連接端口的掃描速率。
因為半連接掃描技術(shù)下的端口掃描不是建立在穩(wěn)定的TCP連接之上,所以其掃描結(jié)果受網(wǎng)絡(luò)波動影響較大。掃描結(jié)果的不穩(wěn)定等問題,成為制約互聯(lián)網(wǎng)態(tài)勢感知系統(tǒng)產(chǎn)出可靠數(shù)據(jù)的最大因素。
半連接端口掃描技術(shù)是一種無需維護(hù)完整的TCP連接的技術(shù)。它與目標(biāo)服務(wù)器的端口連接過程如下[3]:
(1)向目標(biāo)端口發(fā)送SYN包;
(2)如果目標(biāo)端口回復(fù)SYN+ACK包,說明該端口目前為開放狀態(tài),可以進(jìn)行連接;
(3)如果目標(biāo)端口沒有回復(fù)包或回復(fù)RST包,說明此時目標(biāo)端口為關(guān)閉狀態(tài),無法進(jìn)行連接。
需要注意的是,由于是半連接的掃描方式,向目標(biāo)端口發(fā)出的SYN包和其他回復(fù)包均可能在網(wǎng)絡(luò)傳輸中丟失。此時,系統(tǒng)會錯誤判斷目標(biāo)端口為關(guān)閉狀態(tài)。
可見,對于基于半連接掃描技術(shù)的端口掃描引擎,網(wǎng)絡(luò)丟包是導(dǎo)致其掃描結(jié)果可靠性下降的根本因素。為了解決該問題,通常利用調(diào)整發(fā)包速率和SYN包的發(fā)包次數(shù)來進(jìn)行調(diào)優(yōu)。當(dāng)參數(shù)調(diào)整后的測試對比結(jié)果可靠性提高時,參數(shù)的調(diào)優(yōu)方向也比較明確。但是,當(dāng)參數(shù)調(diào)整后的測試結(jié)果對比不是很顯著時,參數(shù)的調(diào)優(yōu)方向一般由研發(fā)人員根據(jù)經(jīng)驗決定,而沒有比較科學(xué)的理論依據(jù)做支持。
綜上所述,為了解決半連接掃描引擎由于網(wǎng)絡(luò)丟包而導(dǎo)致的可靠性下降問題,本文利用概率論中的假設(shè)檢驗理論[4],以ZMAP端口掃描工具為例,提出一種科學(xué)的掃描引擎調(diào)優(yōu)方法,使得端口掃描引擎在保證掃描速率的前提下,獲得更加穩(wěn)定、可靠的端口掃描結(jié)果,并得出切實可行的優(yōu)化方案。
通常,由于互聯(lián)網(wǎng)的復(fù)雜性和網(wǎng)絡(luò)狀況隨時間的不斷變化,對同一批目標(biāo)IP的相同目標(biāo)端口在間隔較短的不同時間進(jìn)行端口掃描,可能得到差異很大的掃描結(jié)果。針對該問題,本文提出利用多次發(fā)包的方法緩解由于網(wǎng)絡(luò)丟包造成的掃描結(jié)果波動較大的問題。
本文設(shè)計如下優(yōu)化方案進(jìn)行配對實驗。首先,原始方案僅向目標(biāo)端口發(fā)送一個SYN包;優(yōu)化方案向目標(biāo)端口發(fā)送2個SYN包,并使用相同的發(fā)包頻率。為了保證2個測試方案的網(wǎng)絡(luò)情況一致,它們于同一時間在同一測試機(jī)上進(jìn)行實驗,取15組測試數(shù)據(jù),如表1所示。
表1 原始方案與優(yōu)化方案測試數(shù)據(jù)
其中,Original字段和Optimized字段分別為原始方案和優(yōu)化方案掃描的開放端口總數(shù)。對測試數(shù)據(jù)進(jìn)行可視化操作,結(jié)果如圖1所示。
從圖1可以明顯看出,在相同的測試環(huán)境下,本文的優(yōu)化方案可以更好地應(yīng)對網(wǎng)絡(luò)波動情況,產(chǎn)生更為理想的測試數(shù)據(jù)。另外,本文還設(shè)計了如下假設(shè)檢驗方案對上述優(yōu)化方案的掃描效果進(jìn)行進(jìn)一步驗證。由于原始方案和優(yōu)化方案是在同一時間相同網(wǎng)絡(luò)條件下執(zhí)行的配對測試,因此對測試結(jié)果執(zhí)行配對T檢驗。
指定alpha level為1%,并提出假設(shè):零假設(shè),即原始方案與優(yōu)化方案掃描出的開放端口總數(shù)相差不大;對立假設(shè),即優(yōu)化方案掃描出的開放端口數(shù)大于原始方案掃描出的開放端口數(shù)。
圖1 測試數(shù)據(jù)可視化
為了與alpha level進(jìn)行比較,本文使用配對T檢驗的t值結(jié)果進(jìn)行對比,其計算公式如下:
其中為配對樣本差值平均數(shù),為配對樣本差值的標(biāo)準(zhǔn)偏差,n為配對樣本數(shù)[5]。
根據(jù)式(1)的計算結(jié)果,得到對應(yīng)p值為2.60e-12。由于該結(jié)果遠(yuǎn)小于alpha level,所以拒絕零假設(shè)并接受對立假設(shè)。經(jīng)過上述實驗對比可以看出,本文優(yōu)化方案的掃描效率要優(yōu)于原始方案,在相同實驗條件下,本文優(yōu)化方案還可以得到更多的開放端口數(shù)目。
通常,以ZMAP為代表的半連接掃描引擎的掃描速率與發(fā)包速度有關(guān)。發(fā)包速度越高,掃描速度越快,而其發(fā)包速度通過-B參數(shù)指定帶寬予以控制。但是,由于掃描引擎的掃描行為本身也會對網(wǎng)絡(luò)情況產(chǎn)生影響,過大的發(fā)包速度會導(dǎo)致掃描到的開放端口數(shù)變少。因此,如何針對不同的網(wǎng)絡(luò)狀況選擇合適的發(fā)包速度,從而在盡可能短的時間內(nèi)掃描出盡可能多的開放端口數(shù),也是掃描引擎調(diào)優(yōu)至關(guān)重要的方面。
針對上述問題,本文提出如下測試方案。首先,方案一采用128 kHz帶寬進(jìn)行端口開放性掃描;其次,方案二采用256 kHz帶寬進(jìn)行端口開放性掃描。分別使用2個方案在不同日期的相同時間段內(nèi)各自進(jìn)行若干次掃描,并統(tǒng)計掃描出的開放端口數(shù),結(jié)果如表2所示。
表2 128 kHz掃描速率與256 kHz掃描速率命中目標(biāo)數(shù)
觀察2組測試數(shù)據(jù)可以發(fā)現(xiàn),部分測試數(shù)據(jù)在256 kHz帶寬下獲得了較低的開放端口發(fā)現(xiàn)數(shù)量,也有部分測試數(shù)據(jù)并沒有獲得較低的開放端口發(fā)現(xiàn)數(shù)量。因此,僅通過觀察樣本數(shù)據(jù)無法得出明確結(jié)論。本文依據(jù)假設(shè)檢驗理論對樣本數(shù)據(jù)執(zhí)行假設(shè)檢驗,由于2組數(shù)據(jù)樣本之間的獨立性,此處對它們執(zhí)行獨立雙樣本t檢驗。
指定alpha level為1%,并提出假設(shè):零假設(shè),256 kHz帶寬掃描出的端口開放個數(shù)與128 kHz帶寬掃描出的端口開放個數(shù)無明顯差異;對立假設(shè),256 kHz帶寬掃描出的端口開放個數(shù)少于128 kHz帶寬掃描出的端口開放個數(shù)。
使用獨立雙樣本t檢驗計算t值,獨立雙樣本t檢驗的計算公式如下:
其中,n為樣本數(shù)[5]。所述二群樣本各自的平均數(shù)和所述樣本之共同變異數(shù)依次為:
針對本次對比測試的測試結(jié)果,計算得到p值為0.0406,結(jié)果大于alpha level,因此未能拒絕零假設(shè)。實驗結(jié)果表明,在256 kHz帶寬參數(shù)下,掃描引擎掃描出的開放端口數(shù)并沒有明顯下降,因此可以將掃描引擎的掃描速率提升一倍。
本文通過引入假設(shè)檢驗理論,促使掃描引擎的優(yōu)化過程不再僅僅依靠研發(fā)人員的經(jīng)驗,而是有了可以參照的理論和對應(yīng)計算數(shù)據(jù)作為依據(jù)。另外,在無法從對比測試數(shù)據(jù)中直接看出明顯差異的情況下,本文提供了一個更加簡便和準(zhǔn)確的方式作為引擎調(diào)優(yōu)方向的指導(dǎo)。實驗結(jié)果表明,本文方法可以有效減少反復(fù)進(jìn)行對比測試的過程,從而提高引擎調(diào)優(yōu)的效率。
參考文獻(xiàn):
[1] 王慧強(qiáng),賴積保,朱亮等.網(wǎng)絡(luò)態(tài)勢感知系統(tǒng)研究綜述 [J].計算機(jī)科學(xué) ,2006,33(10):1-6.WANG Hui-qiang,LAI Ji-bao,ZHU Liang,et al.A Survey of Network Situational Perception Systems[J].Computer Science,2006,33(10):1-6.
[2] Zakir D,Eric W,Halderman J A.ZMAP:Fast Internetwide Scanning and Its Security Applications[C].22nd USENIX Security Symposium,2013:606-610.
[3] 劉文晉,姜建國.半連接端口掃描的TCP層技術(shù)研究[J].重慶電力高等??茖W(xué)校學(xué)報,2009,14(02):31-34.LIU Wen-jin,JIANG Jian-guo.Research on TCP Layer Technology for Semi-connected Port Scanning[J].Journal of Chongqing Electric Power College,2009,14(02):31-34.
[4] 馬鳳鳴,王忠禮.假設(shè)檢驗方法分析及應(yīng)用[J].長春大學(xué)學(xué)報 ,2012,22(02):1-6.MA Feng-ming,WANG Zhong-li.Hypothesis Test Method Analysis and Application[J].Journal of Changchun University,2012,22(02):1-6.
[5] 史書良.統(tǒng)計學(xué)原理[M].北京:清華大學(xué)出版社 ,2007:256-258,270-273.SHI Shu-liang.Statistics Principle[M].Beijing:Tsinghua University Press,2007:256-258,270-273.