TW201721497A - 用以檢測運作時期所產生碼中之惡意碼的系統及方法 - Google Patents

用以檢測運作時期所產生碼中之惡意碼的系統及方法 Download PDF

Info

Publication number
TW201721497A
TW201721497A TW105128921A TW105128921A TW201721497A TW 201721497 A TW201721497 A TW 201721497A TW 105128921 A TW105128921 A TW 105128921A TW 105128921 A TW105128921 A TW 105128921A TW 201721497 A TW201721497 A TW 201721497A
Authority
TW
Taiwan
Prior art keywords
code
generated during
signature
memory
code generated
Prior art date
Application number
TW105128921A
Other languages
English (en)
Other versions
TWI791418B (zh
Inventor
亞迪 雅洛
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 TW201721497A publication Critical patent/TW201721497A/zh
Application granted granted Critical
Publication of TWI791418B publication Critical patent/TWI791418B/zh

Links

Classifications

    • 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/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

根據本發明之一些實施例之一態樣,提供一種用於檢測在一電腦內執行之運作時期所產生碼內之惡意碼的電腦實施方法,其包含在該電腦之一處理器上執行以下動作:接收在一電腦之一記憶體中運作時期所產生碼的新建及執行中之至少一者的一指示;識別與該運作時期所產生碼相關聯之簽章資料與表示新建該運作時期所產生碼之經授權源新建模組之多個範本的一範本簽章之間的一匹配,該等範本儲存於一儲存裝置上之一儲存庫中;以及在未發現匹配時觸發一安全程序以處置該運作時期所產生碼中之惡意碼。

Description

用以檢測運作時期所產生碼中之惡意碼的系統及方法
發明領域 在本發明的一些實施例中,本發明係關於檢測惡意碼,且具體而言但非排他地,係關於檢測運作時期所產生碼中之惡意碼。
發明背景 與自儲存於儲存裝置(例如,硬碟機)上之可執行檔案載入至記憶體(例如,隨機存取記憶體(RAM))以供處理器執行之執行程式的碼形成對比,可在運作時期期間產生碼。舉例而言,運作時期所產生碼可由及時(JIT)編譯器新建,JIT編譯器將原始碼或位元組碼編譯成機器碼且在運作時期期間執行該機器碼。
運作時期所產生碼可為良性的,或可由惡意碼(例如,惡意軟體及外殼碼(shellcode))使用。可在運作時期產生惡意碼以幫助規避檢測,例如,使運作時期所產生碼與檔案(例如,儲存於硬碟上)解除關聯以防止安全程式識別源檔案、將碼插入至其他程序中及使其自身碼在記憶體中變形以避免基於簽章之檢測。
發明概要 根據本發明之一些實施例之一態樣,提供一種用於檢測在一電腦內執行之運作時期所產生碼內之惡意碼的電腦實施方法,其包含在該電腦之一處理器上執行以下動作:接收在一電腦之一記憶體中運作時期所產生碼的新建及執行中之至少一者的一指示;識別與該運作時期所產生碼相關聯之簽章資料與表示新建該運作時期所產生碼之經授權源新建模組之多個範本的一範本簽章之間的一匹配,該等範本儲存於一儲存裝置上之一儲存庫中;以及在未發現匹配時觸發一安全程序以處置該運作時期所產生碼中之惡意碼。
視情況,該範本簽章表示一經授權及時(JIT)編譯器。
視情況,識別該簽章資料與該範本簽章之間的該匹配包含以下操作中之至少一者:識別由該運作時期所產生碼呼叫以調用一作業系統函式之一第一可執行模組與表示該經授權JIT編譯器之該範本之間的一關聯;以及識別新建該運作時期所產生碼之一第二可執行模組與表示該經授權JIT編譯器之該範本之間的一關聯。
視情況,該簽章資料包含儲存該運作時期所產生碼之該記憶體中之一區域的一預定義大小。替代或另外地,該簽章資料包含將儲存該運作時期所產生碼之一記憶體區指定為唯讀或無存取的一指定。替代或另外地,該簽章資料包含至少一個碼型樣。
視情況,其中該至少一個碼型樣包括選自由以下組成之群的至少一個成員:該運作時期所產生碼之至少一個函式之一開始區處的至少一個預定義初構(prolog);至少一個結尾(epilogue);以及至少一個魔法運算元值(magic operand value)。
替代或另外地,該簽章資料包含與該JIT編譯器有關之預定義控制結構,該等預定義控制結構在該運作時期所產生碼之一開始區及一結束區中的至少一者處。
視情況,該等預定義控制結構包括以下各者中之至少一者:各自儲存該運作時期所產生碼之一部分的多個不同記憶體區中之每一者處的一連結清單;以及定義位於各別連結清單之後的各別記憶體區之大小及位址的欄位。視情況,藉由遍歷每一記憶體區之指標而校驗該連結清單,且藉由使該等欄位之值與作業系統值相關而校驗該等欄位。
替代或另外地,該簽章資料包含與該運作時期所產生碼相關聯之一應用程式,該經授權JIT編譯器受限於該應用程式。
視情況,該範本簽章表示一經授權攔截引擎。
視情況,該簽章資料包括關於該運作時期所產生碼由一攔截引擎新建的識別資訊,該識別藉由以下操作中之至少一者執行:在一經攔截模組之初構處模擬預先存在的碼以達至(reach)駐留於該經攔截模組外部之外部碼;以及分析與該外部碼有關之堆疊追蹤以藉由將該運作時期所產生碼之位置定位為在該堆疊追蹤中出現在安裝該攔截之經授權攔截引擎可執行碼之前而識別該運作時期所產生碼。
替代或另外地,該簽章資料包括選自由以下組成之群的至少一個成員:駐留有該運作時期所產生碼之記憶體區域的一預定義大小;至少一個碼型樣;至少在該運作時期所產生碼記憶體區之一開始部分及一結束部分中之一者處的預定義控制結構;以及一作業碼簽章,其自藉由將一解譯程式應用於排除可變參數之該運作時期所產生碼獲得的組譯碼而計算得到。
視情況,該至少一個碼型樣包括選自由以下組成之群的至少一個成員:該運作時期所產生碼之至少一個函式之開始區處的至少一個預定義初構;至少一個結尾;以及至少一個魔法運算元值。
視情況,該範本簽章表示一經授權可執行壓縮器。
視情況,該簽章資料包括選自由以下組成之群的至少一個成員:根據經解壓縮可執行檔案之一格式之一記憶體配置的大小;一密碼編譯雜湊函數,其經由可執行檔案結構及碼之不可變部分而計算得到;以及對駐留有該經解壓縮可執行檔案之記憶體頁面的權限。
視情況,該方法進一步包含:藉由根據該經解壓縮可執行檔案之該格式剖析該記憶體配置之內容而校驗在該記憶體配置之基底處的該記憶體之內容係根據該經解壓縮可執行檔案之該格式;以及檢查欄位值為邏輯的且符合該格式。
根據本發明之一些實施例之一態樣,提供一種用於檢測含有惡意碼之運作時期所產生碼的系統,其包含:一記憶體,其用於儲存碼;一儲存裝置,其用於儲存表示新建運作時期所產生碼之經授權源新建模組之範本的一儲存庫;一程式儲存器,其儲存碼;以及一處理器,其耦接至該記憶體、該儲存裝置及該程式儲存器以用於實施該經儲存碼,該經儲存碼包含:用以進行以下操作之經儲存碼:接收在該記憶體中運作時期所產生碼的新建及執行中之至少一者的一指示;識別與該運作時期所產生碼相關聯之簽章資料與該儲存庫之一範本簽章之間的一匹配;以及在未發現匹配時觸發一安全程序以處置該運作時期所產生碼中之惡意碼。
根據本發明之一些實施例之一態樣,提供一種電腦程式產品,其包含上面儲存有程式碼以供一系統之一處理器實施以檢測含有惡意碼之運作時期所產生碼的一非暫時性電腦可讀儲存媒體,該程式碼包含:用以接收在一電腦之一記憶體中運作時期所產生碼的新建及執行中之至少一者的一指示之指令;用以識別與該運作時期所產生碼相關聯之簽章資料與表示新建運作時期所產生碼之經授權源新建模組之一組範本的一範本簽章之間的一匹配之指令;以及用以在未發現匹配時觸發一安全程序以處置該運作時期所產生碼中之惡意碼的指令。
除非另外定義,否則本文中所使用之所有技術及/或科學術語具有與本發明所屬領域之一般熟習此項技術者通常所理解相同的含義。儘管與本文中所描述之方法及材料類似或等效的材料及方法可用於本發明之實施例的實踐或測試中,但下文描述例示性方法及/或材料。在衝突之情況下,將以專利說明書(包括定義)為準。另外,材料、方法及實例僅為說明性的且並不意欲為必定限制性的。
較佳實施例之詳細說明 在本發明的一些實施例中,本發明係關於檢測惡意碼,且具體而言但非排他地,係關於檢測運作時期所產生碼中之惡意碼。
本發明之一些實施例之一態樣係關於可由處理器執行之碼,該碼檢測儲存於實體記憶體(例如,隨機存取記憶體(RAM))中且可由處理器實施之運作時期所產生碼內的惡意碼(例如,惡意軟體、外殼碼及其他惡意碼)。
視情況,藉由排除檢測惡意碼。識別與運作時期所產生碼相關聯之簽章資料與表示新建運作時期所產生碼之經授權(亦即,安全及/或所允許的)模組之一組範本的範本簽章之間的匹配。當發現匹配(例如,範本出現在表示經授權源新建模組之白名單內)時,運作時期所產生碼被推測為安全的。當未發現匹配時,運作時期所產生碼可被推測為惡意的。視情況,回應於缺少匹配而觸發安全程序(例如,用以移除惡意碼之程式)以處置惡意碼。以此方式,本文中所描述之系統及/或方法改良了識別電腦之記憶體內的含有惡意碼之運作時期所產生碼的能力。
視情況,藉由識別與表示作為運作時期編譯程序之部分而新建運作時期所產生碼的經授權及時(JIT)編譯器(例如,JAVA®、DOTNETTM 及JavaScript®引擎)之範本簽章的匹配而排除運作時期所產生碼內之惡意碼的存在。以此方式,運作時期所產生碼被推測為由經授權編譯器產生之經編譯指令。
替代地,藉由識別與表示經授權攔截引擎之範本簽章的匹配而排除運作時期所產生碼內之惡意碼的存在。此類攔截引擎可新建運作時期所產生碼以更改程式行為,例如,防病毒及其他安全應用程式。以此方式,運作時期所產生碼被推測為安全及/或所允許的攔截引擎之新建物。
替代地,藉由識別與表示解壓縮碼且執行經解壓縮碼之經授權可執行壓縮器(亦即,有時被稱為軟體封裝器)之範本簽章的匹配而排除運作時期所產生碼內之惡意碼的存在。可由軟體封裝器使用所新建及/或正執行的運作時期所產生碼以將經壓縮可執行檔案映射至記憶體位置中而非使用及/或不使用作業系統載入程式。
視情況,與運作時期所產生碼相關聯之用於與範本匹配的簽章資料可包括(例如)以下各者中之一或多者:用於儲存運作時期所產生碼之預定義記憶體大小,運作時期所產生碼內之預定義碼型樣(例如,唯一的初構、結尾及魔法運算元值);以及與儲存運作時期所產生碼之記憶體區(例如,頁面)相關聯的經指派權限。
應注意,簽章資料與範本之間的匹配可為完全的(亦即,100%匹配),或部分的(亦即,小於100%匹配),例如,相關值。可(例如)根據概率臨限值使用小於完全相關及/或部分匹配。舉例而言,與70%的概率值相關聯且大於50%之臨限值的與範本的部分匹配可觸發安全程序。
在詳細解釋本發明的至少一個實施例之前,應理解,本發明之應用未必限於以下描述中所闡述及/或圖式及/或實例中所說明之組件及/或方法之建構及配置的細節。本發明能夠具有其他實施例或能夠以各種方式來實踐或進行。
本發明可為系統、方法及/或電腦程式產品。電腦程式產品可包括電腦可讀儲存媒體(或媒體),其上具有電腦可讀程式指令以用於致使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保持及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為(例如但不限於)電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例之非詳盡清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶卡、軟磁碟、及前述各者之任何合適組合。如本文中所使用,不將電腦可讀儲存媒體本身解釋為暫時信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖纜線傳遞之光脈衝),或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別計算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸電纜、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一計算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別計算/處理裝置內之電腦可讀儲存媒體中。
用於進行本發明之操作的電腦可讀程式指令可為組譯程式指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料或以一或多種程式設計語言之任何組合撰寫的原始碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言及諸如「C」程式設計語言或類似程式設計語言之習知程序程式設計語言。電腦可讀程式指令可完全在使用者之電腦上、部分地在使用者之電腦上、作為獨立軟體套件、部分地在使用者之電腦上且部分地在遠端電腦上,或完全在遠端電腦或伺服器上執行。在後一情境中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可(例如,經由使用網際網路服務提供者之網際網路)連接至外部電腦。在一些實施例中,電子電路(包括(例如)可程式化邏輯電路、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA))可藉由利用電腦可讀程式指令之狀態資訊個人化電子電路而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參看根據本發明之實施例之方法、設備(系統)及電腦程式產品的流程圖說明及/或方塊圖描述本發明之態樣。將理解,可由電腦可讀程式指令實施流程圖說明及/或方塊圖之每一區塊及流程圖說明及/或方塊圖中之區塊的組合。
此等電腦可讀程式指令可提供至通用電腦、專用電腦或其他可程式化資料處理裝置之處理器以產生機器,使得經由電腦或其他可程式化資料處理設備之處理器執行的指令新建用於實施流程圖及/或方塊圖區塊中所指定之功能/動作的手段。此等電腦可讀程式指令亦可儲存於電腦可讀儲存媒體中,該等電腦可讀程式指令可引導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施流程圖及/或方塊圖區塊中所指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以致使一系列操作步驟在電腦、其他可程式化設備或其他裝置上執行以產生電腦實施程序,使得在電腦、其他可程式化設備或其他裝置上執行之指令實施流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、區段或部分,其包含用於實施經指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所提及之功能可不按諸圖中所提及之次序發生。舉例而言,取決於所涉及之功能性,連續展示之兩個區塊實際上可實質上同時執行,或該等區塊有時可按相反次序執行。亦將注意,可由執行經指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之每一區塊及方塊圖及/或流程圖說明中之區塊的組合。
現參看圖1,圖1為根據本發明之一些實施例之用於檢測運作時期所產生碼內之惡意碼的電腦實施方法之流程圖。亦參看圖2,圖2為根據本發明之一些實施例之自動識別與運作時期所產生碼相關聯之簽章資料與範本簽章之間的匹配以將運作時期所產生碼識別為惡意碼及/或排除運作時期所產生碼包括惡意碼的系統之組件之方塊圖。圖1之方法可由圖2之系統實施。
本文中所描述之系統及/或方法係關於識別在電腦之記憶體上執行的運作時期所產生碼內含有之惡意碼的技術問題。本文中所描述之系統及/或方法係關於用於識別儲存於電腦之記憶體上且由電腦之處理器實施的運作時期所產生碼內所含有之惡意碼的軟體技術。識別到惡意碼可觸發可由處理器執行之程序以移除及/或隔離惡意碼。因而,本文中所描述之系統及/或方法與電腦技術密不可分。本文中所描述之系統及/或方法可藉由識別惡意碼(此允許阻擋、移除及/或隔離碼,從而減少及/或防止對電腦的損壞(例如,歸因於惡意碼利用現有處理及/或記憶體資源))而改良電腦之效能(例如,改良處理器及/或記憶體利用)。
系統200包括一或多個記憶體結構202,例如隨機存取記憶體(RAM)、主級儲存裝置、主記憶體、內部記憶體、虛擬記憶體(例如,存取次級儲存裝置)及/或其他實體記憶體結構(該等記憶體結構可抽象地連結在一起)。
與記憶體202通信之一或多個處理器204可直接存取記憶體202,處理器204實施儲存於記憶體202內之指令(例如,作為機器碼)。處理器204可包括(例如)中央處理單元(CPU)、圖形處理單元(GPU)、場可程式化閘陣列(FPGA)、數位信號處理器(DSP)及特殊應用積體電路(ASIC)。處理器204 (均質或非均質)可經配置作為叢集及/或作為一或多個多核心處理單元以用於並行處理,或可獨立於彼此。
記憶體202及處理器204可實施為一或多個計算單元206,例如個人電腦、行動裝置(例如,智慧型手機、平板電腦)、可穿戴式裝置(例如,計算眼鏡、計算手錶)及/或伺服器。
計算單元206可包括儲存可由處理器204實施之碼的程式儲存器208及/或與程式儲存器208相關聯。程式儲存器208可由記憶體202實施及/或可由次級儲存裝置210實施,次級儲存裝置210儲存不直接可用於處理器204之指令(亦即,需要載入至記憶體202中以用於實施),例如儲存裝置,例如非依電性記憶體、磁性媒體、半導體記憶體裝置、硬碟機、可移除式儲存裝置及光學媒體(例如,DVD、CD-ROM)。用以實施圖1之方法的指令可作為碼儲存於程式儲存器208中。
計算單元206可包括用以與外部裝置及/或組件(例如,網路、伺服器、另一電腦、儲存裝置及/或其他裝置及/或組件)通信之一或多個資料通信介面212。舉例而言,計算單元206可存取遠端伺服器214 (例如,經由網路)以下載用於檢測經授權運作時期所產生碼(如本文中所描述)之新簽章及/或經更新之經授權源新建模組的白名單。
計算單元206可包括實體使用者介面216,例如以下各者中之一或多者:顯示器、觸控式螢幕、鍵盤、滑鼠及語音啟動介面。可使用螢幕(亦即,介面216)將檢測到的惡意碼之指示顯示給使用者。使用者可選擇對檢測到的惡意碼執行進一步動作,例如,執行惡意碼移除程序。
圖1之方法之區塊可表示為儲存於程式儲存器208中、可由處理單元204實施之碼中的指令。
在102處,由處理單元204接收在計算裝置206之記憶體202中運作時期所產生碼的新建及/或執行的指示(例如,信號、內部訊息、網路訊息)。
可自監視及/或識別運作時期所產生碼之新建及/或執行的碼(例如,監視模組)接收該指示。可由儲存於程式儲存器208中、可由處理器204實施之碼(例如,監視模組208A)執行監視。
以下例示性方法可用於檢測運作時期所產生碼之新建及/或執行。所描述方法並不意欲必定為限制性的,因為可使用其他方法。舉例而言,可作為堆疊追蹤程序之部分而檢測運作時期所產生碼。舉例而言,當程序嘗試新建新的連接時,監視模組208A查核堆疊且識別與連接建立相關聯之所有碼。每當檢測到與檔案不相關聯之碼時,進行對惡意運作時期所產生碼之檢查。在另一實例中,藉由監視將資料更改成碼或新建新的可執行記憶內容之作業系統函式而檢測運作時期所產生碼之新建。可使用處理器特定特徵(例如,分支追蹤)來檢測運作時期所產生碼之執行。
可為良性模組(亦即,經授權、安全及/或所允許的程序)或惡意模組之源新建模組218產生運作時期所產生碼220。所新建之運作時期所產生碼可為良性的(亦即,經授權、安全及/或所允許的程序),或可包括惡意碼222 (例如,經設計以執行惡意動作(例如,損壞電腦、降低電腦之效能、竊取資訊及/或允許遠端使用者控制電腦)之碼)。
如本文中所使用,術語源新建模組 意謂與可執行檔案(例如,由應用程式呼叫之作業系統檔案及/或動態連結程式庫(DLL)檔案及/或.EXE檔案)相關聯之碼。該碼可為與可執行檔案相關聯之應用程式的部分。
應注意,可在良性程序之上下文中產生惡意碼。本文中所描述之系統及/或方法可藉由排除指示良性運作時期所產生碼之範本簽章來檢測在良性程序之上下文中惡意碼的產生及/或執行。舉例而言,當未發現與指示良性運作時期所產生碼的範本簽章的匹配時。
在執行源新建模組期間,當前駐留於記憶體202中之源新建模組218 (其可已自儲存裝置210載入)動態地新建運作時期所產生碼。運作時期所產生碼可被新建且儲存(視情況以機器語言)於記憶體202內,準備好由處理器204執行。運作時期所產生碼可被新建且儲存於虛擬記憶體內以供虛擬機執行。
在104處,識別與運作時期所產生碼210相關聯之簽章資料與視情況來自儲存於儲存裝置210上之範本簽章儲存庫210B的範本簽章之間的匹配。範本簽章表示新建運作時期所產生碼之經授權源新建模組。經授權源新建模組之清單可儲存在儲存於儲存裝置210上之儲存庫210A中。可由儲存於程式儲存器208中、可由處理器204實施之碼(例如,分析模組208B)執行識別。
範本可被用作運作時期所產生碼之白名單。當已識別到白名單之成員時,可允許運作時期所產生碼執行(或繼續執行)。當未識別到白名單之成員時,可阻止或防止運作時期所產生碼執行(例如)直至安全程式針對惡意碼之存在評估運作時期所產生碼為止。可(例如)藉由存取遠端伺服器214而獲得及/或更新範本及/或經授權源新建模組。
現參看圖3,圖3為根據本發明之一些實施例之識別運作時期所產生碼之簽章資料與表示經授權源新建模組之範本簽章之間的匹配之方法的流程圖。該方法試圖發現與表示新建運作時期所產生碼之經授權JIT編譯器、攔截引擎及/或可執行壓縮器之範本的匹配。該方法基於運作時期所產生碼自身、與運作時期所產生碼有關之資料、與儲存運作時期所產生碼之記憶體有關的資料及/或其他參數收集簽章資料以試圖將簽章資料與範本匹配。範本可表示某一源新建模組(其可為源新建模組之一般種類中之一類的成員),且/或範本可表示一般種類之源新建模組。可藉由未能發現匹配而識別惡意碼。
在302處,在簽章資料與新建運作時期所產生碼之經授權及時(JIT)編譯器之間識別匹配。在執行程式期間(亦即,在運作時期期間),JIT編譯器動態地執行編譯(例如,對原始碼或位元組碼之編譯)以新建由處理器執行之運作時期所產生碼(例如,以機器可讀格式)。
簽章資料可包括載入於記憶體202中之JIT編譯器之一或多個可執行模組的存在的識別資訊。可執行模組可產生運作時期所產生碼。諸如,在運作時期所產生碼不直接與作業系統互動時,可由運作時期所產生碼呼叫可執行模組及/或JIT編譯器以調用作業系統函式。可執行模組可呼叫運作時期所產生碼。可執行模組之識別資訊可被用作簽章資料以用於與表示相關JIT編譯器之範本匹配。當JIT編譯器包括可執行模組(例如,JIT編譯器與可執行模組相同)時,可執行模組之識別資訊可與表示JIT編譯器之範本匹配。可(例如)藉由校驗在儲存裝置210中存在相關檔案而識別可執行模組,例如,校驗檔案JVM .dll 可被用作簽章來識別與JAVA ® JIT編譯器之關聯。
簽章資料可包括由各別JIT編譯器用於管理經配置以用於儲存運作時期所產生碼的記憶體202之區的預定義記憶體結構。不同JIT編譯器可具有不同預定義記憶體結構。預定義記憶體結構之識別資訊可被用作用於與表示相關JIT編譯器之範本簽章匹配的簽章資料。
簽章資料可包括儲存運作時期所產生碼之記憶體202中之區域的預定義大小。不同JIT編譯器可使用不同預定義大小,例如,恆定碼塊大小可被用作已知使用各別塊大小之JIT編譯器的簽章。舉例而言,dotnetTM JIT編譯器之一些版本使用0×10000大小之碼塊。因此,識別運作時期所產生碼儲存於0×10000大小之塊中可被用作用以與表示dotnetTM JIT編譯器之範本簽章匹配的簽章資料。
簽章資料可關於由各別JIT編譯器產生運作時期所產生碼之機制。不同JIT編譯器可具有用於產生運作時期所產生碼之不同預定義機制。產生運作時期所產生碼之機制的識別資訊可被用作用於與表示相關JIT編譯器之範本簽章匹配的簽章資料。
簽章資料可關於被指定為唯讀或無存取之儲存運作時期所產生碼的一或多個記憶體區。不同JIT編譯器可將儲存運作時期所產生碼之記憶體區指定為唯讀或無存取,例如,作為防止修改新近新建之碼的安全措施。(例如)當不同JIT編譯器使用相同指定時,該指定可被用作用以與表示經授權JIT編譯器之產生種類之範本簽章匹配的簽章資料。舉例而言,JIT編譯器可將記憶體區段(例如,記憶體頁面)之保護設定為唯讀,同時應注意,惡意碼可將其各別運作時期所產生碼指定為可寫。(例如)當某些JIT編譯器使用某些指定時,該指定可被用作用以與表示某一JIT編譯器之範本匹配的簽章資料。舉例而言,V8 JIT編譯器可將運作時期所產生碼之一些頁面之指定設定成無存取。無存取指定可能使得攻擊者(例如,人類或軟體)更難以惡意探索(exploit)碼。
簽章資料可關於一或多個碼型樣,例如,運作時期所產生碼之一或多個函式之開始區處的預定義初構、結尾及/或魔法運算元值。預定義初構可被用作用以與表示新建運作時期所產生碼之經授權JIT編譯器之範本簽章匹配的簽章資料。舉例而言,藉由將魔法 值推入堆疊開始之初構可與某一經授權JIT編譯器相關聯。
簽章資料可關於與JIT編譯器有關之一或多個預定義控制結構。碼結構可位於儲存運作時期所產生碼之記憶體部分的開始區及/或結束區處。預定義控制結構可包括儲存運作時期所產生碼之一部分的不同記憶體區中之每一者處的連結清單。預定義控制結構可包括定義位於各別連結清單之後的各別記憶體區之記憶體大小及/或記憶體位址的欄位。舉例而言,V8TM JIT編譯器使用位於每一各別碼區之基底處的連結清單來連結運作時期所產生碼之碼區。V8TM JIT編譯器之連結清單後接續以下欄位:各別記憶體區之大小、記憶體區之控制旗標、記憶體區開始之位址及記憶體區結束之位址。藉由識別連結清單結構及/或相關欄位中之一或多者,簽章資料可與表示V8TM JIT編譯器之範本簽章匹配。
可藉由使檢測到的值與預定義作業系統值相關而執行對控制結構存在於各別碼區中之驗證。舉例而言,可基於控制結構而檢測碼區之大小,且可將碼區之大小與由作業系統指定之預定義大小相關。在另一實例中,可檢測(例如,自控制結構)每一區之開始及結束位址,且可將該等位址與作業系統組態相關。匹配驗證控制結構。可藉由使用區之間的指標自一個記憶體區遍歷至另一記憶體區而校驗連結清單。可遵循每一指標以校驗指標實際上指向有效碼區且碼之先前指標實際上指回原始碼區。
無法校驗控制結構可表明運作時期所產生碼可包括惡意碼,及/或已由惡意源新建模組新建。
簽章資料可關於已知為與運作時期所產生碼相關聯之應用程式或程序。經授權JIT編譯器可已知為受限於應用程式或程序。舉例而言,基於JaegerMonkey JIT編譯器限制於FirefoxTM 瀏覽器,將FirefoxTM 瀏覽器識別為與運作時期所產生碼相關聯可被用作簽章資料以與將JaegerMonkey JIT編譯器表示為源新建模組之範本簽章匹配。
替代地,在304處,識別簽章資料與表示新建運作時期所產生碼之經授權攔截引擎的範本簽章之間的匹配。經授權攔截引擎可新建運作時期所產生碼,(例如)以修補預先存在的碼以將現有碼的執行重新導向至攔截引擎之碼或由攔截引擎新建之運作時期所產生碼。
簽章資料可包括關於運作時期所產生碼由攔截引擎新建的識別資訊。可藉由在經攔截模組之初構處模擬預先存在的碼而執行識別以判定攔截導向何處,例如,可由在沙箱內執行之虛擬機及/或由碼模擬器模擬碼。模擬及監視碼直至達至駐留於經攔截模組外部之碼為止。外部碼可為由攔截引擎新建之運作時期所產生碼或安裝攔截(例如,攔截引擎)之可執行碼。可(例如)藉由校驗外部碼是否駐留在運作時期所產生碼之位址空間內而判定外部碼為運作時期所產生碼之情況。當外部碼為可執行碼時,可藉由分析堆疊追蹤而校驗可執行碼與運作時期所產生碼之間的關聯。可分析與經攔截函式及/或外部碼有關之堆疊追蹤以藉由在堆疊追蹤中將運作時期所產生碼之參考的位置定位於安裝攔截之經授權攔截引擎可執行碼之前,識別堆疊追蹤中之運作時期所產生碼的參考。
當已發現運作時期所產生碼與攔截引擎相關聯(亦即,由攔截引擎新建)時,簽章資料與表示經授權攔截引擎之範本簽章匹配。匹配可(例如)基於由經授權引擎共用之一或多個性質而判定運作時期所產生碼是否由經授權類別之攔截引擎新建,而不必識別新建運作時期所產生碼之某一攔截引擎。匹配可(例如)基於某一攔截引擎所特有之性質而判定新建碼之某一經授權攔截引擎。
視情況,簽章資料指示經授權攔截引擎或經授權引擎之類別。舉例而言,簽章資料可與儲存於簽章儲存庫210B中之經授權攔截引擎(或引擎之類別)的範本簽章匹配。可(例如)藉由經由網路自伺服器214下載而自動及/或手動擷取簽章儲存庫210B中之範本簽章。伺服器214可提供對簽章的更新。 例示性簽章資料可包括以下各者中之一或多者:
*駐留有運作時期所產生碼之記憶體區域的預定義大小。經授權引擎(作為一類別或個別地)可以預定義碼塊大小(例如,0×1000大小)寫入碼。
*在運作時期所產生碼之一或多個函式開始處的一或多個預定義初構。舉例而言,某一防病毒攔截引擎可在由防病毒攔截引擎新建之運作時期所產生碼的每一塊開始時使用作業碼push MagicValue
*位於儲存運作時期所產生碼之記憶體區之開始區及/或結束區處的一或多個預定義控制結構。舉例而言,連結各自儲存運作時期所產生碼之一部分之不同記憶體區的連結清單。
*使用解譯程式(disassembler program)產生之作業碼簽章。解譯程式可應用於排除可變參數(例如,位址)之運作時期所產生碼的組譯碼。可在已自運作時期所產生碼移除可變參數之後應用解譯程式。
在306處,且簽章資料與表示新建運作時期所產生碼之經授權可執行壓縮器的範本簽章匹配。可執行檔案可與解壓縮碼一同壓縮成單一可執行碼。當執行經壓縮可執行碼時,解壓縮碼解壓縮資料且重建構原始(亦即,壓縮前)程式。解壓縮器可藉由直接將經解壓縮碼映射至記憶體中而直接將經解壓縮碼寫入至記憶體中。
根據與可執行壓縮器相關聯之預定義作業系統格式校驗儲存運作時期所產生碼之記憶體區的內容。每一可執行檔案具有相關聯預定義作業系統格式,當經壓縮檔案被映射至記憶體中時,相關聯預定義作業系統格式存在於記憶體中。根據經解壓縮可執行檔案之格式校驗儲存經解壓縮程式之記憶體配置之基底處的記憶體之內容。可藉由根據經解壓縮可執行檔案之格式剖析記憶體配置之內容而執行校驗。欄位值可被檢查為邏輯的且符合格式。 例示性簽章資料可包括以下各者中之一或多者:
* 根據與可執行壓縮器相關聯之預定義格式經配置以用於儲存運作時期所產生碼(亦即,經解壓縮程式)之記憶體的預定義大小。經授權壓縮器(作為一類別或個別地)可以預定義碼塊大小寫入碼。
* 經由可執行檔案結構及/或碼之不可變部分而計算得到的雜湊函數(視情況為密碼編譯雜湊函數)。由雜湊函數輸出之值可映射至一或多個經授權可執行壓縮器。
*經解壓縮運作時期可執行碼在記憶體中儲存於的記憶體頁面之權限指定。權限指定可指示經授權可執行壓縮器之類別。舉例而言,經新建運作時期所產生碼可被指定為唯讀。
在106處,當在簽章資料與範本簽章之間未發現匹配時,可產生在運作時期所產生碼中存在惡意碼之指示。指示可為(例如)自分析模組至安全程式之內部訊息通信,以觸發安全程式之啟動以針對惡意碼調查運作時期所產生碼。指示可為(例如)在螢幕上顯示給使用者之訊息,該訊息向使用者警示已發現可能的惡意碼。
替代或另外地,當發現與表示經授權源新建模組(例如,大體而言,或某一程序)之範本簽章的匹配時,產生運作時期所產生碼與經授權源新建模組相關聯之指示。指示可為(例如)自一個程序傳達至另一程序之內部訊息,以便允許在運作時期所產生碼已被分析為與經授權源新建模組相關聯時執行運作時期所產生碼(或繼續執行,或防止執行被阻止)。
在108處,當產生在運作時期所產生碼中存在(例如,可能的)惡意碼之指示時,可由碼自動地或由使用者手動地觸發一或多個安全措施(例如,將指示可能有惡意碼之訊息呈現於螢幕上,及詢問使用者是否啟動安全程序)。
安全措施之實例(例如,可由安全應用程式執行,該等安全應用程式例如儲存於程式儲存器208及/或另一儲存裝置上之安全模組208C)包括:阻止進一步執行運作時期所產生碼,刪除運作時期所產生碼及/或相關聯源新建模組,啟動防惡意碼安全程式以移除惡意碼,隔離運作時期所產生碼及/或相關聯源新建模組,及/或防止碼存取記憶體中之其他區域。
作為區塊106之替代,在110處,當在與運作時期所產生碼相關聯之簽章資料與表示經授權源新建模組之範本簽章之間發現匹配時,可新建存在良性碼之指示。如本文中所論述,發現匹配指示運作時期所產生碼與經授權源新建模組相關聯。例如,當控制模組接收到運作時期所產生碼表示良性碼之指示時,可允許繼續進行運作時期所產生碼。可已暫停運作時期所產生碼之執行或監視新建指示的控制模組可恢復運作時期產生碼之執行。替代地,不新建指示,允許執行運作時期所產生碼。
已出於說明之目的呈現本發明之各種實施例之描述,但該描述並不意欲為詳盡的或限於所揭示之實施例。在不脫離所描述實施例之範疇及精神的情況下,一般熟習此項技術者將顯而易見許多修改及變化。本文中所使用之術語經選擇以最佳解釋實施例之原理、實際應用或對市場中發現之技術的技術改良,或使得其他一般熟習此項技術者能夠理解本文中所揭示之實施例。
預期在源於本申請案之專利的有效期期間,將開發許多相關源新建模組、運作時期所產生碼及惡意碼,且詞語源新建模組、運作時期所產生碼及惡意碼之範疇意欲先驗地包括所有此類新型技術。
如本文中所使用,「約」一詞指狰 10%。
詞語「包含」、「包括」、「具有」及其變化形式意謂「包括但不限於」。此詞語涵蓋詞語「由……組成」及「基本上由……組成」。
片語「基本上由……組成」意謂組合物或方法可包括額外成分和/或步驟,但係僅在額外成分和/或步驟並不實質上改變所要主張組合物或方法之基本及新穎特性的情況下。
除非上下文另外清晰規定,否則如本文中所使用,單數形式「一」及「該」包括多個參考物。舉例而言,詞語「化合物」或「至少一種化合物」可包括多種化合物,包括其混合物。
詞語「例示性」在本文中用於意謂「充當實例、例子或說明」。描述為「例示性」之任何實施例未必解釋為比其他實施例優選或有利,及/或排除來自其他實施例之特徵的併入。
詞語「視情況」在本文中用於意謂「在一些實施例中提供且在其他實施例中不提供」。本發明之任何特定實施例可包括多個「視情況選用的」特徵,除非此類特徵相矛盾。
貫穿本申請案,本發明之各種實施例可按範圍格式呈現。應理解,按範圍格式之描述僅為了方便及簡潔起見且不應解釋為對本發明之範疇的固定限制。因此,範圍之描述應被視為已特定揭示所有可能的子範圍以及彼範圍內之個別數值。舉例而言,對諸如1至6之範圍的描述應被視為已具體揭示子範圍,諸如1至3、1至4、1至5、2至4、2至6、3至6等,以及彼範圍內之個別數值,例如1、2、3、4、5及6。不管範圍之廣度如何,此均適用。
每當在本文中指示數值範圍時,該數值範圍意欲包括所指示範圍內之任何引用數字(分數或整數)。片語「在第一指示數字與第二指示數字之間的範圍變化/範圍」及「自第一指示數字至第二指示數字之範圍變化/範圍」可在本文中互換地使用且意欲包括第一指示數字及第二指示數字以及其間之所有分數及整數數字。
應瞭解,本發明的為清楚起見在單獨實施例之上下文中描述的某些特徵亦可以組合形式提供於單一實施例中。相反,本發明為簡潔起見在單一實施例之上下文中描述的各種特徵亦可單獨地或以任何合適的子組合來提供,或提供為適於本發明之任何其他所描述實施例。在各種實施例之上下文中描述的某些特徵並不被視為彼等實施例之基本特徵,除非實施例在無彼等元件之情況下不起作用。
儘管已結合本發明之特定實施例描述本發明,但顯而易見的是,熟習此項技術者將顯而易見許多替代方案、修改及變化。因此,意欲涵蓋屬於所附申請專利範圍之精神及廣泛範疇的所有此類替代方式、修改及變化。
本說明書中所提及之所有公開案、專利及專利申請案在本文中以全文引用之方式併入本說明書中,達到如同每一個別公開案、專利或專利申請案被具體且個別地指示為以引用之方式併入本文中之相同程度。另外,本申請案中對任何參考之引用或識別不應解釋為承認此參考可用作本發明之先前技術。就使用章節標題而言,章節標題不應解釋為必定限制性的。
102、104、106、108、110、302、304、306‧‧‧步驟
200‧‧‧系統
202‧‧‧記憶體
204‧‧‧處理器
206‧‧‧計算單元
208‧‧‧程式儲存器
208A‧‧‧監視模組
208B‧‧‧分析模組
208C‧‧‧安全模組
210‧‧‧儲存裝置
210A‧‧‧儲存庫
210B‧‧‧範本簽章儲存庫
212‧‧‧資料通信介面
214‧‧‧伺服器
216‧‧‧實體使用者介面
218‧‧‧源新建模組
220‧‧‧運作時期所產生碼
222‧‧‧惡意碼
本文中僅藉助於實例參看附圖描述本發明之一些實施例。現特定詳細地參看附圖,應強調,藉助於實例且出於對本發明之實施例之說明性論述的目的展示細節。就此而言,結合圖式進行之描述使如何實踐本發明之實施例對熟習此項技術者顯而易見。
在圖式中: 圖1為根據本發明之一些實施例之用於檢測運作時期所產生碼內之惡意碼的電腦實施方法之流程圖; 圖2為根據本發明之一些實施例之檢測運作時期所產生碼內之惡意碼的系統之組件之方塊圖;且 圖3為根據本發明之一些實施例之識別運作時期所產生碼之簽章資料與表示經授權源新建模組之範本簽章之間的匹配之方法的流程圖。
102、104、106、108、110‧‧‧步驟

Claims (20)

  1. 一種用於檢測在一電腦內執行之運作時期所產生碼內之惡意碼的電腦實施方法,其包含在該電腦之一處理器上執行以下動作: 接收在一電腦之一記憶體中運作時期所產生碼的新建及執行中之至少一者的一指示; 識別與該運作時期所產生碼相關聯之簽章資料與表示新建該運作時期所產生碼之經授權源新建模組之多個範本的一範本簽章之間的一匹配,該等範本儲存於一儲存裝置上之一儲存庫中;以及 在未發現匹配時觸發一安全程序以處置該運作時期所產生碼中之惡意碼。
  2. 如請求項1之方法,其中該範本簽章表示一經授權及時(JIT)編譯器。
  3. 如請求項2之方法,其中識別該簽章資料與該範本簽章之間的該匹配包含以下操作中之至少一者: 識別由該運作時期所產生碼呼叫以調用一作業系統函式之一第一可執行模組與表示該經授權JIT編譯器之該範本之間的一關聯;以及 識別新建該運作時期所產生碼之一第二可執行模組與表示該經授權JIT編譯器之該範本之間的一關聯。
  4. 如請求項2之方法,其中該簽章資料包含儲存該運作時期所產生碼之該記憶體中之一區域的一預定義大小。
  5. 如請求項2之方法,其中該簽章資料包含將儲存該運作時期所產生碼之一記憶體區指定為唯讀或無存取的一指定。
  6. 如請求項2之方法,其中該簽章資料包含至少一個碼型樣。
  7. 如請求項6之方法,其中該至少一個碼型樣包括選自由以下組成之群的至少一個成員:該運作時期所產生碼之至少一個函式之一開始區處的至少一個預定義初構;至少一個結尾;以及至少一個魔法運算元值。
  8. 如請求項2之方法,其中該簽章資料包含與該JIT編譯器有關之預定義控制結構,該等預定義控制結構在該運作時期所產生碼之一開始區及一結束區中的至少一者處。
  9. 如請求項8之方法,其中該等預定義控制結構包括以下各者中之至少一者:各自儲存該運作時期所產生碼之一部分的多個不同記憶體區中之每一者處的一連結清單;以及定義位於各別連結清單之後的各別記憶體區之大小及位址的欄位。
  10. 如請求項9之方法,其中藉由遍歷每一記憶體區之指標而校驗該連結清單,且藉由使該等欄位之值與作業系統值相關而校驗該等欄位。
  11. 如請求項2之方法,其中該簽章資料包含與該運作時期所產生碼相關聯之一應用程式,該經授權JIT編譯器受限於該應用程式。
  12. 如請求項1之方法,其中該範本簽章表示一經授權攔截引擎。
  13. 如請求項12之方法,其中該簽章資料包括關於該運作時期所產生碼由一攔截引擎新建的識別資訊,該識別藉由以下操作中之至少一者執行: 在一經攔截模組之初構處模擬預先存在的碼以達至駐留於該經攔截模組外部之外部碼;以及 分析與該外部碼有關之堆疊追蹤以藉由將該運作時期所產生碼之位置定位為在該堆疊追蹤中出現在安裝該攔截之經授權攔截引擎可執行碼之前而識別該運作時期所產生碼。
  14. 如請求項12之方法,其中該簽章資料包括選自由以下組成之群的至少一個成員:駐留有該運作時期所產生碼之記憶體區域的一預定義大小;至少一個碼型樣;至少在該運作時期所產生碼記憶體區之一開始部分及一結束部分中之一者處的預定義控制結構;以及一作業碼簽章,其自藉由將一解譯程式應用於排除可變參數之該運作時期所產生碼獲得的組譯碼而計算得到。
  15. 如請求項14之方法,其中該至少一個碼型樣包括選自由以下組成之群的至少一個成員:該運作時期所產生碼之至少一個函式之一開始區處的至少一個預定義初構;至少一個結尾;以及至少一個魔法運算元值。
  16. 如請求項1之方法,其中該範本簽章表示一經授權可執行壓縮器。
  17. 如請求項16之方法,其中該簽章資料包括選自由以下組成之群的至少一個成員:根據經解壓縮可執行檔案之一格式之一記憶體配置的大小;一密碼編譯雜湊函數,其經由可執行檔案結構及碼之不可變部分而計算得到;以及對駐留有該經解壓縮可執行檔案之記憶體頁面的權限。
  18. 如請求項17之方法,其進一步包含:藉由根據該經解壓縮可執行檔案之該格式剖析該記憶體配置之內容而校驗在該記憶體配置之基底處的該記憶體之內容係根據該經解壓縮可執行檔案之該格式;以及檢查欄位值為邏輯的且符合該格式。
  19. 一種用於檢測含有惡意碼之運作時期所產生碼的系統,其包含: 一記憶體,其用於儲存碼; 一儲存裝置,其用於儲存表示新建運作時期所產生碼之經授權源新建模組之範本的一儲存庫; 一程式儲存器,其儲存碼;以及 一處理器,其耦接至該記憶體,該儲存裝置及該程式儲存器以用於實施該經儲存碼,該經儲存碼包含: 用以進行以下操作之經儲存碼:接收在該記憶體中運作時期所產生碼的新建及執行中之至少一者的一指示;識別與該運作時期所產生碼相關聯之簽章資料與該儲存庫之一範本簽章之間的一匹配;以及在未發現匹配時觸發一安全程序以處置該運作時期所產生碼中之惡意碼。
  20. 一種電腦程式產品,其包含上面儲存有程式碼以供一系統之一處理器實施以檢測含有惡意碼之運作時期所產生碼的一非暫時性電腦可讀儲存媒體,該程式碼包含: 用以接收在一電腦之一記憶體中運作時期所產生碼的新建及執行中之至少一者的一指示之指令;用以識別與該運作時期所產生碼相關聯之簽章資料與表示新建運作時期所產生碼之經授權源新建模組之一組範本的一範本簽章之間的一匹配之指令;以及 用以在未發現匹配時觸發一安全程序以處置該運作時期所產生碼中之惡意碼的指令。
TW105128921A 2015-12-08 2016-09-07 用以檢測運作時期所產生碼中之惡意碼的系統及方法、與相關電腦程式產品 TWI791418B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562264404P 2015-12-08 2015-12-08
US62/264,404 2015-12-08

Publications (2)

Publication Number Publication Date
TW201721497A true TW201721497A (zh) 2017-06-16
TWI791418B TWI791418B (zh) 2023-02-11

Family

ID=57113519

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105128921A TWI791418B (zh) 2015-12-08 2016-09-07 用以檢測運作時期所產生碼中之惡意碼的系統及方法、與相關電腦程式產品

Country Status (8)

Country Link
US (1) US20170161498A1 (zh)
EP (1) EP3387579A1 (zh)
JP (1) JP6837064B2 (zh)
CA (1) CA3005314A1 (zh)
IL (1) IL259878B (zh)
SG (1) SG11201804085SA (zh)
TW (1) TWI791418B (zh)
WO (1) WO2017098495A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI668592B (zh) * 2017-07-28 2019-08-11 中華電信股份有限公司 Method for automatically determining the malicious degree of Android App by using multiple dimensions

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916448B1 (en) * 2016-01-21 2018-03-13 Trend Micro Incorporated Detection of malicious mobile apps
US10275595B2 (en) * 2016-09-29 2019-04-30 Trap Data Security Ltd. System and method for characterizing malware
US10977368B1 (en) * 2017-12-27 2021-04-13 Ca Technologies, Inc. Detecting malware based on memory allocation patterns
US11238017B2 (en) * 2018-01-30 2022-02-01 Salesforce.Com, Inc. Runtime detector for data corruptions
US11609984B2 (en) * 2018-02-14 2023-03-21 Digital Guardian Llc Systems and methods for determining a likelihood of an existence of malware on an executable
US11481376B2 (en) 2018-06-19 2022-10-25 Salesforce, Inc. Platform for handling data corruptions
US11681804B2 (en) 2020-03-09 2023-06-20 Commvault Systems, Inc. System and method for automatic generation of malware detection traps
CN112199274B (zh) * 2020-09-18 2022-05-03 北京大学 基于V8引擎的JavaScript动态污点跟踪方法及电子装置
US11816484B2 (en) 2020-10-30 2023-11-14 Apple Inc. Hardware verification of dynamically generated code
CN112579094B (zh) * 2020-12-15 2024-05-14 上海赛可出行科技服务有限公司 一种基于模板代码匹配的轻量级热修复方法
EP4254867A3 (en) * 2022-04-01 2023-11-01 Vectra AI, Inc. Method, product, and system for analyzing attack paths in computer network generated using a software representation that embodies network configuration and policy data for security management

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192863A1 (en) * 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US7478431B1 (en) * 2002-08-02 2009-01-13 Symantec Corporation Heuristic detection of computer viruses
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
US8176554B1 (en) * 2008-05-30 2012-05-08 Symantec Corporation Malware detection through symbol whitelisting
US20110191848A1 (en) * 2010-02-03 2011-08-04 Microsoft Corporation Preventing malicious just-in-time spraying attacks
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
CN102819697B (zh) * 2011-12-26 2015-07-22 哈尔滨安天科技股份有限公司 一种基于线程反编译的多平台恶意代码检测方法和系统
TWI528216B (zh) * 2014-04-30 2016-04-01 財團法人資訊工業策進會 隨選檢測惡意程式之方法、電子裝置、及使用者介面

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI668592B (zh) * 2017-07-28 2019-08-11 中華電信股份有限公司 Method for automatically determining the malicious degree of Android App by using multiple dimensions

Also Published As

Publication number Publication date
US20170161498A1 (en) 2017-06-08
CA3005314A1 (en) 2017-06-15
EP3387579A1 (en) 2018-10-17
TWI791418B (zh) 2023-02-11
SG11201804085SA (en) 2018-06-28
IL259878A (en) 2018-07-31
JP2019502197A (ja) 2019-01-24
IL259878B (en) 2021-07-29
JP6837064B2 (ja) 2021-03-03
WO2017098495A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
TWI791418B (zh) 用以檢測運作時期所產生碼中之惡意碼的系統及方法、與相關電腦程式產品
US8850581B2 (en) Identification of malware detection signature candidate code
US20200175166A1 (en) Malicious object detection in a runtime environment
US8806640B2 (en) Program execution integrity verification for a computer system
US20180089430A1 (en) Computer security profiling
US11347887B2 (en) Value-based information flow tracking in software packages
JP6326502B2 (ja) 頻度に基づくレピュテーション
US20090271867A1 (en) Virtual machine to detect malicious code
JP2004517390A (ja) 解析仮想マシン
WO2016135729A1 (en) A method to identify known compilers functions, libraries and objects inside files and data items containing an executable code
CN109255235B (zh) 基于用户态沙箱的移动应用第三方库隔离方法
JP2019502197A5 (zh)
KR102011725B1 (ko) 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치
US8572748B2 (en) Label-based taint analysis
Alfalqi et al. Android platform malware analysis
Wang et al. Binary code retrofitting and hardening using SGX
Wan et al. Defending application cache integrity of android runtime
Groh et al. Free Willy: Prune System Calls to Enhance Software Security
Jia et al. Performing trusted computing actively using isolated security processor
Si et al. ROP-Hunt: Detecting return-oriented programming attacks in applications
Vetter et al. Uncloaking rootkits on mobile devices with a hypervisor-based detector
Cho et al. Mobile application tamper detection scheme using dynamic code injection against repackaging attacks
Hoel Hiding in the Shadows-Towards Understanding Modern UEFI Bootkits
JP5989599B2 (ja) 情報処理装置、および、情報処理方法
Gionta Prevention and detection of memory compromise