當(dāng)前位置:首頁 > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]本文設(shè)計(jì)的Web漏洞掃描系統(tǒng)已經(jīng)完全實(shí)現(xiàn),并經(jīng)過測(cè)試,該掃描器基于瀏覽器/服務(wù)器結(jié)構(gòu),可以掃描UNIX/Windows等多種平臺(tái)下的Web系統(tǒng),與同類產(chǎn)品相比,可以看出該掃描器具有如下特點(diǎn):利用多進(jìn)程/知識(shí)庫等技術(shù)加快了掃描速度;掃描封裝在插件中使系統(tǒng)具有可擴(kuò)展性;使用B/S結(jié)構(gòu)使得用戶操作方便,掃描結(jié)果詳盡。此掃描系統(tǒng)實(shí)現(xiàn)了Web隱患掃描和漏洞檢測(cè),并可以提供漏洞的修補(bǔ)建議,將會(huì)在很大程度上確保Web系統(tǒng)安全。

0  引  言

CNCERT/CC 2006年的工作報(bào)告中顯示,隨著互聯(lián)網(wǎng)的快速發(fā)展,我國(guó)公共互聯(lián)網(wǎng)用戶數(shù)量已超過1.37億。在網(wǎng)絡(luò)發(fā)展的同時(shí),互聯(lián)網(wǎng)作為一個(gè)運(yùn)行系統(tǒng)和一個(gè)社會(huì)公共環(huán)境,所面對(duì)的和隱藏的安全威脅也越來越復(fù)雜,越來越嚴(yán)重。報(bào)告顯示,2006年CNCERT/CC接收國(guó)內(nèi)26 476件非掃描類網(wǎng)絡(luò)安全事件報(bào)告中有24 477件是由于Web引起的。從2003年~2006年中國(guó)Web攻擊事件統(tǒng)計(jì)中不難發(fā)現(xiàn),通過Web漏洞進(jìn)行攻擊事件正在逐年迅速的增長(zhǎng)。通過Web漏洞進(jìn)行攻擊成了網(wǎng)絡(luò)漏洞攻擊的主要方式與手段。

國(guó)內(nèi)外的許多學(xué)術(shù)機(jī)構(gòu)、企業(yè)和標(biāo)準(zhǔn)化組織在Web漏洞探測(cè)方面做了大量的工作。Web漏洞探測(cè)系統(tǒng)日趨成熟,當(dāng)前,比較成熟的漏洞掃描工具有Whisker及Nikto和Nessus。但由于安全產(chǎn)品特殊應(yīng)用需求以及各個(gè)組織的工具自身的技術(shù)與安全防護(hù)問題,使得這些產(chǎn)品不能很好地被推廣或普及。對(duì)具體項(xiàng)目需求,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)Web漏洞掃描系統(tǒng)是非常必要的。

1 Web漏洞掃描原理

Web漏洞掃描方法主要有兩類:信息獲取和模擬攻擊。信息獲取就是通過與目標(biāo)主機(jī)TCP/IP的Http服務(wù)端口發(fā)送連接請(qǐng)求,記錄目標(biāo)主機(jī)的應(yīng)答。通過目標(biāo)主機(jī)應(yīng)答信息中狀態(tài)碼和返回?cái)?shù)據(jù)與Http協(xié)議相關(guān)狀態(tài)碼和預(yù)定義返回信息做匹配,如果匹配條件則視為漏洞存在。模擬攻擊就是通過使用模擬黑客攻擊的方法,對(duì)目標(biāo)主機(jī)Web系統(tǒng)進(jìn)行攻擊性的安全漏洞掃描,比如認(rèn)證與授權(quán)攻擊、支持文件攻擊、包含文件攻擊、SQL注入攻擊和利用編碼技術(shù)攻擊等對(duì)目標(biāo)系統(tǒng)可能存在的已知漏洞進(jìn)行逐項(xiàng)進(jìn)行檢查,從而發(fā)現(xiàn)系統(tǒng)的漏洞。遠(yuǎn)程字典攻擊也是漏洞掃描中模擬攻擊的一種,其原理與其他攻擊相差較大,若攻擊成功,可以直接得到登陸目標(biāo)主機(jī)系統(tǒng)的用戶名和口令。

Web漏洞掃描原理就是利用上面的掃描方法,通過分析掃描返回信息,來判斷在目標(biāo)系統(tǒng)上與測(cè)試代碼相關(guān)的漏洞是否存在或者相關(guān)文件是否可以在某種程度上得以改進(jìn),然后把結(jié)果反饋給用戶端(即瀏覽端),并給出相關(guān)的改進(jìn)意見。

2 Web漏洞掃描系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

Web漏洞掃描系統(tǒng)設(shè)計(jì)的基本要求是能夠找到Web應(yīng)用程序的錯(cuò)誤以及檢測(cè)Web服務(wù)器以及CGI的安全性,其中也包括認(rèn)證機(jī)制、邏輯錯(cuò)誤、無意泄露Web內(nèi)容以及其環(huán)境信息以及傳統(tǒng)的二進(jìn)制應(yīng)用漏洞(例:緩沖區(qū)溢出等)。同時(shí)要求漏洞掃描功能能夠更新及時(shí)。本系統(tǒng)結(jié)合國(guó)內(nèi)外其他Web漏洞掃描系統(tǒng)設(shè)計(jì)思想的優(yōu)點(diǎn),采用Browser/Server/Database(瀏覽器/服務(wù)器/數(shù)據(jù)庫)和模塊化的軟件開發(fā)思路,通過滲透性檢測(cè)的方法對(duì)目標(biāo)系統(tǒng)進(jìn)行掃描。

2.1  系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)

本文設(shè)計(jì)開發(fā)的是一個(gè)B/S模式的Web漏洞掃描系統(tǒng)。它包括客戶端及服務(wù)端兩個(gè)部分,運(yùn)行環(huán)境為L(zhǎng)inux系統(tǒng)。首先:使用B/S結(jié)構(gòu)使得用戶的操作不再與系統(tǒng)平臺(tái)相關(guān),同時(shí)使得客戶操作更方便、直觀。其次,系統(tǒng)把漏洞掃描檢測(cè)部分從整個(gè)系統(tǒng)中分離出來,使用專門的文件庫進(jìn)行存放(稱為插件)。如果發(fā)現(xiàn)新的漏洞并找到了新的檢測(cè)方法,只要在相關(guān)文件夾中增加一個(gè)相應(yīng)的新的攻擊腳本記錄,即可以實(shí)現(xiàn)對(duì)漏洞的滲透性測(cè)試,同時(shí)也實(shí)現(xiàn)了及時(shí)的升級(jí)功能。最后,系統(tǒng)從多個(gè)角度來提高漏洞掃描系統(tǒng)的掃描速度以及減少在用客戶端與服務(wù)端之間的信息傳輸量,以提高系統(tǒng)的運(yùn)行效率。其總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。



圖1中給出了漏洞掃描系統(tǒng)模型的系統(tǒng)結(jié)構(gòu)圖。該漏洞檢測(cè)系統(tǒng)主要分成四部分:

(1)主控程序。采用多線程處理方式,它接收多個(gè)客戶端提交的用戶指令后,再次利用多線程技術(shù)調(diào)用相關(guān)的插件腳本,利用滲透性測(cè)試對(duì)目標(biāo)系統(tǒng)進(jìn)行檢測(cè),并將結(jié)果和進(jìn)程信息傳回客戶端顯示并保存在客戶端本地,以方便用戶查看詳細(xì)信息。

(2)客戶端,即控制平臺(tái)。B/S結(jié)構(gòu)比傳統(tǒng)的C/S結(jié)構(gòu)優(yōu)越的地方在于方便性和與平臺(tái)無關(guān)性,用戶通過Web瀏覽器設(shè)定掃描參數(shù),提交給服務(wù)器端,控制服務(wù)器端進(jìn)行掃描工作。同時(shí),對(duì)服務(wù)器返回的各種檢測(cè)結(jié)果進(jìn)行相應(yīng)的顯示、匯總和保存。

(3)插件系統(tǒng)。它保存現(xiàn)在已知各種漏洞檢測(cè)方法的插件,合理安排插件之間的執(zhí)行順序,使掃描按既定的順序進(jìn)行,以加快掃描速度提高掃描的效率與準(zhǔn)確性。

(4)數(shù)據(jù)庫,即探測(cè)數(shù)據(jù)庫,是系統(tǒng)的核心。它保存已知各類Web漏洞的滲透性的探測(cè)數(shù)據(jù)即攻擊代碼或信息獲取代碼,比如SQL注入攻擊、跨站點(diǎn)腳本攻擊、會(huì)話攻擊或輸入驗(yàn)證編碼信息等,逐條給目標(biāo)發(fā)送探測(cè)數(shù)據(jù),通過把返回信息與預(yù)先設(shè)定的“返回信息”和狀態(tài)碼進(jìn)行匹配,進(jìn)而獲得目標(biāo)返回系統(tǒng)的健壯信息。

在規(guī)劃系統(tǒng)體系組成部分的基礎(chǔ)上,如何把這些組成模塊有機(jī)地集成為一個(gè)系統(tǒng)也是設(shè)計(jì)本系統(tǒng)的重點(diǎn)。我們要求服務(wù)器端同時(shí)處理多用戶的連接,因此首先要進(jìn)行多線程處理。在進(jìn)行單用戶處理中,當(dāng)用戶登陸時(shí),檢測(cè)服務(wù)器對(duì)用戶的用戶名和密碼進(jìn)行認(rèn)證,判斷用戶是否具有使用權(quán)限。用戶認(rèn)證通過后,檢測(cè)服務(wù)器給客戶端發(fā)送可使用的基本檢測(cè)信息??蛻舳私邮盏椒?wù)器的這些信息后,根據(jù)具體的使用要求選擇和填寫各種檢測(cè)腳本要求的參數(shù),或使用默認(rèn)參數(shù),然后返回給服務(wù)器端。服務(wù)器端建立新的進(jìn)程,開始一個(gè)新的漏洞檢測(cè)任務(wù),對(duì)目標(biāo)系統(tǒng)進(jìn)行掃描。

2.2客戶端的實(shí)現(xiàn)

網(wǎng)絡(luò)的發(fā)展要求在任何地點(diǎn)進(jìn)行登陸并進(jìn)行掃描工作,并且漏洞檢測(cè)參數(shù)繁多、設(shè)置掃描參數(shù)具有很高的復(fù)雜性,所以選擇現(xiàn)在流行的Web頁面作為客戶端。這樣就可以在世界的任何地點(diǎn),任何環(huán)境使用客戶端,用簡(jiǎn)單的圖形化界面進(jìn)行參數(shù)設(shè)定和系統(tǒng)的控制工作。

客戶端在認(rèn)證通過后,開始接收服務(wù)器發(fā)送過來的各種待設(shè)定的參數(shù)及相關(guān)信息以供用戶選擇。用戶根據(jù)相關(guān)幫助信息及自己相關(guān)的要求設(shè)定參數(shù),同時(shí)設(shè)定目標(biāo)系統(tǒng)的IP地址(或主機(jī)名)和端口號(hào)等參數(shù)。根據(jù)客戶端的參數(shù)設(shè)定,服務(wù)端建立掃描任務(wù),對(duì)目標(biāo)系統(tǒng)進(jìn)行檢測(cè)掃描。

檢測(cè)過程中,客戶可以自行設(shè)定是否實(shí)時(shí)顯示服務(wù)端掃描狀態(tài)信息及結(jié)果信息,以及在客戶端是否保存相關(guān)信息,便于用戶對(duì)掃描任務(wù)進(jìn)行實(shí)時(shí)的控制,從而制定相應(yīng)的安全策略。

2.3通信協(xié)議設(shè)計(jì)

自從1990年以來,人們就用Http協(xié)議進(jìn)行Web數(shù)據(jù)傳輸,Http協(xié)議是一種在TCP/IP之上的request/response型協(xié)議。多數(shù)Http數(shù)據(jù)傳輸由請(qǐng)求服務(wù)器上的某種資源開始,通過網(wǎng)絡(luò)上的一些中介,如代理、網(wǎng)關(guān)等到達(dá)服務(wù)器,而后服務(wù)器處理請(qǐng)求并送回應(yīng)答。但是Http 1.0并不完全支持各層代理、緩沖、持續(xù)的連接以及虛擬主機(jī)等技術(shù)。Http請(qǐng)求及應(yīng)答數(shù)據(jù)包如圖2所示。


對(duì)于目標(biāo)系統(tǒng)Web漏洞掃描,使用滲透性的探測(cè)方法,滲透性探測(cè)方法主要通過更改Http請(qǐng)求信息包中的某些信息,從目標(biāo)系統(tǒng)的應(yīng)答信息包中獲取狀態(tài)信息及相關(guān)內(nèi)容以判斷目標(biāo)系統(tǒng)的輸入或軟件錯(cuò)誤,或其他一些配置信息,所以要求開發(fā)者可以自定義Http請(qǐng)求信息包。

Libwhisker是一個(gè)全面的API,是由一些不同的與Web應(yīng)用程序相交互的功能模塊構(gòu)成的數(shù)據(jù)庫,它有如下的特點(diǎn):

(1)可以與Http 0.9,1.0以及1.1相通信;

(2)可以建立持續(xù)的連接;
   
(3)能有效地支持代理;
   
(4)支持Anti-IDS技術(shù);
   
(5)支持SSL;

(6)支持Basic和NTLM認(rèn)證。

所以使用Libwhisker與Http通信,以通過Libwhisker來自定義Http協(xié)議信息包以及提供相應(yīng)的支持。

2.4特征信息數(shù)據(jù)庫

此漏洞掃描系統(tǒng)的核心就是特征信息數(shù)據(jù)庫,特征信息數(shù)據(jù)庫保存了遠(yuǎn)程Web系統(tǒng)可能存在的各類Web隱患和漏洞的獲取或攻擊信息或代碼。通過給遠(yuǎn)程Web系統(tǒng)發(fā)送此數(shù)據(jù)庫中的數(shù)據(jù)以獲得目標(biāo)Web系統(tǒng)的安全性。

考慮到信息的共性與個(gè)性、方便性等因素,特征數(shù)據(jù)庫信息大體分為以下幾類:

(1)Web系統(tǒng)軟件版本信息數(shù)據(jù)庫:此類信息以檢測(cè)當(dāng)前Web系統(tǒng)相應(yīng)軟件的版本隱患及其漏洞信息,以及Web系統(tǒng)相應(yīng)軟件版本最新信息,并給出相關(guān)的提示。

(2)Web系統(tǒng)授權(quán)信息:此類信息以檢測(cè)當(dāng)前Web相應(yīng)系統(tǒng)資源的授權(quán)情況以及漏洞信息。

(3)漏洞控測(cè)信息數(shù)據(jù)庫:此類數(shù)據(jù)庫是最主要的信息數(shù)據(jù)庫,包含各類Web服務(wù)器中存在的各種隱患和漏洞探測(cè)信息。具體而言分為以下幾個(gè)大類:認(rèn)證攻擊、授權(quán)攻擊、識(shí)別“支持”文件、識(shí)別包含文件、目錄攻擊、識(shí)別錯(cuò)誤、一般的輸入驗(yàn)證、源代碼泄露、URL編碼、Unicode編碼、Base64編碼、識(shí)別請(qǐng)求方法、SQL注入、會(huì)話攻擊、目錄遍歷攻擊以及跨站點(diǎn)腳本攻擊等。

特征信息數(shù)據(jù)庫各記錄分別為:

Web服務(wù)器類別、檢測(cè)目標(biāo)URI、預(yù)設(shè)返回信息、Http方法、描述信息。

2.5 Web漏洞掃描系統(tǒng)的實(shí)現(xiàn)

由于允許多用戶同時(shí)使用服務(wù)器端,要求針對(duì)不同目標(biāo)的掃描、檢測(cè)任務(wù)同時(shí)進(jìn)行,所以執(zhí)行掃描機(jī)制就成了服務(wù)器端設(shè)計(jì)中的首要問題。根據(jù)服務(wù)器并行處理的理論,而且使用B/S的總體結(jié)構(gòu),考慮到開發(fā)語言和開發(fā)環(huán)境,對(duì)于掃描服務(wù)器的構(gòu)架選擇Linux平臺(tái)下的PERL開發(fā)語言,使用并發(fā)服務(wù)器的模型。

并發(fā)服務(wù)器的思想是每一個(gè)客戶的請(qǐng)求并不由服務(wù)器直接處理,而是由服務(wù)器創(chuàng)建相應(yīng)的子進(jìn)程進(jìn)行處理。對(duì)于每一個(gè)子進(jìn)程而言,客戶可以設(shè)定其掃描范圍包括不只一個(gè)目標(biāo)地址,同樣由服務(wù)器創(chuàng)建相應(yīng)的子進(jìn)程(即二級(jí)進(jìn)程)來處理,以提高系統(tǒng)的掃描速度。利用Linux下的fork函數(shù)來完成一、二級(jí)進(jìn)程處理功能。其流程如圖3所示。


另外,由于PERL本身的效率問題,為進(jìn)一步提高漏洞掃描系統(tǒng)的性能,對(duì)目標(biāo)系統(tǒng)首先利用現(xiàn)階段已經(jīng)非常成熟的工具NMAP進(jìn)行端口掃描,以獲得開放的端口,在此基礎(chǔ)上進(jìn)行進(jìn)一步的端口掃描,以判斷在此端口上是否提供的是Web服務(wù)。

為進(jìn)一步加快掃描速度,系統(tǒng)使用掃描知識(shí)庫來保存已掃描過的主機(jī)信息,在獲取用戶請(qǐng)求以后,首先檢測(cè)知識(shí)庫,若有知識(shí)庫中保存相關(guān)信息,則不進(jìn)行新的掃描工作,只需調(diào)用相關(guān)的知識(shí)庫信息返回給用戶即可。

在對(duì)端口滲透性探測(cè)的實(shí)現(xiàn)方式上,使用插件腳本的方式來進(jìn)行。用戶可以通過參數(shù)選取相應(yīng)的插件執(zhí)行,以進(jìn)行更為完整的漏洞掃描。插件可以動(dòng)態(tài)地升級(jí),其實(shí)現(xiàn)方式是每次升級(jí)插件時(shí)都將已升級(jí)的插件根據(jù)既定的順序添加在插件調(diào)用清單當(dāng)中,在插件執(zhí)行過程中,主控程序根據(jù)插件調(diào)用清單中的插件執(zhí)行順序依次調(diào)用插件。插件的執(zhí)行結(jié)果擴(kuò)充了各類數(shù)據(jù)庫探測(cè)信息,這樣即可以增加各類特殊的信息,進(jìn)行更為深入的掃描目標(biāo)Web系統(tǒng)以發(fā)現(xiàn)更新、更多的漏洞信息。

3結(jié)語

提出對(duì)Web系統(tǒng)進(jìn)行安全掃描的必要性,以及Web漏洞掃描的基本原理,在此基礎(chǔ)上提出并設(shè)計(jì)了一個(gè)完整的Web漏洞掃描系統(tǒng),介紹了它的協(xié)議基礎(chǔ)以及組成模塊。

本文設(shè)計(jì)的Web漏洞掃描系統(tǒng)已經(jīng)完全實(shí)現(xiàn),并經(jīng)過測(cè)試,該掃描器基于瀏覽器/服務(wù)器結(jié)構(gòu),可以掃描UNIX/Windows等多種平臺(tái)下的Web系統(tǒng),與同類產(chǎn)品相比,可以看出該掃描器具有如下特點(diǎn):利用多進(jìn)程/知識(shí)庫等技術(shù)加快了掃描速度;掃描封裝在插件中使系統(tǒng)具有可擴(kuò)展性;使用B/S結(jié)構(gòu)使得用戶操作方便,掃描結(jié)果詳盡。此掃描系統(tǒng)實(shí)現(xiàn)了Web隱患掃描和漏洞檢測(cè),并可以提供漏洞的修補(bǔ)建議,將會(huì)在很大程度上確保Web系統(tǒng)安全。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉