• / 17
  • 下載費用:30 金幣  

使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率.pdf

摘要
申請專利號:

CN201380071978.0

申請日:

2013.02.28

公開號:

CN104956372A

公開日:

2015.09.30

當前法律狀態:

撤回

有效性:

無權

法律詳情: 發明專利申請公布后的視為撤回IPC(主分類):G06F 21/50申請公布日:20150930|||專利申請權的轉移IPC(主分類):G06F 21/50登記生效日:20160919變更事項:申請人變更前權利人:惠普發展公司,有限責任合伙企業變更后權利人:慧與發展有限責任合伙企業變更事項:地址變更前權利人:美國德克薩斯州變更后權利人:美國德克薩斯州|||實質審查的生效 IPC(主分類):G06F 21/50申請日:20130228|||公開
IPC分類號: G06F21/50 主分類號: G06F21/50
申請人: 惠普發展公司,有限責任合伙企業
發明人: 基里爾·緬杰列維; 趙路; 戴維·約翰·巴布科克; 羅納德·約瑟夫·塞什曼
地址: 美國德克薩斯州
優先權:
專利代理機構: 北京德琦知識產權代理有限公司11018 代理人: 康泉; 宋志強
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201380071978.0

授權公告號:

|||||||||

法律狀態公告日:

2018.06.19|||2016.10.12|||2015.11.04|||2015.09.30

法律狀態類型:

發明專利申請公布后的視為撤回|||專利申請權、專利權的轉移|||實質審查的生效|||公開

摘要

示例實施例涉及使用運行時分析和靜態代碼分析來評估動態安全掃描。在示例實施例中,系統執行web應用程序的靜態代碼分析以識別可達代碼和/或數據輸入點,其中數據輸入點用于確定web應用程序的攻擊表面尺寸。在這個階段,系統可針對web應用程序的動態安全掃描發起運行時監控,其中運行時監控檢測在數據輸入點中的一個數據輸入點處的語句的調用。調用被記錄為包括調用參數和/或響應于調用而被執行的代碼單元的調用條目。接著,系統可使用調用條目和攻擊表面尺寸和/或使用調用條目和可達代碼的可達代碼覆蓋率來確定動態安全掃描的攻擊表面覆蓋率。

權利要求書

權利要求書
1.  一種用于使用運行時分析和靜態代碼分析來評估動態安全掃描的系統,所述系統包括:
處理器,所述處理器:
執行web應用程序的所述靜態代碼分析以識別所述web應用程序的多個數據輸入點,其中所述多個數據輸入點用于確定所述web應用程序的攻擊表面尺寸;
針對所述web應用程序的動態安全掃描發起運行時監控;
通過所述運行時監控,檢測在所述多個數據輸入點中的一個數據輸入點處的語句的調用,其中所述調用被記錄為包括調用參數和時間戳的調用條目;且
使用所述調用條目和所述攻擊表面尺寸來確定所述動態安全掃描的攻擊表面覆蓋率。

2.  如權利要求1所述的系統,其中所述web應用程序的所述靜態代碼分析還識別所述web應用程序的源代碼的可達部分,且其中所述調用條目進一步包括響應于所述語句的所述調用而被訪問的所述源代碼的所述可達部分的代碼單元,且其中所述處理器進一步:
使用所述代碼單元和所述源代碼的所述可達部分來確定所述動態安全掃描的可達代碼覆蓋率。

3.  如權利要求2所述的系統,其中所述處理器進一步:
使用所述可達代碼覆蓋率和所述攻擊表面覆蓋率來確定組合覆蓋率;且
響應于確定所述組合覆蓋率落在預先配置的閾值之下,產生建議所述動態安全掃描被重新配置以增加所述組合覆蓋率的通知。

4.  如權利要求2所述的系統,其中所述處理器進一步:
使用所述可達代碼覆蓋率和所述攻擊表面覆蓋率來確定第一組合覆蓋率;
響應于接收到所述web應用程序的更新的源代碼,使用所述更新的源代碼來確定第二組合覆蓋率;且
響應于確定所述第二組合覆蓋率小于所述第一組合覆蓋率,產生建議所述動態安全掃描基于所述更新的源代碼而被重新配置的通知。

5.  如權利要求1所述的系統,其中所述處理器進一步:
跟蹤響應于所述語句的所述調用而被訪問的所述源代碼的所述可達部分的代碼單元;且
使用所述代碼單元和所述源代碼的所述可達部分來確定所述動態安全掃描的可達代碼覆蓋率。

6.  如權利要求2所述的系統,其中所述web應用程序的所述靜態代碼分析進一步識別所述web應用程序的所述源代碼的不可達部分,且其中當確定所述可達代碼覆蓋率時,所述不可達部分被忽略。

7.  一種使用由處理器可執行的指令來編碼的非瞬態機器可讀存儲介質,所述機器可讀存儲介質包括:
執行web應用程序的靜態代碼分析以識別所述web應用程序的源代碼的可達部分的指令,其中所述源代碼的所述可達部分是從客戶端側可訪問的;
檢測針對所述web應用程序的動態安全掃描的運行時監控的指令;
通過所述運行時監控檢測在所述源代碼的所述可達部分中的語句的調用的指令,其中所述調用被記錄為調用條目,所述調用條目包括時間戳和響應于所述語句的所述調用而被訪問的所述源代碼的所述可達部分的代碼單元;以及
使用所述代碼單元和所述源代碼的所述可達部分來檢測所述動態安全掃描的可達代碼覆蓋率的指令。

8.  如權利要求7所述的機器可讀存儲介質,其中所述web應用程序的所述靜態代碼分析還識別所述web應用程序的多個數據輸入點,且其中所述調用條目進一步包括調用參數,且其中所述機器可讀存儲介質進一步包括:
使用所述多個數據輸入點來確定所述web應用程序的攻擊表面尺寸的指令;以及
使用所述調用條目和所述攻擊表面尺寸來確定所述動態安全掃描的攻擊表面覆蓋率的指令。

9.  如權利要求8所述的機器可讀存儲介質,其中所述機器可讀存儲介質進一步包括:
使用所述可達代碼覆蓋率和所述攻擊表面覆蓋率來確定組合覆蓋率的指令;以及
響應于確定所述組合覆蓋率落在預先配置的閾值之下而產生建議所述動態安全掃描被重新配置以增加所述組合覆蓋率的通知的指令。

10.  如權利要求8所述的機器可讀存儲介質,其中所述機器可讀存儲介質進一步包括:
使用所述可達代碼覆蓋率和所述攻擊表面覆蓋率來確定第一組合覆蓋率的指令;
響應于接收到所述web應用程序的更新的源代碼而使用所述更新的源代碼來確定第二組合覆蓋率的指令;以及
響應于確定所述第二組合覆蓋率小于所述第一組合覆蓋率而產生建議所述動態安全掃描基于所述更新的源代碼而被重新配置的通知的指令。

11.  如權利要求7所述的機器可讀存儲介質,其中所述web應用程序的所述靜態代碼分析進一步識別所述web應用程序的所述源代碼的不可達部分,且其中當確定所述可達代碼覆蓋率時,所述不可達部分被忽略。

12.  一種用于使用運行時分析和靜態代碼分析來評估動態安全掃描的方法,所述方法包括:
由計算設備執行web應用程序的所述靜態代碼分析以識別所述web應用程序的多個數據輸入點和所述web應用程序的源代碼的可達部分,其中所述多個數據輸入點用于確定所述web應用程序的攻擊表面尺寸;
針對所述web應用程序的動態安全掃描發起運行時監控;
通過所述運行時監控,檢測在所述多個數據輸入點中的一個數據輸入點處的語句的調用,其中所述調用被記錄為調用條目,所述調用條目包括調用參數、時間戳和響應于所述語句的所述調用而被訪問的所述源代碼的所述可達部分的代碼單元;以及
使用所述調用條目、所述攻擊表面尺寸和源代碼的所述可達部分來確定所述動態安全掃描的組合覆蓋率。

13.  如權利要求12所述的方法,進一步包括:
響應于確定所述組合覆蓋率落在預先配置的閾值之下,產生建議所述動態安全掃描被重新配置以增加所述組合覆蓋率的通知。

14.  如權利要求12所述的方法,進一步包括:
響應于接收到所述web應用程序的更新的源代碼,使用所述更新的源代碼來確定更新的組合覆蓋率;以及
響應于確定所述更新的組合覆蓋率小于所述組合覆蓋率,產生建議所述動態安全掃描基于所述更新的源代碼而被重新配置的通知。

15.  如權利要求12所述的方法,其中所述web應用程序的所述靜態代碼分析進一步識別所述web應用程序的所述源代碼的不可達部分,且其中當確定所述組合覆蓋率時,所述不可達部分被忽略。

說明書

說明書使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率
背景技術
動態安全掃描被執行來識別web應用程序的安全漏洞。例如,動態安全掃描可確定漏洞的類型和數量、漏洞的位置以及繁殖漏洞的步驟。一般,動態安全掃描作為對源代碼不具有訪問權的黑盒測試被執行。在這種情況下,動態安全掃描通過對web應用程序執行實際攻擊來識別安全漏洞。
附圖說明
下面的詳細描述參考附圖,其中:
圖1是用于使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的示例系統的方框圖;
圖2是包括用于執行使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的方面的模塊的示例服務器計算設備的方框圖;
圖3是由服務器計算設備執行的、使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的示例方法的流程圖;
圖4是由服務器計算設備執行的、使用運行時和靜態代碼分析來提供動態安全掃描的覆蓋率的迭代確定的示例方法的流程圖;
圖5是由服務器計算設備執行的、使用運行時和靜態代碼分析針對web應用程序的多個版本確定動態安全掃描的覆蓋率的示例方法的流程圖;以及
圖6A-6D是在使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的各種階段的示例源代碼的方框圖。
具體實施方式
如上面討論的,對web應用程序執行動態安全掃描以識別安全漏洞。例如,動態安全掃描可通過對web應用程序執行實際攻擊例如緩沖區溢出攻擊或結構化查詢語言(SQL)注入攻擊并記錄結果來識別安全漏洞。然而,動態安全掃描是不知道web應用程序的基礎源代碼的黑盒測試過程。相應地,一般基于掃描的速度和被識別出的漏洞的數量來確定動態安全掃描的有效性。
有效性的一般確定可能不客觀地評估動態安全掃描,因為所識別的漏洞的數量可更多地取決于web應用程序的質量而不是掃描的質量。例如,高質量web應用程序可具有在掃描中要識別的幾個安全漏洞,這通常會導致動態安全掃描被識別為差質量掃描。類似地,低質量web應用程序可具有在掃描中要識別的過多的安全漏洞,這可允許差質量掃描呈現為高度有效的,即使它只能夠識別一小部分漏洞。
本文公開的示例實施例使用運行時分析和靜態代碼分析來確定動態安全掃描的覆蓋率。例如在一些實施例中,系統執行web應用程序的靜態代碼分析以識別web應用程序的源代碼的數據輸入點,其中數據輸入點用于確定web應用程序的攻擊表面尺寸。在這個階段,系統可針對web應用程序的執行的動態安全掃描發起運行時監控。當在數據輸入點中的一個數據輸入點處的語句被調用時,運行時監控可檢測并記錄調用作為包括調用參數和時間戳的調用條目。基于調用條目和攻擊表面尺寸,可確定動態安全掃描的攻擊表面覆蓋率以評估掃描的質量。
以這種方式,本文公開的示例實施例允許動態安全掃描基于掃描覆蓋的攻擊表面的部分客觀地被評估。具體地,通過執行web應用程序的源代碼的組合運行時分析和靜態代碼分析,攻擊表面的尺寸可被確定并然后用于確定攻擊表面覆蓋率。攻擊表面覆蓋率允許用戶確定web應用程序是否實際上沒有安全漏洞以及動態安全掃描是否被適當地配置。
現在參考附圖,圖1是用于使用運行時分析和靜態代碼分析來確定動態安全掃描的覆蓋率的示例系統的方框圖。示例系統可被實現為服務器計算設備100,例如機架服務器、筆記本計算機、桌上型計算機、全合一系統、平板計算設備或適合于確定動態安全掃描的覆蓋率的任何其它電子設備。在圖1的實施例中,服務器計算設備100包括處理器110、接口115和機器可讀存儲介質120。
處理器110可以是一個或多個中央處理單元(CPU)、微處理器和/或適合于獲取和執行存儲在機器可讀存儲介質120上的指令的其它硬件設備。處理器110取出、解碼并執行指令122、124、126、128以能夠使用運行時分析和靜態代碼分析來確定動態安全掃描的覆蓋率。作為可選方案或除了獲取和執行指令以外,處理器110還可包括一個或多個電子電路,該一個或多個電子電路包括用于執行一個或多個指令122、124、126、128的功能的多個電子部件。
接口115可包括用于與客戶端設備通信的多個電子部件。例如,接口115可以是以太網接口、通用串行總線(USB)接口、IEEE 1394(火線)接口、外部串行高級技術附件(eSATA)接口或適合于與客戶端設備通信的任何其它物理連接接口。可選地,接口115可以是無線接口,例如無線局域網(WLAN)接口或近場通信(NFC)接口。 在操作中,如下面詳述,接口115可用于向客戶端設備的對應接口發送數據以及從客戶端設備的對應接口接收數據,所述數據例如web應用程序數據。
機器可讀存儲介質120可以是存儲可執行指令的任何電子、磁性、光學或其它物理存儲設備。因此,機器可讀存儲介質120可以是例如隨機存取存儲器(RAM)、電可擦除可編程只讀存儲器(EEPROM)、存儲驅動器、光盤等。如下面更詳細描述的,可使用用于使用運行時分析和靜態代碼分析來確定動態安全掃描的覆蓋率的可執行指令來對機器可讀存儲介質120編碼。
靜態代碼分析指令122可對web應用程序的源代碼執行靜態代碼分析。具體地,可對源代碼執行靜態代碼分析以識別web應用程序的數據輸入點并將源代碼的部分分類為可達的或不可達的。Web應用程序的數據輸入點的示例可包括但不限于同一資源定位符(URL)參數、超文本標記語言(HTML)參數、客戶端側腳本參數和web服務器接口。在一些情況下,可基于在源代碼中的關鍵字來識別數據輸入點,其中關鍵字根據源代碼的編程語言而改變。在其它情況下,可基于在例如描述預期參數和輸出的可擴展標記語言(SML)消息中的元數據來識別數據輸入點。可基于web應用程序的數據輸入點的總數來確定web應用程序的攻擊表面的尺寸。換句話說,web應用程序的攻擊表面可由web應用程序的數據輸入點形成。
可達代碼可包括從客戶端側可達的web應用程序的源代碼的部分。客戶端側可以指在與服務器計算設備100交互的客戶端設備上執行的任何操作。在這種情況下,如果源代碼可響應于起源于客戶端設備的客戶端側操作被調用,則web應用程序的源代碼是從客戶端側可達的。服務器側可以指在服務器計算設備100上執行的任何操作。不可達代碼可包括從客戶端側完全不可達的源代碼的部分。換句話說,不可達代碼不會響應于從客戶端側可訪問的任何數據輸入點而被調用。
Web應用程序可以是由服務器計算設備100通過網絡(例如互聯網、內聯網等)經由接口115提供到客戶端設備的應用程序或服務。例如,web應用程序可由在服務器計算設備100上執行的web服務器執行以向客戶端設備的web瀏覽器提供網頁。在另一示例中,web應用程序可以是響應于來自客戶端設備的請求通過網絡提供功能的web服務。
運行時監控指令124可在動態安全掃描期間發起正執行的web應用程序的運行時監控。具體地,運行時監控指令124可配置有用于發起動態安全掃描的監控的操作參數。例如,操作參數可包括運行時監控的時間和持續時間、與動態安全掃描關聯的過程、互聯網協議(IP)地址(動態安全掃描將起源于該地址)等。在一些情況下,運行時監控可監控由如上面討論的靜態代碼分析指令122識別的數據輸入點。
語句調用檢測指令126可檢測并記錄從動態安全掃描接收的web應用程序的調用。具體地,語句調用檢測指令126可記錄由服務器計算設備100響應于起源于動態安全掃描的語句的調用而為web應用程序接收的調用參數和對應的值。例如,當在數據輸入點處為web應用程序接收調用參數時,可創建包括調用參數、對應的值和時間戳的調用日志條目。源代碼的語句可與編程語言的最小功能元素對應(例如一行源代碼)。
攻擊表面覆蓋率確定指令128可確定完成的動態安全掃描的攻擊表面覆蓋率。最初,攻擊表面覆蓋率確定指令128可使用調用日志條目來確定哪些數據輸入點在動態安全掃描期間被使用。在這個階段,攻擊表面覆蓋率可被確定為在動態安全掃描期間使用的數據輸入點的比例。例如,如果使用四分之三的數據輸入點,則動態安全掃描將具有75%的攻擊表面覆蓋率。
圖2是包括用于執行使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的方面的模塊的示例服務器計算設備200的方框圖。如同圖1的服務器計算設備100,服務器計算設備200可以是適合于評估動態安全掃描的任何電子設備。
Web服務器模塊210可以是配置成向客戶端設備提供web應用程序的web服務器軟件應用程序。Web應用程序可作為網頁或網絡上的web服務而被提供。Web服務器模塊210可基于源代碼(例如HTML文件、腳本文件等)或從源代碼產生的對象代碼(例如所鏈接的庫、共享對象、可執行文件等)來提供web應用程序。例如,web服務器模塊210可基于HTML文件來提供網頁,HTML文件可包括由web服務器模塊210執行來為客戶端設備產生動態內容的嵌入式腳本。在另一示例中,web服務器模塊210可響應于從客戶端設備接收到請求而使接口暴露于觸發所鏈接的庫中的函數的執行的web服務。
如在圖2中示出和下面更詳細地描述的,計算設備200還可包括多個模塊220-246。每個模塊可包括在機器可讀存儲介質上編碼并由計算設備200的處理器可執行的一系列指令。此外或作為可選方案,每個模塊220-246可包括一個或多個硬件設備,一個或多個硬件設備包括用于實現下面描述的功能的電子電路。在一些情況下,模塊220-246可被實現為在多個計算設備上的分布式系統。
靜態代碼分析模塊220可對由web服務器模塊210提供的web應用程序的源代碼執行靜態代碼分析。雖然下面詳細描述了靜態代碼分析模塊220的部件,上面關于圖1的靜態代碼分析指令122提供了關于靜態代碼分析模塊220的示例實現的額外細節。
源代碼可以是人可讀計算機指令的集合。源代碼文件的示例包括但不限于HTML文件、配置文件、動態腳本文件和各種編程語言文件。數據輸入識別模塊222可分析 web應用程序的源代碼以識別數據輸入點。數據輸入點可接著用于確定web應用程序的攻擊表面的尺寸。在一些情況下,數據輸入點的不同組合可被考慮為在web應用程序的攻擊表面中的不同輸入。例如,不同的URL參數可組合以產生在攻擊表面中的不同輸入。
代碼可訪問性模塊224可將源代碼的部分分類為從客戶端側可達或不可達。例如,可執行使用由數據輸入識別模塊222識別的數據輸入點的數據流分析,以識別源代碼的可達部分。在這個示例中,數據流分析可確定(1)被分配到變量的值起源于哪里;(2)變量的可能值;和/或(3)表達式、變量或參數可流到的位置。未被識別為流到在數據輸入點處接收的調用參數或從調用參數流動的代碼的部分可被識別為不可達的。在一些情況下,置信值可被分配到被識別為從客戶端側可達的代碼的每個部分,其中置信值對應于該部分是實際上可達的可能性。在這種情況下,置信閾值可配置成使得當確定可達代碼覆蓋率時具有落在閾值之下的置信值的部分被忽略。
動態安全掃描模塊230可執行正執行的web應用程序的動態安全掃描。具體地,動態安全掃描模塊230可對正執行的web應用程序執行實際攻擊以識別安全漏洞。動態安全掃描模塊230可配置成基于web應用程序的源代碼、由web應用程序的測試者確定的使用情況、和/或web應用程序和/或web服務器模塊210的配置來執行攻擊的例程。由動態安全掃描識別的安全漏洞的示例包括但不限于SQL注入、緩沖區溢出利用、跨站腳本和服務拒絕。
運行時分析模塊240可使用由靜態代碼分析模塊220執行的靜態代碼分析的結果來執行動態安全掃描的運行時監控。雖然下面詳細描述了運行時分析模塊240的部件,在上面關于圖1的運行時監控指令124、語句調用檢測指令126和攻擊表面覆蓋率確定指令128提供關于運行時分析模塊240的示例實現的額外細節。
安全掃描監控模塊242可執行動態安全掃描的運行時監控。具體地,安全掃描監控模塊242可針對web應用程序的客戶端側調用監控動態安全掃描。響應于檢測到調用,安全掃描監控模塊242可產生調用日志條目,該調用日志條目包括所訪問的數據輸入點、針對調用從動態安全掃描傳遞的任何調用參數和值、以及時間戳。
調用日志處理模塊244可處理由安全掃描模塊產生的調用日志。例如,調用日志條目可用于確定響應于起源于動態安全掃描的調用而被訪問的可達代碼的代碼單元(例如類、函數、基本塊、語句或源代碼的路徑)。在另一示例中,調用日志條目可用于確定在動態安全掃描期間使用的數據輸入點。在一些情況下,安全掃描監控模塊242可使用調用日志處理模塊244來跟蹤當動態安全掃描正被執行時實時地訪問的可 達代碼的代碼單元。可選地,在動態安全掃描完成之后,調用日志處理模塊244可處理調用日志條目。
覆蓋率確定模塊246可基于由靜態代碼分析模塊220執行的靜態代碼分析的結果和由調用日志處理模塊244處理的調用日志條目來確定web應用程序的動態安全掃描的覆蓋率。由覆蓋率確定模塊246確定的覆蓋率可包括可達代碼覆蓋率、攻擊表面覆蓋率和組合覆蓋率。可達代碼覆蓋率可被確定為在動態安全掃描期間響應于客戶端側調用而被訪問的可達代碼的比例。例如,如果一半可達代碼被訪問,則動態安全掃描將具有50%的可達代碼覆蓋率。此外,因為由靜態代碼分析模塊220分類的代碼的不可達部分被忽略,可達代碼覆蓋率更準確地反映動態安全掃描的擴展性。攻擊表面覆蓋率可被確定為在動態安全掃描期間使用的數據輸入點的比例。
組合覆蓋率可以是動態安全掃描的可達代碼覆蓋率和攻擊表面覆蓋率的組合。例如,組合覆蓋率可以是可達代碼覆蓋率和攻擊表面覆蓋率的總和。在另一示例中,組合覆蓋率可以是可達代碼覆蓋率和攻擊表面覆蓋率的加權平均。覆蓋率確定模塊246可向用戶提供覆蓋率用于評估動態安全掃描的有效性。例如,如果低組合覆蓋率被提供給用戶,則用戶可重新配置動態安全掃描以增加下一掃描的組合覆蓋率。
圖3是由服務器計算設備100執行的、使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的示例方法300的流程圖。雖然下面參考圖1的服務器計算設備100描述方法300的執行,可使用用于執行方法300的其它適當的設備,例如圖2的服務器計算設備200。可以以存儲在機器可讀存儲介質例如存儲介質120上的可執行指令的形式和/或電子電路的形式實現方法300。
方法300可在塊305開始并繼續到塊310,其中服務器計算設備100可執行靜態代碼分析以識別web應用程序的數據輸入點。具體地,可對web應用程序的源代碼執行靜態代碼分析以基于在源代碼和/或關聯配置文件中的關鍵字來識別數據輸入點。接著,在塊315中,針對動態安全掃描發起運行時監控。例如,服務器計算設備100可響應于檢測到動態安全掃描的執行而發起運行時監控。在另一示例中,運行時監控可在執行動態安全掃描之前由用戶手動地發起。運行時監控通過數據輸入點監控針對web應用程序的調用的動態安全掃描。
在塊320中,服務器計算設備100可通過動態安全掃描來檢測并記錄web應用程序的源代碼語句的調用。例如,調用可在塊310中識別出的數據輸入點處被檢測并被記錄為調用日志條目,該調用日志條目包括數據輸入點、任何調用參數及其值、以及時間戳。接著在塊325中,可使用調用日志條目來確定動態安全掃描的攻擊表面覆蓋 率。例如,攻擊表面覆蓋率可被確定為在動態安全掃描期間使用的數據輸入點的比例。方法300可隨后繼續進行到塊330,其中方法300可停止。
圖4是由服務器計算設備200執行的、使用運行時和靜態代碼分析來提供動態安全掃描的覆蓋率的迭代確定的示例方法400的流程圖。雖然下面參考圖2的服務器計算設備200描述方法400的執行,可使用用于執行方法400的其它適當的設備,例如圖1的服務器計算設備100。可以以存儲在機器可讀存儲介質上的可執行指令的形式和/或電子電路的形式實現方法400。
方法400可在塊405開始并繼續到塊410,其中服務器計算設備200可對web應用程序的源代碼執行靜態分析以識別數據輸入點。然后,在塊415中,靜態分析可繼續將源代碼的部分分類為從客戶端側可達或不可達。
在塊420中,針對web應用程序的執行發起動態安全掃描。例如,web應用程序可由web服務器提供,且動態安全掃描可由訪問web應用程序的客戶端設備執行。接著,在塊425中,發起動態安全掃描的運行時監控。運行時監控可監控在塊410中所識別的數據輸入點以在塊430中從動態安全掃描檢測web應用程序的源代碼語句的調用。
如果調用被檢測到,則服務器計算設備200在塊435中針對調用創建調用日志條目,該調用日志條目包括所使用的數據輸入點、任何調用參數及其值、以及時間戳。此外,調用日志條目也可包括響應于調用而被執行的代碼單元(例如類、函數、基本塊、語句或源代碼的路徑)。接著,在塊440中,做出關于動態安全掃描的執行是否繼續的確定。如果動態安全掃描的執行繼續,則方法400返回到塊430。在塊430中,如果未檢測到客戶端側調用,則方法400繼續進行到塊440。
如果動態安全掃描的執行不繼續,則方法繼續進行到塊445,其中使用對應的調用日志條目識別出在每個調用期間被訪問的可達源代碼的代碼單元(例如類、函數、基本塊、語句或源代碼的路徑)。接著,在塊450中,使用代碼單元來確定動態安全掃描的可達代碼覆蓋率作為在動態安全掃描期間訪問的可達代碼的比例。當做出這個確定時,不可達代碼被忽略,這允許代碼覆蓋率的更準確評估。
在塊455中,攻擊表面覆蓋率被確定為在動態安全掃描期間使用的數據輸入點的比例。攻擊表面覆蓋率也可在例如可包括在相同的URL查詢串中的URL參數的情況下解釋數據輸入點的不同組合。方法400可隨后繼續進行到塊460,其中方法400可停止。
圖5是由服務器計算設備200執行的、使用運行時和靜態代碼分析針對web應用程序的多個版本確定動態安全掃描的覆蓋率的示例方法500的流程圖。雖然下面參考 圖2的服務器計算設備200描述方法500的執行,可使用用于執行方法500的其它適當的設備,例如圖1的服務器計算設備100。可以以存儲在機器可讀存儲介質上的可執行指令的形式和/或電子電路的形式實現方法500。
方法500可在塊505中開始并繼續進行到塊510,其中服務器計算設備200可確定對web應用程序的初始版本執行的動態安全掃描的可達代碼覆蓋率和攻擊表面覆蓋率。可如上面關于圖4描述的確定覆蓋率。接著,在塊515中,獲得針對web應用程序的更新版本的源代碼。web應用程序的更新版本可包括初始版本中不包括的增強和缺陷修復。
在塊520中,可針對關于web應用程序的更新版本執行的新動態安全掃描確定可達代碼覆蓋率和攻擊表面覆蓋率。可根據在塊515中獲得的更新的源代碼來編譯web應用程序的更新版本。接著,在塊525中,使用可達代碼覆蓋率和攻擊表面覆蓋率來確定新動態安全掃描的組合覆蓋率。例如,組合覆蓋率可以是可達代碼覆蓋率和攻擊表面覆蓋率的簡單總和、加權平均等。
在塊530中,確定組合覆蓋率是否低于預先配置的閾值。例如,預先配置的閾值可由用戶基于動態安全掃描的預期質量來配置(即較高的預先配置的閾值對應于較高質量動態安全掃描)。在另一示例中,可基于web應用程序的以前版本的組合覆蓋率或動態安全掃描的以前配置來確定預先配置的閾值。在這個示例中,預先配置的閾值可確保動態安全掃描的質量不會隨著web應用程序的更新版本或動態安全掃描被創建而降低。如果組合覆蓋率低于預先配置的閾值,則在塊535中將動態安全掃描落在閾值之下的通知提供給用戶。
響應于用戶修改動態安全掃描的配置,服務器計算設備200可在塊540中確定針對web應用程序的更新版本的修改的動態安全掃描的組合覆蓋率。用戶可通過修改在掃描期間使用的數據輸入點、改變用于通過數據輸入點傳遞的調用參數的值的范圍等來修改動態安全掃描。方法500可接著返回到塊530,其中確定所修改的動態安全掃描的組合覆蓋率是否超過預先配置的閾值。
如果組合覆蓋率不低于預先配置的閾值,則在塊545中確定是否存在web應用程序的進一步更新的版本。如果存在web應用程序的進一步更新的版本,則方法500返回到塊520并如上面描述的繼續進行。如果不存在web應用程序的進一步更新的版本,則方法500可繼續進行到塊550,其中方法500可停止。
圖6A-6D是在使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的各種階段的示例源代碼的方框圖。圖6A描繪web應用程序的源代碼600,其中源代碼600包括服務器側代碼605和客戶端側代碼610。服務器側代碼605可包括在提供web應 用程序的web服務器上執行的代碼。客戶端側代碼610可包括由web服務器傳輸到客戶端設備的代碼,客戶端設備然后執行客戶端側代碼。
圖6B描繪包括代碼模塊A 615、代碼模塊B 620和代碼模塊C 625的服務器側代碼605。每個代碼模塊可與函數、腳本、動態網頁等對應。在這個示例中,代碼模塊C 625與代碼模塊B 620交互(例如調用函數、訪問參數等)。服務器側代碼605還包括數據輸入點630、635、640。數據輸入點635、640給客戶端設備提供對代碼模塊C 625的訪問。數據輸入點630提供對在服務器側代碼605中的不同代碼模塊(未示出)的訪問。
圖6C描繪與服務器側代碼605交互的靜態代碼分析模塊645。靜態代碼分析模塊645可執行靜態代碼分析以將每個代碼模塊(例如代碼模塊A 615、代碼模塊B 620和代碼模塊C 625)分類為從客戶端側可達或不可達。在這個示例中,代碼模塊A 615被分類為不可達的,并且代碼模塊B 620和代碼模塊C 625被分類為可達的。此外,靜態代碼分析可基于服務器側代碼605來識別數據輸入點630、635、640。
圖6D描繪與服務器側代碼605交互的運行時分析模塊650和動態安全工具655。運行時分析模塊650可執行運行時分析以檢測在服務器側代碼605中的語句的調用。具體地,運行時分析模塊650可監控數據輸入點630、635、640以檢測起源于動態安全工具655的調用。
動態安全工具655可執行服務器側代碼605的動態安全掃描。在這個示例中,動態安全工具655使用兩個數據輸入點635和640來調用在服務器側代碼605中的語句。相應地,攻擊表面覆蓋率可被確定為66%,因為三個數據輸入點630、635和640可供使用。此外,如果來自動態安全工具655的調用觸發在代碼模塊C 625中的執行,則可達代碼覆蓋率可被確定為50%,因為兩個模塊(代碼模塊B 620和代碼模塊C 625)是從客戶端側可達的。
前述公開描述了使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率的多個示例實施例。以這種方式,在本文公開的實施例能夠通過最初執行靜態代碼分析以確定覆蓋率的潛在范圍并接著鑒于潛在范圍執行運行時分析以評估掃描的覆蓋率來執行動態安全掃描的更準確的評估。

關 鍵 詞:
使用 運行 靜態 代碼 分析 確定 動態 安全 掃描 覆蓋率
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:使用運行時和靜態代碼分析來確定動態安全掃描的覆蓋率.pdf
鏈接地址:http://www.rgyfuv.icu/p-6381497.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图