通過使用web流量信息動態掃描web應用的制作方法
【專利摘要】從至少一個日志文件采集日志文件數據。可以根據采集的日志文件數據生成對練習web應用以執行web應用的安全分析的至少一個HTTP請求。可以向web應用傳達HTTP請求。可以接收對HTTP請求的至少一個HTTP響應。可以分析HTTP響應以執行web應用的驗證。可以輸出驗證的結果。
【專利說明】通過使用WEB流量信息動態掃描WEB應用
【技術領域】
[0001] 在本說明書內公開的一個或者多個實施例涉及Web安全掃描器。
【背景技術】
[0002] Web應用安全掃描器是自動測試web應用的安全狀況的軟件工具。這些掃描器嘗 試對在web應用內的安全問題、比如結構化查詢語言(SQL)注入、跨站點腳本編寫、命令注 入和其它安全弱點進行定位。為了使用這樣的掃描器,用戶通常配置掃描的范圍和限制,并 且提供登錄信息。用戶然后可以人工或者自動爬取web應用以允許掃描器采集關于web應 用的結構的信息、與web應用關聯的統一資源定位符(URL)、cookie和目錄。爬取的目的是 從web應用采集資源以便對這些資源中的每個資源的弱點檢測。然后操縱并且向web應用 提交在爬取web應用期間獲得的信息以對web應用執行測試,并且對從web應用接收的響 應執行驗證。
[0003] 因此,在本領域中需要解決前述問題。
【發明內容】
[0004] 在本說明書內公開的一個或者多個示例涉及動態掃描web應用。一個實施例可以 包括從至少一個日志文件采集日志文件數據。可以根據采集的日志文件數據生成對練習 web應用以執行web應用的安全分析的至少一個超文本傳送協議(HTTP)請求。可以向web 應用傳達HTTP請求。可以接收對HTTP請求的至少一個HTTP響應。可以分析HTTP響應以 執行web應用的驗證。可以輸出驗證的結果。
[0005] 從第一方面來看,本發明提供一種用于動態掃描web應用的方法,該方法包括:從 至少一個日志文件采集日志文件數據;根據采集的日志文件數據生成對練習 web應用以執 行web應用的安全分析的至少一個HTTP請求;向web應用傳達HTTP請求;接收對HTTP請 求的至少一個HTTP響應;分析HTTP響應以執行web應用的驗證;以及輸出驗證的結果。
[0006] 從又一方面來看,本發明提供一種動態掃描web應用的系統,該系統包括:計算機 可讀存儲介質;被配置為發起可執行操作的處理器;可操作用于從至少一個日志文件采集 日志文件數據的采集裝置;可操作用于根據采集的日志文件數據生成對練習 web應用以執 行web應用的安全分析的至少一個HTTP請求的生成裝置;可操作用于向web應用傳達HTTP 請求的傳達裝置;可操作用于接收對HTTP請求的至少一個HTTP響應的接收裝置;可操作 用于分析HTTP響應以執行web應用的驗證的分析裝置;以及可操作用于輸出驗證的結果的 輸出裝置。
[0007] 從又一方面來看,本發明提供一種動態掃描web應用的系統,該系統包括:計算機 可讀存儲介質;以及被配置為發起可執行操作的處理器,可執行操作包括:從至少一個日 志文件采集日志文件數據;根據采集的日志文件數據生成對練習 web應用以執行web應用 的安全分析的至少一個HTTP請求;向web應用傳達HTTP請求;接收對HTTP請求的至少一 個HTTP響應;分析HTTP響應以執行web應用的驗證;并且輸出驗證的結果。
[0008] 從又一方面來看,本發明提供一種用于動態掃描web應用的計算機程序產品,該 計算機程序產品包括能由處理電路讀取并且存儲指令的計算機可讀存儲介質,指令用于由 處理電路執行以用于執行方法,該方法用于執行本發明的步驟。
[0009] 從又一方面來看,本發明提供一種在計算機可讀介質上存儲的并且能向數字計算 機的內部存儲器中加載的計算機程序,該計算機程序包括當所述程序在計算機上被運行時 用于執行本發明的步驟的軟件代碼部分。
[0010] 另一實施例可以包括一種動態掃描web應用的系統。該系統可以包括計算機可讀 存儲介質和處理器。處理器可以被配置為發起可執行操作以執行在本說明內公開的各種過 程和/或功能。
[0011] 另一實施例可以包括一種用于動態掃描web應用的計算機程序產品。該計算機程 序產品可以包括具有隨其體現的計算機可讀程序代碼的計算機可讀存儲介質,該計算機可 讀程序代碼被配置為執行在說明書內公開的各種操作和/或功能。
【專利附圖】
【附圖說明】
[0012] 現在將參照如以下各圖中所示優選實施例僅通過示例描述本發明:
[0013] 圖1是圖示根據本發明的一個優選實施例的用于動態掃描web應用的系統的框 圖;
[0014] 圖2是圖示根據本發明的一個優選實施例的動態掃描web應用的方法的流程圖; 并且
[0015] 圖3是圖示根據本發明的一個優選實施例的安全客戶端的框圖。
【具體實施方式】
[0016] 所屬【技術領域】的技術人員知道,本發明可以實現為系統、方法或計算機程序產品。 因此,本發明的各個方面可以具體實現為以下形式,即:完全的硬件實施方式、完全的軟件 實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以 統稱為"電路"、"模塊"或"系統"。此外,在一些實施例中,本發明的各個方面還可以實現為 在任何一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含 計算機可用的程序代碼。
[0017] 可以采用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算 機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限 于一電、磁、光、電磁、紅外線、或半導體的系統、裝置、器件或者任意以上的組合。計算機 可讀存儲介質的更具體的示例(非窮舉的列表)包括:具有一個或多個導線的電連接、便 攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器 (EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者 上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的 有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0018] 計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號, 其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括一但 不限于一電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是 計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者 傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0019] 可以以一種或多種程序設計語言的任意組合來編寫用于執行本發明操作的計算 機程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++ 等,還包括常規的過程式程序設計語言一諸如"C"語言或類似的程序設計語言。程序代碼可 以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、 部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。 在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡--包括局域網(LAN) 或廣域網(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務 提供商來通過因特網連接)。Java以及所有基于Java的商標和標識為Oracle和/或其附 屬機構的商標或注冊商標。
[0020] 下面將參照根據本發明示例實施例的方法、裝置(系統)和計算機程序產品的流 程圖和/或框圖描述本發明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或 框圖中各方框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通 用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這 些計算機程序指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現 流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。
[0021] 也可以把這些計算機程序指令存儲在計算機可讀介質中,這些指令使得計算機、 其它可編程數據處理裝置、或其他設備以特定方式工作,從而,存儲在計算機可讀介質中的 指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的指令 的制造品(article of manufacture) 〇
[0022] 也可以把計算機程序指令加載到計算機、其它可編程數據處理裝置、或其它設備 上,使得在計算機、其它可編程數據處理裝置或其它設備上執行一系列操作步驟,以產生計 算機實現的過程,從而使得在計算機或其它可編程裝置上執行的指令提供實現流程圖和/ 或框圖中的一個或多個方框中規定的功能/動作的過程。
[0023] 本實施例涉及動態掃描web應用。更具體而言,可以訪問來自通過在先使用和/ 或開發文本應用而生成的信息日志的數據。這一信息可以由web應用安全掃描器訪問以采 集關于web應用的結構的信息。取代爬取web應用或者除了爬取web應用之外,web應用安 全掃描器可以使用訪問的信息以使用從與web應用的先前現實交互中生成的已知信息來 練習(exercise) web應用。因此,可以基于這些先前現實交互來測試web應用的安全。這 些先前交互可以指示如果僅實施web應用的爬取則原本可能遺漏的境況。例如使用傳統爬 取功能可能未到達web應用的基于用戶交互的某些領域,并且使用先前已知的安全測試解 決方案可能遺漏這樣的領域。然而本發明經由來自信息日志的采集的信息可以標識web應 用的這樣的領域,并且在安全測試期間訪問這樣的領域。因此,通過使用信息日志,web應 用安全掃描器可以標識web應用中的原本不會察覺的安全弱點、由此增強web應用安全掃 描器執行的安全分析。
[0024] 圖1是圖不根據本發明的一個優選實施例的用于動態掃描web應用的系統100的 框圖。該系統可以包括被配置為通信地鏈接一個或者多個系統、比如web服務器120、一個 或者多個應用客戶端130和/或安全客戶端160的通信網絡110。通信網絡110可以是任 何類型的網絡、比如先前描述的網絡中的任何網絡。
[0025] 系統100可以包括web服務器120。Web服務器120可以是包括至少一個處理器 的任何處理系統。Web服務器120還可以包括如這里將描述的存儲器單元、比如本地存儲 器和/或一個或者多個體存儲設備。Web服務器120可以被配置為主控或者執行web應用 122。web應用122可以是可經由通信網絡110訪問的應用。Web服務器120也可以被配置 為在一個或者多個日志文件124中存儲與對web應用122的客戶端訪問有關的信息和/或 與對這樣的客戶端訪問的響應有關的信息。
[0026] 系統100也可以包括一個或者多個應用客戶端130。應用客戶端130可以是包括 至少一個處理器的任何處理系統。應用客戶端130還可以包括如這里將描述的存儲器單 元、比如本地存儲器和/或一個或者多個體存儲設備。應用客戶端130可以被配置為執行 客戶端應用132的一個或者多個實例。客戶端應用132可以是如下應用,該應用被配置為 經由通信網絡110訪問web應用122以便取回web應用122提供的信息和/或向web應用 122提供信息。例如在開發web應用122期間,客戶端應用132可以按照測試web應用122 的功能的web應用開發員的要求或者按照web應用122的任何其他用戶的要求訪問web應 用122。在本發明的一個優選實施例中,客戶端應用132可以是web瀏覽器,但是本發明在 此方面不受限制。在示例中,客戶端應用132可以是適合用于經由通信網絡110與web應 用122交換信息的任何其它應用。
[0027] 應用客戶端130也可以被配置為在一個或者多個日志文件134中存儲與客戶端應 用132對web應用122的訪問有關的信息。例如在本發明的一個優選實施例中,應用客戶端 130可以在日志文件134中存儲從客戶端應用132向web應用122傳達的HTTP請求136有 關的信息和/或響應于HTTP請求136從web應用122向客戶端應用132傳達的HTTP響應 138。在其它實施例中,這樣的信息可以被存儲于web服務器120維護的日志文件124或者 這里將描述的其它日志文件中。HTTP請求136可以包括從客戶端應用130向web應用122 傳達的初始HTTP請求以及響應于HTTP響應138傳達的postHTTP請求。相似地,HTTP響 應138可以包括從web應用122向客戶端應用130傳達的初始HTTP響應以及響應于post HTTP請求傳達的post HTTP響應。
[0028] HTTP請求136和HTTP響應138可以統稱為通信流量。通信流量可以包括統一資 源定位符(URL)、異步JavaScript和XML (AJAX)請求以及對應響應、向web應用的領域的請 求、HTTP動詞、參數、數據、表單值、cookie、post請求、查詢和/或正文參數、用戶標識符、 口令等。可以動態生成(例如基于用戶與客戶端應用132的交互)、人工生成(例如基于用 戶輸入生成)、自動或者人工選擇等URL。如這里所用,用戶是人。
[0029] 在本發明的一個優選實施例中,可以經由通信網絡110通信地鏈接web服務器120 和應用客戶端130。在另一實施例中,web服務器120和特定應用客戶端130可以是相同機 器。在其中web服務器120不是與應用客戶端130中的一個或者多個應用客戶端相同的機 器的一個實施例中,可以提供用于通信地鏈接web服務器120和應用客戶端130的網絡基 礎設施。例如可以提供用于將web服務器120鏈接到通信網絡110的服務器側網絡基礎設 施140,并且可以提供用于將應用客戶端130中的一個或者多個應用客戶端通信地鏈接到 通信網絡110的客戶端側基礎設施150。
[0030] 網絡構架140、150可以包括但不限于網絡適配器、無線網絡適配器、接入點、路由 器、交換機、防火墻、網關、代理設備或者服務器、反代理設備或者服務器等。就這一點而言, 網絡基礎設施140、150可以是通信網絡110的節點。可以在web服務器120與應用客戶端 130之間共享網絡基礎設施140、150的部件。例如如果web服務器120和應用客戶端130 在相同子網上,則它們各自可以具有或者可以鏈接到相應網絡適配器、但是共享公共路由 器、交換機、防火墻、網關等。就這一點而言,服務器側網絡基礎設施140和客戶端側基礎設 施150的部件可以是web服務器120和應用客戶端130二者公共的,但是無需是這樣的情 況。
[0031] 服務器側網絡基礎設施140和/或客戶端側基礎設施150也可以被配置為在一個 或者多個日志文件134中存儲與客戶端應用132對web應用122的訪問有關的信息和/或 與對這樣的訪問的響應有關的信息。例如服務器側網絡基礎設施140可以向一個或者多個 日志文件144存儲這樣的信息,并且客戶端側網絡基礎設施150可以向一個或者多個日志 文件154存儲這樣的信息。由于可以提供多個應用客戶端130,所以可以在系統100的一個 或者多個部件之中分布日志文件134、154。
[0032] 可以在日志文件124、134、144和/或154中存儲與在客戶端應用132的實例與 web應用122之間的交互有關的各種類型的信息。這樣的信息可以包括但不限于嗅探器日 志數據(例如Ethereal和/或Wireshark日志數據)、入侵保護系統(IDS)數據和/或入 侵保護系統(IPS)數據、防火墻日志數據、web應用防火墻日志數據、HTTP代理日志數據、 HTTP流量日志數據等。另外,信息可以包括URL、AJAX請求和/或響應、HTTP動詞、參數、數 據、表單值、cookie、post請求、查詢和/或正文參數、用戶標識符、密碼或者可以經由HTTP 傳達的任何其它信息。日志文件124、134、144和/或154可以實施任何適當數據結構。這 樣的結構的示例包括但不限于萬維網聯盟(W3C)日志文件、可擴展標記語言(XML)文檔、逗 號分離值(CSV)、HTTP檔案文件(HAR文件)等。
[0033] 系統100也可以包括安全客戶端160。在本發明的一個優選實施例中,安全客戶端 160可以是與應用客戶端130不同的機器。在另一實施例中,安全客戶端160可以是與應用 客戶端130相同的機器。在其中安全客戶端160是與應用客戶端130不同的實施例中,安 全客戶端160可以是包括至少一個處理器的任何處理系統。在這樣的實施例中,安全客戶 端160還可以包括如這里將描述的存儲器單元、比如本地存儲器和/或一個或者多個體存 儲設備。
[0034] 安全客戶端160可以包括安全掃描器162。安全掃描器162可以是如下應用,該應 用被配置為經由通信網絡110訪問web應用122以便取回web應用122提供的信息,和/ 或向web應用122提供信息。更具體而言,安全掃描器162可以與web應用122自動交互 以分析web應用122以便確定可能在web應用122中存在的安全弱點。在與web應用122 交互時,安全掃描器162可以訪問采集的日志文件數據164。采集的日志文件數據164可以 是從日志文件124、134、144和/或154采集的數據匯集、采集的日志文件數據164可以包 括與124、134、144和/或154對應的數據和/或與124、134、144和/或154對應的數據。
[0035] 在本發明的一個優選實施例中,安全掃描器162可以取回日志文件124、134、144 和/或154并且采集在日志文件124、134、144和/或154中包含的數據并且在適當數據存 儲設備中本地或者遠程存儲這樣的數據而在需要時訪問這樣的信息以分析web應用122。 在另一實施例中,安全掃描器162可以在需要時取回日志文件124、134、144和/或154并 且采集在日志文件124、134、144和/或154中包含的數據。在更多另一實施例中,用戶可 以采集在日志文件124、134、144和/或154中包含的數據,并且在適當數據存儲設備中存 儲這樣的數據,安全掃描器162可以從該數據存儲設備訪問這樣的信息。在本領域中已知 的導出和導入操作可以用來采集數據,但是本發明在此方面不受限制。
[0036] 可以用任何適當方式標識從日志文件124、134、144和/或154采集的數據用于采 集。例如可以在日志文件124、134、144和/或154中搜尋與web應用122關聯的特定URL、 可以應用數據模式匹配以搜索日志文件124、134、144和/或154以標識與web應用122關 聯的特定數據模式或者參數名等。另外,可以向一個或者多個XML文檔、HAR文件或者任何 其它適當數據文件中錄入來自日志文件124、134、144和/或154的數據以有助于安全掃描 器162掃描數據以標識相關信息。
[0037] 為了分析web應用122,安全掃描器162可以基于采集的日志文件數據164創建 HTTP請求166并且接收對HTTP請求166的HTTP響應168。因而,安全掃描器162可以使 用在web應用與客戶端應用132中的一個或者多個客戶端應用之間先前交換的信息來對 web應用122執行安全分析。這樣的信息可以例如是在開發web應用122期間交換的信息、 比如用戶錄入的實際表單值、從用戶與web應用122的實際交互(經由客戶端應用132)中 創建的動態生成的URL、作為用戶交互的結果而恰當提交的并且包括實際參數值的AJAX請 求。因此,安全掃描器162可以使用已知與web應用相關的信息來練習 web應用122、由此 保證在這樣的測試期間使用的信息與web應用122高度地相關。
[0038] 在示例中,安全掃描器162可以處理采集的日志文件數據164以提煉與安全測試 有關的信息。例如安全掃描器162可以標識在采集的日志文件數據164中包含的HTTP請求 136并且生成對應HTTP請求166。安全掃描器162可以在HTTP請求166中包括URL、HTTP 動詞、AJAX請求和/或響應、參數、數據、表單值、cookie、post請求、查詢和/或正文參數、 用戶標識符、密碼或者可以經由HTTP傳達的任何其它信息。就這一點而言,安全掃描器162 可以包括被配置為從采集的日志文件數據164解析ASCII文本并且提取相關HTTP信息的 HTTP消息解析器。HTTP消息解析器也可以匹配來自先前HTTP響應168的信息,這造成生 成后續HTTP請求166 (即有狀態的解析)。可以實施有狀態的解析以例如通過標記HTTP請 求166的某個參數為源于表單或者超鏈接的參數來利用關于HTTP參數類型的信息。在一 些情況下,cookie可以到期或者可以僅與原有HTTP請求136關聯。安全掃描器162可以 刷新從采集的日志文件數據164使用的cookie以關聯這樣的cookie與HTTP請求166并 且保證cookie有效用于與HTTP請求166 -起使用。
[0039] 采集的日志文件數據164可以包含冗余信息。在這樣的情況下,安全掃描器162 可以過濾在采集的日志文件數據164中包含的信息以例如去除與HTTP請求136和HTTP響 應138對應的冗余信息。另外,在生成HTTP請求166時,安全掃描器162可以將來自采集 的日志文件數據164的數據或者數據的至少一部分變換成web應用122可識別的一個或者 多個數據結構。
[0040] 在本發明的一個優選實施例中,HTTP請求136中的各種HTTP請求可能在它們訪 問web應用提供的相同網頁并且向相同表單中錄入數據這一點上是冗余的。雖然向相同表 單中錄入的數據可以不同,但是可以過濾HTTP請求136以排除使另一 HTTP請求136已經 解決的向表單中錄入數據的過程重復的HTTP請求136,但是無需是這樣的情況。
[0041] 另外,在生成HTTP請求166時,安全掃描器162可能重復一個或者多個對應HTTP 請求136錄入的數據和/或錄入與對應HTTP請求136錄入的數據不同的數據。例如安全 掃描器162可以用與在對應HTTP請求136中包含的表單數據不同的表單數據生成HTTP請 求166、但是被配置為具體對于在web應用122中的安全弱點進行測試。在示例中,HTTP請 求166標識的URL和表單參數名可以與一個或者多個HTTP請求136標識的URL和表單參數 名相同,但是在HTTP請求166中提交的與相同表單參數名對應的參數可以不同。例如可以 在HTTP請求166中提交一個或者多個危險凈荷(hazardous payloads)以對于可以在web 應用122中存在的安全弱點進行測試。因而,可以經由HTTP請求166向標識的URL提交一 個或者多個危險凈荷。危險凈荷可以例如是被配置為執行SQL注入、跨站點腳本編寫、命令 注入的數據或者被配置為對于安全弱點測試web應用122的任何其它數據。
[0042] 在一些實例中,HTTP響應168可以標識需要的用戶輸入。如果在采集的日志文件 數據164中包含這樣的用戶輸入,則安全掃描器162可以用HTTP請求166對這樣的HTTP 響應168做出響應,這些HTTP請求包括來自采集的日志文件數據164的采集的數據。然而 本發明在此方面不受限制。例如,如果HTTP響應168需要涉及在計算(CAPTCHA)時使用的 挑戰-響應測試,則安全掃描器162可以被配置為提示安全掃描器162的用戶錄入CAPTCHA 請求的用戶輸入。在其它境況中,安全掃描器可以用如下HTTP響應168對HTTP響應168 做出響應,該HTTP響應168包含被配置為對于web應用122的安全弱點進行測試的一個或 者多個危險凈荷。
[0043] 在生成HTTP請求166和接收HTTP響應168之時,安全掃描器162可以例如通過 分析HTTP響應168來執行web應用的安全驗證。安全掃描器162還可以例如通過向另一 日志文件輸出結果和/或向用戶呈現結果輸出驗證的結果。
[0044] 圖2是圖示根據本發明的另一實施例的動態掃描web應用的方法200的流程圖。 在步驟202,可以從一個或者多個日志文件采集日志文件數據。如指出的那樣,這樣的日志 文件可以由各種系統來維護,各種系統例如應用客戶端(客戶端應用在該應用客戶端上被 執行以訪問web應用)主控web應用的web服務器、在其上執行有客戶端應用的應用客戶 端被通信地鏈接到的通信網絡的網絡基礎設施、和/或主控web應用的web服務器被通信 地鏈接到的通信網絡的網絡基礎設施。網絡基礎設施可以包括通信網絡的一個或者多個節 點。
[0045] 在步驟204,可以根據采集的日志文件數據生成對練習 web應用以執行web應用的 安全分析的至少一個HTTP請求。例如HTTP請求可以標識URL、HTTP動詞、AJAX請求和/ 或響應、參數、數據、表單值、cookie、post請求、查詢和/或正文參數、用戶標識符、密碼或 者可以經由HTTP傳達的任何其它信息。在步驟206,可以向web應用傳達HTTP請求。
[0046] 在步驟208,可以接收對HTTP請求的至少一個HTTP響應。例如可以從web應用接 收HTTP響應。在步驟210,可以分析HTTP響應以執行web應用的驗證。在步驟212,可以 例如向數據文件或者例如經由被配置為執行安全掃描器的安全客戶端的顯示器向用戶輸 出驗證的結果。
[0047] 圖3是圖示根據本發明的一個優選實施例的安全客戶端160的框圖。安全客戶端 160包括可以通過系統總線315或者其它適當電路裝置耦合到存儲器單元310的至少一個 處理器305。這樣,安全客戶端160可以在存儲器單元310內存儲程序代碼。處理器305可 以經由系統總線315執行從存儲器單元310訪問的程序代碼。例如在一個方面中,可以實 施安全客戶端160為適合用于存儲和/或執行程序代碼的計算機。然而應當理解可以用能 夠執行在本說明書內描述的功能和/或操作的包括處理器和存儲器的任何系統的形式實 施安全客戶端160。
[0048] 存儲器單元310可以包括一個或者多個物理存儲器設備、如比如本地存儲器320 和一個或者多個體存儲設備325。本地存儲器320是指一般在實際執行程序代碼期間使用 的隨機存取存儲器或者其它非持續存儲器設備。可以實施體存儲設備325為硬驅動或者其 它持久數據存儲設備。安全客戶端160也可以包括一個或者多個高速緩存存儲器(未示 出),該一個或者多個高速緩存存儲器提供至少一些程序代碼的暫時存儲以便減少在執行 期間必須從體存儲設備325取回程序代碼的次數。
[0049] 輸入/輸出(I/O)設備、比如鍵盤330、顯示器335和指示設備340可選地可以耦 合到安全客戶端360。I/O設備可以直接或者通過居間I/O控制器耦合到安全客戶端160。 一個或者多個網絡適配器345也可以耦合到安全客戶端160以使安全客戶端160能夠變成 通過居間專有或者公用網絡耦合到其它系統、計算機系統(例如web服務器)、遠程打印機 和/或遠程存儲設備。調制解調器、線纜調制解調器和以太網卡是可以與安全客戶端160 一起使用的不同類型的網絡適配器345的示例。
[0050] 如在圖3中描繪的那樣,存儲器單元310可以存儲安全掃描器162。以可執行程 序代碼的形式實施的安全掃描器162可以由安全客戶端160執行,并且這樣可以被視為安 全客戶端160的一部分。安全客戶端160可以訪問采集的日志文件數據164。采集的日志 文件數據164可以存儲于存儲器單元310中或者存儲于另一數據存儲設備或者系統上,安 全客戶端160可以從該數據存儲設備或者系統訪問采集的日志文件數據164。例如安全客 戶端160可以在需要時從對應數據日志直接訪問采集的日志文件數據164,用戶可以采集 日志文件數據164并且向安全客戶端160提供采集的日志文件數據164。安全掃描器162 可以執行這里描述的過程和方法以執行web應用的安全掃描、執行web應用的安全驗證并 且輸出安全驗證的結果。如這里所用,"正在輸出"和/或"輸出"可以意味著在存儲器單元 310中存儲、例如向在存儲器單元310中存儲的文件寫入、向顯示器335或者其它外圍輸出 設備寫入、播放可聽通知、向另一系統發送或者傳輸、導出等。
[0051] 相似編號已經用來貫穿本說明書指代相同項。在本發明的一個優選實施例中,可 以將工作流服務器實現為丨BM? Rationa丨⑧AppScan?。IBM、Rational和AppScan 是國際商務機器公司在全球許多轄區中注冊的商標。
[0052] 附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和計算機程 序產品的可能實現的體系構架、功能和操作。在這點上,流程圖或框圖中的每個方框可以 代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個 用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所 標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個連續的方框實際上可以 基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的 是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行 規定的功能或動作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的 組合來實現。
[0053] 這里所用術語僅為了描述具體實施例而未旨在于限制公開內容的示例實施例。如 這里所用,除非上下文另有明示,單數形式"一個"和"該"旨在于也包括復數形式。還將理 解術語"包括"在說明書中使用時指定存在陳述的特征、整件、步驟、操作、單元和/或部件、 但是未排除存在或者添加一個或者多個其它特征、整件、步驟、操作、單元、部件和/或其組 合。
[0054] 所附權利要求中的所有裝置或者步驟加上功能要素的對應結構、材料、動作和等 效物旨在于包括用于與如具體要求保護的其它權利要求要素組合執行功能的任何結構、材 料或者動作。已經出于示例的目的而呈現本公開內容的描述,但是該描述未旨在于窮舉公 開內容或者使公開內容限于公開的實施例。許多修改和變化將為本領域普通技術人員所清 楚而未脫離公開內容的范圍和精神實質。選擇和描述實施例以便最好地說明公開內容的原 理和實際應用并且使本領域其他普通技術人員能夠對于具有如與設想的特定使用相配的 各種修改的各種實施例理解公開內容。
【權利要求】
1. 一種用于動態掃描web應用的方法,所述方法包括: 從至少一個日志文件采集日志文件數據; 根據采集的所述日志文件數據生成對練習 web應用以執行所述web應用的安全分析的 至少一個HTTP請求; 向所述web應用傳達所述HTTP請求; 接收對所述HTTP請求的至少一個HTTP響應; 分析所述HTTP響應以執行所述web應用的驗證;以及 輸出所述驗證的結果。
2. 根據權利要求1所述的方法,還包括: 過濾采集的所述日志文件數據以從采集的所述日志文件數據去除冗余信息。
3. 根據前述權利要求中的任一權利要求所述的方法,還包括: 將采集的所述日志文件數據的至少一部分變換成能由所述web應用識別的至少一個 數據結構;以及 在所述HTTP請求中包括所述數據結構。
4. 根據前述權利要求中的任一權利要求所述的方法,其中所述至少一個日志文件包括 由應用客戶端維護的日志文件,客戶端應用在所述應用客戶端上被執行以訪問所述web應 用。
5. 根據權利要求1至3中的任一權利要求所述的方法,其中所述至少一個日志文件包 括由主控所述web應用的web服務器維護的日志文件。
6. 根據權利要求1至3中的任一權利要求所述的方法,其中所述至少一個日志文件包 括由通信網絡的網絡基礎設施維護的日志文件,在其上執行有客戶端應用的應用客戶端被 通信地鏈接到所述通信網絡的網絡基礎設施。
7. 根據權利要求1至3中的任一權利要求所述的方法,其中所述至少一個日志文件包 括由通信網絡的網絡基礎設施維護的日志文件,主控所述web應用的web服務器被通信地 鏈接到所述通信網絡的網絡基礎設施。
8. 根據前述權利要求中的任一權利要求所述的方法,其中所述日志文件數據包括至少 一個cookie,所述方法還包括: 刷新用于所述HTTP請求的所述cookie。
9. 根據前述權利要求中的任一權利要求所述的方法,還包括: 標識在采集的所述日志文件數據中標識的至少一個URL ; 其中生成所述至少一個HTTP請求包括在所述HTTP請求中向所述URL提交危險凈荷。
10. -種動態掃描web應用的系統,包括: 計算機可讀存儲介質; 處理器,被配置為發起可執行操作; 采集裝置,可操作用于從至少一個日志文件采集日志文件數據; 生成裝置,可操作用于根據采集的所述日志文件數據生成對練習 web應用以執行所述 web應用的安全分析的至少一個HTTP請求; 傳達裝置,可操作用于向所述web應用傳達所述HTTP請求; 接收裝置,可操作用于接收對所述HTTP請求的至少一個HTTP響應; 分析裝置,可操作用于分析所述HTTP響應以執行所述web應用的驗證;以及 輸出裝置,可操作用于輸出所述驗證的結果。
11. 根據權利要求10所述的系統,還包括: 過濾裝置,可操作用于過濾采集的所述日志文件數據以從采集的所述日志文件數據去 除冗余信息。
12. 根據權利要求10或者11所述的系統,還包括: 變換裝置,可操作用于將采集的所述日志文件數據的至少一部分變換成能由所述web 應用識別的至少一個數據結構;以及 包括裝置,可操作用于將所述數據結構包括在所述HTTP請求中。
13. 根據權利要求10至12中的任一權利要求所述的系統,其中所述至少一個日志文 件包括由應用客戶端維護的日志文件,客戶端應用在所述應用客戶端上被執行以訪問所述 web應用。
14. 根據權利要求10至12中的任一權利要求所述的系統,其中所述至少一個日志文件 包括由主控所述web應用的web服務器維護的日志文件。
15. 根據權利要求10至12中的任一權利要求所述的系統,其中所述至少一個日志文件 包括由通信網絡的網絡基礎設施維護的日志文件,在其上執行有客戶端應用的應用客戶端 被通信地鏈接到所述通信網絡的網絡基礎設施。
16. 根據權利要求10至12中的任一權利要求所述的系統,其中所述至少一個日志文件 包括由通信網絡的網絡基礎設施維護的日志文件,主控所述web應用的web服務器被通信 地鏈接到所述通信網絡的網絡基礎設施。
17. 根據權利要求10至16中的任一權利要求所述的系統,其中: 所述日志文件數據包括至少一個cookie ;并且 所述系統還包括刷新裝置,所述刷新裝置可操作用于刷新用于所述HTTP請求的所述 cookie。
18. 根據權利要求10所述的系統,所述系統還包括: 標識裝置,可操作用于標識在采集的所述日志文件數據中標識的至少一個URL ;并且 其中用于生成所述至少一個HTTP請求的所述生成裝置包括用于在所述HTTP請求中向 所述URL提交危險凈荷的提交裝置。
19. 一種用于動態掃描web應用的計算機程序產品,所述計算機程序產品包括:能由處 理電路讀取并且存儲指令的計算機可讀存儲介質,所述指令用于由所述處理電路執行以用 于執行根據權利要求1至9中的任一權利要求所述的方法。
20. -種在計算機可讀介質上存儲的并且能向數字計算機的內部存儲器中加載的計算 機程序,包括軟件代碼部分,當所述程序在計算機上被運行時,所述軟件代碼部分用于執行 根據權利要求1至9中的任一權利要求所述的方法。
【文檔編號】H04L12/26GK104067561SQ201380006346
【公開日】2014年9月24日 申請日期:2013年1月11日 優先權日:2012年1月24日
【發明者】O·塞加爾, R·巴查, R·薩爾茨曼, R·諾丹, I·克雷馳曼, Y·阿米特, G·洛特姆 申請人:國際商業機器公司