本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤其涉及一種基于云計算的web漏洞掃描方法。
背景技術(shù):
如今的網(wǎng)絡(luò)發(fā)展迅速而廣泛,各式各樣的網(wǎng)站,全球遍布的服務(wù)器。然而萬事都會有疏忽,不可避免的會在這些網(wǎng)站、服務(wù)器、主機上存在著千奇百怪的、意想不到的漏洞。
所謂漏洞就是存在于軟件或系統(tǒng)配置中可以被利用的弱點。漏洞的成因有很多種,但最常見的是因為沒有及時安裝補丁,供應(yīng)商們會經(jīng)常發(fā)布補丁程序來修補已知的問題或漏洞。沒有安裝補丁的軟件或系統(tǒng)往往會加快黑客滲透測試的過程,因為那些未打補丁的漏洞允許攻擊者遠程執(zhí)行代碼,可能會對被攻擊者造成巨大的損失。
因此保護企業(yè)或個人網(wǎng)絡(luò)服務(wù)器的安全是一項很重要的事情,但是由于個人用戶往往缺乏經(jīng)驗或者不會檢測或修復(fù)漏洞、無力購買服務(wù)器漏洞檢測的軟件或服務(wù),所以個人用戶難以實現(xiàn)對服務(wù)器漏洞的檢測與修復(fù)。
傳統(tǒng)的web漏洞掃描方法,一般是由單機或多節(jié)點系統(tǒng)構(gòu)建而成,單機掃描器面臨掃描速度過慢,速度和準(zhǔn)確率較低,無法隨時開展掃描的問題;多節(jié)點掃描器面臨成本較高,個人用戶難以承擔(dān)的問題。如何構(gòu)建一個掃描速度快,可隨時開展掃描的,低成本的多節(jié)點web漏洞掃描系統(tǒng)是一個待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于云計算的web漏洞掃描方法,以實現(xiàn)隨時、快速、低成本的多節(jié)點掃描。
本發(fā)明提供了一種基于云計算的web漏洞掃描方法,包括以下步驟:a、用戶訪問網(wǎng)頁來提交待掃描目標(biāo)的ip地址或域名和請求服務(wù),并且將待掃描目標(biāo)寫入待掃描消息隊列中;b、控制單元在查詢到待掃描消息列隊中有新的待掃描目標(biāo)時,將待掃描目標(biāo)取出,根據(jù)用戶狀態(tài)及具體指令,將目標(biāo)類型進行劃分,并根據(jù)策略補全掃描任務(wù),將其從一個ip地址或域名擴大為一個包含具體掃描指令的列表,并添加進待測試消息隊列;c、節(jié)點池中的各掃描節(jié)點在探測到待掃描消息隊列中有新的任務(wù)時,根據(jù)預(yù)定策略從待掃描消息列隊中提取具體掃描指令并完成;d、當(dāng)節(jié)點池完成所有任務(wù)時,控制單元向網(wǎng)頁發(fā)送請求,當(dāng)網(wǎng)頁完成掃描結(jié)果提取后,控制單元將該已掃描目標(biāo)的相關(guān)資源回收。
本發(fā)明還提供了一種基于云計算的web漏洞掃描方法,包括以下步驟:提供一種網(wǎng)頁,所述網(wǎng)頁用于供用戶訪問來提交待掃描目標(biāo)的ip地址或域名和請求服務(wù),并且將待掃描目標(biāo)寫入待掃描消息隊列中;提供一種控制單元,所述控制單元用于在查詢到待掃描消息列隊中有新的待掃描目標(biāo)時,將待掃描目標(biāo)取出,根據(jù)用戶狀態(tài)及具體指令,將目標(biāo)類型進行劃分,并根據(jù)策略補全掃描任務(wù),將其從一個ip地址或域名擴大為一個包含具體掃描指令的列表,并添加進待測試消息隊列;提供一種具有多掃描節(jié)點的節(jié)點池,所述節(jié)點池中的各掃描節(jié)點用于在探測到待測試消息隊列中有新的任務(wù)時,根據(jù)預(yù)定策略從待掃描消息列隊中提取具體掃描指令并完成;其中,所述網(wǎng)頁在接受用戶請求服務(wù)后,由所述控制單元將用戶請求包裝成任務(wù)并添加至待測試消息列隊中,隨后由所述節(jié)點池根據(jù)預(yù)定策略完成待測試消息列隊中的任務(wù)并將掃描結(jié)果寫入數(shù)據(jù)庫中,當(dāng)所述節(jié)點池完成所有任務(wù)時,由所述控制單元向網(wǎng)頁發(fā)送請求,當(dāng)網(wǎng)頁完成掃描結(jié)果提取后,由所述控制單元將該已掃描目標(biāo)的相關(guān)資源回收。
進一步地,上述網(wǎng)頁要求用戶在掃描前下載一個加密過的文件并存放于網(wǎng)站根目錄,所述控制單元在探測到該文件并確認無誤后才繼續(xù)掃描。
進一步地,上述控制單元用于根據(jù)任務(wù)量控制投入掃描節(jié)點的數(shù)量,各掃描節(jié)點時刻待命并按時掃描待測試消息隊列,一旦有任務(wù)出現(xiàn)便從待命態(tài)轉(zhuǎn)變成活動態(tài)并依據(jù)指令開始掃描。
進一步地,上述網(wǎng)頁提供多種等級服務(wù)供用戶選擇,以允許用戶按需請求服務(wù)。
進一步地,上述掃描節(jié)點的任務(wù)分為信息獲取和漏洞探測兩類,其中,信息獲取的掃描優(yōu)先級高于漏洞探測,當(dāng)新任務(wù)出現(xiàn)時,所述節(jié)點池的各掃描節(jié)點優(yōu)先完成信息獲取任務(wù),當(dāng)所有信息獲取任務(wù)都完成后再完成漏洞探測任務(wù)。
通過本方法,各節(jié)點之間無直接通信,漏洞掃描節(jié)點具有云計算的按需供應(yīng)、高彈性的特點,漏洞掃描節(jié)點可以按需快速上線:任務(wù)量小,系統(tǒng)負載小的時候可以只上線少量節(jié)點加入掃描,在任務(wù)量大、節(jié)點壓力大的時候直接通過鏡像系統(tǒng)快速上線新節(jié)點加入節(jié)點池參與掃描。最大限度的在實現(xiàn)快速、準(zhǔn)確掃描的前提下降低了掃描系統(tǒng)成本。
除了上面所描述的目的、特征和優(yōu)點之外,本發(fā)明還有其它的目的、特征和優(yōu)點。下面將參照圖,對本發(fā)明作進一步詳細的說明。
附圖說明
構(gòu)成本申請的一部分的說明書附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1為根據(jù)本發(fā)明的web漏洞掃描方法的云計算應(yīng)用系統(tǒng)的示意框圖;
圖2為工作中的控制單元和掃描節(jié)點的結(jié)構(gòu)圖;以及
圖3為根據(jù)本發(fā)明的web漏洞掃描方法的流程圖。
具體實施方式
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
本發(fā)明提供了一種基于云計算的web漏洞掃描方法,通過本方法解決彈性計算下掃描節(jié)點如何按需彈性調(diào)度,以及父子節(jié)點間通信問題。
如圖1至圖3所示,本發(fā)明的web漏洞掃描方法包括以下步驟:s10、用戶通過訪問網(wǎng)頁來提交待掃描目標(biāo)的ip地址或域名以請求服務(wù),同時為防止掃描器被惡意利用,用戶掃描前需下載一個加密過的文件并存放于網(wǎng)站根目錄,控制單元在探測到該文件存在并確認無誤后才會繼續(xù)掃描,待掃描目標(biāo)被網(wǎng)頁寫入待掃描消息隊列中;s20、控制單元在查詢到有新的待掃描目標(biāo)時,將目標(biāo)取出,根據(jù)用戶狀態(tài)及具體指令,將目標(biāo)類型進行劃分,并根據(jù)策略補全掃描任務(wù),將其從一個ip地址或一個域名擴大為一個包含具體掃描指令的列表,并添加進待測試消息隊列;s30、節(jié)點池中的各掃描節(jié)點在探測到新的任務(wù)時,根據(jù)既定策略提取具體指令,完成指令后將結(jié)果寫入數(shù)據(jù)庫并循環(huán)此步驟;s40、當(dāng)完成所有任務(wù)時,控制單元向網(wǎng)頁發(fā)送請求,當(dāng)網(wǎng)頁完成結(jié)果提取后,控制單元將該目標(biāo)相關(guān)資源回收。
在本發(fā)明中,掃描器采用一個控制單元來負責(zé)任務(wù)的調(diào)度工作,以完成對多個待掃描目標(biāo)狀態(tài)及資源的控制。掃描器將掃描任務(wù)分為信息獲取和漏洞探測兩類,其中信息獲取的掃描優(yōu)先級高于漏洞探測。故當(dāng)新任務(wù)出現(xiàn)時,節(jié)點池的各掃描節(jié)點優(yōu)先完成信息獲取任務(wù),當(dāng)所有信息獲取任務(wù)都完成后再完成漏洞探測任務(wù)。
在一實施例中,用戶對于該系統(tǒng)的使用為按需的可伸縮服務(wù),用戶可以根據(jù)自身需求進行多種等級服務(wù)的獲取,如單目標(biāo)或多目標(biāo),基礎(chǔ)掃描或高級掃描等。同時用戶只需選擇服務(wù),而不需擁有或維護實體。
在一實施例中,掃描節(jié)點池化,多個用戶可共享掃描資源。節(jié)點池類似于線程池,各掃描節(jié)點時刻待命并按時掃描待測試消息隊列,一旦有任務(wù)出現(xiàn)便從待命態(tài)轉(zhuǎn)變成活動態(tài)并依據(jù)指令開始掃描,用戶從網(wǎng)頁取得掃描任務(wù)結(jié)果。
在一實施例中,節(jié)點池中的各掃描節(jié)點與控制單元及網(wǎng)頁沒有任何直接通信,他們之間的信息均由消息隊列及數(shù)據(jù)庫進行間接通信。
具體實施時主控節(jié)點和子節(jié)點的交互配合和信息處理流程如圖2所示:
整套漏洞掃描工具采用redis數(shù)據(jù)庫中的list作為消息隊列,當(dāng)需要對某個目標(biāo)進行掃描時,由web網(wǎng)站將目標(biāo)解構(gòu),然后將目標(biāo)存入任務(wù)創(chuàng)建列表。
節(jié)點池類似于線程池,各掃描節(jié)點時刻待命并按時掃描待測試消息隊列,一旦有任務(wù)出現(xiàn)便從待命態(tài)轉(zhuǎn)變成活動態(tài)并依據(jù)指令開始掃描,用戶從網(wǎng)頁取得掃描任務(wù)結(jié)果。
節(jié)點池中的各掃描節(jié)點與控制單元及網(wǎng)頁沒有任何直接通信,他們之間的信息均由消息隊列及數(shù)據(jù)庫進行間接通信。
控制單元檢測到任務(wù)創(chuàng)建列表非空時,則啟用任務(wù)創(chuàng)建進程,提取消息并完成任務(wù)創(chuàng)建,同時將目標(biāo)上傳到redis中的“目標(biāo)<->狀態(tài)”hash表中。
當(dāng)掃描節(jié)點的消息獲取模塊檢測到“目標(biāo)<->狀態(tài)”hash表非空,則獲取內(nèi)容,根據(jù)目標(biāo)的狀態(tài)為“信息收集”或“漏洞掃描”分別調(diào)用輔助信息收集腳本與漏洞掃描插件完成任務(wù)。
在完成掃描后,掃描節(jié)點的結(jié)果存儲模塊取得漏洞掃描模塊返回的結(jié)果,將其重新打包為json格式后上傳。與此同時,進行目標(biāo)狀態(tài)判斷,若當(dāng)前掃描為該目標(biāo)“信息收集”或“漏洞掃描”階段的最后一個任務(wù),且之前的任務(wù)均已完成,則進行階段結(jié)束操作。如:將“信息收集”狀態(tài)改為“漏洞掃描”狀態(tài);或?qū)⒛繕?biāo)從“目標(biāo)<->狀態(tài)”hash表中刪除,并將目標(biāo)存入結(jié)果匯報隊列。
控制單元檢測到結(jié)果匯報隊列非空時,則啟用結(jié)果匯報進程,獲取目標(biāo),并調(diào)用web接口,通知web該目標(biāo)已完成掃描。web在接收到請求后,從數(shù)據(jù)庫中取走結(jié)果,并將其打印。在完成結(jié)果提取后,web將目標(biāo)存入資源回收隊列。
控制單元在檢測到資源回收隊列非空時,則啟用資源回收進程,獲取目標(biāo),并將與該目標(biāo)有關(guān)的一切資源釋放。
至此,web->控制單元->掃描節(jié)點,關(guān)于一個目標(biāo)的掃描工作全部完成。
通過本發(fā)明的漏洞掃描系統(tǒng)具有云計算的彈性計算、高可用、按需、快捷的特點。解決了彈性計算下的掃描節(jié)點如何按需彈性調(diào)度,以及父子節(jié)點間通信問題。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。