用於web系統的自動化滲透性測試系統和方法
2023-10-08 23:06:24 3
專利名稱:用於web系統的自動化滲透性測試系統和方法
技術領域:
本發明涉及一種WEB系統的安全掃描技術,確切地說,涉及一種用於WEB 系統的自動化滲透性測試系統和方法,屬於信息安全中的軟體安全技術領域。
背景技術:
目前,常用的web系統安全掃描工具簡單列舉如下 Nikto,作為開源的Web伺服器掃描程序,用於對Web伺服器的多種項目 (包括3500個潛在的危險文件/CGI、超過900個伺服器版本和250多個伺服器 上的版本特定問題)進行全面測試。其掃描項目和插件經常更新,並可自動更 新(如需要的話)。但是,不是每次檢查都能找出安全問題,雖然多數情況是這4幹曰'、J 。 a ^ ^ W y-、疋《疋伏'|§ ,&夾-:^i曰勺^5T宜,近種才2T宜口J用丁坌3戈一些開一、什估 安全漏洞的項目,Paros proxy ,這是對Web應用程式的漏洞進行評估的代理程序,用於評估 Web應用程式的漏洞。它支持動態編輯/查看HTTP/HTTPS,以改變cookies和 表單欄位等項目。WebScarab,用於分析4吏用HTTP和HTTPS協議通信的應用程式,可用最 簡單的形式記錄其觀察到的會話,並允許操作人員以各種方式觀察會話。不管 是幫助開發人員調試其它難題,還是允許安全專業人員識別漏洞,它都是一款 不錯的工具。Weblnspect,是一款強大的Web應用程式的掃描程序,能夠用於確認Web 應用中已知的和未知的漏洞,還可檢查Web伺服器是否正確配置,並會嘗試一 些常見的Web攻擊,如參數注入、跨站腳本、directory traversal等。Whisker/libwhisker, Libwhisker是一個用於測試HTTP伺服器許多已知的 安全漏洞的Perla模塊,Whisker是一個使用libwhisker的掃描程序。Wikto,是一個Web伺服器評估工具,用於檢查Web伺服器中的漏洞,能 夠提供與Nikto相同的很多功能,又增加許多有趣功能,如後端miner和緊密 的Google集成。用戶需要註冊才能下載其二進位文件和原始碼。其它工具還有Burpsuite, Acunetix Web Vulnerability Scanner, Watchfire AppScan, N-Stealth, N-Stealth等等,不再——例舉。現有的安全漏洞掃描系統基本採用下述兩種方法來完成漏洞的掃描WEB安全掃描是一種基於Internet遠程檢測目標網絡的安全性或脆弱點的 技術。主要採用下述兩種方法糹企測目標系統是否存在漏洞先對目標主機埠 掃描,監聽指定埠並識別其進行的網絡服務類型,確定其提供的網絡服務; 漏洞掃描器根據目標系統的作業系統平臺和提供的網絡服務,調用漏洞資料庫 中已知的各種漏洞逐一進行檢測,即將這些相關信息與漏洞庫進行匹配,查看 是否有滿足匹配條件的漏洞;然後使用插件模擬黑客攻擊,對目標系統進行攻 擊性的安全漏洞掃描,若模擬攻擊成功,就表明目標系統存在安全漏洞。基於網絡系統漏洞庫進行的漏洞掃描的關鍵是其使用的漏洞庫。採用基於 規則的匹配技術,即根據安全專家對網絡系統安全漏洞、黑客攻擊案例的分析 和系統管理員對網絡系統安全配置的實際經驗,可以形成一套標準的網絡系統 漏洞庫,然後在此基礎上構成相應的匹配少見則,由掃描程序自動進行漏洞掃描 掃描器發送含有某 一 漏洞特徵探測碼的數據包,根據返回數據包中是否含有該 漏洞的相應特徵碼來判斷是否存在漏洞。因此,漏洞掃描系統的性能決定於漏 洞庫的信息是否完整和有效,漏洞庫的修訂和性能更新也會影響漏洞掃描系統 的運行時間。因此,編制的漏洞庫不僅要對每個存在安全隱患的網絡服務建立 相應的漏洞庫文件,還應當能夠滿足前面所提出的各種性能要求。另一方法是採用插件技術,插件是用腳本語言編寫的子程序,掃描程序通 過調用它來執行漏洞掃描,來發現系統中存在的漏洞。添加新的插件就能夠使 漏洞掃描軟體增加新的功能,掃描出更多的新漏洞。插件編寫規範化後,甚至 用戶可以自己利用perl、 c語言或其它自4亍設計的腳本語言編寫插件,以擴充漏 洞掃描軟體的功能。該技術使漏洞掃描軟體的升級維護變得相對筒單,專用腳本語言的使用也簡化了新插件的編寫工作,使漏洞掃描軟體具有較強的擴展性。 但是,上述方法存在有不足之處首先是系統配置的規則庫問題。眾所周 知,網絡系統漏洞庫是基於漏洞庫的漏洞掃描的靈魂,而系統漏洞的確認是以 該系統配置的規則庫為基礎。但是,這種系統配置的規則庫存在有局限性如 果規則庫設計得不準確,預報的準確度就無從談起。但是,漏洞庫是根據已知 的安全漏洞進行設計、安排和策劃的,而網絡系統的很多危險和威脅卻來自未 知的漏洞,這樣,如果不能及時更新規則庫,預報的準確度就會逐漸降低。此 外,因為漏洞庫覆蓋範圍的限制,有些系統漏洞很可能不會觸犯任何一個規則,從而無法被檢測到。在對web的檢測過程中,其中的一些連結處理可能會引起 誤報。因此,由於漏洞庫信息是基於網絡系統漏洞庫的進行漏洞掃描的主要判 斷依據。如果漏洞庫信息不全面或者不能及時更新,不但不能發揮漏洞掃描的 作用,還會給系統管理員造成錯覺,使其無法對系統的安全隱患及時採取有效 才晉施來消除之。隨著Internet的迅速發展,信息技術已成為促進經濟發展和社會進步的巨 大動力。當今社會中的計算機信息資源對於任何人、無論其在任何地方、任何 時候都變得極有價值。不管是存儲於工作站、伺服器還是流通於Internet上的 信息都已變成一個事關重大的關鍵點,使得如何保證信息安全顯得格外重要。發明內容有鑑於此,本發明的目的是提供一種用於WEB系統的自動化滲透性測試 系統和方法,本發明系統根據配置的WEB掃描任務採用自動化滲透掃描和常 頭見掃描的兩種掃描方式,並結合相應的插件,對WEB網站自動進行分析4全測, 找出其可能存在的各種安全問題,生成報告來通報已經形成的綜合風險列表。 本發明可以取代目前基於人工的安全性測試與滲透性測試,大大降低目前在軟 件研發中對軟體安全測試所投入的成本,還可大大提高安全測試的準確性。為了達到上述目的, 一種用於WEB系統的自動化滲透性測試系統,其特 徵在於該系統根據用戶在圖形用戶界面GUI表示層設置的WEB掃描任務對WEB網站自動進行滲透掃描或常規掃描,並結合相應的插件對掃描結果進行分 析,找出該WEB網站存在的安全問題,然後生成檢測報告;該系統結構有三 個層次GUI表示層,邏輯層,數據層,其中GUI表示層,用於提供與用戶交互的GUI界面,包含瀏覽器、任務配置 模塊、報告與結果顯示模塊、狀態及進度顯示模塊;邏輯層,作為該系統的控制核心,負責執行掃描、才企測程序的運行及相關 功能,配置的八個軟體模塊以掃描調度模塊為中心,其餘七個模塊是包構造 器模塊、預掃描模塊、連結分析模塊、瀏覽器代理模塊、滲透掃描模塊、常規 掃描模塊、用於插接掃描插件的插件接口 ;數據層,用於存儲、維護各種掃描規則和任務執行過程中的配置信息,設 有常規掃描規則庫、滲透掃描規則庫、任務信息與臨時資料庫。為了達到上述目的,本發明還提供了一種用於WEB系統的自動化滲透性 測試系統的工作方法,其特徵在於先接受用戶提交的WEB網站的URL信息, 再判斷用戶是否設置登錄,以進行滲透性掃描;如果用戶設置登錄,則調用本 地瀏覽器,供用戶與目標網站進行交互,同時通過自身代理記錄該用戶的登錄 信息,並查詢相應的掃描規則;如果用戶未設置登錄,則直接進行掃描檢測; 鬥企測時,先查詢對應的MJ'J並向該網站地址發送糹罙測包,再才艮據MJ'j對返回的 應答信息進行匹配,如果匹配成功,則確認存在風險,再繼續查詢下一條MJ'J; 如果未匹配成功,則直接返回和繼續查詢下一條規則,直至按照全部規則都檢 測一遍,完成掃描,並糹艮告檢測結果。本發明是一種用於WEB系統的自動化滲透性測試系統和方法,其在技術 上的創新優點和效果介紹如下本發明檢測系統被設計為不同功能的三層架構,其中邏輯層細化每個功能 模塊,使得每個模塊只負責設定的專門功能,不必顧及其它模塊的運作,由掃 描調度模塊負責各模塊之間的協調、交互,這種結構有利於提高模塊功能和工 作效率,也便於對各模塊進行修改、調整和功能擴展。本發明的滲透掃描檢測 過程是自動完成的,用戶只需在使用本發明檢測系統的前期在表示層進行初始參數的配置,以後的掃描檢測過程完全是系統自動執行、完成的。本發明測試系統在邏輯層設置的各個軟體模塊都各有特色,其中掃描調度 模塊是整個邏輯層的控制核心,具備調用各模塊的功能,能夠起到連結整體的 功能,也有利於實現自動化控制和整個檢測過程的連貫性,從而提高檢測功效 及準確性、靈敏性。預掃描模塊能夠很好地提高滲透探測掃描的準確性,通過 預掃描系統能夠標出發生錯誤頁面的特徵值。瀏覽器代理模塊和瀏覽器的使用使得本發明系統能夠利用整合組件JDIC技術調用瀏覽器,由瀏覽器代理模塊支持用戶登錄,實現用戶與檢測網站的交互,同時獲取用戶的認證信息,為以後的深度滲透檢測做好準備。本發明系統還採用spider等技術進一步獲取連結 和其他相關信息,能夠進一步進行更全面、深入的探測掃描和滲透測試。此外,邏輯層設有插件接口,可方便地實現掃描插件的擴充,以拓展該系 統的檢測功能,而且,該操作不會對系統的其它功能模塊造成太大影響,也有 利於對插件的操作、控制,以便進行全面或特別的測試。本發明對安全漏洞的檢測採用基於正則表達式的規則匹配技術,設置的漏 洞庫擴展性能很好。規則庫分為兩種常規規則庫裡的常規掃描規則規定常規 探測數據包的格式,滲透規則庫裡的滲透掃描規則規定滲透探測數據包的格式, 並且兩個規則庫裡的相應規則分別採用彼此獨立的數據結構,分工明確,不會 混淆,擴展容易。本發明作為一種安全掃描技術,可以與防火牆、入侵檢測系統互相配合, 能夠有效提高網絡安全。通過對網站的掃描檢測,管理員可以及時了解該網站 的安全配置和正在運行的應用服務,及時發現安全漏洞,客觀評估網絡風險等 級。管理員可根據掃描結果更正網站安全漏洞和系統中的錯誤配置,在黑客攻 擊前進行防範。總之,本發明系統執行的安全掃描就是一種主動的防範措施, 可以有效避免黑客攻擊行為,做到防患於未然。
圖1是本發明用於WEB系統的自動化滲透性測試系統結構組成示意圖。圖2是本發明自動化滲透性測試系統中的邏輯層各模塊結構組成示意圖。圖3是本發明用於WEB系統的自動化滲透性測試系統的工作方法流程圖。圖4是本發明自動化滲透性測試系統中的瀏覽器的才喿作流程圖。圖5是本發明自動化滲透性測試系統工作方法中的常規掃描流程圖。圖6是本發明自動化滲透性測試系統工作方法中的預掃描流程圖。圖7是本發明自動化滲透性測試系統工作方法中的滲透掃描流程圖。圖8是本發明測試系統進行實施試驗的一實施例操作流程圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作 進一步的詳細描述。參見圖1,介紹本發明用於WEB系統的自動化滲透性測試系統,該系統根 據用戶在圖形用戶界面GUI表示層設置的WEB掃描任務對WEB網站自動進 行滲透掃描或常規掃描,並結合相應的插件對掃描結果進行分析,找出該WEB 網站存在的安全問題,然後生成檢測報告;該系統結構有三個層次GUI表示 層,邏輯層,數據層,其中GUI表示層,用於提供與用戶交互的GUI界面,包含瀏覽器、任務配置 模塊、報告與結果顯示模塊、狀態及進度顯示模塊;邏輯層,作為該系統的控制核心,負責執行掃描、;f全測程序的運行及相關 功能,配置的八個軟體模塊以掃描調度模塊為中心,其餘七個模塊是包構造 器模塊、預掃描模塊、連結分析模塊、瀏覽器代理模塊、滲透掃描模塊、常規 掃描模塊、用於插接掃描插件的插件接口;數據層,用於存儲、維護各種掃描規則和任務執行過程中的配置信息,設 有常規掃描規則庫、滲透掃描規則庫、任務信息與臨時資料庫。本發明系統用於在已完成開發的WEB網站或正在開發過程中的WEB網 站,對相關程序自動進行滲透化掃描檢測,以便及時發現各種安全漏洞,這樣 既可並對該WEB網站或系統做出整體安全性評估報告或綜合風險列表,以供技術人員進一步分析包括SQL注入、緩沖區溢出、輸入驗證和其它特定安全問 題,從而減少相關人員在項目安全上花費的精力,降低WEB網站開發項目的 安全開銷,並有利於提高軟體開發人員的安全代碼意識,降低項目的安全風險。參見圖2,詳細說明邏輯層的各模塊功能及其相互之間的信息傳遞關係。 (1 )掃描調度模塊,是本發明系統的關鍵模塊和控制中心,用於統一調度 該系統各模塊的運行和彼此協作,以使該系統能夠自動完成掃描、檢測的各項 任務。該掃描調度^^莫塊具有下述具體功能當檢測任務要調用瀏覽器參與掃描時,掃描調度模塊負責在進行正式掃描 之前調用瀏覽器代理模塊,以彈出瀏覽器窗口與用戶交互;並通過瀏覽器代理 模塊記錄和存儲瀏覽器中的登錄、認證信息(如cookie, sessionid等),供其 它使用認證信息的相關模塊調用;在連結分析模塊、預掃描模塊和常規掃描、滲透掃描兩個掃描模塊的工作 過程中,嚴格控制各模塊的處理流程及其工作進度,防止出現後續操作模塊先 於前導模塊的啟動情況;在連結分析模塊開始出現檢測結果後,就從中取出部分信息進行深度滲透 掃描,即控制各個模塊執行並行操作,以提高檢測效率;當某個模塊長時間沒有反饋結果時,控制相關的其他模塊進入暫時等待狀 態,以降低系統資源消耗;在取得當前處理對象的進度信息和當前任務狀態時, 立即轉送給狀態及進度顯示模塊,以供實時顯示檢測進度和系統運行狀況;在結束掃描任務後,生成文件形式的檢測報告和提供相關信息,終止各模 塊的運行。(2) 包構造器模塊,負責構造符合任務和規則要求的檢測數據包,並在監 聽獲取網站響應後,將滿足設定特徵的應答存儲起來,供其他模塊調用;同時 在對某些統一資源定位url掃描結束後,對運行時存儲空間進行實時清理。(3) 預掃描模塊,負責在正式掃描目的網站之前,先進行一次肯定返回錯 誤應答的掃描(如請求一個不可能存在的資源),以便根據返回的錯誤應答中提 取不同情況的特徵欄位,增強滲透掃描模塊進行的掃描探測的精確性,發現和確認安全漏洞,並防止因頁面跳轉而產生誤報;如果返回的是標準錯誤應答, 可直接使用錯誤應答特徵(回復頭中的400,404特徵字等)進行記錄。如果進行預掃描過程中出現頁面跳轉,則忽略跳轉後的內容。並將該錯誤 頁面標記為以標準錯誤應答為特徵字的錯誤頁面,這樣處理的目的是防止跳轉 頁面產生過於泛化的誤報。同時可以在請求不存在的資源後,將上述頁面由瀏覽器返回給用戶(直接 請求不存在的url然後調用瀏覽器訪問進行,直接在瀏覽器中顯示返回結果), 由用戶來確定出錯頁面的特徵字(該特徵字可以是整個頁面信息)。也可以在掃 描任務的初期由用戶指定出錯頁面的特徵(以正則表達式的形式),如果返回的 信息匹配,則認為是出現錯誤,以協助深度滲透掃描模塊發現與確認安全漏洞。(4)連結分析模塊,負責根據設定任務,採用類似自動抓取內容的機器人 Spider技術對目的網站進行全站檢索,根據正則匹配識別站內連結和外部連結, 並訪問對應站內鏈4妄所指向的頁面,不斷循環4丸行該過程,直至達到掃描4笨測 深度或不再有新的頁面出現。連結分析模塊中設有等待、處理、錯誤、完成四個隊列,在接到對設定的 統一資源定位url進行掃描檢測任務後,將該url加入等待隊列,等待該連結分 析模塊的程序進行連結分析處理。連結分析模塊開始處理連結時,必須先把等 待隊列中的url傳送到處理隊列後,才對連結進行處理,且每個連結只處理一 次,即同一個連結不能被多次處理; 一旦某個連結被處理後,就被移動到錯誤 隊列或完成隊列,而當其進入某一新隊列後,就不再移入其它隊列,也不再對 其作後續處理;如果打開的網頁出現錯誤,它的uri就被放入錯誤隊列;如果打開的網頁 沒有錯誤,再判斷該網頁是否有其他連結,如果沒有,則將其移入完成隊列並 繼續檢查等待隊列;如果打開的網頁沒有錯誤,則進一步判斷該連結是否指向 Web網頁,如果不是,則判斷為其他類型連結,繼續檢測後面的連結;否則, 再判斷該連結是否與網頁所在的主機相同,如果不同,則判斷該連結為外部鏈 接,繼續處理該網頁上的其他連結;如果相同,則將該連結加入等待隊列並記錄之,然後繼續處理該網頁上的其他連結;被處理完後的url被放入完成隊列, 到達完成隊列的url不會再被移入其它隊列。然後判斷等待隊列中是否還有url, 直至完成全部連結的分析。(5)瀏覽器代理模塊,用於調用本地瀏覽器,以供用戶與目標網站進行交 互;同時通過自身代理,記錄用戶的登陸信息(如cookie, session id等),為以 後進行滲透掃描和查詢對應的掃描規則備用;其具體流程參見圖4。(6 )常規掃描模塊,用於執行常規掃描斥企測,即向目標網站發送由該常規 掃描模塊調用包構造器模塊根據規則構建的探測包,然後向目標網站發送;再 將獲取的應答信息與常規掃描規則庫的規則進行匹配;(7) 滲透掃描模塊,負責進行深度掃描探測分析網頁的超文本標記語言 HTML注入點,並調用包構造器模塊才艮據對應的滲透測試規則構建滲透探測數 據包,再向這些注入點提交該探測數據包,再以預掃描模塊獲取的默認出錯頁 面為標準,確定是否存在注入漏洞,並以設定腳本返回檢測結果,告知是否存 在跨站點腳本攻擊XSS漏洞,實現自動#:測;如此循環輪詢各個網頁,直至對 所有規則都完成掃描探測後,生成掃描報告,發給報告與結果顯示模塊。(8) 插件接口模塊,用於接插有新的掃描功能或程序的插件,以擴充系統 的掃描檢測功能。再介紹本發明用於WEB系統的自動化滲透性測試系統的工作方法。該系 統有兩種掃描檢測方法常規掃描和滲透掃描,其總的檢測過程說明如下先 接受用戶提交的WEB網站的URL信息,再判斷用戶是否設置登錄,以進行滲 透性掃描;如果用戶設置登錄,則調用本地瀏覽器,供用戶與目標網站進行交 互,同時通過自身代理(類似webScarab技術,用來分析使用HTTP和HTTPS 協議的應用程式框架)記錄該用戶的登錄信息,並查詢相應的掃描規則(如開 源的Web伺服器掃描程序nikto的匹配規則)。如果用戶未設置登錄,則直接進 行掃描檢測;檢測時,先查詢對應的規則並向該網站地址發送探測包,再根據 規則對返回的應答信息進行匹配,如果匹配成功,則確認存在風險,再繼續查 詢下一條^L則;如果沒有匹配成功,則直接返回和繼續查詢下一條規則,直至按照全部規則都檢測一遍,完成掃描,並報告檢測結果。參見圖3,詳細說明本發明方法的具體#:作步驟(1 )系統通過GUI表示層的用戶界面模塊接受用戶的設置命令。並根據 用戶命令決定是否調用瀏覽器,如果要調用,則順序執行步驟(2),否則,跳 轉執行步驟(3 );(2) 調用瀏覽器代理模塊(參見圖4所示的操作步驟),獲取用戶登錄認 證信息;(3) 根據用戶的配置命令,選擇相應的常規掃描或滲透掃描方式,並調用 相應的掃描模塊進行掃描檢測;如果用戶沒有設置,則默認進行常規掃描檢測;(4) 如果用戶選擇常規掃描或沒有設置掃描方式,則進行常規掃描檢觀'J; 參見圖5,介紹常規掃描模塊的具體工作流程先查詢對應的常規掃描規則,調用包構造器模塊根據常規掃描的相應規則構造探測包,然後向目標網站 發送,並根據常規掃描規則庫的規則對從目標網站返回的應答信息進行匹配檢 測;如果與規則匹配成功,則確認存在風險,再繼續順序查詢下一條規則;如 果與規則匹配不成功,則直接順序查詢下一條規則,直至規則輪詢結束,完成 掃描後,通知報告與結果顯示模塊,生成文件形式的掃描檢測報告。(5 )如果用戶選擇滲透掃描,則先進行預掃描,然後進行滲透掃描檢測;參見圖6,介紹滲透掃描前,先由預掃描模塊對網站進行的預掃描檢測的 具體過程先通過包構造器模塊向該網站請求一個不可能存在的資源,並將返 回的非標準錯誤應答信息轉換為自定義的特徵欄位保存起來,用於與以後進行 的滲透掃描探測時返回的應答作對比,以增強掃描的準確性;如果返回的是標 準的錯誤應答信息,則直接記錄該錯誤應答信息中的特徵欄位(例如回復頭中 的400、 404特徵字等);如果預掃描過程中出現頁面跳轉,則忽略跳轉後的內 容;而將默認為錯誤頁面的該跳轉頁面標識為以標準錯誤應答信息為特徵的錯 誤頁面,這樣處理的目的是防止因跳轉頁面而產生過於泛化的誤報;同時,在請求不存在的資源後,將瀏覽器頁面返回給用戶,並直接在瀏覽 器中顯示返回結果,以便與在掃描初期由用戶指定的、以正則表達式表示的出錯頁面的特徵欄位進行比對,如果兩者信息匹配,則表示出現錯誤,這樣能夠協助滲透掃描;f莫塊發現與確認安全漏洞。參見圖7,介紹滲透掃描衝莫塊進行的滲透掃描的具體過程首先提取被檢 測網站的內部頁面連結,將分析結果放入臨時資料庫存儲;接著進行預掃描, 並將預掃描檢測過程得到的目的網站的錯誤頁面也存儲於臨時資料庫;然後, 取出臨時資料庫中的連結信息,調用包構造器模塊來查詢滲透測試掃描規則, 以便構造滲透探測數據包,再由滲透掃描模塊向這些內部連結對應的頁面發送 該探測數據包,再根據規則對返回的應答信息進行匹配,如果兩者匹配,則確 認存在風險,返回繼續查詢下一條規則;如果兩者不匹配,則直接返回查詢下 一條規則;同時針對每個連結頁面,根據儲存在臨時庫的信息分析出HTML中 存在的注入點,並嘗試向這些注入點提交滲透探測數據,再以預掃描獲得的默 認出錯頁面為標準,判斷和確定是否存在注入漏洞,以設定的腳本返回來確定 是否存在跨站腳本攻擊XSS漏洞,實現自動探測;直至規則輪詢結束,完成掃 描後,通知報告與結果顯示模塊,生成掃描檢測報告。(6) 邏輯層的掃描調度模塊匯總掃描檢測結果,並存儲於臨時資料庫;(7) 掃描調度模塊從臨時資料庫中調出檢測結果,並輸出到GUI表示層 的報告與結果顯示模塊,以生成掃描4企測報告;(8) 系統根據用戶在表示層的任務配置模塊中設置的命令,輸出該掃描檢 測報告。本發明已經研製出實驗型系統,並進行了實施試驗,試驗的結果是成功的, 實現了發明目的。因此,從事WEB網站開發的企業和個人都可以使用本發明 系統進行Web系統開發過程的安全檢測與評估,以^f更對正在研發的或者已經完 成研發的Web網站進行檢測,從中查找出存在的風險安全漏洞,並進行改進, 再反覆測試,圖8是利用本發明系統對研製過程中的網站進行檢測的實施試驗 過程的示意圖。
權利要求
1、一種用於WEB系統的自動化滲透性測試系統,其特徵在於該系統根據用戶在圖形用戶界面GUI表示層設置的WEB掃描任務對WEB網站自動進行滲透掃描或常規掃描,並結合相應的插件對掃描結果進行分析,找出該WEB網站存在的安全問題,然後生成檢測報告;該系統結構有三個層次GUI表示層,邏輯層,數據層,其中GUI表示層,用於提供與用戶交互的GUI界面,包含瀏覽器、任務配置模塊、報告與結果顯示模塊、狀態及進度顯示模塊;邏輯層,作為該系統的控制核心,負責執行掃描、檢測程序的運行及相關功能,配置的八個軟體模塊以掃描調度模塊為中心,其餘七個模塊是包構造器模塊、預掃描模塊、連結分析模塊、瀏覽器代理模塊、滲透掃描模塊、常規掃描模塊、用於插接掃描插件的插件接口;數據層,用於存儲、維護各種掃描規則和任務執行過程中的配置信息,設有常規掃描規則庫、滲透掃描規則庫、任務信息與臨時資料庫。
2、 根據權利要求1所述的自動化滲透性測試系統,其特徵在於所述邏輯 層中的各模塊的功能及其相互之間的信息傳遞關係是掃描調度模塊,作為該系統的關鍵模塊和控制中心,用於統一調度該系統 各模塊的運行和彼此協作,以使該系統能夠自動完成掃描、檢測的各項任務;包構造器模塊,負責構造符合任務和規則要求的檢測數據包,獲取網站響 應後,將滿足設定特徵的應答存儲起來,供其他模塊調用;預掃描模塊,負責在正式掃描目的網站之前,先進行一次肯定返回錯誤應 答的掃描,以便根據返回的錯誤應答的不同情況,增強滲透掃描模塊進行的掃 描探測的精確性,發現和確認安全漏洞,並防止因頁面跳轉而產生誤報;連結分析模塊,負責根據設定任務,採用類似自動抓取內容的機器人Spider 技術對目的網站進行全站檢索,根據正則匹配識別站內連結和外部連結,並訪 問對應站內連結所指向的頁面,不斷循環執行該過程,直至達到掃描探測深度或不再有新的頁面出現;瀏覽器代理模塊,用於調用本地瀏覽器,以供用戶與目標網站進行交互; 同時通過自身代理,記錄用戶的登陸信息,為以後進行滲透掃描和查詢對應的 掃描規則備用;常規掃描才莫塊,用於執行常規掃描檢測,即向目標網站發送由包構造器構 造好的探測包,再將獲取的應答信息與常規掃描規則庫的規則進行匹配;滲透掃描模塊,負責進行滲透掃描探測分析網頁的超文本標記語言HTML 注入點,並嘗試向這些注入點提交滲透探測數據包,再以預掃描模塊獲取的默 認出錯頁面為標準,確定是否存在注入漏洞,並以設定腳本返回檢測結果,告 知是否存在跨站點腳本攻擊XSS漏洞,實現自動4果測;如此循環輪詢各個網頁, 直至對所有規則都完成掃描探測後,生成掃描報告,發給報告與結果顯示4莫塊;插件接口模塊,用於接插有新的掃描功能或程序的插件,以擴充系統的掃 描檢測功能。
3、根據權利要求2所述的自動化滲透性測試系統,其特徵在於所述掃描 調度4莫塊具有下述具體功能當檢測任務要調用瀏覽器參與掃描時,掃描調度模塊負責在掃描之前調用 瀏覽器代理模塊,以彈出瀏覽器窗口與用戶交互;並通過瀏覽器代理模塊記錄 和存儲瀏覽器中的登錄、認證信息,供其它相關模塊調用;在連結分析模塊、預掃描模塊和常規43描、滲透掃描兩個掃描模塊的工作 過程中,控制各模塊的處理流程及其工作進度,防止出現後續操作模塊先於前 導才莫塊的啟動情況;在連結分析模塊開始出現檢測結果後,就從中取出部分信息進行深度滲透 掃描,即控制各個模塊執行並行操作,以提高檢測效率;當某個模塊長時間沒有反饋結果時,控制相關的其他模塊也進入暫時等待 狀態,以降低系統資源消耗;在取得當前處理對象的進度信息和當前任務狀態 時,立即轉送給狀態及進度顯示模塊,以供實時顯示檢測進度和系統運行狀況;結束掃描任務後,生成文件形式的檢測報告和提供相關信息,終止各模塊的運行。
4、 根據權利要求2所述的自動化滲透性測試系統,其特徵在於所述連結 分析模塊中設有等待、處理、錯誤、完成四個隊列,在接到對設定的統一資源 定位url進行掃描檢測任務後,將該url加入等待隊列,等待該模塊程序進行鏈 接分析處理;必須先把等待隊列中的url傳送到處理隊列後,才對連結進行處 理,且每個連結只處理一次某個連結被處理後,就被移動到錯誤隊列或完成 隊列, 一旦進入某一新隊列後,就不再移入其它隊列,也不再對其作後續處理;如果打開的網頁出現錯誤,它的url就被放入錯誤隊列;如果打開的網頁 沒有錯誤,再判斷該網頁是否有其他連結,如果沒有,則將其移入完成隊列並 繼續檢查等待隊列;否則,進一步判斷該連結是否指向Web網頁,如果不是, 則判斷為其他類型連結,繼續檢測後面的連結;否則,再判斷該連結是否與網 頁所在的主機相同,如果不同,判斷該連結為外部連結,繼續處理該網頁上的 其他連結;如果相同,則將該連結加入等待隊列並記錄之,然後繼續處理該網 頁上的其他連結;然後判斷等待隊列中是否還有url,直至完成全部連結的分析。
5、 根據權利要求1所述的自動化滲透性測試系統,其特徵在於所述系統 用於在已完成開發的WEB網站或正在開發過程中的WEB網站,對相關程序自 動進行滲透化掃描檢測,以發現各種安全漏洞,並對該WEB網站或系統做出 整體安全性評估報告或綜合風險列表,以供技術人員進一步分析包括SQL注 入、緩衝區溢出、輸入驗證和其它安全問題,降低WEB網站開發項目的安全 開銷,並提高軟體開發人員的安全代碼意識,降低相關項目的安全風險。
6、 一種用於WEB系統的自動化滲透性測試系統的工作方法,其特徵在於 先接受用戶提交的WEB網站的URL信息,再判斷用戶是否設置登錄,以進行 滲透性掃描;如果用戶設置登錄,則調用本地瀏覽器,供用戶與目標網站進行 交互,同時通過自身代理記錄該用戶的登錄信息,並查詢相應的掃描規則;如 果用戶未設置登錄,則直接進行掃描4t測;檢測時,先查詢對應的規則並向該 網站地址發送探測包,再根據規則對返回的應答信息進行匹配,如果匹配成功, 則確認存在風險,再繼續查詢下一條規則;如果未匹配成功,則直接返回和繼續查詢下一條規則,直至按照全部規則都檢測一遍,完成掃描,並報告檢測結果。
7、 根據權利要求6所述的自動化滲透性測試系統的工作方法,其特徵在於 所述方法包括下列操作步驟(1 )系統通過GUI表示層的用戶界面模塊接受用戶的設置命令。並根據 用戶命令決定是否調用瀏覽器,如果要調用,則順序執行步驟(2),否則,跳 轉執行步驟(3 );(2) 調用瀏覽器代理模塊,獲取用戶登錄認證信息;(3) 根據用戶的配置命令,選擇相應的常規掃描或滲透掃描方式,並調用 相應的掃描^t塊進行掃描^r測;(4) 邏輯層的掃描調度模塊匯總掃描檢測結果,並存儲於臨時資料庫;(5) 掃描調度模塊從臨時資料庫中調出檢測結果,並輸出到GUI表示層 的報告與結果顯示模塊,以生成掃描檢測報告;(6) 系統根據用戶在表示層的任務配置模塊中設置的命令,輸出該掃描檢 測報告。
8、 根據權利要求7所述的自動化滲透性測試系統的工作方法,其特徵在於 所述步驟(3)中,常規掃描模塊進行的常規掃描處理的具體過程如下先查詢 對應的常規掃描規則,並調用包構造器模塊根據規則構建探測包,然後向目標 網站發送;再根據常規掃描規則庫的規則對從目標網站返回的應答信息進行匹 配檢測,如果與規則匹配成功,則確認存在風險,繼續順序查詢下一條規則; 如果與規則匹配不成功,則直接順序查詢下一條規則,直至規則輪詢結束,完 成掃描後,通知報告與結果顯示模塊,生成文件形式的掃描檢測報告。
9、 根據權利要求7所述的自動化滲透性測試系統的工作方法,其特徵在於 所述步驟(3)中,在滲透掃描模塊進行掃描之前,先由預掃描模塊對該網站進 行預掃描處理的具體過程如下先通過包構造器模塊向該網站請求一個不可能 存在的資源,並將返回的非標準錯誤應答信息轉換為自定義的特徵欄位保存起 來,用於與以後進行的滲透掃描探測時返回的應答作對比,增強掃描的準確性;如果返回的是標準的錯誤應答信息,則直接記錄該錯誤應答信息中的特徵欄位; 如果預掃描過程中出現頁面跳轉,則忽略跳轉後的內容;而將默認為錯誤頁面 的該跳轉頁面標識為以標準錯誤應答信息為特徵的錯誤頁面,以防止因跳轉頁 面而產生過於泛化的誤報;同時,在請求不存在的資源後,將瀏覽器頁面返回給用戶,並直接在瀏覽 器中顯示返回結果,以便與在掃描初期由用戶指定的、以正則表達式表示的出 錯頁面的特徵欄位進行比對,如果兩者信息匹配,則表示出現錯誤,這樣能夠 協助滲透掃描模塊發現與確認安全漏洞。
10、根據權利要求7或9所述的自動化滲透性測試系統的工作方法,其特 徵在於所述步驟(3)中,滲透掃描模塊進行的滲透掃描的具體過程如下先 提取該網站的內部頁面連結,將分析結果存儲於臨時資料庫;再進行預掃描, 並將該預掃描過程得到的目的網站的錯誤頁面也存儲於臨時資料庫;然後,取 出臨時資料庫中的連結信息,由滲透掃描模塊調用包構造器模塊根據對應的滲 透測試規則構建探測包,並發往這些內部連結對應的頁面,再根據滲透掃描規 則庫的規則對返回的應答信息進行匹配,如果兩者匹配,則確認存在風險,返 回繼續查詢下一條規則;如果兩者不匹配,則直接返回查詢下一條規則;同時 針對每個連結頁面,根據儲存在臨時庫的信息分析出HTML中存在的注入點, 並嘗試向這些注入點提交滲透探測數據,再以預掃描獲得的默認出錯頁面為標 準,判斷確定是否存在注入漏洞,以設定的腳本返回來確定是否存在跨站腳本 攻擊XSS漏洞,實現自動探測;直至規則輪詢結束,完成掃描後,通知報告與 結果顯示模塊,生成掃描4僉測報告。
全文摘要
一種用於WEB系統的自動化滲透性測試系統,設有三個層次提供與用戶交互界面GUI的表示層,作為系統的控制核心、執行掃描、檢測程序的運行及相關功能的邏輯層,用於存儲、維護各種掃描規則和任務執行過程中的配置信息的數據層。本發明系統能根據用戶在GUI表示層設置的WEB掃描任務對WEB網站自動進行滲透掃描或常規掃描,結合相應的插件對掃描結果進行分析,找出該WEB網站可能存在的安全問題,然後生成檢測報告來通報已經形成的綜合風險列表。本發明用於對WEB網站自動進行安全測試,能夠取代目前基於人工的安全性測試與滲透性測試,大大降低目前在軟體研發中對軟體安全測試所投入的成本,還可大大提高安全測試的準確性。
文檔編號H04L9/36GK101242279SQ200810101530
公開日2008年8月13日 申請日期2008年3月7日 優先權日2008年3月7日
發明者淼 張, 徐國愛, 楊義先, 建 王 申請人:北京郵電大學