TWI575397B - 利用運行期代理器及動態安全分析之應用程式逐點保護技術 - Google Patents

利用運行期代理器及動態安全分析之應用程式逐點保護技術 Download PDF

Info

Publication number
TWI575397B
TWI575397B TW104115574A TW104115574A TWI575397B TW I575397 B TWI575397 B TW I575397B TW 104115574 A TW104115574 A TW 104115574A TW 104115574 A TW104115574 A TW 104115574A TW I575397 B TWI575397 B TW I575397B
Authority
TW
Taiwan
Prior art keywords
point
aut
vulnerability
application
code
Prior art date
Application number
TW104115574A
Other languages
English (en)
Other versions
TW201610735A (zh
Inventor
馬帝亞斯 馬道
羅納德J 希契曼
明深 伍
Original Assignee
惠普發展公司有限責任合夥企業
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 惠普發展公司有限責任合夥企業 filed Critical 惠普發展公司有限責任合夥企業
Publication of TW201610735A publication Critical patent/TW201610735A/zh
Application granted granted Critical
Publication of TWI575397B publication Critical patent/TWI575397B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Description

利用運行期代理器及動態安全分析之應用程式逐點保護技術 發明領域
本發明係有關於利用運行期代理器及動態安全分析之應用程式逐點保護技術。
發明背景
軟體安全測試係使用以辨識一應用程式(例如,一網路應用)中之弱點。靜態程式碼分析是電腦軟體之分析,其進行而不需實際執行程式。動態分析是於執行程式上進行的電腦軟體之分析。
發明概要
依據本發明之一實施例,係特地提出一種系統,其包括:一伺服器,其用以代管一受測試應用程式(AUT),其中該伺服器包含一運行期代理器;以及一運算裝置,其通訊地耦合至該AUT,該運算裝置包含一安全測試引擎與一修補引擎,該安全測試引擎用以:進行在該AUT上之一動 態安全分析以判定一弱點,其中該動態安全分析也包含對該運行期代理器之一通訊,以追蹤該動態安全分析中之資訊;並且該修補引擎用以:提供對於該弱點之一弱點解決建議;接收選擇該弱點解決建議之輸入;以及基於能夠利用一第二運行期代理器實行之輸入而產生一逐點保護以減輕該弱點。
100‧‧‧系統
110‧‧‧運算裝置
120‧‧‧安全測試引擎
122‧‧‧修補引擎
140‧‧‧伺服器
142‧‧‧受測試應用程式(AUT)
144‧‧‧運行期代理器
150‧‧‧平臺
152‧‧‧應用程式
154‧‧‧運行期代理器
160‧‧‧通訊網路
200‧‧‧系統
210‧‧‧掃描器
240‧‧‧受測試應用程式
250‧‧‧運行期代理器
260‧‧‧修補引擎
300‧‧‧逐點保護產生流程圖
302-308‧‧‧逐點保護產生步驟
400‧‧‧運算裝置
410‧‧‧處理器
420‧‧‧機器可讀取儲存媒體
422‧‧‧安全測試指令
424‧‧‧通訊指令
426‧‧‧保護產生指令
500‧‧‧產生資訊流程圖
502-506‧‧‧產生資訊步驟
600‧‧‧運算裝置
610‧‧‧處理器
620‧‧‧機器可讀取儲存媒體
622‧‧‧AUT指令
624‧‧‧運行期代理器指令
下面將參考圖形而詳細說明,於其中:圖1是依據一範例,能夠產生將利用一運行期代理器而實行的逐點保護之運算系統的方塊圖;圖2是依據一範例,能夠產生將利用一運行期代理器而實行的逐點保護之運算系統的方塊圖;圖3是依據一範例,用以產生將能夠利用一運行期代理器而實行之逐點保護的方法之流程圖;圖4是依據一範例,能夠產生將利用一運行期代理器而實行之一逐點保護的運算裝置之方塊圖;圖5是依據一範例,用以利用一運行期代理器而進行一安全測試以產生資訊之方法的流程圖,該資訊係能夠使用以產生可利用一運行期代理器而實行之修補;以及圖6是依據一範例之一運算裝置的方塊圖,該運算裝置能夠代管利用一運行期代理器經由動態安全程式碼分析之一受測試應用程式。
較佳實施例之詳細說明
如所提出的,應用程式之軟體安全測試可進行以判定一應用程式(例如,一網路應用程式)中之弱點。測試可以被形成以確保網路應用程式所使用的資料受保護而免於重疊寫入及/或讀取,以確保該網路應用程式持久,以保護抗拒各種攻擊等等。
當一公司想要知道如何確保該公司已是在生產中或將要投入生產之一網路應用程式時,該公司時常使用一安全測試解決方案。該公司可能希望使用該應用程式之一複製版於生產中作為一受測試應用程式(AUT)。使用生產中之一應用程式或即將投入生產測試之一應用程式之一原因是該公司可能希望以不允許修改該AUT之一方式而測試該相同程式碼。在一品質確信階段利用一AUT於即將生產的應用程式確保使用於生產中之應用程式已經被測試。
修復藉由軟體安全測試(例如,靜態或動態安全測試)所發現的弱點可能需要時間。當許多應用程式被掃描並且許多弱點被發現在應用程式之內時,修復問題之時間超過開發者可能必須將這些應用程式投入生產之時間。最重要的是,一些的這些應用程式是先前已於生產中,因此一修復可能是需要及時的方式。
因此,此處說明之各種實施例係關於一修復(例如,一暫時修復),其係使用而以安全方式得到生產中易受損的應用程式。此外或另外地,當應用程式是先前已於生產中時,修補(例如,暫時修補)係可被使用以確保這些應用程式(app)是堅固地足以抵擋攻擊。該等修補可以利用 配合該生產中應用程式而執行的一運行期代理器而實行。進一步地,因為該修復可以是特定的,對於實行修復時,整個應用程式可能不需要再次受測試。
從一高位準看,此處說明之方法使用用儀器裝備技術以自動地實施通常使用於修復藉由一安全分析工具(例如,一動態分析工具)所發現的弱點之“修補”,以便產生可能應用在程式碼位準之對於問題的逐點保護。
一安全分析(例如,一靜態分析解決方案、一動態分析解決方案等等)之結果檔案可以是應用程式中之理論上弱點的列表。對於每個問題(可能的弱點),程式碼行詳細資訊可被提供以展示程式碼中的問題是在哪裡。
一運行期代理器係可使用以監視應用程式中之程式點,並且如果必須的話,當某些行為被指出時則採取行動。以這方式,藉由安全分析解決方案所判定的弱點可於問題之一逐點保護修補中被轉換並且利用運行期代理器而實行。進一步地,因為該運行期代理器可分別地進行以及涵蓋應用程式碼,所測試之生產應用程式可被實行而具有附加之保護。該等保護可以是特定的並且因此可能不需要整個應用程式被測試。在一些範例中,所建議的保護可在被包含作為一建議之前分別地被測試。
運行期代理器可以實行作為一運行期儀器引擎。運行期儀器係涉及在運行期(或負載時間)用以監控、追蹤、除錯、或增加額外功能至原始程式碼以修改程式碼之能力。各種架構提供各種方法以致能這功能性。例如, Microsoft.NET®可以使用ICorProfilierCallback和ICorProfilerCallback2介面以協助致能此功能性。其他架構可包含JavaTM、WebObjects、web2py等等。該引擎可以是一程式庫或一動態鏈路程式庫(DLL)形式,並且可以在程式啟始化之一早期階段期間被致動以轉換在隨後被載入的任何其他程式碼、分類、等等。組態檔案可以指示該引擎關於什麼應該被轉換、截取、或監控。
結果檔案被分析並且可能的弱點之位置可被判定。可能是常見之特定型式的弱點可以是與特定解決方案相關聯。這些解決方案(例如,對於應用程式之一個或多個程式碼行將經由運行期代理器而執行)可被提供(例如,輸出、呈現、電郵等等)至一使用者。該使用者可提供輸入(例如,程式碼之一選擇、寫入或修改等等)以產生藉由運行期代理器可執行的一修補。一旦增加或取代應用程式之可執行程式碼的程式碼被判定,則一逐點修補可被產生。該修補可被傳送而為一個或多個應用程式(例如,如所測試應用程式之相同類型及/或版本的應用程式)所使用。一運行期代理器可使用該修補以實行應用程式上之逐點保護。
允許一使用者將能夠觀看及/或編輯添加/取代程式碼之好處是,該使用者能夠看到應用程式之程式師有什麼意向。例如,如果採用4個數位以查詢一地圖上的一特定位置之一特定功能的使用,將不需要如基於他們的出生日期而用以查詢關於一使用者的一些事件之功能的使用那 麼地受保護。因此,程式碼之上下文脈絡可以是有用於判定一修復是否為必須的及/或哪些修復將是適當的。
圖1是依據一範例之一運算系統的方塊圖,該系統能夠產生將利用一運行期代理器而實行的一逐點保護。該系統100可包含經由一通訊網路與一伺服器140通訊的一運算裝置110。在某些範例中,運算裝置110和伺服器140是運算裝置,例如,伺服器、客戶電腦、桌上型電腦、工作站、平板電腦、行動式電腦、等等。在其他實施例中,該等裝置可以包含特殊用途機器。在一些範例中,該等裝置可以經由一處理元件、記憶體、及/或其他構件而實行。
安全測試引擎120係可以使用以測試利用伺服器140執行的一受測試應用程式(AUT)142。該AUT 142可以配合一運行期代理器144而實行。安全測試引擎120可以於該AUT 142上執行一動態測試以產生可能的弱點之一列表。修補引擎122可以產生將於一平臺150上實行的一修補而提供對應的該AUT 142的一應用程式152。平臺150可以執行於一伺服器或其他運算裝置上。運行期代理器154係可以使用以實行該修補。通訊網路160(例如,網際網路、局域性區域網路(LAN)、廣域網路(WAN)等等)係可以使用以提供應用程式152至裝置。
引擎120、122包含硬體及/或硬體之組合且規劃以進行此處所提供之功能。此外,模組(未展示出)可包含程式功能及/或藉由如此處所提供之硬體而執行之程式功 能的組合。當討論引擎和模組時,應注意到,屬於一引擎之功能性也可以是屬於所對應的模組並且反之亦然。此外,屬於一特定模組及/或引擎之功能性也可以利用另一模組及/或引擎而實行。
安全測試引擎120可以進行AUT 142上之分析。該AUT 142可以是一應用程式,例如,網路應用程式。在某些範例中,安全測試引擎120可以包含一動態模組,例如,一網路應用程式掃描程式。在其他範例中,安全測試引擎120可以包含一靜態工具,例如,一靜態分析工具。在一些範例中,靜態和動態分析之組合係可以被使用。進一步地,在一些範例中,一動態分析工具是電腦軟體之一分析,其是當執行一些或所有的AUT 142時所進行。該分析可以執行以基於一個或多個法則或組態而判定弱點。這結果可以是應用程式中之問題(例如,可能的弱點)的一資料結構(例如,列表)。該等問題可以包含與可能的弱點相關聯之程式碼行細節。該列表可以被輸出並且被處理。
如上所述,安全程式碼分析可以包含各種型式之靜態程式碼分析及/或動態程式碼分析(例如,滲透測試)。於此情況中,運行期代理器144可以在測試期間執行並且提供與所發現的弱點相關聯之程式碼行資訊(例如,當弱點發現時,正在執行的是什麼)。在一些範例中,程式碼資訊行也可以包含追蹤資訊。在一些範例中,一追蹤或堆疊追蹤是在AUT 142執行期間之時間中的某一點之活性堆疊框的報告。因此,運行期代理器144可以記錄以及 提供何處是弱點發生之資訊。在一範例中,該堆疊追蹤可以包含使用以產生追蹤資訊之函數(例如,main( )、function( )、write( ))。該動態安全分析可以於AUT 142上進行,其包含自運行期代理器通訊以追蹤動態安全分析中之資訊,如進一步地於圖2中之說明。
運算裝置110也可包含修補引擎122以處理所輸出之列表或資料結構。修補引擎122係可以使用以處理包含應用程式之可能弱點的資料結構形式之安全資訊,以判定對於可能弱點之分別的弱點解決建議。安全資訊可以包含可能的弱點以及與分別之可能的弱點相關聯之程式碼行資訊。在某些範例中,安全資訊可以自一安全程式碼分析工具而被接收。
在一範例中,可能的弱點可以呈現至一使用者。該等呈現之可能的弱點可以是所考慮弱點解決建議或程式碼中修復弱點之位置建議。該呈現可以進一步包含更多特定解決建議,例如,包含取代程式碼之可能的修補建議。可能被檢測之弱點範例包含跨網站腳本攻擊、一競爭條件:單件成員欄位、非安全隨機性、Axis2錯誤組態:除錯資訊、遠端程式碼執行、SQL注入、格式化字串弱點、使用者姓名列舉、等等。
在一範例中,系統可以提供給使用者一能力以輸入弱點解決建議之所針對者。這些對於部署應用程式之機構可能是更重要之問題。當建議被提出時,更多特定解決建議可被提供。在一範例中,處理程序是半自動的(例 如,一個或多個建議之改變是受到使用者之注意並且該使用者可選擇該改變)。在半自動情況下,使用者也可能被提供一機會以編輯將實行之程式碼。該程式碼改變可以轉為可以藉由一運行期代理器而執行之一逐點保護。一個或多個逐點保護可以組合成為可以藉由被使用以保護一應用程式152之一運行期代理器154而實行之一組態檔案。該應用程式152可以是先前已在場中及/或即將實行的一應用程式之一者。
一介面引擎(未展示出)係可以使用以呈現至少一個分別的弱點解決建議以及用以接收對於一弱點解決建議所輸入之選擇。在一些範例中,弱點解決建議可以包含弱點檢測之一型式以及弱點之一位置。在其他範例中,弱點解決建議可以進一步地包含一個或多個方法以修復或減輕可能的弱點。列表1包含弱點之可能修補之一些範例。
使用者可以選擇弱點。該使用者接著可以被呈現一機會以看見所選擇弱點之位置及/或一個或多個可能修補。在一範例中,該使用者可輸入程式碼以取代被判定是為一弱點之程式碼。在另一範例中,修補引擎122可以提供可能的修復。在一進一步之範例中,使用者可以被呈現目前之程式碼以及一個或多個可能的修復作為選項。該使用者也可被提供改變程式碼之能力。修補引擎122係可以使用以基於所選擇的輸入以及所處理之安全資訊(例如,程式碼行資訊)而產生分別的逐點保護。該逐點保護可以是能夠利用一運行期代理器而實行以保護對應至受測試之應用程式的一第二應用程式152。例如,該第二應用程式152可以是目前於生產中或是正投入使用中的一應用程式。在一些範例中,該第二應用程式152以及AUT 142可以是屬於相同版本序號。這可以包含相同版本之應用程式及/或該應用程式之程式碼的一部份。此外,使用之運行期代理器可以是屬於相同版本。
在一些範例中,逐點保護對於一運行期代理器可以是指令形式以截斷第二應用程式之執行並且替代地執行取代程式碼。因此,逐點保護在功能上可以取代應用程式之至少一部份的程式碼。在這範例中,實際應用程式之程式碼不被取代,但是因為應用程式之程式碼不被執行,所以在功能上被取代,但是替代地,運行期代理器替代地執行保護。在一些範例中,逐點保護可以增加將執行的一些程式碼(例如,經由增加一安全檢查)。在一些範例中, 複數個點可能被截斷以保護一弱點。
當達到第二應用程式之一程式碼的一點時,逐點保護之實行可以導致運行期代理器154執行逐點保護,其是與修復相關聯之弱點相關聯的。程式碼之點可以是基於追蹤資訊而判定。如上所述地,當弱點發生時,一堆疊追蹤可以包含AUT之一組活性堆疊框。
在一範例中,逐點保護之實行可以包含增加一安全檢查。藉由這保護型式,在允許特定程式碼執行之前,運行期代理器154可以增加一使用者、一機器之一授權檢查或一些其他型式的分析等等。這可以是基於所添加的程式碼及/或新的程式庫之使用或應用程式目前所使用的程式庫。在一範例中,如果安全檢查失敗,則經由運行期代理器而採取一安全行動。在一範例中,該安全行動可以包含拒絕與弱點相關聯的程式碼之執行。在另一範例中,安全行動可以指示應用程式之一使用者至展示一錯誤之一網頁。
一處理器,例如,適用於指令之取得與執行之中央處理單元(CPU)或微處理機,及/或電子電路係可以組態以進行此處說明之任何模組或引擎的功能性。在某些情節中,指令及/或其他資訊,例如,可能的修補之資料庫,可以包含於記憶體中。輸入/輸出介面可以附加地藉由運算裝置而提供。例如,輸入裝置,例如,一鍵盤、一感測器、一觸控介面、一滑鼠、一麥克風等等可以被採用以接收來自圍繞運算裝置之一環境的輸入。進一步地,一 輸出裝置,例如,一顯示器,可以被採用以呈現資訊至使用者。輸出裝置之範例可包含擴音機、顯示裝置、放大器等等。此外,在某些實施例中,一些構件可以採用以實行此處說明之其他構件的功能性。輸入/輸出裝置,例如,如同網路通訊裝置或無線裝置之通訊裝置也可以考慮為能夠利用輸入/輸出介面之裝置。介面引擎可以使用一個或多個的輸入/輸出介面。
各個模組(未展示出)可以包含,例如,硬體裝置,其包含用以實行此處說明之功能性的電子電路。此外或如一替代者,各模組可以實行作為於運算系統之機器可讀取儲存媒體上編碼的一指令串列並且可藉由處理器而執行。應注意到,在一些實施例中,一些模組是實行作為硬體裝置,而其他模組是實行作為可執行的指令。此外,在某些範例中,運算系統之引擎/模組可以實行於一單一裝置及/或複數個裝置。進一步地,一單一裝置可以利用複數個機器而實行。
通訊網路160可使用有線通訊、無線通訊、或其之組合。進一步地,通訊網路160可以包含複數個子通訊網路,例如,資料網路、無線網路、電話網路等等。此等網路可以包含,例如,一公開資料網路,例如,網際網路、局域性區域網路(LAN)、廣域網路(WAN)、都會區域網路(MAN)、有線電視網路、光纖網路、其之組合、或其類似者。在某些範例中,無線網路可以包含行動電話網路、衛星通訊、無線LAN等等。進一步地,通訊網路160 可以是在裝置之間的直接網路鏈路形式。各種通訊結構和公共建設可以被採用以實行通訊網路。
藉由範例,裝置和系統藉由經由一通訊協定或複數個協定而存取通訊網路160以與彼此以及與其他構件通訊。一協定可以是界定通訊網路160之節點如何與其他節點互動的一組法則。進一步地,在網路節點之間的通訊可以藉由交換資料之離散封包或傳送訊息而實行。封包可以包含與一協定相關聯的標頭資訊(例如,網路節點接觸之位置上的資訊)以及酬載資訊。裝置/系統之網路介面卡可以使用於通訊中。
在一範例中,一網路應用程式是透過一網路(例如,網際網路或一內聯網)而接取的一應用程式。在某些範例中,該網路應用程式可以進行於J2EE應用伺服器上或是一ASP或ASP.NET網路應用程式。所使用之架構可以使用各種型式之特點。在一些範例中,例如,在.NET架構中,標準認證和授權架構可以被使用。授權檢查形成之方法可對於各型式之支援架構被監控。這些檢查可以是有助於確保防禦特定的弱點。
圖2是依據一範例,能夠產生一逐點保護之運算系統的方塊圖,該逐點保護可以利用一運行期代理器而實行。系統200可以包含一掃描器210、一運行期代理器250、一AUT 240、以及一修補引擎260。
AUT 240可以任何適當的網路為基礎之電腦語言(例如,JAVA、或.NET)而編碼。該AUT 240可以操作於 一適當的軟體架構之內,例如,Struts、Struts 2、ASP.NET MVC、Oracle WebLogic、以及Spring MVC。軟體架構包含提供通用功能性之一組共同程式碼模組,其可以選擇地藉由使用者程式碼而置換或特殊化以提供特定功能性。AUT 240可以組態以執行一Java虛擬機器(JVM)、共同語言運行期(CLR)、及/或用以處理來自掃描器210之要求的其他運行期環境之一個或多個實例。藉由軟體架構之共同程式碼模組或運行期環境所提供之程式指令係可以稱為容器碼。特定於AUT 240之訂製程式指令係可以稱為使用者程式碼。在測試期間,掃描器210可以藉由發出HTTP要求以及評估HTTP響應或其之不足而探測AUT 240,以便找出AUT接受其輸入的所有URL。雖然此處討論之範例是針對掃描器210,其也設想到可以使用其他安全測試引擎、模組、及/或技術。如於系統200之展示,HTTP要求可以被使用作為一般使用者而緩慢進行AUT 240的一個或多個網頁以及接收響應。
AUT 240包含用以經過網路而致能在掃描器210和AUT 240之間的通訊之一網路介面(未展示出)。網路介面曝露AUT 240之攻擊表面並且當AUT 240是可供用於一般使用時,其是最後將使用以提供存取AUT 240之相同介面。
透過網路介面在掃描器210和AUT 240之間的通訊可以經過自掃描器210發出至AUT 240之應用程式(例如,經由HTTP)要求以及自AUT 240發出至掃描器210之 HTTP響應而進行。針對AUT 240之要求係可以稱為應用程式要求,以及自AUT 240所接收的響應可以稱為應用程式響應。藉由掃描器210所產生的應用程式要求可以組態以曝露AUT 240之可能的弱點,以響應至藉由AUT 240所提出之測試,或其類似者。
運行期代理器250可以操作於AUT 240之執行環境內並且可存取藉由AUT 240所進行之內部操作。例如,運行期代理器250可以藉由在各種程式點注入附加程式碼(例如,JAVA類)而修改AUT 206之位元組碼。所注入之程式碼作用如同觀察AUT 240之一監視器。所注入之監視程式碼可以置放於AUT 240中之戰略程式點,例如,呼叫進行特定操作之應用程式介面(API)。
在掃描器210和運行期代理器250之間的通訊可以經過訂製要求以及響應標頭之使用而實行。訂製標頭可以藉由掃描器210而添加至應用程式要求,並且訂製標頭可以藉由運行期代理器250而添加至應用程式響應。以此方式,在掃描器210和運行期代理器250之間的至少一些通訊可以是與AUT 240之正常通訊上的豬背式載運法。藉由打開一專用、次要通道、以及增加HTTP標頭而利用一單一通訊通道以消除任何問題通常不會干擾AUT 240之正常操作。
運行期代理器250可以被使用以將資訊提供至掃描器210以便利於AUT 240之測試。掃描器210可以藉由利用服務要求和響應而與運行期代理器250通訊。服務要求 和響應可以使用,例如,訂製標頭而實行。
在一些範例中,當弱點藉由掃描器210而被檢查時,一追蹤要求可以被傳送至運行期代理器250以判定AUT 240之程式碼的哪個部份是與弱點相關聯。運行期代理器250可以提供一追蹤響應以提供弱點之位置(例如,經由追蹤資訊、程式碼行資訊、其之組合等等)。修補引擎260可以使用所發現之弱點以如上所述地判定弱點解決建議以及產生將藉由另一運行期代理器而執行的一虛擬修補。
圖3是依據一範例用以產生能夠利用一運行期代理器而實行之一逐點保護的方法之流程圖。圖4是依據一範例而能夠產生將利用一運行期代理器而實行之一逐點保護的運算裝置之方塊圖。
雖然方法300之執行是將參考運算裝置400在下面被說明,用於方法300之執行的其他適當構件也可被採用(例如,運算裝置110)。附加地,用以執行方法300之構件可以延伸於複數個裝置之間。方法300可以儲存於一機器可讀取儲存媒體(例如,儲存媒體420)上之可執行指令形式、及/或以電子電路形式而實行。在一些範例中,運算裝置400可以包含處理器410以及包含安全測試指令422、通訊指令424、和保護產生指令426之機器可讀取儲存媒體420。
通訊指令424可以執行以傳送和接收資訊。例如,運算裝置400可以接收程式碼以分析和傳送資訊(例 如,程式碼分析、經由一運行期代理器而實行之逐點保護等等)。在一些範例中,一網路應用程式可以被提供以接收程式碼以及提供資訊。所接收之程式碼可以是一受測試應用程式(AUT)之源程式碼或其他格式之程式碼。這可以被編譯以供用於一動態測試。編譯程式碼可以執行於一伺服器上以及藉由運算裝置或另一運算系統而測試。
在302,安全測試指令422可以被實行以進行一安全測試而判定可能的弱點以及關於可能的弱點之分別的程式碼行資訊。這可以是經由,例如,此處說明之利用一運行期代理器及/或利用其他方法之動態分析。程式碼行資訊可以包含程式碼及/或實際程式碼(例如,源程式碼、編譯程式碼等等)之一位置。這可以藉由運行期代理器而提供。其也可包含追蹤資訊。進一步地,追蹤資訊可以藉由與利用AUT執行於一伺服器上之一運行期代理器的通訊而判定。如此處之說明,追蹤資訊可以包含AUT之程式碼的至少一位置。該資訊也可以包含關於一弱點型式之資訊。例如,該資訊可以說弱點是於一特定分類(例如,跨網站腳本攻擊)及/或一個或多個子類別(例如,用於更特定之弱點)。這可以是基於各種型式之分類。
在304,保護產生指令426可以藉由處理器410而被執行以對於所發現的弱點提供弱點解決建議。該弱點解決建議可以對於一個或多個弱點而判定。在一些範例中,該弱點解決建議可以指出其中問題呈現之程式碼中的一位置,以及提供關於弱點之資訊(例如,名稱、分類、等 級、等等)。
在一些範例中,一資料結構或資料庫可以包含對於所辨識之弱點的一個或多個可實行之可能解決方案的一映射(例如,基於弱點之等級或分類)。例如,具有一特定架構之一跨網站腳本攻擊問題可以映射至修復或包含該問題之一個或多個可能的方法。此外,可能解決方案可以優先化。可實行之可能的解決方案可以包含一建議以藉由增加程式碼及/或取代AUT之至少一些程式碼而修復/減輕該問題。
通訊指令424係可以被使用以呈現分別的弱點解決建議。例如,一呈現可以包含一程式碼函數(例如,.in foo.java)、程式碼位置(例如,行20)、弱點/分類型式、建議之修復(例如,應有一附加之檢查)、或其之組合。建議的修復也可以是更特定的(例如,包含哪些型式或檢查型式、包含哪些程式碼等等)。
在306,通訊指令424可以執行以接收對於弱點解決建議之一者的選擇輸入。選擇輸入可以包含一個或多個可實行之可能的解決方案之一選擇及/或所辨識的弱點之一者的選擇。該選擇可提示弱點及/或弱點之可實行解決方案的展示。此外,一提示可以被提供以允許使用者將程式碼輸進入區域中。在一些範例中,弱點可以具有複數個程式碼部份,其被展示並且被允許修復。
在308,保護產生指令426可以執行以基於選擇輸入以及弱點解決建議而產生分別的逐點保護。如上所 述,逐點保護可以是能夠利用一運行期代理器而實行以保護對應至AUT的一第二應用程式。在一些範例中,該第二應用程式是如AUT之一相同版本。
進一步地,當達到與可能的弱點相關聯之一第二應用程式的一程式碼之一點時,逐點保護之實行可導致運行期代理器以執行逐點保護。此外,逐點保護之實行可以包含增加一安全檢查。響應於可能的弱點之呈現,安全檢查可以被選擇及/或添加。在一範例中,逐點保護之實行在功能上取代第二應用程式之程式碼的至少部份並且藉由運行期代理器而執行保護程式碼。
所產生之保護可以包含關於運行期代理器要做什麼以及何時之指令。例如,當達到一特定點時,該保護可以指示運行期代理器斷裂應用程式之程式碼執行並且進行一虛擬修補(例如,保護)。一終端機構也可以被使用。例如,如果一附加檢查被實行,如果附加檢查是成功,則程式碼可返回至它斷裂的點。如果該附加檢查是不成功,則可採取另一行動,例如,毀掉應用程式之執行、停止應用程式、返回一未經授權或其他錯誤、告知該檢查及繼續等等。
運算裝置400包含,例如,處理器410,以及機器可讀取儲存媒體420,其包含用以產生能夠利用一運行期代理器而執行之一逐點保護的指令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)、以及其類似者。因而,該機器可讀取儲存媒體可以是非暫態的。如此處之詳細說明,該機器可讀取儲存媒體420可以藉由一序列之可執行指令而編碼以供產生可藉由一運行期代理器而執行的一逐點保護。
圖5是依據一範例,用以利用一運行期代理器而進行一安全測試以產生資訊之方法的流程圖,該資訊能夠 被使用以產生利用一運行期代理器而實行之一修補。圖6是依據一範例的運算裝置之方塊圖,該運算裝置能夠利用一運行期代理器經由動態安全程式碼分析而代管一受測試應用程式。
運算裝置600可以利用AUT指令622而代管一AUT。該AUT可以藉由利用運行期代理器指令624執行於一處理器610上之一運行期代理器而執行於一運行期環境中。
如圖2中之詳細說明,AUT可以被測試並且運行期代理器可以提供資訊至正進行之一安全測試(例如,滲透測試)。在502,運行期代理器接收在安全測試期間之一追蹤要求。這要求可以是來自安全測試並且可以是同時為該AUT所使用的一通訊之部份。在504,運行期代理器監視該AUT之執行。該監控可以包含查看AUT正執行之程式碼。追蹤資訊可以包含關於該AUT正執行之程式碼的資訊(例如,在一緩慢進行階段期間及/或在一攻擊階段期間)。此外,追蹤資訊可以是被安全測試所要求並且被傳送至(506)該安全測試。
在一範例中,追蹤資訊包含一堆疊追蹤,其包含當一弱點發現及/或稽核發生時該AUT之一組活性堆疊框。安全測試可以進一步地分類弱點(例如,基於法則)。進一步地,該分類係可以被使用以判定一個或多個可能的修補選項。例如,這可能藉由一資料結構而發生,該資料結構具有包含利用法則所發現的弱點至可能的修補選項或 解決方案的一映射。這可以包含,例如,具有關於弱點之指令、程式碼、及/或更多資訊的映射之一列表。
運算裝置600包含,例如,處理器610、以及包含指令622、624、626之機器可讀取儲存媒體620以供產生能夠利用一運行期代理器而執行之一逐點保護。運算裝置600可以是,例如,一筆記型電腦、一板式運算裝置、一輕便型讀取裝置、一伺服器、一工作站、一行動電話、或能夠提供此處說明之功能性的任何其他運算裝置。
處理器610可以是,至少一中央處理單元(CPU)、至少一半導體為基礎之微處理機、至少一圖形處理單元(GPU)、適用於儲存在機器可讀取儲存媒體620中的指令之取得與執行的其他硬體裝置、或其之組合。例如,處理器610可以包含一晶片上之複數個核心、包含跨越複數個晶片之複數個核心、跨越複數個裝置之複數個核心(例如,如果運算裝置600包含複數個節點裝置的話)、或其之組合。處理器610可以擷取、解碼、以及執行指令622、624、626以實行方法500。作為一替代者或除了取得以及執行指令之外,處理器610可以包含至少一積體電路(IC)、其他控制邏輯、其他電子電路、或包含用以進行指令622、624、626之功能性的一些電子構件之組合。
機器可讀取儲存媒體620可以是包含或儲存可執行指令之任何電子、磁式、光學、或其他實際儲存裝置。因此,機器可讀取儲存媒體可以是,例如,隨機存取記憶體(RAM)、一電氣可消除可程控唯讀記憶體(EEPROM)、 一儲存驅動器、一小型碟片唯讀記憶體(CD-ROM)、以及其類似者。因而,該機器可讀取儲存媒體可以是非暫態的。如此處之詳細說明,該機器可讀取儲存媒體620可以藉由一序列之可執行指令而編碼以供產生可藉由一運行期代理器而執行的一逐點保護。
100‧‧‧系統
110‧‧‧運算裝置
120‧‧‧安全測試引擎
122‧‧‧修補引擎
140‧‧‧伺服器
142‧‧‧受測試應用程式(AUT)
144‧‧‧運行期代理器
150‧‧‧平臺
152‧‧‧應用程式
154‧‧‧運行期代理器
160‧‧‧通訊網路

Claims (15)

  1. 一種系統,其包括:一伺服器,其用以代管一受測試應用程式(AUT),其中該伺服器包含一運行期代理器;以及一運算裝置,其通訊地耦合至該AUT,該運算裝置包含一安全測試引擎與一修補引擎,該安全測試引擎用以:進行在該AUT上之一動態安全分析以判定一弱點,其中該動態安全分析也包含對該運行期代理器之一通訊,以追蹤該動態安全分析中之資訊;並且該修補引擎用以:提供對於該弱點之一弱點解決建議;接收選擇該弱點解決建議之輸入;以及基於能夠利用一第二運行期代理器執行之輸入而產生一逐點保護以減輕該弱點。
  2. 如請求項1之系統,其中該逐點保護之實行包括增加一安全檢查。
  3. 如請求項2之系統,其中如果該安全檢查失敗,則經由該第二運行期代理器而採取一安全行動。
  4. 如請求項1之系統,其進一步地包括:一第二伺服器,其用以代管如該AUT之一相同版本的一第二應用程式並且利用該第二運行期代理器;其中該運算系統是進一步地用以提供該逐點保護 予該第二伺服器;並且其中該第二運行期代理器是用以實行該逐點保護。
  5. 如請求項4之系統,其中該逐點保護之實行導致當達到該第二應用程式之程式碼的一點時,則該第二運行期代理器執行該逐點保護,並且其中該程式碼之點係基於該追蹤資訊而判定。
  6. 如請求項1之系統,其中該追蹤資訊包含與該弱點相關聯之該AUT之該程式碼的一點係並且該安全測試引擎進一步地提供一堆疊追蹤。
  7. 如請求項6之系統,其中當該弱點發生時,該堆疊追蹤包含該AUT之一組活性堆疊框。
  8. 一種儲存指令之非暫態機器可讀取儲存媒體,如果該等指令藉由一運算系統之至少一處理器而執行時,導致該運算系統用以:進行在一受測試應用程式(AUT)上之一動態安全分析測試以判定至少一弱點,其中該安全分析測試包含與藉由該AUT執行之一運行期代理器之通訊以接收該AUT之追蹤資訊;分類該至少一弱點;提供對於該分類之至少一弱點的至少一弱點解決建議;接收該至少一弱點解決建議之一者的一選擇;以及基於該選擇而產生一逐點保護,其中該逐點保護是能夠利用一第二運行期代理器藉由一第二應用程式而 執行。
  9. 如請求項8之非暫態機器可讀取儲存媒體,其中該第二應用程式是如該AUT之一相同版本,並且其中當達到該第二應用程式之程式碼的一點時,該逐點保護導致該第二運行期代理器執行該逐點保護。
  10. 如請求項9之非暫態機器可讀取儲存媒體,其中該程式碼之點係基於該追蹤資訊而判定。
  11. 如請求項8之非暫態機器可讀取儲存媒體,其中該追蹤資訊包含一堆疊追蹤,當該弱點發生時,該堆疊追蹤包含該AUT之一組活性堆疊框。
  12. 一種方法,其包括下列步驟:進行在一受測試應用程式(AUT)上之一動態安全分析測試以判定一弱點,其中該動態安全分析測試包含與藉由該AUT執行之一運行期代理器的通訊以接收該AUT之追蹤資訊,其中該追蹤資訊包含該AUT程式碼之至少一位置;提供對於該弱點之至少一弱點解決建議;接收該至少一弱點解決建議之一者的一選擇;以及基於該選擇而產生一逐點保護,其中該逐點保護是能夠利用一第二運行期代理器藉由一第二應用程式而執行。
  13. 如請求項12之方法,其進一步地包括下列步驟:在該安全測試期間,藉由該運行期代理器而接收一追蹤要求; 藉由該運行期代理器,監控該AUT之執行以判定該追蹤資訊;以及傳送該追蹤資訊至進行該安全測試之一安全測試引擎。
  14. 如請求項13之方法,其中該追蹤資訊包含一堆疊追蹤,當該弱點發生時,該堆疊追蹤包含該AUT之一組活性堆疊框,該方法進一步地包括下列步驟:藉由該安全測試引擎,分類該弱點;以及基於該分類,自一資料結構查詢至少一可能的修補選項。
  15. 如請求項12之方法,進一步地包括下列步驟:其中該逐點保護之實行包含增加一安全檢查,以及其中如果該安全檢查失敗,則經由第二運行期代理器而採取一安全行動。
TW104115574A 2014-05-20 2015-05-15 利用運行期代理器及動態安全分析之應用程式逐點保護技術 TWI575397B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/038854 WO2015178896A1 (en) 2014-05-20 2014-05-20 Point-wise protection of application using runtime agent and dynamic security analysis

Publications (2)

Publication Number Publication Date
TW201610735A TW201610735A (zh) 2016-03-16
TWI575397B true TWI575397B (zh) 2017-03-21

Family

ID=54554425

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104115574A TWI575397B (zh) 2014-05-20 2015-05-15 利用運行期代理器及動態安全分析之應用程式逐點保護技術

Country Status (3)

Country Link
US (1) US10587641B2 (zh)
TW (1) TWI575397B (zh)
WO (1) WO2015178896A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527323B (en) * 2014-06-18 2016-06-15 Ibm Runtime protection of web services
WO2016044308A1 (en) * 2014-09-15 2016-03-24 PerimeterX, Inc. Analyzing client application behavior to detect anomalies and prevent access
US10826928B2 (en) * 2015-07-10 2020-11-03 Reliaquest Holdings, Llc System and method for simulating network security threats and assessing network security
US10419452B2 (en) 2015-07-28 2019-09-17 Sap Se Contextual monitoring and tracking of SSH sessions
US10015178B2 (en) * 2015-07-28 2018-07-03 Sap Se Real-time contextual monitoring intrusion detection and prevention
GB201522315D0 (en) * 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
US10594733B2 (en) 2016-04-06 2020-03-17 Rapid7, Inc System and method for application software security and auditing
US10395040B2 (en) 2016-07-18 2019-08-27 vThreat, Inc. System and method for identifying network security threats and assessing network security
US20190294796A1 (en) * 2018-03-23 2019-09-26 Microsoft Technology Licensing, Llc Resolving anomalies for network applications using code injection
EP3752945B1 (en) * 2018-05-21 2024-09-25 Google LLC Automatic generation of patches for security violations
US10592677B2 (en) * 2018-05-30 2020-03-17 Paypal, Inc. Systems and methods for patching vulnerabilities
CN111240994B (zh) * 2020-01-20 2021-02-19 北京国舜科技股份有限公司 漏洞处理方法、装置、电子设备及可读存储介质
CN111859375B (zh) * 2020-07-20 2023-08-29 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质
US11687658B2 (en) * 2020-10-06 2023-06-27 Capital One Services, Llc Software code vulnerability remediation
TWI774503B (zh) * 2021-08-06 2022-08-11 瑞昱半導體股份有限公司 除錯管理平台與其運作方法
US11936785B1 (en) 2021-12-27 2024-03-19 Wiz, Inc. System and method for encrypted disk inspection utilizing disk cloning techniques
US12081656B1 (en) 2021-12-27 2024-09-03 Wiz, Inc. Techniques for circumventing provider-imposed limitations in snapshot inspection of disks for cybersecurity
US20230336554A1 (en) * 2022-04-13 2023-10-19 Wiz, Inc. Techniques for analyzing external exposure in cloud environments
US12061719B2 (en) 2022-09-28 2024-08-13 Wiz, Inc. System and method for agentless detection of sensitive data in computing environments
US12079328B1 (en) 2022-05-23 2024-09-03 Wiz, Inc. Techniques for inspecting running virtualizations for cybersecurity risks
US12061925B1 (en) 2022-05-26 2024-08-13 Wiz, Inc. Techniques for inspecting managed workloads deployed in a cloud computing environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080083030A1 (en) * 2006-09-29 2008-04-03 Durham David M Method and apparatus for run-time in-memory patching of code from a service processor
US20100205669A1 (en) * 2005-04-18 2010-08-12 Vmware, Inc. O-touch and 1-touch techniques for improving the availability of computer programs under protection without compromising security
TW201224836A (en) * 2010-12-15 2012-06-16 Inst Information Industry Malware detection apparatus, malware detection method and computer program product thereof
TW201413488A (zh) * 2012-09-18 2014-04-01 Univ Kun Shan 以惡意程式特徵分析為基礎之資安風險評估系統

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427234B1 (en) 1998-06-11 2002-07-30 University Of Washington System and method for performing selective dynamic compilation using run-time information
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US20020138748A1 (en) * 2001-03-21 2002-09-26 Hung Andy C. Code checksums for relocatable code
CA2363795A1 (en) * 2001-11-26 2003-05-26 Cloakware Corporation Computer system protection by communication diversity
JP2005530239A (ja) * 2002-06-18 2005-10-06 コンピュータ アソシエイツ シンク,インコーポレイテッド エンタプライズアセットを管理する方法及びシステム
US20040025009A1 (en) * 2002-07-31 2004-02-05 Camber August A. Method and apparatus for acceleration of multimedia content
US20060031938A1 (en) * 2002-10-22 2006-02-09 Unho Choi Integrated emergency response system in information infrastructure and operating method therefor
US20040133386A1 (en) * 2002-12-17 2004-07-08 Swoboda Gary L. Apparatus and method for trace stream identification of a pause point in code execution sequence
CA2465151A1 (en) * 2003-04-16 2004-10-16 Novadigm, Inc. Method and system for patch management
US20050049999A1 (en) * 2003-08-29 2005-03-03 Immo-Gert Birn Database access statement tracing
US8800042B2 (en) 2005-05-16 2014-08-05 Hewlett-Packard Development Company, L.P. Secure web application development and execution environment
US7779399B2 (en) 2005-05-16 2010-08-17 Armorize Technologies, Inc. System and method for securing web application code and verifying correctness of software
US7647637B2 (en) 2005-08-19 2010-01-12 Sun Microsystems, Inc. Computer security technique employing patch with detection and/or characterization mechanism for exploit of patched vulnerability
US20070143851A1 (en) 2005-12-21 2007-06-21 Fiberlink Method and systems for controlling access to computing resources based on known security vulnerabilities
US7845006B2 (en) * 2007-01-23 2010-11-30 International Business Machines Corporation Mitigating malicious exploitation of a vulnerability in a software application by selectively trapping execution along a code path
GB2459629A (en) * 2007-02-16 2009-11-04 Veracode Inc Assessment and analysis of software security flaws
US8392997B2 (en) 2007-03-12 2013-03-05 University Of Southern California Value-adaptive security threat modeling and vulnerability ranking
US8826424B2 (en) 2009-03-27 2014-09-02 Sophos Limited Run-time additive disinfection of malware functions
US8407800B2 (en) 2009-11-24 2013-03-26 Honeywell International Inc. Method for software vulnerability flow analysis, generation of vulnerability-covering code, and multi-generation of functionally-equivalent code
WO2011082380A1 (en) * 2009-12-31 2011-07-07 Fiberlink Communications Corporation Consolidated security application dashboard
US9268945B2 (en) 2010-03-19 2016-02-23 Contrast Security, Llc Detection of vulnerabilities in computer systems
US8359493B2 (en) * 2010-07-29 2013-01-22 Computer Associates Think, Inc. Mechanism to provide assured recovery for distributed application
US8578487B2 (en) * 2010-11-04 2013-11-05 Cylance Inc. System and method for internet security
US8683583B2 (en) 2010-12-02 2014-03-25 Microsoft Corporation Using virtual table protections to prevent the exploitation of object corruption vulnerabilities
US20120255014A1 (en) * 2011-03-29 2012-10-04 Mcafee, Inc. System and method for below-operating system repair of related malware-infected threads and resources
US20130055369A1 (en) 2011-08-24 2013-02-28 Mcafee, Inc. System and method for day-zero authentication of activex controls
EP2575069B1 (en) * 2011-09-30 2016-10-19 Tata Consultancy Services Ltd. Security vulnerability correction
US8997065B2 (en) 2011-12-06 2015-03-31 The Mathworks, Inc. Automatic modularization of source code
EP2831795B1 (en) * 2012-03-30 2019-01-09 Irdeto B.V. Securing accessible systems using variable dependent coding
US9141408B2 (en) * 2012-07-20 2015-09-22 Sonatype, Inc. Method and system for correcting portion of software application
US9680864B2 (en) * 2013-06-18 2017-06-13 Empire Technology Development Llc Remediating rogue applications
US20150007156A1 (en) * 2013-06-26 2015-01-01 Sap Ag Injecting patch code at runtime
US9436565B2 (en) * 2013-07-04 2016-09-06 Altera Corporation Non-intrusive monitoring and control of integrated circuits
US9104878B1 (en) * 2013-12-11 2015-08-11 Appercut Security Ltd. Automated source code scanner for backdoors and other pre-defined patterns
US9411747B2 (en) * 2014-02-04 2016-08-09 Freescale Semiconductor, Inc. Dynamic subroutine stack protection
US9667643B2 (en) 2014-02-20 2017-05-30 Digital Defense Incorporated Apparatus, system, and method for correlating security vulnerabilities from multiple independent vulnerability assessment methods
US10043012B2 (en) 2015-01-30 2018-08-07 Denim Group, Ltd Method of correlating static and dynamic application security testing results for a web application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205669A1 (en) * 2005-04-18 2010-08-12 Vmware, Inc. O-touch and 1-touch techniques for improving the availability of computer programs under protection without compromising security
US20080083030A1 (en) * 2006-09-29 2008-04-03 Durham David M Method and apparatus for run-time in-memory patching of code from a service processor
TW201224836A (en) * 2010-12-15 2012-06-16 Inst Information Industry Malware detection apparatus, malware detection method and computer program product thereof
TW201413488A (zh) * 2012-09-18 2014-04-01 Univ Kun Shan 以惡意程式特徵分析為基礎之資安風險評估系統

Also Published As

Publication number Publication date
WO2015178896A1 (en) 2015-11-26
TW201610735A (zh) 2016-03-16
US10587641B2 (en) 2020-03-10
US20170187743A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
TWI575397B (zh) 利用運行期代理器及動態安全分析之應用程式逐點保護技術
US10489283B2 (en) Software defect reporting
JP5801953B2 (ja) アプリケーションのセキュリティ検査
US8613080B2 (en) Assessment and analysis of software security flaws in virtual machines
CN103699480B (zh) 一种基于java的web动态安全漏洞检测方法
TWI574173B (zh) 決定受測應用程式安全活動之技術
US9438617B2 (en) Application security testing
US11748487B2 (en) Detecting a potential security leak by a microservice
US20170185784A1 (en) Point-wise protection of application using runtime agent
US9846781B2 (en) Unused parameters of application under test
Chester et al. M-perm: A lightweight detector for android permission gaps
Peng et al. {GLeeFuzz}: Fuzzing {WebGL} Through Error Message Guided Mutation
Meng et al. WeMinT: Tainting Sensitive Data Leaks in WeChat Mini-Programs
CN117272308A (zh) 软件安全测试方法、装置、设备、存储介质及程序产品
US10650148B2 (en) Determine protective measure for data that meets criteria
JP5978368B2 (ja) アプリケーションのセキュリティ検査
US20230083977A1 (en) Method and apparatus for identifying a logic defect in an application
CN111625784B (zh) 一种应用的反调试方法、相关装置及存储介质
Chiaramida et al. AppSeer: discovering flawed interactions among Android components
Liu et al. Anatomist: Enhanced Firmware Vulnerability Discovery Based on Program State Abnormality Determination with Whole-System Replay
CN117009994A (zh) 代码检查方法、装置和电子设备
Xue Cross-layer dynamic analysis of Android applications
Pereira Test-As-a-Service Application to Security Testing
CN118590305A (zh) 越权检测方法、装置、电子设备及存储介质
CN113485905A (zh) 数据交易中的测试方法、装置、设备以及计算机存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees