本發明專利技術公開了一種交互式應用程序安全測試方法,包括:安裝測試服務器端及部署目標被測程序;將探針部署于測試服務器端;運行目標測試程序并通過探針收集分析數據;探針將分析數據發送至測試服務端,測試服務器端對分析數據進行分析以得到漏洞結果。與現有技術相比,本發明專利技術的測試方法不需要專人操作,運行目標被測程序的過程中同時完成了功能測試及漏洞等安全性測試,減少了安全測試的人力投入。同時,該方法中通過探針實時獲取目標被測程序運行時的真實數據,從而可以實現比傳統靜態源代碼分析工具更高的測試精確度,還可降低漏報率。本發明專利技術同時公開了一種交互式應用程序安全測試的系統。
【技術實現步驟摘要】
本專利技術涉及軟件安全測試
,更具體地涉及一種交互式應用程序安全測試方法及其系統。
技術介紹
在軟件的開發過程中,軟件安全測試是一種檢驗軟件中已存在的軟件安全措施是否有效的測試,是保證系統安全性的重要手段,其一般包括安全功能測試和安全漏洞測試兩個方面。目前,針對安全漏洞測試方面,被廣泛應用的是基于靜態源代碼安全分析技術的分析工具。其中,靜態源代碼安全分析技術的原理如下:首先創建一個龐大的數據DOM樹,然后在不運行代碼的方式下,通過詞法分析、語法分析、控制流、數據流分析等技術對程序代碼進行掃描。現有采用類似技術的靜態源代碼安全掃描工具有:IBM AppScan for source、HP Fortify與Checkmarx CxSuite,上述掃描工具目前在國際上都具有很高的漏洞覆蓋率及漏洞查找能力。然而,基于靜態源代碼安全分析的上述掃描工具在進行安全漏洞測試時,具有以下缺點:(1)需要專人去操作,掃描非常耗時;(2)精確度不高。因此,有必要提供一種改進的交互式應用程序安全測試方法及其系統來克服上述缺陷。
技術實現思路
本專利技術的目的是提供一種交互式應用程序安全測試方法及其系統,以在實現功能測試的同時完成漏洞等安全性測試,無需專人操作且可減少安全測試的人力投入,同時測試精確度較高。為實現上述目的,本專利技術提供了一種交互式應用程序安全測試方法,包括:安裝測試服務器端及部署目標被測程序;將探針部署于測試服務器端;運行目標測試程序并通過探針收集分析數據;探針將分析數據發送至測試服務端,測試服務器端對分析數據進行分析以得到漏洞結果。與現有技術相比,本專利技術的測試方法先安裝測試服務器端及部署目標被測程序,再將探針部署于測試服務器端上,之后運行目標被測程序,同時通過探針收集分析數據,接著探針將分析數據發送至測試服務器端,最后該測試服務器端對上述分析數據進行分析處理以得到漏洞結果,實現了安全測試中的漏洞測試。該測試方法不需要專人操作,運行目標被測程序的過程中同時完成了功能測試及漏洞等安全性測試,減少了安全測試的人力投入。同時,該方法中通過探針實時獲取目標被測程序運行時的真實數據,從而可以實現比傳統靜態源代碼分析工具更高的測試精確度,還可降低漏報率。較佳地,得到漏洞結果之后還包括:測試服務器端根據漏洞結果生成目標被測程序的安全報告。具體地,測試服務器端為運行于Tomcat服務器上的一JAVA WEB程序,目標被測程序為部署于Tomcat服務器上的一JAVA站點,探針為基于Java虛擬機工具接口的一代理程序。具體地,將探針部署于測試服務器端具體包括:在測試服務器端下載探針;修改Tomcat服務器的啟動腳本及增加javaagent參數以使Tomcat服務器在運行時加載探針。具體地,分析數據包括上下文內容、數據流、控制流及目標被測程序運行時傳遞的值。可選地,漏洞結果包括SQL注入漏洞及框架與包的漏洞。相應地,本專利技術還提供了一種交互式應用程序安全測試系統,包括:測試服務器端,用于接收分析數據并對分析數據進行分析以得到漏洞結果;以及探針,部署于測試服務器端,當目標被測程序運行時,探針收集并發送分析數據至測試服務器端。與現有技術相比,本專利技術的測試系統在運行目標被測程序時,探針會收集分析數據并將分析數據傳送至測試服務器端,測試服務器端會對分析數據進行分析處理以得到漏洞結果。該測試系統不需要專人操作,運行目標被測程序的過程中同時完成了功能測試及漏洞等安全性測試,減少了安全測試的人力投入。同時,該系統通過探針實時獲取目標被測程序運行時的真實數據,從而可以實現比傳統靜態源代碼分析工具更高的測試精確度,還可降低漏報率。具體地,探針部署于測試服務器端具體包括:在測試服務器端下載探針;修改Tomcat服務器的啟動腳本及增加javaagent參數以使Tomcat服務器在運行時加載探針。具體地,分析數據包括上下文內容、數據流、控制流及所述目標被測程序運行時傳遞的值。可選地,所述漏洞結果包括SQL注入漏洞及框架與包的漏洞。通過以下的描述并結合附圖,本專利技術將變得更加清晰,這些附圖用于解釋本專利技術的實施例。附圖說明圖1為本專利技術交互式應用程序安全測試系統的結構框圖。圖2為本專利技術交互式應用程序安全測試方法的主流程圖。圖3為本專利技術交互式應用程序安全測試方法第一實施例的流程圖。圖4為本專利技術交互式應用程序安全測試方法第二實施例的流程圖。圖5為本專利技術交互式應用程序安全測試方法第三實施例的流程圖。具體實施方式現在參考附圖描述本專利技術的實施例,附圖中類似的元件標號代表類似的元件。為了更好地理解本專利技術,先對其工作原理做如下說明:面向方面的編程技術使得安全測試平臺可以在程序運行時嵌入安全分析。面向對象語言提供了接口以實現面向方面的編程。例如,JVMTI(Java Virtual Machine Tool Interface)是一套由Java虛擬機提供的,為JVM相關的工具提供的本地編程接口集合。利用JVMTI,開發者可以構建一個獨立于應用程序的代理程序(Agent),用來監測和協助運行在JVM上的程序,甚至能夠替換和修改某些類的定義。有了這樣的功能,開發者就可以實現更為靈活的運行時虛擬機監控和Java類操作。基于此,本專利技術采用了深度插樁的交互式應用程序安全測試技術,采用Agent的方式獲取分析數據,然后基于這些數據分析安全漏洞。且采用該種Agent方式,在程序運行時,能夠持續地監視與查找漏洞。具體地,基于上述工作原理,本專利技術提供了一種交互式應用程序安全測試系統。如圖1所示,該系統包括:測試服務器端100,用于接收分析數據并對分析數據進行分析以得到漏洞結果;以及探針200,部署于測試服務器端100,當目標被測程序運行時,探針收集并發送分析數據至測試服務器端100。需要說明的是,測試服務器端(Server)100作為安全測試平臺的主程序,其主要具有如下功能:(1)向開發人員、測試人員或安全運維人員提供可視化的界面,顯示實時的安全信息;(2)獲取來自Agent傳輸過來的數據,并進行智能化漏洞分析及顯示;(3)采用保護規則阻止所有的攻擊,諸如SQL注入、XSS,防止0day溢出;(4)提供漏洞的解決方案;(5)對共享庫和第三方組件進行安全性檢查;(6)導出漏洞列表報表。而探針200(Agent)作為應用程序的代理組件,其主要具有如下功能:(1)代理所有用戶瀏覽器到應用程序之間的流量,并傳輸到Server;(2)獲取服務器后端源代碼,并傳輸到Server;(3)獲取來自Server端發送的指令,并進行執行。相應地,本專利技術還提供了一種交互式應用程序安全測試方法,如圖2所示,其主要包括:S201,安裝測試服務器端及部署目標被測程序;需要說明的是,測試服務器端為運行于Tomcat服務器上的一JAVA WEB程序,目標被測程序為部署于Tomcat服務器上的一JAVA站點;S202,將探針部署于測試服務器端;需要說明的是,探針為基于Java虛擬機工具接口的一代理程序;S203,運行目標測試程序并通過探針收集分析數據;具體地,分析數據包括上下文內容、數據流、控制流及目標被測程序運行時傳遞的值;S204,探針將分析數據發送至測試服務端,測試服務器端對分析數據進行分析以得到漏洞結果;S205,測本文檔來自技高網...

【技術保護點】
一種交互式應用程序安全測試方法,其特征在于,包括:安裝測試服務器端及部署目標被測程序;將探針部署于所述測試服務器端;運行所述目標測試程序并通過所述探針收集分析數據;所述探針將所述分析數據發送至所述測試服務端,所述測試服務器端對所述分析數據進行分析以得到漏洞結果。
【技術特征摘要】
1.一種交互式應用程序安全測試方法,其特征在于,包括:安裝測試服務器端及部署目標被測程序;將探針部署于所述測試服務器端;運行所述目標測試程序并通過所述探針收集分析數據;所述探針將所述分析數據發送至所述測試服務端,所述測試服務器端對所述分析數據進行分析以得到漏洞結果。2.如權利要求1所述的交互式應用程序安全測試方法,其特征在于,得到漏洞結果之后還包括:所述測試服務器端根據所述漏洞結果生成所述目標被測程序的安全報告。3.如權利要求2所述的交互式應用程序安全測試方法,其特征在于,所述測試服務器端為運行于Tomcat服務器上的一JAVA WEB程序,所述目標被測程序為部署于所述Tomcat服務器上的一JAVA站點,所述探針為基于Java虛擬機工具接口的一代理程序。4.如權利要求3所述的交互式應用程序安全測試方法,其特征在于,將探針部署于所述測試服務器端具體包括:在所述測試服務器端下載所述探針;修改所述Tomcat服務器的啟動腳本及增加javaagent參數以使所述Tomcat服務器在運行時加載所述探針。5.如權利要求1所述的交互式應...
【專利技術屬性】
技術研發人員:王頡,包悅忠,徐瑞祝,曾張帆,萬振華,
申請(專利權)人:深圳開源互聯網安全技術有限公司,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。