網(wǎng)絡(luò)安全漏洞檢測技術(shù)研究及應(yīng)用
- 來源:網(wǎng)絡(luò)空間安全 smarty:if $article.tag?>
- 關(guān)鍵字:網(wǎng)絡(luò)安全,漏洞,數(shù)據(jù)庫 smarty:/if?>
- 發(fā)布時間:2020-09-29 18:49
摘 要:網(wǎng)絡(luò)安全漏洞檢測在網(wǎng)絡(luò)信息系統(tǒng)保障中發(fā)揮著重要的基礎(chǔ)作用。文章首先對漏洞掃描器的原理和漏洞數(shù)據(jù)庫進行了分析,接著介紹了模擬攻擊腳本定制和插件技術(shù)兩種常見技術(shù),最后給出了軟件實現(xiàn)和利用該工具對系統(tǒng)進行安全分析得到的檢測結(jié)果。實踐證明,在該工具軟件在已實現(xiàn)功能的基礎(chǔ)上,及時進行漏洞和插件更新,就可用于網(wǎng)絡(luò)系統(tǒng)安全檢測。
關(guān)鍵詞:網(wǎng)絡(luò)安全;漏洞;數(shù)據(jù)庫;測評工具
中圖分類號: TP309.2 文獻標識碼:A
Abstract: The cyberspace security vulnerability detection plays an important basic role in network information system guarantee. This paper first analyzes the principle of vulnerability scanner and vulnerability database, then introduces two common technologies, i.e. simulation attack script customization and plug-in technology, finally, the software implementation and the test results of the system security analysis by using the tool are given. It has been proved that, on the basis of the realized function of the tool software, the vulnerability and plug-in update in time can be used for network system security detection.
Key words: cyberspace security; vulnerability; database; evaluation tools
1 引言
進入新時代,全球迎來了新一輪信息技術(shù)革命,以互聯(lián)網(wǎng)為核心的信息通信技術(shù)及其應(yīng)用和服務(wù)正在發(fā)生質(zhì)變。人類社會的信息化、網(wǎng)絡(luò)化達到前所未有的程度,信息網(wǎng)絡(luò)成了整個國家和社會的“中樞神經(jīng)”。然而網(wǎng)絡(luò)化趨勢卻帶來了兩個矛盾:一是攻擊技術(shù)永遠領(lǐng)先于防御技術(shù);二是信息技術(shù)和應(yīng)用越復(fù)雜、功能越全面,其脆弱性、漏洞和安全隱患就越大。從技術(shù)發(fā)展趨勢看,這兩個矛盾會越來越突出,網(wǎng)絡(luò)與信息安全形勢不容樂觀。保障網(wǎng)絡(luò)信息安全中非常重要的一項措施就是消除信息系統(tǒng)中已知的安全隱患。
網(wǎng)絡(luò)安全檢測評估,通過對信息網(wǎng)絡(luò)及其相關(guān)設(shè)施設(shè)備的安全風(fēng)險進行檢測評估,及時發(fā)現(xiàn)安全隱患,提出防護措施,對確保信息網(wǎng)絡(luò)安全運行具有重要關(guān)口作用。研究網(wǎng)絡(luò)安全漏洞檢測技術(shù),開發(fā)和使用漏洞掃描器,及時發(fā)現(xiàn)所維護的系統(tǒng)開放的各種TCP端口、提供的服務(wù)、軟件版本和這些服務(wù)及軟件呈現(xiàn)在網(wǎng)絡(luò)及信息系統(tǒng)中的安全漏洞,從而在計算機網(wǎng)絡(luò)系統(tǒng)安全保衛(wèi)戰(zhàn)中做到“有的放矢”,及時修補漏洞,是網(wǎng)絡(luò)安全保障工作的關(guān)鍵步驟之一,為網(wǎng)絡(luò)安全保障工作提供技術(shù)支撐,具有現(xiàn)實意義。
2 網(wǎng)絡(luò)安全檢測工具
2.1 漏洞掃描器的原理
漏洞掃描器是常見的網(wǎng)絡(luò)安全檢測工具,漏洞掃描器分為主機漏洞掃描器和網(wǎng)絡(luò)漏洞掃描器。前者基于主機,通過在主機系統(tǒng)本地運行代理程序來檢測系統(tǒng)漏洞,例如操作系統(tǒng)掃描器和數(shù)據(jù)庫掃描器;后者基于網(wǎng)絡(luò),通過請求/應(yīng)答方式遠程檢測目標網(wǎng)絡(luò)和主機系統(tǒng)的安全漏洞。針對檢測對象的不同,漏洞掃描器還可分為網(wǎng)絡(luò)掃描器、操作系統(tǒng)掃描器、WWW服務(wù)掃描器、數(shù)據(jù)庫掃描器以及無線網(wǎng)絡(luò)掃描器。
漏洞掃描器通常以三種形式出現(xiàn):(1)單一的掃描軟件,安裝在計算機或掌上電腦上,例如ISS Internet Scanner;(2)基于客戶機(管理端)/服務(wù)器(掃描引擎)模式或瀏覽器/服務(wù)器模式,通常為軟件,安裝在不同的計算機上,也有將掃描引擎做成硬件的,例如Nessus;(3)其他安全產(chǎn)品的組件,例如防御安全評估就是防火墻的一個組件。
網(wǎng)絡(luò)漏洞掃描可分為ARP掃描、ICMP掃描、端口掃描、OS探測、脆弱點探測等。按照TCP/IP協(xié)議分層模型,ARP掃描工作在數(shù)據(jù)鏈路層,可以基于ARP協(xié)議在局域網(wǎng)內(nèi)對目標主機進行掃描,來判斷目標主機是否啟用。ICMP(Ping)掃描工作在互聯(lián)網(wǎng)絡(luò)層;端口掃描工作在傳輸層;0S探測、脆弱點探測工作在網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。通過ARP掃描、ICMP掃描確定目標主機的IP地址,利用ICMP掃描可以探測是否有防火墻或者其他過濾設(shè)備存在,可以獲得防火墻的ACL(access control list),甚至整個網(wǎng)絡(luò)拓撲結(jié)構(gòu)。端口掃描分為TCP掃描和UDP掃描,通過遠程檢測目標主機不同端口的服務(wù),記錄目標給予的應(yīng)答,來搜集目標主機上的各種信息?;诙丝趻呙璧慕Y(jié)果,可以進行OS探測,然后根據(jù)系統(tǒng)的漏洞庫進行分析和匹配,進行脆弱點探測,如果滿足匹配條件,則認為安全漏洞存在;或者通過模擬黑客的攻擊手法對目標主機進行攻擊,如果模擬攻擊成功,則認為安全漏洞存在。
在匹配原理上,目前漏洞掃描器大都采用基于規(guī)則的匹配技術(shù),即通過對網(wǎng)絡(luò)系統(tǒng)安全漏洞、黑客攻擊案例和網(wǎng)絡(luò)系統(tǒng)安全配置的分析,形成一套標準安全漏洞的特征庫,在此基礎(chǔ)上進一步形成相應(yīng)的匹配規(guī)則,由掃描器自動完成掃描分析工作。
2.2 安全漏洞數(shù)據(jù)庫
目前,漏洞掃描器多數(shù)采用基于特征的匹配技術(shù),與基于誤用檢測技術(shù)的入侵檢測系統(tǒng)相類似。掃描器首先通過請求/應(yīng)答,或通過執(zhí)行檢測腳本,來搜集目標主機上的信息,然后在獲取的信息中尋找漏洞特征庫定義的安全漏洞,如果有,則認為安全漏洞存在。可以看到,安全漏洞能否發(fā)現(xiàn)很大程度上取決于漏洞特征的定義。
漏洞特征庫的多少決定了漏洞掃描器能夠發(fā)現(xiàn)安全漏洞的數(shù)量,所以這是衡量一個漏洞掃描產(chǎn)品功能強弱的重要因素,這需要引出漏洞特征庫升級(即產(chǎn)品升級)問題。由于每天都有可能出現(xiàn)新的安全漏洞,而基于特征匹配的漏洞掃描技術(shù)不可能發(fā)現(xiàn)未知的安全漏洞,所以特征庫的及時升級就顯得尤為重要。
MITRE公司建立的CVE(Common Vulnerabilities and Exposures,公共弱點/風(fēng)險)列表解決了這個問題。CVE是一個行業(yè)標準,為每個弱點/風(fēng)險(漏洞)確定了唯一的名稱和標準化的描述,可以成為評價相應(yīng)入侵檢測和漏洞掃描等工具產(chǎn)品和數(shù)據(jù)庫的基準。
當(dāng)MITRE發(fā)現(xiàn)一個潛在的新的安全漏洞后,MITRE的CVE編輯審查部門將授予這個新問題一個候選名稱以及一個號碼(CAN編號)。然后審查小組將對這個問題進行審查,以確定它是全新的問題,而不是CVE列表中已有的問題,也不是另一個正在等待審查的問題,然后投票決定是否接受這個問題為一個正式的CVE項。MITRE的審查小組由計算機安全問題專家組成,這些專家不僅僅來自MITRE公司,有些來自其他的安全技術(shù)組織或者安全問題咨詢公司。通過收集和分析安全漏洞,開發(fā)相應(yīng)漏洞檢測插件或腳本,可以擴展漏洞掃描器可發(fā)現(xiàn)的漏洞掃描類型和數(shù)量,一個網(wǎng)絡(luò)安全漏洞數(shù)據(jù)庫的維護系統(tǒng)如圖1所示。
3 網(wǎng)絡(luò)安全檢測工具開發(fā)
3.1 模擬攻擊腳本定制
模擬攻擊腳本的定制對于安全掃描和安全漏洞的驗證都十分關(guān)鍵,也是掃描器的關(guān)鍵技術(shù)之一。模擬攻擊腳本與漏洞特征庫緊密相關(guān),需要獲取包含漏洞特征的信息。事實上,模擬攻擊腳本是實際攻擊的一個簡化版或弱化版,達到獲取信息的目的即可,而不需要把目標攻癱或獲取根權(quán)限。例如,模擬的拒絕服務(wù)攻擊腳本,一旦發(fā)現(xiàn)系統(tǒng)出現(xiàn)異常時就會立刻停止攻擊。探測弱口令之類安全漏洞的腳本,則會利用賬戶名稱簡單變換、長度較短和易猜解的口令進行嘗試,而不會像口令破解程序那樣會去窮盡整個搜索空間。通常,模擬攻擊腳本越多,掃描器能夠發(fā)現(xiàn)的安全漏洞種類就越多,功能也就越強大。
3.2 插件技術(shù)
插件就是信息收集或模擬攻擊的腳本,每個插件都封裝著一個或者多個漏洞的測試手段。通常,漏洞掃描器是借助于主掃描程序通過用插件的方法來執(zhí)行掃描,通過添加新的插件就可以使掃描器增加新的功能,掃描更多的漏洞。如果能夠格式化插件的編寫規(guī)范并予以公布,用戶或者第三方就可以自己編寫插件來擴展掃描器的功能。插件技術(shù)可使掃描器的結(jié)構(gòu)清晰,升級維護變的相對簡單,并具有非常強的擴展性。
4 網(wǎng)絡(luò)系統(tǒng)安全檢測工具軟件實現(xiàn)
4.1 存活主機探測
在漏洞掃描之前,首先要進行存活主機的探測,特別是大范圍的網(wǎng)絡(luò)漏洞掃描,若進行全IP段的盲掃,將耗費大量的無用時間。進行存活主機探測目前主要有兩種方法:(1)Ping探測。是向特定的目的主機發(fā)送ICMP(Internet Control Message Protocol 因特網(wǎng)報文控制協(xié)議)Echo請求報文,測試目的主機是否可達及了解其有關(guān)狀態(tài)。如果收到了目標主機類型字段為0的應(yīng)答數(shù)據(jù)包,說明目標主機是存活的,接下來就可以針對存活的目標主機進行下一步的掃描,如果在規(guī)定的時間內(nèi),源主機沒有接收到ICMP的應(yīng)答包,則說明目標主機不可達。(2)開放端口探測。由于安全的原因,目前很多主機或者防火墻都禁用了Ping,這導(dǎo)致即使是存活的主機也沒法連通,因此使用Ping方法沒法百分百判斷主機的存活狀態(tài),這就要結(jié)合開放端口判定主機的存活狀態(tài)。一般通過掃描常見的端口,如Web服務(wù)80、8080、443端口,F(xiàn)TP21端口,Windows常見的135、139、445端口、Linux常見的22端口等。
4.2 端口掃描技術(shù)
網(wǎng)絡(luò)漏洞掃描是建立在端口掃描的基礎(chǔ)上的,支持TCP/IP協(xié)議的主機和設(shè)備,都是以開放端口來提供服務(wù),端口可以說是系統(tǒng)對外的窗口,安全漏洞也一般通過端口暴露出來。因此,網(wǎng)絡(luò)漏洞掃描器為了提高掃描效率,首先需要判斷系統(tǒng)的哪些端口是開放的,然后對開放的端口執(zhí)行某些掃描腳本,以進一步尋找安全漏洞。掃描器一般集成了六種主要的端口掃描技術(shù)。
?。?)TCP SYN掃描:掃描器向目標主機的一個端口發(fā)送請求連接的SYN包,掃描器在收到SYN/ACK后,不發(fā)送ACK應(yīng)答而是發(fā)送RST包請求斷開連接。這樣“三次握手”就沒有完成,無法建立正常的TCP連接,因此,這次掃描就不會被記錄到系統(tǒng)日志中。
?。?)TCP FIN掃描:掃描器發(fā)送一個設(shè)置了FIN位的數(shù)據(jù)包,若響應(yīng)RST數(shù)據(jù)包,則表示端口關(guān)閉,沒有響應(yīng)則表示開放。
?。?)TCP connect掃描:掃描器試圖與每一個TCP端口進行“三次握手”通信。如果能夠成功建立接連,則證明端口開放,否則為關(guān)閉。準確度很高,但是最容易被防火墻和IDS檢測到,并且在目標主機的日志中會記錄大量的連接請求以及錯誤信息。
(4)FIN+URG+PUSH掃描:也叫TCP Xmas Tree掃描,掃描器向目標主機發(fā)送一個FIN+URG+PUSH分組,根據(jù)RFC793,如果目標主機的相應(yīng)端口是關(guān)閉的,那么應(yīng)該返回一個RST標志。
(5)NULL掃描:將一個沒有設(shè)置任何標志位的數(shù)據(jù)包發(fā)送給TCP端口,在正常的通信中至少要設(shè)置一個標志位,根據(jù)FRC 793的要求,在端口關(guān)閉的情況下,若收到一個沒有設(shè)置標志位的數(shù)據(jù)字段,那么主機應(yīng)該舍棄這個分段并發(fā)送一個RST數(shù)據(jù)包,否則不會響應(yīng)發(fā)起掃描的客戶端計算機。也就是說,如果TCP端口處于關(guān)閉狀態(tài)則響應(yīng)一個RST數(shù)據(jù)包,若處于開放狀態(tài)則無響應(yīng)。
(6)UDP ICMP端口不能到達掃描:掃描器向一個未打開的UDP端口發(fā)送一個數(shù)據(jù)包時,會返回一個ICMP_PORT_UNREACH錯誤,這樣就能發(fā)現(xiàn)哪個端口是關(guān)閉的。
4.3 指紋探測技術(shù)
所謂指紋探測就是為了精確收集掃描目標的各種信息,如探測操作系統(tǒng)、數(shù)據(jù)庫、中間件等的類型和具體版本,為下一步的漏洞探測提供準確信息,提高漏洞掃描結(jié)果的準確率。很多應(yīng)用軟件都會在其banner中返回其軟件名稱、版本號等關(guān)鍵信息。圖2是一個連接FTP服務(wù)器時,服務(wù)器返回相關(guān)信息的一個例子。
HTTP訪問返回數(shù)據(jù)的HTTP頭中通常也會包括HTTP服務(wù)器軟件相關(guān)信息,如通過圖3的返回信息可以知道服務(wù)器為“Apache-Coyote”,版本為1.1。
針對軟件banner信息泄露的情況,有的系統(tǒng)管理員會修改banner以迷惑惡意攻擊者或掃描軟件。另外一個相對簡單的指紋探測方法就是通過主機開放的端口號進行判斷?;ヂ?lián)網(wǎng)上知名的服務(wù)都有對應(yīng)的端口號,如HTTP服務(wù)對應(yīng)80、FTP服務(wù)對應(yīng)21、SSH服務(wù)對應(yīng)22等,當(dāng)然這個規(guī)范也不是強制要求的。一些早期的漏洞掃描軟件直接通過端口號判斷目標主機開放的服務(wù)并進行下一步的漏洞掃描,比如oracle默認的端口號是1521,當(dāng)oracle以默認端口部署時,漏洞掃描軟件會通過oracle漏洞庫匹配發(fā)現(xiàn)數(shù)據(jù)庫的相關(guān)漏洞,當(dāng)oracle的端口號修改為非1521端口后,漏洞掃描軟件就會認為目標主機沒有安裝oracle數(shù)據(jù)庫,不會進行相關(guān)漏洞掃描,修改服務(wù)的默認端口也是系統(tǒng)安全配置的基線之一。
4.4 軟件主要功能
掃描模塊在工作時,首先進行初始化,在初始化階段,主要是讀取所需的參數(shù)。比如從基本信息探測子模塊得到操作系統(tǒng)類型,由此來決定在掃描中需要使用的漏洞庫,還有一些用戶自己配置的參數(shù)。除了讀取參數(shù)外,還要建立一些文件以供以后使用。初始化后,建立非阻塞socket并連接,然后根據(jù)得到的相關(guān)端口及對應(yīng)的服務(wù),來調(diào)用相應(yīng)的漏洞掃描子模塊。
Windows下網(wǎng)絡(luò)編程規(guī)范Windows Sockets規(guī)范以U.C. Berkeley大學(xué)BSD UNIX中流行的Socket接口為范例定義了一套Micosoft Windows下網(wǎng)絡(luò)編程接口。它不僅包含了人們所熟悉的Berkeley Socket風(fēng)格的庫函數(shù),也包含了一組針對Windows的擴展庫函數(shù),以使程序員能充分地利用Windows消息驅(qū)動機制進行編程。Windows Sockets規(guī)范本意在于提供應(yīng)用程序開發(fā)者一套簡單的API,并讓各家網(wǎng)絡(luò)軟件供應(yīng)商共同遵守。
網(wǎng)絡(luò)安全檢測工具使用VC++ 6.0進行開發(fā),在實現(xiàn)中采用了插件技術(shù)和多線程編程技術(shù),由于CSocket類封裝了大量網(wǎng)絡(luò)基礎(chǔ)應(yīng)用低層語句,可以很方便地進行網(wǎng)絡(luò)編程,而無需對底層進行直接操作。圖4給出了軟件實現(xiàn)界面,圖5給出了使用該工具進行檢測得到的安全分析結(jié)果。
4.5 小結(jié)
針對目前TCP/IP網(wǎng)絡(luò)和各種網(wǎng)絡(luò)主機的安全現(xiàn)狀,設(shè)計并實現(xiàn)了一個網(wǎng)絡(luò)漏洞掃描檢測工具,可以掃描分析Linux、UNIX、Windows 2000/NT/7/2008等多種操作系統(tǒng),以及Sql Server、Oracle等主流數(shù)據(jù)庫、Web應(yīng)用系統(tǒng)等多種對象的安全漏洞。該網(wǎng)絡(luò)安全漏洞掃描器具有五個特點。
(1)能夠多方位、多角度對處于網(wǎng)絡(luò)環(huán)境中的重要網(wǎng)絡(luò)主機進行安全掃描;
?。?)掃描覆蓋面廣:能對多種操作系統(tǒng)、數(shù)據(jù)庫進行隱患掃描;
?。?)掃描速度快:利用多進程并發(fā)和TCP的非阻塞連接等技術(shù)加快了掃描的速度;
?。?)可配置性好:通過友好的圖形化界面,用戶可以十分方便地配置本系統(tǒng)的主要參數(shù),以便于靈活的適應(yīng)各種各樣的實際網(wǎng)絡(luò)應(yīng)用環(huán)境;
?。?)可擴展性好:采用插件技術(shù),并可以對漏洞庫進行升級。
5 結(jié)束語
網(wǎng)絡(luò)安全工作是防守和進攻的博弈,及時和準確地識別網(wǎng)絡(luò)信息系統(tǒng)弱點和漏洞,才能在網(wǎng)絡(luò)安全保障工作中處于先機,立于不敗之地。網(wǎng)絡(luò)安全漏洞檢測技術(shù)對網(wǎng)絡(luò)信息系統(tǒng)的保障有著非常重要的作用,不僅可以借此提高整體技術(shù)水平、質(zhì)量水平,還可以加強安全性能。降低網(wǎng)絡(luò)信息系統(tǒng)出現(xiàn)安全問題的概率,已經(jīng)成為網(wǎng)絡(luò)安全領(lǐng)域的關(guān)注重點。網(wǎng)絡(luò)漏洞檢測的目的在于發(fā)現(xiàn)漏洞、修補漏洞,進而從根本上提高信息系統(tǒng)的安全性,減少安全事件的發(fā)生。加強網(wǎng)絡(luò)安全漏洞檢測技術(shù)研究,開發(fā)漏洞檢測掃描分析軟件工具,對于保障網(wǎng)絡(luò)安全,提高整體網(wǎng)絡(luò)安全防護能力具有十分重要的意義。
張昊 賀江敏 屈曄
