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