一種Web應用系統(tǒng)的安全檢測方法及安全檢測裝置制造方法
【專利摘要】本發(fā)明公開了一種Web應用系統(tǒng)的安全檢測方法和安全檢測裝置,其目的在于提供一種通過本地檢測和云端檢測的雙重檢測且安全性能高的Web應用系統(tǒng)的安全檢測方法和安全檢測裝置,屬于網(wǎng)絡安全【技術領域】。該檢測方法包括本地安全檢測、云端安全檢測和滲透測試三個步驟對Web應用系統(tǒng)進行安全檢測。本發(fā)明用于Web應用系統(tǒng)的安全檢測。
【專利說明】—種Web應用系統(tǒng)的安全檢測方法及安全檢測裝置
【技術領域】
[0001]本發(fā)明涉及一種Web應用系統(tǒng)的安全檢測方法及檢測裝置,用于Web應用系統(tǒng)的安全檢測,屬于網(wǎng)絡安全【技術領域】。
【背景技術】
[0002]在Internet大眾化及Web技術飛速發(fā)展的今天,Web已經(jīng)對商業(yè)、教育、政府和娛樂及我們的工作和生活產(chǎn)生了深遠影響,相應地,基于Web的應用程序已經(jīng)有了很大的市場。伴隨著信息化建設的不斷深入,Web應用系統(tǒng)已日益成熟,Web應用系統(tǒng)平臺已經(jīng)在電子政務、電子商務等領域得到廣泛的應用,以協(xié)同工作環(huán)境、社會性網(wǎng)絡服務以及托管應用程序為代表的Web技術,在很大程度上改變了人們溝通、交流和工作的方式。但由于目前程序員的安全性普遍比較差,編程入門門檻低,程序員的疏忽等問題,造成了編寫的代碼存在大量的安全漏洞,因而這些新技術在給商業(yè)活動的發(fā)展帶來便利的同時,也帶來了前所未有的巨大安全風險。伴隨著在線信息和服務的可用性的提升,以及對Web應用系統(tǒng)的攻擊和破壞頻率的增長,安全風險達到了前所未有的高度。
[0003]由于Web應用系統(tǒng)的重要性及其所面臨的安全威脅的嚴峻形勢,為了提高Web應用系統(tǒng)的安全性,采用技術手段對Web應用系統(tǒng)進行安全檢測是必須的。安全檢測可以發(fā)現(xiàn)Web應用系統(tǒng)中的安全問題和潛在的安全威脅,提高Web應用系統(tǒng)的安全性,為國家、企業(yè)、個人等Web應用系統(tǒng)的使用者提供安全保障?;赪eb應用系統(tǒng)的系統(tǒng)測試與傳統(tǒng)的軟件測試既有相同之處,也有不同的地方,對軟件測試提出了新的挑戰(zhàn)。基于Web應用系統(tǒng)的系統(tǒng)測試不但需要檢查和驗證該應用是否按照設計的要求運行,而且還要評價系統(tǒng)在不同用戶的終端(瀏覽器)的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性的測試。
[0004]目前Web應用系統(tǒng)常用的安全檢測有白盒測試和黑盒測試。白盒檢測技術經(jīng)過多年的發(fā)展,眾多基于該技術的檢測工具被應用于Web應用系統(tǒng)的白盒檢測工作中,如fortify、CodeSecure、Ounce Security、Analyst等;黑盒檢測技術直接對接口進行功能性測試,其測試結果具有較高的準確度,可以在很大程度上輔助研究人員對Web應用系統(tǒng)的安全問題進行分析和確定,從而提高Web應用系統(tǒng)的安全性。目前,很多基于黑盒檢測技術的工具、系統(tǒng)被應用于Web應用系統(tǒng)的安全檢測中,包括IBM的AppScan、HP的ffeblnspect, OffASP的開源項目WebScrab等。如申請?zhí)枮?01310028848.0的發(fā)明專利申請就公開了一種白黑盒結合的Web應用系統(tǒng)安全檢測方法,該申請的步驟為:對Web應用系統(tǒng)進行白盒測試;對胃必應用系統(tǒng)進行黑盒測試;通過K進行文件關聯(lián);通過S進行文件查找;整體結合測試。通過一定的測試流程,并引入文件關聯(lián)匹配技術K,實現(xiàn)Web應用系統(tǒng)白黑盒測試結合。該發(fā)明專利申請雖解決了對Web應用系統(tǒng)進行白盒測試的高誤報率和黑盒測試的無法定位漏洞源代碼位置的問題,但經(jīng)安全檢測后的Web應用系統(tǒng)的安全性仍較低。
【發(fā)明內(nèi)容】
[0005]為解決上述技術問題,本發(fā)明的目的在于提供一種Web應用系統(tǒng)的安全檢測方法和檢測裝置,通過本地檢測和云端檢測的雙重檢測,提高Web應用系統(tǒng)的安全性能。
[0006]為實現(xiàn)上述目的,本發(fā)明的技術方案為:
[0007]一種Web應用系統(tǒng)的安全檢測方法,其步驟包括:
[0008]步驟1、本地安全檢測,先對Web應用系統(tǒng)代碼進行代碼分析,其次利用爬蟲技術對Web應用系統(tǒng)進行模擬使用,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的代碼漏洞進行警告標記;
[0009]步驟2、云端安全檢測,將Web應用系統(tǒng)代碼的樣本上傳至云端服務器,Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行對比檢測,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記;
[0010]步驟3、滲透測試,采用滲透測試工具對Web應用系統(tǒng)進行模擬攻擊,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記,給出安全評估?艮告。
[0011]進一步地,步驟I中所述代碼分析的過程包括先對Web應用系統(tǒng)代碼進行危險函數(shù)檢測,再對Web應用系統(tǒng)代碼進行參數(shù)過濾檢查和身份驗證檢查。
[0012]進一步地,步驟I中所述代碼分析采用源代碼分析技術,所述源代碼分析技術主要包括如下三步驟:
[0013]步驟3-1、先對Web應用系統(tǒng)代碼進行詞法分析和語法分析;
[0014]步驟3-2、然后采用數(shù)據(jù)流分析、狀態(tài)機系統(tǒng)、邊界檢測、數(shù)據(jù)類型驗證和控制流分析對Web應用系統(tǒng)代碼進行模型分析;
[0015]步驟3-3、最后在各個接收點之間建立相應的依賴關系圖,并根據(jù)該依賴關系圖判斷Web應用系統(tǒng)代碼是否具有代碼漏洞。
[0016]進一步地,云端安全檢測中Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行hash對比,檢測云端服務器是否存在與Web應用系統(tǒng)代碼的樣本的基本塊相同的漏洞代碼。
[0017]進一步地,步驟3 中滲透測試工具為 sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark中的一種或幾種的組合。
[0018]進一步地,利用sqlmap工具對Web應用系統(tǒng)中存在的檢測點進行sql注入檢測并根據(jù)檢測結果發(fā)現(xiàn)Web應用系統(tǒng)是否存在注入漏洞;利用xss-proxy工具或X-scan工具對Web應用系統(tǒng)中易出現(xiàn)xss漏洞的模塊進行xss漏洞檢測并根據(jù)檢測結果發(fā)現(xiàn)Web應用系統(tǒng)是否存在xss漏洞。
[0019]一種Web應用系統(tǒng)的安全檢測裝置,其特征在于:包括
[0020]本地安全檢測模塊,用于對Web應用系統(tǒng)代碼進行代碼分析,利用爬蟲技術對Web應用系統(tǒng)進行模擬使用,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的代碼漏洞進行警告標記;
[0021]云端安全檢測模塊,用于將Web應用系統(tǒng)代碼的樣本上傳至云端服務器,Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行對比檢測,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記;
[0022]滲透測試模塊,用于采用滲透測試工具對Web應用系統(tǒng)進行模擬攻擊,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記,給出安全評估報告。
[0023]進一步地,滲透測試工具為sqlmap、xss-proxy、Nessus、 X-scan、Nmapλ Wireshark中的一種或幾種的組合。
[0024]進一步地,還設有更新模塊,所述更新模塊用于更新預存在云端服務器上的缺陷基本塊、安全模塊和滲透測試工具。
[0025]與現(xiàn)有技術相比,本發(fā)明的有益效果在于:
[0026]1、本發(fā)明的安全檢測方法及安全檢測裝置通過本地安全檢測、云端安全檢測和滲透測試對Web應用系統(tǒng)進行多重檢測,通過云端安全檢測將Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行對比,查找出Web應用系統(tǒng)代碼的樣本中與缺陷基本塊相同的漏洞代碼,并進行標記,從而提高Web應用系統(tǒng)代碼的漏洞,加強系統(tǒng)的安全性,減少系統(tǒng)被黑客成功攻擊的可能性,且易于對web漏洞進行匯總和分析,并增強程序員的代碼安全意識,引導程序員編寫出更加安全的Web應用代碼。
[0027]2、本發(fā)明的安全檢測方法及安全檢測裝置采用源代碼分析技術對Web應用系統(tǒng)代碼進行代碼分析,可有效提高對Web應用系統(tǒng)代碼的檢測效率和檢測效果,降低Web應用系統(tǒng)代碼的漏洞缺陷。
[0028]3、利用滲透測試工具模擬黑客對web應用進行攻擊,在滲透測試過程中,WEB應用程序可能會泄露一些不應該被最終用戶看到的信息,并測試出相關的漏洞,從而提高Web應用系統(tǒng)代碼的漏洞,加強系統(tǒng)的安全性,減少系統(tǒng)被黑客成功攻擊的可能性,且有助于提高程序員的代碼安全意識。
【專利附圖】
【附圖說明】
[0029]圖1為本發(fā)明的檢測流程圖;
[0030]圖2為本發(fā)明中滲透測試流程圖。
【具體實施方式】
[0031]下面結合附圖,對本發(fā)明做進一步說明:
[0032]實施例一
[0033]一種Web應用系統(tǒng)的安全檢測方法,其步驟包括:
[0034]步驟1、本地安全檢測
[0035]本地安全檢測主要對Web應用系統(tǒng)代碼進行代碼分析,利用爬蟲技術對Web應用系統(tǒng)進行模擬使用,對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記;
[0036]所述代碼分析的過程為先對Web應用系統(tǒng)代碼進行危險函數(shù)檢測,再對Web應用系統(tǒng)代碼進行參數(shù)過濾檢查和身份驗證檢查。
[0037]所述代碼分析中采用了源代碼分析技術,所述源代碼分析技術主要包括如下三步驟:
[0038]步驟3-1、先對Web應用系統(tǒng)代碼進行詞法分析和語法分析(例如,對Web應用系統(tǒng)代碼的邏輯結構進行數(shù)學建模);
[0039]步驟3-2、然后采用數(shù)據(jù)流分析、狀態(tài)機系統(tǒng)、邊界檢測、數(shù)據(jù)類型驗證和控制流分析對Web應用系統(tǒng)代碼進行模型分析,從而發(fā)現(xiàn)軟件系統(tǒng)屮的安全問題和安全缺陷;
[0040]步驟3-3、最后在各個接收點之間建立相應的依賴關系圖,并根據(jù)該依賴關系圖判斷Web應用系統(tǒng)代碼是否具有代碼漏洞。依據(jù)源碼之間的聯(lián)系,一段源代碼能夠拆分成各個不同的基本塊,各個基本塊是源代碼有序運行的語句。數(shù)據(jù)流分析是搜集源代碼里的變量,判斷其在源代碼中的傳送和修改的運用狀況,還有它在基本塊中的使用過程。
[0041]檢測運行Web應用系統(tǒng)代碼時,數(shù)據(jù)是在條件語句的轉移下進行轉移。所以,構建控制流圖才能更好的應用數(shù)據(jù)流分析??刂屏鲌D定義為:一有向圖G = (N, E, into, out).其中,N是節(jié)點的集合,程序中的每段代碼都匹配圖中的某一節(jié)點;邊集E= {〈p,q>|p,q屬于N并在P運行之后,將會馬上運行q} ;into與out是代碼的進入點與結束點。
[0042]本發(fā)明中控制流圖的生成規(guī)則為:如若在一個有序代碼中,基本塊J2跟隨在Jl后面運行,那么產(chǎn)生了一個由Jl指向J2有向邊。即如果:
[0043]1.存在跳轉點,能夠存在條件或是不存在條件,這個點從Jl的結束點跳轉至J2的開始點;
[0044]2.在有序代碼里,J2跟隨在Jl之后,而且Jl的結束點不是不存在條件的跳轉語句在以上兩種情況下,Jl為J2的前驅(qū),J2是Jl的后繼。
[0045]經(jīng)源代碼分析技術檢測后,利用爬蟲技術對Web應用系統(tǒng)進行模擬使用,并在模擬使用中檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記,其步驟為:
[0046]1.爬取易產(chǎn)生sql注入的頁面
[0047]爬蟲攜帶敏感參數(shù)(1rl = 1,I’or ‘ I’=‘I等)對本地易產(chǎn)生sql注入的頁面(如登錄頁面、信息查詢頁面)進行頁面爬取,并根據(jù)爬取結果是否含有敏感信息判斷該頁面是否存在sql注入漏洞。
[0048]2.爬取易產(chǎn)生xss漏洞頁面
[0049]爬蟲在url中或者post數(shù)據(jù)中攜帶(alert⑴,’ ;onclick = ’ alert⑴等)對本地易產(chǎn)生XSS漏洞的頁面(如搜索模塊、留言模塊)進行頁面執(zhí)行,并根據(jù)頁面執(zhí)行結果判斷該頁面是否存在XSS漏洞。
[0050]步驟2、云端安全檢測
[0051]將Web應用系統(tǒng)代碼的樣本上傳至云端服務器,Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行對比,對經(jīng)對比產(chǎn)生的Web應用系統(tǒng)代碼漏洞進行警告標記。所述缺陷基本塊是指預存在云端服務器上的存在缺陷的代碼模塊。
[0052]Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行hash對比,檢測云端服務器是否存在與Web應用系統(tǒng)代碼的樣本的基本塊相同的漏洞代碼,若有,則Web應用系統(tǒng)代碼的樣本中存在代碼漏洞;若沒有,則Web應用系統(tǒng)代碼的樣本中可能不存在代碼漏洞。此外,還對Web應用系統(tǒng)代碼的樣本進行危險函數(shù)掃描、錯誤邏輯掃描。
[0053]步驟3、滲透測試
[0054]接收來自Web應用系統(tǒng)的請求,采用滲透測試工具模擬黑客對Web應用系統(tǒng)進行攻擊,對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記,并給出安全評估報告。
[0055]所述滲透測試是對Web應用系統(tǒng)進行自動初級滲透測試,滲透測試時采用的滲透測試工具為 sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark 中的一種或幾種的組合。利用滲透測試工具模擬黑客對web應用進行攻擊的過程中,Web應用系統(tǒng)可能會泄露一些不應該被最終用戶看到的信息。測試人員根據(jù)諸如錯誤代碼之類的信息可以推測出應用所使用的技術和產(chǎn)品。在不當?shù)漠惓L幚碓O計與編碼的情況下,錯誤代碼可以通過專門技能或工具就可以很容易地去調(diào)用它。顯然,只注重于WEB應用不可能達到詳盡的測試,它達不到通過更廣泛地基礎分析收集到的信息后對被測應用的理解程度。利用上述滲透測試工具實現(xiàn)對Web應用系統(tǒng)的初步探索并給出簡易的安全評估報告,讓編程人員對自身系統(tǒng)的安全級別有大概的認識。
[0056]上述諸多工具中,利用sqlmap工具對Web應用系統(tǒng)中存在的檢測點進行sql注入檢測并根據(jù)檢測結果發(fā)現(xiàn)Web應用系統(tǒng)是否存在注入漏洞;利用xss-proxy工具或X-scan工具對Web應用系統(tǒng)中易出現(xiàn)xss漏洞的模塊進行xss漏洞檢測并根據(jù)檢測結果發(fā)現(xiàn)Web應用系統(tǒng)是否存在xss漏洞;利用Nessus工具對Web應用系統(tǒng)進行系統(tǒng)漏洞掃描和軟件分析;利用Nmap工具對Web應用系統(tǒng)的端口進行端口掃描;利用Wireshark工具擷取Web應用系統(tǒng)的網(wǎng)絡數(shù)據(jù)包,并盡可能顯示出最為詳細的網(wǎng)絡數(shù)據(jù)包資料。
[0057]實施例二
[0058]一種Web應用系統(tǒng)的安全檢測裝置,包括本地安全檢測模塊、云端安全檢測模塊和滲透測試模塊。
[0059]所述本地安全檢測模塊用于采用源代碼分析技術對Web應用系統(tǒng)代碼進行代碼分析,利用爬蟲技術對Web應用系統(tǒng)進行模擬使用,對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記。該本地安全檢測模塊采用了上述實施例一中的本地安全檢測方法。
[0060]所述云端安全檢測模塊用于將Web應用系統(tǒng)代碼的樣本上傳至云端服務器,Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行對比,對經(jīng)對比產(chǎn)生的Web應用系統(tǒng)代碼漏洞進行警告標記。該云端安全檢測模塊采用了上述實施例一中的云端安全檢測方法。
[0061]所述滲透測試模塊用于接收來自Web應用系統(tǒng)的請求,采用滲透測試工具模擬黑客對Web應用系統(tǒng)進行攻擊,對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記,并給出安全評估報告。該滲透測試模塊采用了上述實施例一中的滲透測試方法。
[0062]所述滲透測試工具為sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark 中的一種或幾種的組合。
[0063]實施例三
[0064]在實施例二的基礎上,還設有更新模塊。所述更新模塊用于更新預存在云端服務器上的缺陷基本塊、安全模塊和滲透測試工具。
【權利要求】
1.一種Web應用系統(tǒng)的安全檢測方法,其步驟包括: 步驟1、本地安全檢測,先對Web應用系統(tǒng)代碼進行代碼分析,再利用爬蟲技術對Web應用系統(tǒng)進行模擬使用,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的代碼漏洞進行警告標記; 步驟2、云端安全檢測,將Web應用系統(tǒng)代碼的樣本上傳至云端服務器,Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行對比檢測,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記; 步驟3、滲透測試,采用滲透測試工具對Web應用系統(tǒng)進行模擬攻擊,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記,給出安全評估報生口 ο
2.如權利要求1所述的一種Web應用系統(tǒng)的安全檢測方法,其特征在于:步驟I中所述代碼分析的過程包括先對Web應用系統(tǒng)代碼進行危險函數(shù)檢測,再對Web應用系統(tǒng)代碼進行參數(shù)過濾檢查和身份驗證檢查。
3.如權利要求1所述的一種Web應用系統(tǒng)的安全檢測方法,其特征在于:步驟I中所述代碼分析采用源代碼分析技術,所述源代碼分析技術包括如下三步驟: 步驟3-1、先對Web應用系統(tǒng)代碼進行詞法分析和語法分析; 步驟3-2、然后采用數(shù)據(jù)流分析、狀態(tài)機系統(tǒng)、邊界檢測、數(shù)據(jù)類型驗證和控制流分析對Web應用系統(tǒng)代碼進行模型分析; 步驟3-3、最后在各個接收點之間建立相應的依賴關系圖,并根據(jù)該依賴關系圖判斷Web應用系統(tǒng)代碼是否具有代碼漏洞。
4.如權利要求1所述的一種Web應用系統(tǒng)的安全檢測方法,其特征在于:云端安全檢測中Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行hash對比,檢測云端服務器是否存在與Web應用系統(tǒng)代碼的樣本的基本塊相同的漏洞代碼。
5.如權利要求1所述的一種Web應用系統(tǒng)的安全檢測方法,其特征在于:步驟3中滲透測試工具為 sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark 中的一種或幾種的組口 O
6.如權利要求5所述的一種Web應用系統(tǒng)的安全檢測方法,其特征在于:利用sqlmap工具對Web應用系統(tǒng)中存在的檢測點進行sql注入檢測并根據(jù)檢測結果發(fā)現(xiàn)Web應用系統(tǒng)是否存在注入漏洞;利用xss-proxy工具或X-scan工具對Web應用系統(tǒng)中易出現(xiàn)xss漏洞的模塊進行xss漏洞檢測并根據(jù)檢測結果發(fā)現(xiàn)Web應用系統(tǒng)是否存在xss漏洞。
7.一種Web應用系統(tǒng)的安全檢測裝置,其特征在于:包括 本地安全檢測模塊,用于對Web應用系統(tǒng)代碼進行代碼分析,利用爬蟲技術對Web應用系統(tǒng)進行模擬使用,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的代碼漏洞進行警告標記; 云端安全檢測模塊,用于將Web應用系統(tǒng)代碼的樣本上傳至云端服務器,Web應用系統(tǒng)代碼的樣本的每個基本塊與預存在云端服務器上的缺陷基本塊進行對比檢測,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記; 滲透測試模塊,用于采用滲透測試工具對Web應用系統(tǒng)進行模擬攻擊,檢測Web應用系統(tǒng)是否存在代碼漏洞并對檢測出的Web應用系統(tǒng)代碼漏洞進行警告標記,給出安全評估報生口 ο
8.如權利要求7所述的一種Web應用系統(tǒng)的安全檢測裝置,其特征在于:滲透測試工具為 sqlmap、xss-proxy、Nessus、X-scan、Nmap> Wireshark 中的一種或幾種的組合。
9.如權利要求7所述的一種Web應用系統(tǒng)的安全檢測裝置,其特征在于:還設有更新模塊,所述更新模塊用于更新預存在云端服務器上的缺陷基本塊、安全模塊和滲透測試工具。
【文檔編號】H04L29/08GK104184728SQ201410398508
【公開日】2014年12月3日 申請日期:2014年8月14日 優(yōu)先權日:2014年8月14日
【發(fā)明者】張小松, 陳瑞東, 吳安彬, 牛偉納, 王東, 徐浩然, 孫恩博, 柯明敏, 楊高明, 張藝峰 申請人:電子科技大學