TWI574173B - 決定受測應用程式安全活動之技術 - Google Patents
決定受測應用程式安全活動之技術 Download PDFInfo
- Publication number
- TWI574173B TWI574173B TW104130973A TW104130973A TWI574173B TW I574173 B TWI574173 B TW I574173B TW 104130973 A TW104130973 A TW 104130973A TW 104130973 A TW104130973 A TW 104130973A TW I574173 B TWI574173 B TW I574173B
- Authority
- TW
- Taiwan
- Prior art keywords
- security
- aut
- test
- attack vector
- activity
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Description
本發明係有關於決定受測應用程式安全活動之技術。
軟體安全性測試係用以識別於一應用程式諸如網頁應用程式的漏洞。針對以網頁為基礎的軟體之傳統黑箱安全性測試,藉由使用安全性測試應用程式,通稱為掃描器,充當攻擊者工作。於黑箱辦法中,掃描器藉由做出超文字傳輸協定(HTTP)請求及評估HTTP回應而探索受測應用程式(AUT)以便找出AUT接受輸入的全部統一資源定位器(URL)。AUT接受輸入的該等URL可稱作該AUT之攻擊表面。然後,掃描器基於該攻擊表面及可能的漏洞之分類形成攻擊。掃描器施加該等攻擊用以藉由評估該程式的HTTP回應而診斷漏洞的存在或不存在。
依據本發明之一實施例,係特地提出一種方法,其包含:藉由在至少一個處理器上執行的一運轉時間代理器,監視一受測應用程式(AUT)之執行以於該AUT的一動態
安全性測試期間在一伺服器上執行;於自該動態安全性測試之一攻擊向量期間,決定出現與該AUT之一安全活動相關聯的至少一個應用程式規劃介面(API);及發送出現該安全活動的一訊息給該動態安全性測試。
100、200‧‧‧計算系統
110‧‧‧計算裝置
120‧‧‧安全性測試引擎
122‧‧‧徐行引擎
124‧‧‧追蹤引擎
126‧‧‧攻擊引擎
128‧‧‧報告引擎
140‧‧‧伺服器
142、240‧‧‧受測應用程式(AUT)
144、250‧‧‧運轉時間代理器
146‧‧‧安全活動
210‧‧‧掃描器
215‧‧‧漏洞報告
255‧‧‧應用程式規劃介面(API)
300、500‧‧‧方法
302、304、306、502-510‧‧‧方塊
400、600‧‧‧計算裝置
410、610‧‧‧處理器
420、620‧‧‧機器可讀取儲存媒體
422、622‧‧‧通訊指令
424‧‧‧監視指令
426‧‧‧安全活動指令
624‧‧‧安全性測試指令
626‧‧‧徐行指令
後文詳細說明部分參考附圖,附圖中:圖1為依據一個實施例,能夠決定一受測應用程式之一安全活動的一系統之方塊圖;圖2為依據一個實施例,能夠決定與報告一受測應用程式的安全活動之一系統之方塊圖;圖3為依據一個實施例,用於監視一受測應用程式的執行用以決定於一攻擊向量期間該受測應用程式的安全活動之一方法的流程圖;圖4為依據一個實施例,可監視一受測應用程式的執行用以決定於一攻擊向量期間該受測應用程式的安全活動之一計算裝置的方塊圖;圖5為依據一個實施例,用於決定與一受測應用程式相關聯的安全活動之一方法的流程圖;及圖6為依據一個實施例,能夠決定與一受測應用程式相關聯的安全活動之一計算裝置的方塊圖。
一網頁應用程式漏洞掃描器乃識別網頁應用程式中之漏洞的一種辦法。掃描器始於徐行該受測應用程式
(AUT)以識別攻擊表面。一運轉時間代理器或觀察器可安裝在應用程式伺服器上以協助更準確地識別攻擊表面。如此處描述,本文中稱作為觀察器或運轉時間代理器的一軟體程式係用以觀察由AUT執行的內部操作。運轉時間代理器許可掃描器決定AUT的操作及其回應於攻擊如何表現。運轉時間代理器也許可掃描器決定AUT回應於正常應用程式請求的表現,掃描器可使用該請求以判定發送哪些類型的攻擊。掃描器繼續遞送攻擊給AUT,及掃描器自運轉時間代理器接收AUT的內部工作的知識。藉此方式,掃描器可找出更多漏洞及產生更佳的漏洞報告,因而提出更綜合的更詳細的以網頁為基礎之應用程式的軟體安全性測試。
自動化漏洞掃描器顯示於應用程式中檢測得的漏洞。但如此並非必然表示其它漏洞為不存在。如此表示找到特定漏洞。證據的不存在並非不存在的證明。因此,若自動化漏洞掃描器沒有於應用程式中找到特定類型的安全性漏洞,則並不表示該應用程式沒有該類型的漏洞。若掃描器能對為何沒有找到特定漏提供更多資訊或暗示,則將確實提高安全性報告的可信度。
再者,許多安全編碼指南包括消極章節(例如,避免漏洞)及積極章節(例如,程式應做什麼,諸如輸入驗證)兩者。但漏洞掃描器係報告漏洞而非報告積極動作。因此,稽核員被迫使用若干其它方法,諸如手動代碼覆閱以證實應用程式是否依從企業策略。
據此,此處描述之各種實施例係有關於決定與報
告一受測應用程式(AUT)執行的積極安全活動。此等報告可發送給開發人員藉由加強開發人員所使用的積極活動而改良其應用程式。如此,輔助強化由開發人員開發的未來應用程式,以及輔助提供資訊以補救目前應用程式內的漏洞。
再者,藉由知曉於應用程式中實施的安全性控制(例如,輸入驗證樣式),掃描器能夠消除已知由安全性控制阻擋的攻擊向量,且能更快速找出更可能成功的攻擊向量。因此,可改良總體掃描。
積極回授可輔助改變網頁應用程式開發的文化。安全性分析的焦點聚焦在受測軟體之消極面向。舉例言之,常見的發現為注入漏洞、漏洞加密常式、安全性顧問已知弱點諸如透過MITRE的通用漏洞披露(CVE)表示的弱點。雖然確實有誘因聚焦在加強軟體安全性,但應用程式的積極面向有機會達成以下兩個目的,傳播有效安全性控制給軟體開發人員,使其可被一致地結合入組織內部跨其它應用程式;以及證明無形量尺的正確,諸如總掃描時間、品質、及徹底程度其經常用作為自動化漏洞分析工具的關鍵評估點。
從業務觀點,提供一積極回授報告可用以給應用程式安全性測試客戶顯示較少找到漏洞的一漏洞報告係因良好編碼所致而非因掃描器無能所起。又,於許多情況下,專業安全性從事所得的報告係用作為業務決策上的關鍵輸入,包括是否根據企業政策而標記軟體為依從性,或因結果不佳而避免發行軟體。當含括於一組織結構的個別安全
性立場的整體表示型態中時,在受測軟體內部包括有效安全性控制可以對此等及其它重要業務決策具有重大影響。
當掃描器在AUT上執行攻擊向量時,運轉時間代理器能夠負責識別特定應用程式規劃介面(API)的使用。運轉時間代理器可提供該資訊給掃描器。當掃描器執行攻擊向量時,於漏洞報告中可顯示積極回授。於若干實施例中,當該攻擊沒有找到相對應於所使用的攻擊向量之一漏洞時,可顯示積極回授。
圖1為依據一個實施例,能夠決定一受測應用程式之一安全活動的一系統之方塊圖。計算系統100可包括一計算裝置110,及伺服器140包括可用以執行一安全性測試的組件。於若干實施例中,計算裝置110可執行一網頁應用程式掃描器之功能。個別裝置110、140可以是筆記型電腦、桌上型電腦、伺服器、工作站、或能夠從事引述功能的任何其它計算裝置。於某些實施例中,伺服器乃能夠透過電腦網路回應於請求而提供或協助提供網路服務的系統。於某些實施例中,計算裝置110可包括一安全性測試引擎120,其可進一步包括一徐行引擎122、一追蹤引擎124、一攻擊引擎126、及一報告引擎128。又,伺服器140可包括一受測應用程式142、一運轉時間代理器144,及決定安全活動146是否存在於AUT 142。計算裝置110與伺服器140間之通訊可使用請求-回應協定諸如超文字傳輸協定(HTTP)進行。如所記,伺服器140可主持AUT 142。
於由安全性測試引擎120所實施的動態安全性測
試期間,運轉時間代理器144可監視AUT 142的執行。又,運轉時間代理器144可物聯化AUT 142之經預先界定的API。此點可於應用程式起始期間(例如,透過載入時間交織)、離線處理(例如,編譯時間交織)等完成。至於一個實施例,為了給各種漏洞提供回授,運轉時間代理器144可監視下列表1之API:
其它API可與安全活動相關也可經監視。此處,實例可包括結構化查詢語言(SQL)注入、交叉位置文本、指令注入、不安全隨機、標頭操控、路徑操控、其組合等。
安全性測試引擎120可在AUT上執行安全性測
試,例如掃描。如所見,計算裝置110可透過一共通通訊通道而通訊式耦合至AUT 142。於徐行相位中,徐行引擎122徐行AUT 142,允許安全性測試引擎120能識別一攻擊表面。此點可藉自伺服器端運轉時間代理器144提取攻擊表面,遵照鏈接,執行文本等完成。
於攻擊相位期間,攻擊引擎126可在AUT 142上執行攻擊向量。安全性測試引擎120可發送具有一特定攻擊向量的超文字傳輸協定(HTTP)請求用以驗證該AUT是否有攻擊漏洞。舉例言之,為了測試SQL注入,安全性測試引擎120可發送具有參數值「a」或「1=1--」等的一HTTP請求。安全性測試引擎120可將額外資訊嵌入HTTP請求標頭或透過其它通訊通道,如圖2中進一步描述,用以提供資訊給運轉時間代理器144有關掃描參數,諸如使用的目前攻擊向量、受測漏洞類別等。如此,安全性測試引擎120可提供有關攻擊向量的資訊給運轉時間代理器144。此項資訊可用以決定於攻擊向量期間欲監視的API。此點可藉使用客端請求標頭實施。
運轉時間代理器144可觀察及紀錄於攻擊向量期間是否執行一或多個經預先界定的積極安全活動146。於攻擊向量期間,當一受監視的API經調用時此等可經紀錄。於若干實施例中,資訊可藉運轉時間代理器144收集及送返安全性測試引擎120以供處理。
於若干實施例中,然後運轉時間代理器144可進行進一步分析。於一個實施例中,安全性測試引擎120可發
送有關攻擊向量的類型資訊給運轉時間代理器。舉例言之,運轉時間代理器144可決定與該類型資訊相關聯的一集合之安全活動。該項決定可根據運轉時間代理器144可用的將類型映射到與該等安全活動相關聯的API之一資料結構。
舉例言之,該類型可以是SQL注入。運轉時間代理器144可檢查一查詢陳述是否包括該(等)攻擊向量作為SQL攻擊向量的一部分。此項資訊回送給安全性測試引擎120。若攻擊為不成功,則安全性測試引擎120可使用追蹤引擎124連結至運轉時間代理器144用以取回安全事件(例如,經預先界定的安全API),該安全事件為運轉時間代理器144於攻擊向量期間已經監視用以判定保護機制或其它安全活動是否就位用以防止攻擊發生。此項資訊可整合入使用者介面,及報告以通知使用者攻擊為不成功連同其它證明防禦機制係被正確施用。於某些實施例中,安全活動146可以是運轉時間代理器144監測的經預先界定的積極活動。運轉時間代理器144可透過一訊息報告安全活動146給安全性測試引擎120。該訊息可嵌入其它通訊中。
報告引擎128可產生一漏洞報告。該報告可包括漏洞。又,漏洞報告也可包括由AUT執行的積極安全活動。於若干實施例中,找到的安全活動可加至該報告。再者,於若干實施例中,若針對攻擊向量未找到漏洞,則安全活動添加到報告。如此,於若干實施例中,該報告可將於一攻擊向量期間沒有找到一漏洞與個別攻擊向量相關聯的積極安全活動連結。
再者,如前記,安全性測試引擎120可基於安全活動修改未來攻擊向量。舉例言之,若找到某些保護,則安全性測試引擎120可能無需使用一特定攻擊向量重複測試。於一個實施例中,一保護可加註記號為用於與AUT 142相關聯的一特定函式調用。運轉時間代理器144可提供有關堆疊蹤跡的資訊給安全性測試引擎120。此項資訊可用以映射被調用的一或多個函式。如此,若一攻擊向量將資訊載入一特定欄位顯示一特定積極活動被使用及函式被調用於連鎖,則此項資訊可經關聯用以決定受相同積極安全活動保護的其它攻擊向量無需用在相同欄位。同理,基於與函式相關聯的堆疊蹤跡及積極活動,可將攻擊向量與其它欄位連結。
此處描述之引擎、模組、及部件可分散在一或多個裝置間。引擎120、122、124、126、128包括硬體及/或硬體與程式設計的組合用以執行此處提供的函式。再者,模組可包括欲藉此處提供的硬體執行的程式設計函式及/或程式設計函式之組合。當討論引擎及模組時,注意歸因於一引擎的功能也可歸因於一相對應模組,及反之亦然。再者,歸因於一特定模組及/或引擎的功能也可使用另一模組及/或引擎實施。模組及引擎之實例包括安全性測試引擎120、徐行引擎122、追蹤引擎124、攻擊引擎126、報告引擎128、受測應用程式142、及運轉時間代理器144。
適用以取回與執行指令及/或電子電路的處理器諸如中央處理單元(CPU)或微處理器可經組配以執行此處
描述之引擎及/或模組中之任一者的功能。於某些情況下,指令及/或其它資訊,諸如規則或標準,可含括於記憶體。輸入/輸出介面可由裝置額外提供。舉例言之,輸入裝置,諸如鍵盤、感測器、觸控介面、滑鼠、麥克風等,可用以自該等裝置之周圍環境接收輸入。又,一輸出裝置諸如顯示器可用以呈示資訊給使用者。輸出裝置之實例包括揚聲器、顯示裝置、放大器等。再者,於某些實施例中,有些組件可用以執行此處描述之其它組件的功能。輸入/輸出裝置諸如通訊裝置,例如網路通訊裝置或無線裝置也能被視為能夠使用輸入/輸出介面的裝置。
引擎/模組中之各者可包括例如硬體裝置,包括用以執行此處描述之其它組件的功能之電子電路。此外或另外,各個模組可實施為編碼在計算裝置的機器可讀取儲存媒體上且由處理器可執行的一串列指令。須注意於若干實施例中,有些模組被實施為硬體裝置,而其它模組被實施為可執行指令。
圖2為依據一個實施例,能夠決定與報告一受測應用程式的安全活動之一系統之方塊圖。系統200可包括掃描器210、AUT 240、及一運轉時間代理器250。運轉時間代理器250可監視AUT 240的API 255。於若干實施例中,如前文討論,AUT 240可經物聯化以監視API 255。掃描器210可產生一漏洞報告215而提供漏洞資訊給一安全專家。
AUT 240可以任何合宜以網頁為基礎的電腦語言編碼,諸如爪哇或.NET等。AUT 240可於合宜軟體框架
內部操作,諸如框架(Struts)、框架2、ASP.NET MVC、甲骨文(Oracle)網路邏輯(WebLogic)、及春泉(Spring)MVC等。軟體框架包括提供泛用功能的一集合之通用代碼模組,其可由使用者代碼選擇性地凌駕或特化用以提供特定功能。AUT 240可經組配以執行爪哇虛擬機(JVM)、共同語言執行時間(CLR)、用以處理來自掃描器210的請求之其它運轉時間環境中之一或多者。由軟體框架或運轉時間環境之通用代碼模組提供的程式設計指令可被稱作為容器代碼。AUT 240之特定客端程式設計指令可稱作為使用者代碼。
AUT 240可包括一網路介面用以使得掃描器210與AUT 240間能經由網路通訊。網路介面暴露出AUT 240的攻擊表面,且可以是當AUT 240變成為可通用利用時最終用以提供存取AUT 240的相同介面。掃描器210與AUT 240間透過網路介面之通訊可透過自掃描器210簽發給AUT 240的HTTP請求及自240簽發給掃描器210的HTTP回應進行。靶定於AUT 240的請求可稱作為應用程式請求,及接收自AUT 240的回應可稱作為應用程式回應。由掃描器210產生的應用程式請求可經組配以暴露出AUT 240的潛在漏洞。
AUT 240可耦接至一檔案系統、一資料庫、及由AUT 240所使用的其它資源。資料庫可包括多種使用者資訊,諸如用以核可接取AUT 240的各種資源的使用者名稱及密碼之一列表。檔案系統可包括由AUT 240所使用的資
料及程式,以及可由使用者請求的資料,諸如HTTP頁面、軟體程式、媒體檔案等。資料庫可以是包括AUT 240之一系統的一部分及/或在系統外部。如前記,API 255可經物聯化。針對運轉時間代理器250,此等API 255可經物聯化用以監視經預先界定的API 255。於若干實施例中,經預先界定的API 255可為掃描器210所已知及/或於測試期間由運轉時間代理器250所提供。
運轉時間代理器250可於AUT 240之執行環境內部操作,及存取由AUT 240執行的內部操作。舉例言之,於某些實施例中,運轉時間代理器250藉由於各個程式點注入額外代碼,諸如爪哇類別,可修改AUT 240的位元組代碼。被注入的代碼用作為監視AUT 240的監視器。被注入的監視代碼可位在AUT 240中之策略程式點,例如應用程式規劃介面(API)調用其執行特定操作,諸如讀取URL參數,或寫入檔案系統。每當在AUT 240中之此種程式點被執行時,監視器調用由運轉時間代理器250所提供的服務用以紀錄由AUT 240執行的操作。運轉時間代理器250可耦接至一緩衝器用以儲存有關AUT 240的內部操作已被收集的資訊。緩衝器可用以儲存已經被收集的但尚未報告給掃描器210的資料。緩衝器可儲存於非依電性儲存媒體,諸如硬碟、固態驅動裝置等。
運轉時間代理器250也可包括一額外網路介面,用以使得運轉時間代理器250與掃描器210間能透過網路通訊。如前記,兩個網路介面可使用相同通訊通道,例如相
同HTTP通道。掃描器210與運轉時間代理器250間之通訊可經由使用客端請求及回應標頭實施。客端標頭可由掃描器210加至應用程式請求,及客端標頭可由運轉時間代理器250加至應用程式回應。藉此方式,掃描器210與運轉時間代理器250間之部分通訊可被搭載於與AUT 240的正常通訊上。
掃描器210可將一或多個客端標頭加至各個應用程式請求,其中於該等客端標頭中包括運轉時間代理器250可使用來診斷與正在進行中的一攻擊相關的漏洞之資訊。客端標頭內部的資訊可包括AUT 240之一特定欄位須被註記為敏感且載入該欄位的資料須被追蹤的資訊,及回報有關該資料是否經充分保護的資訊。再者,於若干實施例中,AUT客端標頭可包括載入一欄位的特定資料須被追蹤的資訊,及回報有關該資料是否經充分保護的資訊。如前記,此點可呈一指示形式指示該欄位須由運轉時間代理器視為敏感。
掃描器210也可使用客端請求標頭用以產生請求,該等請求靶定運轉時間代理器250而獲得有關由AUT 240執行的內部處理之額外資訊,或有關AUT 240、伺服器、或運轉時間代理器250之資訊。靶定運轉時間代理器250的請求可稱作服務請求,及接收自運轉時間代理器250的回應可稱作服務回應。由運轉時間代理器250簽發的服務回應可包括補充資訊於服務回應的本體,容後詳述。
於各種實施例中,運轉時間代理器250係經組配
以接收自掃描器210發送到AUT 240的應用程式請求及服務請求。然後運轉時間代理器250可分析標頭資訊以判定該項請求是否為應用程式請求或服務請求。當接收一應用程式請求時,運轉時間代理器250可分析標頭資訊以獲得有關該特定應用程式請求由運轉時間代理器250所使用的資料。然後,應用程式請求可由運轉時間代理器250傳遞給AUT 240以供由AUT 240根據AUT的程式設計處理。當AUT 240產生應用程式回應時,運轉時間代理器250可添加一或多個客端標頭給應用程式回應用以發送額外資訊回掃描器210。
於若干實施例中,每個請求標頭可以是客端HTTP標頭,其包括一客端欄位名稱接著欄位值,其乃一或多個運轉時間代理器250及掃描器210所已知。於此等實施例中,客端HTTP標頭係被AUT 240忽略。須瞭解此處描述之欄位名稱可用於特定實施例而非意圖限制申請專利範圍之範圍。
於某些實施例中,由掃描器210載入欄位之資料可視為一探針。運轉時間代理器250可觀察由探針行使的API。運轉時間代理器250可根據每個請求標頭知曉探針。舉例言之,每個請求標頭可包括用以協調掃描器210與運轉時間代理器250間之互動的一備忘錄標頭。於若干實施例中,掃描器210可增加一備忘錄標頭探針及/或追蹤請求。運轉時間代理器250可使用該一備忘錄標頭識別與該探針相關聯的一攻擊字符串。舉個實例,備忘錄標頭可格式化如下:
X-Scan-Memo:<AttackString>/<OtherInformation>
回應於針對一探針/蹤跡的一應用程式請求,運轉時間代理器250可藉後述而決定應用程式請求的效果,舉例言之,藉由決定已由AUT 240執行的特定代碼行、已由AUT 240存取的檔案、由AUT 240執行的資料庫查詢、或其它資訊。
更明確言之,載入一欄位的資料可經監視以決定資料去向何處。於若干實施例中,此點可結合一攻擊向量用以決定攻擊向量去向何處。舉例言之,於徐行期間,掃描器210可決定AUT 240之一攻擊表面。攻擊表面可包括輸入欄位。攻擊向量可輸入該等欄位及使用代理器,使用黑箱技術等監視。於若干實施例中,攻擊向量可透過一服務請求提供給運轉時間代理器250。又,可提供與攻擊向量相關聯的其它資訊(例如,查核的一類型漏洞)。資訊可由運轉時間代理器250用以選擇API 255中之一或多者用於攻擊期間尋找。於其它實施例中,運轉時間代理器250可監視經預先界定的全部API 255。經預先界定的API 255可與特定積極活動相關聯。實施例顯示於表1上。
於一個實施例中,掃描器210能夠讓運轉時間代理器250知曉與一特定活動相關聯的一攻擊向量將透過一服務請求而被使用。掃描器210能透過攻擊而判定是否有相關聯的漏洞。掃描器210可由運轉時間代理器250協助而作決定。於一個實施例中,若掃描器210能透過一追蹤請求而請求協助,則運轉時間代理器250能透過一追蹤回應而提供
一追蹤回應(例如,堆疊蹤跡)。又復,掃描器210可自運轉時間代理器250(例如,當未找到漏洞時)請求安全活動(例如,使用的經預先界定的API 255)。漏洞能夠於漏洞報告215中報告且透過一或多個資料結構儲存。漏洞報告215也能包括安全活動。安全活動可回應於判定攻擊向量並未找到漏洞而予提供,或未做任何判定而予添加。
各個蹤跡可包括應用程式請求之請求ID及相對應於該蹤跡的應用程式回應。掃描器210藉由自運轉時間代理器250取回相對應蹤跡而可習得有關AUT 240的內部操作,該操作係由一特定應用程式請求觸發。為了取回一蹤跡,掃描器210可簽發一服務請求給運轉時間代理器250,其包括一標頭欄位名稱/值對,經組配以指示該蹤跡的請求相對應於例如針對一特定探針或探針集合的一特定應用程式請求或回應。舉例言之,用於請求一蹤跡的欄位名稱/值對可格式化如下:Trace=<request_id>
數值<request_id>為由掃描器210或運轉時間代理器250分派之值,相對應於與該被請求的蹤跡相關聯的應用程式請求及/或應用程式回應。當接收到該追蹤服務請求時,運轉時間代理器250可繞道AUT 240且產生包括該被請求的蹤跡之一服務回應。於某些實施例中,該被請求的蹤跡可由運轉時間代理器250自緩衝器取回及添加至服務回應本體,然後被發送給掃描器210。又,於若干實施例中,服務回應標頭包括該被請求的蹤跡之request_id值,及服務
回應本體可格式化為JSON物件。
運轉時間代理器250可監視由AUT 240執行的處理,其發生在一應用程式請求之脈絡外部,諸如由運轉時間代理器250注入的額外監視代碼所引發的處理。為了避免遭致無法接受的程度之效能額外負擔,運轉時間代理器250可經組配以最小化與應用程式請求不相關的監視處理之效能額外負擔。舉例言之,藉注入監視代碼用以選擇性地監視特定API調用及AUT的使用者代碼之相關部分,可以最小化效能額外負擔。又,欲監視的經預先界定的API 255之集合能夠基於相對應於個別API 255的特定攻擊向量而予監視。
圖3為依據一個實施例,用於監視一受測應用程式的執行用以決定於一攻擊向量期間該受測應用程式的安全活動之一方法的流程圖。圖4為依據一個實施例,可監視一受測應用程式的執行用以決定於一攻擊向量期間該受測應用程式的安全活動之一計算裝置的方塊圖。雖然方法300之執行於後文係參考計算裝置400描述,但可運用適用以執行方法300的其它組件(例如,系統100及/或200)。此外,用以執行方法300的組件可分布於多個裝置。方法300可以儲存機器可讀取儲存媒體上諸如儲存媒體420上的可執行指令形式,及/或以電子電路形式實施。
計算裝置400包括例如處理器410,及機器可讀取儲存媒體420包括用以輔助在一AUT上的安全性測試之指令422、424、426。計算裝置400可以是例如,筆記型電腦、
桌上型電腦、工作站、伺服器、平板計算裝置、或能夠從事此處描述之功能的任何其它計算裝置。
處理器410可包括至少一個中央處理單元(CPU)、至少一個以半導體為基礎之微處理器、至少一個圖形處理單元(GPU)、適合用於取回與執行儲存於機器可讀取儲存媒體420的指令之其它硬體裝置、或其組合。舉例言之,處理器410可包括多個核心於一晶片上,包括多個核心跨多個晶片、多個核心跨多個裝置(例如,若計算裝置400包括多個節點裝置)、或其組合。處理器410可提取、解碼、及執行指令422、424、426用以實施方法300。作為替代方案或除了取回與執行指令之外,處理器410可包括至少一個積體電路(IC)、其它控制邏輯、其它電子電路、或其組合其包括多個電子組件用以發揮指令422、424、426之功能。
機器可讀取儲存媒體420可以是含有或儲存可執行指令的任何電子、磁學、光學、或其它實體儲存裝置。如此,機器可讀取儲存媒體可以是例如隨機存取記憶體(RAM)、可電氣抹除可規劃唯讀記憶體(EEPROM)、儲存裝置驅動裝置、光碟-唯讀記憶體(CD-ROM)等。因此機器可讀取儲存媒體可以是非暫態。
計算裝置400可主持一受測應用程式。指令422、424、426可與一運轉時間代理器相關聯。運轉時間代理器可執行監視指令424用以於動態安全性測試(例如,掃描)期間監視AUT之執行(302)。掃描器或其它安全性測試引擎可在AUT上執行安全性測試。通訊指令422可由處理器410執
行用以與安全性測試通訊。掃描器可徐行AUT及執行攻擊向量。運轉時間代理器可使用安全活動指令426用以監視與安全活動相關聯的特定API。
於304,於一攻擊向量期間,運轉時間代理器可決定與由AUT實施的安全活動相關聯的至少一個API。此點可回應於來自掃描器該攻擊向量欲在AUT上執行的一指示。於一個實施例中,代理器可自安全性測試接收攻擊向量正在尋找的一類型漏洞。代理器可決定與該類型相關聯的一集合之安全活動。與該集合相關聯的API可於攻擊向量期間被監控。如此有助於降低安全性測試期間實施運轉時間代理器的成本。
於306,運轉時間代理器可執行通訊指令422用以發送一訊息給動態安全性測試告知出現安全活動。於一個實施例中,訊息的發送係回應於判定攻擊向量不成功。可由掃描器做出決定。然後,掃描器向運轉時間代理器請求包括任何安全活動的訊息。如前記,攻擊向量可包括SQL注入、交叉位置文本、指令注入、不安全隨機、標頭操控、及路徑操控中之至少一者的攻擊。於其它實施例中,攻擊向量可與多個漏洞相關聯,欲監控的多集合之API可被同時監控。
圖5為依據一個實施例,用於決定與一受測應用程式相關聯的安全活動之一方法的流程圖。圖6為依據一個實施例,能夠決定與一受測應用程式相關聯的安全活動之一計算裝置的方塊圖。雖然後文中方法500之執行係參考計
算裝置600描述,但可運用適用以執行方法500之其它組件(例如,系統100及/或200)。此外,用以執行方法500之組件可分布於多個裝置間。方法500可以儲存機器可讀取儲存媒體上諸如儲存媒體620上的可執行指令形式,及/或以電子電路形式實施。
計算裝置600包括例如處理器610,及機器可讀取儲存媒體620包括用以輔助在一AUT上的安全性測試之指令622、624、626。計算裝置600可以是例如,筆記型電腦、桌上型電腦、工作站、伺服器、或能夠從事此處描述之功能的任何其它計算裝置。
處理器610可包括至少一個中央處理單元(CPU)、至少一個以半導體為基礎之微處理器、至少一個圖形處理單元(GPU)、適合用於取回與執行儲存於機器可讀取儲存媒體620的指令之其它硬體裝置、或其組合。舉例言之,處理器610可包括多個核心於一晶片上,包括多個核心跨多個晶片、多個核心跨多個裝置(例如,若計算裝置600包括多個節點裝置)、或其組合。處理器610可提取、解碼、及執行指令622、624、626用以實施方法500。作為替代方案或除了取回與執行指令之外,處理器610可包括至少一個積體電路(IC)、其它控制邏輯、其它電子電路、或其組合其包括多個電子組件用以發揮指令622、624、626之功能。
機器可讀取儲存媒體620可以是含有或儲存可執行指令的任何電子、磁學、光學、或其它實體儲存裝置。如此,機器可讀取儲存媒體可以是例如隨機存取記憶體
(RAM)、可電氣抹除可規劃唯讀記憶體(EEPROM)、儲存裝置驅動裝置、光碟-唯讀記憶體(CD-ROM)等。因此機器可讀取儲存媒體可以是非暫態。容後詳述,機器可讀取儲存媒體620可以一串列之可執行指令編碼用以基於攻擊提示執行安全性測試。
伺服器可主持一受測應用程式。計算裝置600可藉執行安全性測試指令624而在AUT上執行安全性測試。徐行指令626可被執行以徐行AUT用以決定AUT之一攻擊表面。通訊指令622可被執行以與AUT通訊而具體實施徐行(例如,透過網路介面卡或其它通訊裝置)。
攻擊表面可受安全性測試攻擊。於502,安全性測試可發送有關攻擊向量之資訊,例如與攻擊向量相關聯的一類型給與AUT工作的一運轉時間代理器。此點可呈與在運轉時間代理器之資訊相關聯的識別符形式,其可映射該識別符至一集合之API用以監視安全活動相關聯的活動。
安全性測試可決定在與攻擊向量相關聯的AUT是否檢測得一漏洞。此點可使用黑箱測試、灰箱測試借助於代理器等進行。於504,安全性測試可決定針對攻擊向量之漏洞結果。此等可添加或用以產生一漏洞報告或結果。
於506,可從運轉時間代理器請求安全性測試是否出現安全活動用以決定安全活動是否與AUT針對該攻擊向量相關聯。該項請求可基於決定針對該攻擊向量未找到漏洞。如此,於一個實施例中,若未檢測得漏洞,則安全活動可添加至漏洞結果(508)。於其它實施例中,即便檢測
得漏洞仍可添加安全活動。可使用一指示符顯示安全活動可能被誤用。於510,如前文描述,安全性測試可根據安全活動修改未來攻擊向量。
300‧‧‧方法
302、304、306‧‧‧方塊
Claims (15)
- 一種方法,其包含:藉由在至少一個處理器上執行的一運轉時間代理器,監視一受測應用程式(AUT)之執行以於該AUT的一動態安全性測試期間在一伺服器上執行;於自該動態安全性測試之一攻擊向量期間,決定出現與該AUT之一安全活動相關聯的至少一個應用程式規劃介面(API);及發送出現該安全活動的一訊息給該動態安全性測試。
- 如請求項1之方法,其進一步包含:自該動態安全性測試,接收與該攻擊向量相關聯的一類型;及決定與該類型相關聯的一集合之安全活動,其中該集合包括該經決定的安全活動。
- 如請求項2之方法,其進一步包含:於該動態安全性測試,決定一漏洞是否於與該攻擊向量相關聯的該AUT中檢測得用以產生漏洞結果。
- 如請求項3之方法,其中若未檢測得漏洞則該安全活動係被加至該漏洞結果。
- 如請求項3之方法,其中當未檢測得漏洞時,於該動態安全性測試,基於該安全活動修改未來攻擊向量。
- 如請求項1之方法,其中該攻擊向量包括對下列中之至 少一者的一攻擊:結構化查詢語言(SQL)注入、交叉位置文本、指令注入、不安全隨機、標頭操控、及路徑操控。
- 一種系統,其包含:一伺服器主持一受測應用程式(AUT);在該伺服器上執行的一運轉時間代理器用以於一動態安全性測試期間監視該AUT的執行;一安全性測試引擎用以:進行該動態安全性測試;在該AUT上執行一攻擊向量;決定該攻擊向量為不成功;及自該代理器請求該AUT之一安全活動是否出現,其中,於自該動態安全性測試的該攻擊向量期間,該運轉時間代理器係用以決定該AUT之一安全活動是否出現,及該運轉時間代理器係進一步用以發送出現該安全活動的一訊息給該動態安全性測試。
- 如請求項7之系統,其中該安全性測試引擎係進一步用以發送與該攻擊向量相關聯的類型資訊給該運轉時間代理器,該運轉時間代理器係進一步用以決定與該類型資訊相關聯的一集合之安全活動,及其中該集合包括該安全活動。
- 如請求項7之系統,其中該安全性測試引擎係進一步用以針對該動態安全性測試產生一漏洞報告。
- 如請求項9之系統,其中該安全活動係添加至該漏洞報告作為與該攻擊向量相關聯的一積極活動。
- 如請求項7之系統,其中該安全性測試引擎係進一步用以:基於該安全活動修改未來攻擊向量。
- 如請求項7之系統,其中該攻擊向量包括對下列中之至少一者的一攻擊:結構化查詢語言(SQL)注入、交叉位置文本、指令注入、不安全隨機、標頭操控、及路徑操控。
- 一種非暫態機器可讀取儲存媒體儲存指令,其若由一裝置之至少一個處理器執行,則使得該裝置用以:監視一受測應用程式(AUT)之執行用以於該AUT的一動態安全性測試期間在一伺服器上執行;接收一攻擊向量係欲在該AUT上執行的指示;於該攻擊向量期間,決定出現與該AUT之一安全活動相關聯的至少一個應用程式規劃介面(API);及發送出現該安全活動的一訊息給該動態安全性測試。
- 如請求項13之非暫態機器可讀取儲存媒體,其進一步包含指令,其若由該至少一個處理器執行,則使得該裝置用以:其中與該AUT之該安全活動相關聯的該API之該發送係回應於該攻擊向量為不成功的一決定。
- 如請求項13之非暫態機器可讀取儲存媒體,其中在該伺 服器上執行的一代理器監視該AUT及決定該安全活動。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/057419 WO2016048322A1 (en) | 2014-09-25 | 2014-09-25 | Determine secure activity of application under test |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201626280A TW201626280A (zh) | 2016-07-16 |
TWI574173B true TWI574173B (zh) | 2017-03-11 |
Family
ID=55581644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104130973A TWI574173B (zh) | 2014-09-25 | 2015-09-18 | 決定受測應用程式安全活動之技術 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10515220B2 (zh) |
TW (1) | TWI574173B (zh) |
WO (1) | WO2016048322A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552616B2 (en) | 2017-02-23 | 2020-02-04 | International Business Machines Corporation | Determining and managing application vulnerabilities |
US10855713B2 (en) | 2017-04-27 | 2020-12-01 | Microsoft Technology Licensing, Llc | Personalized threat protection |
US10846410B2 (en) | 2017-12-21 | 2020-11-24 | Microsoft Technology Licensing, Llc | Automated fuzzing based on analysis of application execution flow |
CN110188536B (zh) * | 2019-05-22 | 2021-04-20 | 北京邮电大学 | 应用程序检测方法及装置 |
US11640469B2 (en) | 2019-06-21 | 2023-05-02 | Ventech Solutions, Inc. | Method and system for cloud-based software security vulnerability diagnostic assessment |
US11544385B2 (en) | 2019-07-29 | 2023-01-03 | Ventech Solutions, Inc. | Method and system for dynamic testing with diagnostic assessment of software security vulnerability |
US11677774B2 (en) * | 2020-01-06 | 2023-06-13 | Tenable, Inc. | Interactive web application scanning |
US10733303B1 (en) * | 2020-04-23 | 2020-08-04 | Polyverse Corporation | Polymorphic code translation systems and methods |
US20230325478A1 (en) * | 2022-04-12 | 2023-10-12 | Cisco Technology, Inc. | Instrumenting applications to prevent abuse by privileged users |
US20230334478A1 (en) * | 2022-04-19 | 2023-10-19 | Cisco Technology, Inc. | Detecting anomalous transactions within an application by privileged user accounts |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008011576A2 (en) * | 2006-07-20 | 2008-01-24 | Breach Security, Inc. | System and method of securing web applications across an enterprise |
US20120072968A1 (en) * | 2007-02-16 | 2012-03-22 | Wysopal Christopher J | Assessment and analysis of software security flaws in virtual machines |
US8495747B1 (en) * | 2010-03-31 | 2013-07-23 | Mcafee, Inc. | Prioritizing asset remediations |
US20140082739A1 (en) * | 2011-05-31 | 2014-03-20 | Brian V. Chess | Application security testing |
US20140237606A1 (en) * | 2011-06-05 | 2014-08-21 | Core Sdi Incorporated | System and method for providing automated computer security compromise as a service |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974549A (en) * | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
ATE414943T1 (de) | 2000-03-03 | 2008-12-15 | Ibm | System zur bestimmung von schwächen von web- anwendungen |
US20080025515A1 (en) * | 2006-07-25 | 2008-01-31 | Jason Scott Coombs | Systems and Methods for Digitally-Signed Updates |
US9569587B2 (en) * | 2006-12-29 | 2017-02-14 | Kip Prod Pi Lp | Multi-services application gateway and system employing the same |
US8180735B2 (en) * | 2006-12-29 | 2012-05-15 | Prodea Systems, Inc. | Managed file backup and restore at remote storage locations through multi-services gateway at user premises |
US20160277261A9 (en) * | 2006-12-29 | 2016-09-22 | Prodea Systems, Inc. | Multi-services application gateway and system employing the same |
US8499353B2 (en) | 2007-02-16 | 2013-07-30 | Veracode, Inc. | Assessment and analysis of software security flaws |
US8706914B2 (en) * | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
US8266682B2 (en) * | 2007-08-20 | 2012-09-11 | Ebay Inc. | System and methods for weak authentication data reinforcement |
US20090282480A1 (en) * | 2008-05-08 | 2009-11-12 | Edward Lee | Apparatus and Method for Monitoring Program Invariants to Identify Security Anomalies |
CN102481311A (zh) * | 2009-08-21 | 2012-05-30 | 比欧洛吉科斯公司 | 经由植物转录的分子预防和治疗有益昆虫的疾病 |
US8962584B2 (en) * | 2009-10-14 | 2015-02-24 | Yissum Research Development Company Of The Hebrew University Of Jerusalem, Ltd. | Compositions for controlling Varroa mites in bees |
US8458798B2 (en) | 2010-03-19 | 2013-06-04 | Aspect Security Inc. | Detection of vulnerabilities in computer systems |
US10701097B2 (en) * | 2011-12-20 | 2020-06-30 | Micro Focus Llc | Application security testing |
US20130160130A1 (en) * | 2011-12-20 | 2013-06-20 | Kirill Mendelev | Application security testing |
US20130205019A1 (en) * | 2012-02-07 | 2013-08-08 | William Oellermann | Systems and methods for managing api interactions |
US20130238785A1 (en) * | 2012-03-06 | 2013-09-12 | Rackspace Us, Inc. | System and Method for Metadata Discovery and Metadata-Aware Scheduling |
WO2014051597A1 (en) * | 2012-09-28 | 2014-04-03 | Hewlett-Packard Development Company, L.P. | Application security testing |
US9317693B2 (en) | 2012-10-22 | 2016-04-19 | Rapid7, Llc | Systems and methods for advanced dynamic analysis scanning |
US8990942B2 (en) * | 2013-02-18 | 2015-03-24 | Wipro Limited | Methods and systems for API-level intrusion detection |
US9195829B1 (en) * | 2013-02-23 | 2015-11-24 | Fireeye, Inc. | User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications |
US9824209B1 (en) * | 2013-02-23 | 2017-11-21 | Fireeye, Inc. | Framework for efficient security coverage of mobile software applications that is usable to harden in the field code |
US10242199B2 (en) * | 2014-01-31 | 2019-03-26 | EntIT Software, LLC | Application test using attack suggestions |
US10423793B2 (en) * | 2014-06-19 | 2019-09-24 | Entit Software Llc | Install runtime agent for security test |
US10650148B2 (en) * | 2014-09-04 | 2020-05-12 | Micro Focus Llc | Determine protective measure for data that meets criteria |
-
2014
- 2014-09-25 WO PCT/US2014/057419 patent/WO2016048322A1/en active Application Filing
- 2014-09-25 US US15/500,523 patent/US10515220B2/en active Active
-
2015
- 2015-09-18 TW TW104130973A patent/TWI574173B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008011576A2 (en) * | 2006-07-20 | 2008-01-24 | Breach Security, Inc. | System and method of securing web applications across an enterprise |
US20120072968A1 (en) * | 2007-02-16 | 2012-03-22 | Wysopal Christopher J | Assessment and analysis of software security flaws in virtual machines |
US8495747B1 (en) * | 2010-03-31 | 2013-07-23 | Mcafee, Inc. | Prioritizing asset remediations |
US20140082739A1 (en) * | 2011-05-31 | 2014-03-20 | Brian V. Chess | Application security testing |
US20140237606A1 (en) * | 2011-06-05 | 2014-08-21 | Core Sdi Incorporated | System and method for providing automated computer security compromise as a service |
Also Published As
Publication number | Publication date |
---|---|
US10515220B2 (en) | 2019-12-24 |
WO2016048322A1 (en) | 2016-03-31 |
TW201626280A (zh) | 2016-07-16 |
US20170220805A1 (en) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI574173B (zh) | 決定受測應用程式安全活動之技術 | |
TWI575397B (zh) | 利用運行期代理器及動態安全分析之應用程式逐點保護技術 | |
US9160762B2 (en) | Verifying application security vulnerabilities | |
TWI603600B (zh) | 利用運行期代理器及網路探查器判定漏洞之技術 | |
JP5801953B2 (ja) | アプリケーションのセキュリティ検査 | |
US8613080B2 (en) | Assessment and analysis of software security flaws in virtual machines | |
EP2126772B1 (en) | Assessment and analysis of software security flaws | |
US9846781B2 (en) | Unused parameters of application under test | |
US9372785B2 (en) | Identifying implicit assumptions associated with a software product | |
CN103699480B (zh) | 一种基于java的web动态安全漏洞检测方法 | |
CN105164691B (zh) | 一种用于测试计算机软件应用的方法和系统 | |
US10491629B2 (en) | Detecting sensitive data sent from client device to third-party | |
US9990500B2 (en) | Determining application vulnerabilities | |
US10705949B2 (en) | Evaluation of library test suites using mutation testing | |
US9953169B2 (en) | Modify execution of application under test so user is power user | |
US20150143342A1 (en) | Functional validation of software | |
US10242199B2 (en) | Application test using attack suggestions | |
US10650148B2 (en) | Determine protective measure for data that meets criteria | |
CN113162937A (zh) | 应用安全自动化检测方法、系统、电子设备及存储介质 | |
JP5978368B2 (ja) | アプリケーションのセキュリティ検査 | |
JP7488976B1 (ja) | セキュリティテストシステム | |
Enterprise | IDA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |