郝科委 余翔湛 趙洋
Abstract: Large-scale network scanning has many network security applications, including vulnerability discovery and tracking network defense mechanisms. However, the existing network scanning tools have some difficulties and slowness in terms of large-scale network scanning. Based on the research and analysis of widely used network scanning technology and tools, the paper designs a large-scale network scanning system. This system is based on the scanning technology of zmap, and implements variety of scanning mode such as survivability scanning, port scanning, application-level service scanning and so on. Compared with traditional tools, scanning speed and functional completeness of this system have been greatly improved. Finally, the paper conducts multiple tests in different scanning application scenes, and the experimental results show that the efficiency of the system is much higher than that of traditional tools.
引言
隨著網絡的飛速發展和普及, 互聯網不斷推動社會生產的建設與進步,而網絡也極大地豐富了人們的生活,逐漸成為了人們生活必不可缺的一部分。但是事情總是有兩面性,網絡的發展使得人們對網絡的依賴更強了,而這也帶來了網絡安全的潛在問題[1]。目前,時有發生的網絡犯罪事件造成嚴重的信息泄露和個人財產損失,網絡攻擊的方式也推陳出新,網絡病毒、木馬程序、拒絕服務攻擊、APT攻擊等等,所引發的網絡犯罪事件正在發生,著名的“棱鏡門”事件、索尼黑客攻擊事件等等,這些都在警示人們保護網絡安全勢不容緩,而網絡掃描則是維護網絡安全的重要手段之一。
作為一種重要的網絡安全技術,網絡掃描技術可以有效提升網絡安全性[2]。簡單地說,網絡掃描就是對網絡空間中的目標結點或者服務發送具有特定功能的探測報文,并根據目標的返回報文或者狀態改變等來獲得目標特定信息的一種行為。網絡掃描技術和入侵檢測系統、防火墻相互協作,可以很好地提高網絡安全等級。網絡掃描實質上就是對目標網絡安全性能的一種評估,能夠對當前網絡安全狀況獲得一個大致了解。網絡管理人員可以根據網絡掃描的結果,發現網絡中可能造成安全問題的安全隱患,也能夠對網絡狀況隨時跟進,從而掌握更為準確的更新動態。
國內外已經開展了許多網絡掃描的研究[3]。在掃描工具方面,有業內常用的功能強大的nmap[4],也有最近出現的以快著稱45 min掃描整個IPv4空間的zmap[5]。該工具通過對傳統掃描技術的發包速度和狀態保存等方面研發引進了多項優化技術,使其速度達到nmap的1 300多倍。對于各類技術內容可分述如下。
(1)探測優化技術。目標地址隨機分散化以保證目標路徑不會擁塞,而不是像nmap一樣通過限制傳輸速度來避免擁塞,跳過TCP/IP協議棧直接生成以太幀,從而以網卡的極限速度發送探測包,大大提高了探測速度。
(2)無狀態技術。不維護跟蹤每個探測的連接狀態,使用一個cyclic multiplicative group來隨機選擇目標地址,使用類似SYN cookies的方法來區別有效的響應和網絡背景流量,從而大大節省了內存等開銷。
(3)不重傳技術。由于不保存連接狀態,就不再需要重傳,每個目標都是固定的探測包數目,而nmap為了保存連接狀態需要適應性地重傳丟失的數據包,如此一來就大大提高了速度。
大規模網絡掃描[6]是網絡安全研究的最主要方式。通過大規模網絡掃描,可以對整個國家、甚至整個互聯網的安全狀況得到一個全局深入的了解。相比于局部網絡掃描,大規模網絡掃描對掃描速度和掃描效率提出了苛刻的要求,只有極高的掃描速度才能使得掃描結果具有時效性,也才能實時、準確地探查獲知當前網絡安全環境狀況。雖然當前已有一些成熟的網絡掃描系統,如nmap等,但是其掃描速度不能滿足大規模網絡研究的需要。因此,如何能夠快速地對大規模網絡進行掃描即已成為網絡領域的一個重要課題。
本文在分析現有的網絡掃描技術的基礎上,針對大規模網絡掃描,設計實現了一種新的大規模網絡快速掃描系統。現有的網絡掃描工具基本都使用了全連接掃描(Open Scan)、半連接掃描(Half-Open Scan)、隱秘掃描(Stealth Scans)、存活性掃描(Sweep Scans)等掃描方法。nmap的掃描功能比較強大,可以提供端口檢測、版本檢測和系統檢測等模式,但是在大規模網絡應用上存在速度較慢的問題,不能滿足時效性;而近年出現的zmap掃描速度雖然有了可觀提升,但是其主要針對的是單端口掃描,功能相對較少,在應用層服務識別方面沒有推出任何設計方法,功能完整性上存在一定的問題,也不能滿足大規模網絡高速掃描的需求。因此,一個掃描功能完備,掃描速度優越的針對大規模網絡的高速掃描系統對于大規模網絡掃描將具有尤為重要的現實應用意義。
1網絡掃描技術研究
1.1網絡掃描的定義與分類
研究可知,按照其功能和目標,網絡掃描技術將分為4種,可得闡釋解析如下。
(1)存活性掃描技術。目的是判定目標主機的網絡可達性,主要手段有:ICMP Echo掃描、ICMP Sweep 掃描、Broadcast ICMP掃描、Non-Echo ICMP掃描。
(2)端口掃描技術。通過對目標端口的掃描得到目標主機的端口開放狀態,為進一步的掃描提供支持。常用的端口掃描方法有:TCP connect()掃描、Reverse-ident掃描、Tcp syn掃描[7]等。
(3)應用層服務掃描技術。在端口掃描的基礎上,通過構造相應服務的數據包并發送,根據不同的響應來判斷目標主機對應服務的狀態及版本信息和操作系統相關信息。常用的服務有:DNS協議掃描、NTP協議掃描、HTTP協議掃描等。
(4)操作系統識別技術。通過發送特定的數據包,根據響應報文的特征來判斷目標主機的操作系統信息。常用的方法有:FIN探測、BOGUS標記位探測、TCP ISN取樣等。
1.2網絡掃描優化技術
針對大規模網絡掃描存在的一些問題,涌現了許多有助于提升網絡掃描速度和效率的網絡掃描優化技術,總結如下。
(1)目標地址分散化技術。由于在大規模網絡掃描的應用中,掃描目標數量巨大,如果采取傳統的順序掃描方法就極有可能會造成局部目標路徑的擁塞,而且還會觸發目標網絡的入侵檢測系統,對進一步的掃描造成不利影響。使用一些隨機化的算法生成分散化的目標地址掃描序列,就能在不降低掃描速度的前提下有效解決這些問題。
(2)無狀態技術。傳統的掃描技術為了記錄已掃描過的目標、處理連接超時和重傳,一般都會為每個掃描連接維持狀態,而維持狀態會耗費大量的計算資源,從而影響掃描的速度和效率。無狀態技術,不維護跟蹤每個探測的連接狀態,使用特殊的方法來區別有效的響應和網絡背景流量,從而大大節省內存等開銷。
2系統設計
2.1系統概要設計
在對當前主流的網絡掃描技術和網絡掃描工具的深入研究的基礎上,針對大規模網絡高速掃描的應用背景,以提高掃描速度和掃描功能完整性為目標,展開了本系統的設計。系統總體架構如圖1所示。由圖1可知,各部分設計功能可闡述如下。
(1)前端。通過前端網頁接受使用者的輸入,根據輸入確定掃描參數,并將掃描結果通過前端進行反饋,用戶可以查看已完成任務的掃描結果。
(2)任務處理模塊。將用戶輸入的任務通過標準化處理,生成標準化的掃描任務,根據掃描類型調用相應的掃描模塊進行掃描。
(3)數據處理模塊。接收結果處理模塊回傳的任務結果,對結果數據進行標準化處理與數據整合,并輔以持久化操作,將數據存入數據庫。
(4)掃描模塊。各掃描模塊執行收到的標準化任務,將掃描結果交給結果處理模塊。
(5)結果處理模塊。接收各個掃描模塊的掃描結果并進行標準化操作,然后將數據傳給數據處理模塊。
2.2目標地址隨機化技術的實現
目標地址隨機化技術能夠保證目標路徑不會擁塞,而不是像傳統掃描工具一樣限制傳輸速度來避免擁塞,此外禁除對同一網段連續地發送探測包可以有效防范對目標網段入侵檢測系統的觸發可能,從而避免后續掃描被阻斷[8]。為了生成近似隨機而且不會重復的IP地址序列,本系統使用了一種利用循環乘法群的方法。方法原理如圖2所示。
圖2中例子是為了生成一個1~6的隨機且不重復序列,那么根據循環乘法群的方法,首先要確定一個值P,就是比6大的最小的素數:7,然后確定一個P的原根(primitive root),本例選取原根為5。并且再次隨機取1~6的一個值,如5作為序列的第一個值。另外,記當前得到的序列值為當前值,那么下一個序列值就等于:當前值×原根 mod P。例如圖2中初始值為1,原根為5,P為7,因此第二個值為:1×5 mod 7 = 5。第二個值為5,而后第三個值為:5×5 mod 7 = 4,依次循環下去,如圖2所示就可得到一個隨機且不重復的1~6的序列,并且生成的序列由初始值決定,初始值相同則生成的序列相同,初始值不同則生成的序列不同。進一步研發可知,IP地址序列的生成就與此類似,這里研究使用十進制表示IP地址以便計算,也就是:生成一個1~232-1的序列,此時的P值是232+15,原根可以取3,此時如果假設初始IP是M,那么第二個IP就是:M×3 mod 232+15 ,依次類推即可得到1~232-1的隨機且不重復序列。
2.3無狀態掃描技術的實現
傳統的TCP連接需要3次握手,在這個過程中就需要維持并記錄連接狀態,而在大規模網絡掃描中,這樣的記錄狀態會占用大量的內存和計算資源。為了解決此問題,本系統不維護跟蹤每個探測的連接狀態,不進行完整的3次握手,發送SYN后,等待一定時間(目標回復SYN/ACK的時間)后就發送RST斷開連接。如上原理的運行設計即如圖3所示。
由圖3中可以看到,掃描主機發送SYN之后等待一段時間就發送RST,并不是等待收到目標主機的響應SYN/ACK才發送RST取消連接,如此一來發送探測包和接收響應包就是一個異步的過程,這樣就可以用最快的速度完成探測包發送,無需考慮等待收到每個目標主機的響應,使用跳過TCP/IP協議棧直接生成以太幀的方法,以網卡的極限速度發送探測包,大大提高了探測速度。此外,由于不保存連接狀態,也就不再需要重傳,每個目標都是固定的探測包數目,而傳統方法為了保存連接狀態需要適應性地重傳丟失的數據包,相比之下就大大提高了速度。
由于本系統不保持掃描狀態,且發送探測包與響應包接收為異步過程,需要對接收數據包進行校驗以判斷是否為目標主機返回的響應數據包。本系統使用類似SYN cookies的方法來區別有效的響應和網絡背景流量[9],從而大大節省了內存等開銷。以TCP協議為例,整體效果分析則如圖4所示。
發送探測包時將對方receiver ip地址使用UMAC算法[10]進行hash計算得出一個可以標記該掃描目標的特征值,將其處理保存到了sender port和seq number這2個字段中,當目標主機返回SYN-ACK的時候,由于此時的receiver port 就是發包時的sender port,此時的ack number 就是發包時的seq number,此時的sender ip 就是發包時的receiver ip,這樣就可以根據響應包的sender ip、receiver port、ack number提交至UMAC算法用于計算校驗,從而區別有效的響應數據包和網絡背景流量。該校驗過程計算量極小,相比保存掃描狀態的方法全面提升了掃描的速度和效率。
綜上所述,本系統使用無狀態掃描技術,不維護跟蹤每個探測的連接狀態,并且構建了發送探測包和接收響應包的異步過程,跳過TCP/IP協議棧直接生成以太幀,以網卡的極限速度發送探測包,大大提高了探測速度,使用響應包校驗技術解決了無連接狀態下識別有效響應和網絡背景流量的問題。從而真正實現了無狀態掃描,在大幅節省計算資源的前提下有效提高了大規模網絡掃描的速度和效率。
3系統測試與分析
3.1測試環境與數據說明
系統運行的軟硬件環境可見表1。根據不同功能模塊的性能要求,將系統部署在多臺服務器上。
3.2系統性能測試與分析
結合上文對掃描技術的研究,文中選取nmap與本系統進行對比測試,對比兩者在掃描速度、掃描結果準確度上的差別。在實驗環境下,統一設置發包速率為10 000 pkt/s,設置發包后的收包最長時間為10 s,重復發包數量為0。分別對單端口(80端口)及多端口(常用的16個端口:25、53、80、110、443、465、995、8080、3306、8000、1433、1521、4000、5432、6379和27017端口)進行測試。測試結果可見表2。
3.3服務掃描測試和結果分析
使用本系統,研究設計了多種應用層服務的大規模網絡掃描實驗,并對實驗結果進行深入分析。
DNS(Domain Name System)是至關重要的網絡基礎設施,用于實現域名到IP地址的轉換,是用戶訪問互聯網應用的關鍵設施。研究中使用本系統對國內IP地址進行DNS掃描測試,通過向其主機的53端口發送一個DNS查詢請求:“www.baidu.com”域名的A類記錄請求,如果收到了應答,也就說明這臺主機開啟了DNS解析服務。實驗參數與結果可見表3。
通過分析數據,發現在命中的Https服務器中大約3%左右仍在使用SSLv3協議,而該協議版本已經被認證為不再安全、且性能低下;此外,有2%的Https服務器在密鑰交換階段使用了長度小于1 024位的RSA公鑰,目前RSA公鑰的最低安全長度是2 048位,主流的CA(Certificate Authority)也已不再支持2 048位以下的企業級證書的申請,因為1 024位及以下長度的公鑰已經不再安全,可以被高性能計算機蠻力破解[11]。通過此實驗,研究發現了網絡中存在的一些Https安全隱患。
4結束語
本文在深入研究當今的網絡掃描技術和主流的網絡掃描工具的基礎上,分析了網絡掃描的技術層次和分類,對網絡掃描獲得了寶貴的認知和清晰的理解;重點剖析了針對大規模網絡高速掃描的真實需求和當今技術的缺陷,設計給出了功能完整的大規模網絡高速掃描系統,研究實現了針對大規模網絡掃描的優化技術:目標地址隨機化技術和無狀態掃描技術。拓展引入了存活性掃描、端口掃描和應用層服務掃描等掃描功能,相對傳統的網絡掃描技術,掃描速度顯著提升,使大規模網絡掃描的限制條件不再是硬件計算能力而是網絡帶寬,在配備充足帶寬的條件下,掃描速度還將成倍增加。
針對系統各項功能進行了詳細的性能與功能測試,使用國內兩千多萬個IP作為實驗目標,展開了大規模網絡掃描實驗,掃描方式完善,從基本的存活性掃描到端口掃描,再到對多種應用層服務的掃描,通過實驗得到了有效的實驗數據,從根本上考查探究了當前國內的網絡環境基本狀況,同時也發現了一些運行現象和安全問題,如發現了Https服務存在的安全問題,為網絡安全維護提供了有效的參考。
但是通過實驗也暴露了本系統的些許不足。當前的掃描系統是基于單點掃描的,在某些掃描功能上可能存在結果偏頗或片面的問題,需要在后期設計拓展多點掃描測量技術,并獲得進一步的優化和完善。
參考文獻
[1] 馬鳳強. 網絡恐怖主義對新疆安全的危害及其防范[J]. 新疆社會科學(漢文版), 2016(1):123-126.
[2] 李健, 張國印, 顧國昌,等. 網絡掃描技術實現及其在網絡安全中的應用[J]. 計算機應用研究, 2004, 21(2):101-105.
[3] BOU-HARB E, DEBBABI M, ASSI C.Cyber scanning: A comprehensive survey[J]. IEEE Communications Surveys and Tutorials,2014,16(3):1496-1519.
[4] LYON G F. Nmap network scanning: The official Nmap project guide to network discovery and security scanning[M]. USA:Nmap Project, 2009.
[5] DURUMERIC Z, WUSTROW E, HALDERMAN J A. ZMap: Fast Internet-wide scanning and its security applications[C]//22nd Usenix Conference on Security. Washington,DC:USENIX Association, 2013:605-619.
[6] BARTLETT G, HEIDEMANN J, PAPADOPOULOS C. Understanding passive and active service discovery[C]//7th ACM SIGCOMM conference on Internet measurement (IMC). San Diego, California, USA:ACM,2007:57-70.
[7] BERNSTEIN D J. SYN cookies[EB/OL]. [1996-09-06]. http://cr.yp.to/syncookies.html.
[8] 劉靜. 計算機網絡掃描技術的隱蔽性研究[J]. 計算機工程與設計, 2005, 26(6):1481-1485.
[9] DE DONATO W, MARCHETTA P, PESCAP A. A hands-on look at active probing using the IP prespecified timestamp option[C]//Passive and Active Measurement 2012. Heidelberg/Berlin:Springer-Verlag, 2012:189-199.
[10]BLACK J, HALEVI S, KRAWCZYK H, et al. UMAC: Fast and secure message authentication[M]// WIENER M. Lecture Notes in Computer Science. Santa Barbara,AC:Springer, 1999:216-233.
[11]HENINGER N, DURUMERIC Z, WUSTROW E, et al. Mining your Ps and Qs: Detection of widespread weak keys in network devices[C]// 21st Usenix Conference on Security Symposium. Bellevue,WA: USENIX, 2012:1-16.