TW201717087A - 偵測虛擬機器或者模擬器的程式規避 - Google Patents

偵測虛擬機器或者模擬器的程式規避 Download PDF

Info

Publication number
TW201717087A
TW201717087A TW105132990A TW105132990A TW201717087A TW 201717087 A TW201717087 A TW 201717087A TW 105132990 A TW105132990 A TW 105132990A TW 105132990 A TW105132990 A TW 105132990A TW 201717087 A TW201717087 A TW 201717087A
Authority
TW
Taiwan
Prior art keywords
program
virtual environment
computing device
executed
attempting
Prior art date
Application number
TW105132990A
Other languages
English (en)
Other versions
TWI735475B (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 TW201717087A publication Critical patent/TW201717087A/zh
Application granted granted Critical
Publication of TWI735475B publication Critical patent/TWI735475B/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/52Monitoring 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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

各種實施例包括在計算設備上實現的用於分析在該計算設備上的虛擬環境內執行的程式的方法。該方法可以包括以下步驟:決定該程式是否正在嘗試偵測是否該程式正在該虛擬環境內被執行;及,回應於決定該程式正在嘗試偵測該程式是否正在該虛擬環境內被執行,在該計算設備的受保護模式內分析該程式。

Description

偵測虛擬機器或者模擬器的程式規避
本發明係關於偵測虛擬機器或者模擬器的程式規避。
包括桌上型電腦、膝上型電腦、平板型電腦和行動計算設備(例如,智慧型電話)的各種計算設備根據儲存在記憶體中的軟體指令執行程式和程序。諸如是惡意軟體的某些程式當在計算設備上執行時執行惡意程式碼。存在各種用於對程式進行偵測和分析以決定彼等程式是否是惡意的方法。
一種對程式進行分析的方法是,在諸如是虛擬機器或者模擬器的計算設備上的虛擬環境內執行程式。虛擬環境提供人造的獨立的環境以用於執行程式。反惡意軟體應用程式或者其他程式分析器可以在虛擬環境內對程式的行為進行觀察和分析以決定該程式是否是惡意的。
然而,某些惡意程式可能經由嘗試偵測程式是否正在虛擬環境內執行來試圖規避虛擬環境測試。例如,程式可能嘗試調用特定函數或者存取指示虛擬操作環境的特定資料結構。若程式偵測到該程式正在虛擬環境內執行,則該程式可以以良性的方式表現,並且因此逃避偵測。當程式在計算設備的正常作業系統內被釋放並且執行時,該程式可以隨後惡意地動作。
各種實施例包括在計算設備上實現的用於分析在該計算設備上的虛擬環境內執行的程式的方法。各種實施例的方法可以包括以下步驟:決定該程式是否正在嘗試偵測該程式是否正在該虛擬環境內被執行。回應於決定該程式正在嘗試偵測該程式是否正在該虛擬環境內被執行,可以在該計算設備的受保護模式內對該程式進行分析。
在某些實施例中,該受保護模式可以是系統管理模式。某些實施例亦可以包括:回應於決定該程式不是正在嘗試偵測該程式是否正在該虛擬環境內被執行,在該虛擬環境內繼續對該程式的分析。
在某些實施例中,決定該程式是否正在嘗試偵測該程式是否正在該虛擬環境內被執行之步驟可以包括以下步驟:監控該程式對該虛擬環境的應用程式設計介面(API)屬性的存取。在某些實施例中,該等API屬性可以包括從由以下各項組成的群組中選擇的至少一個成員:模型專用的暫存器、指令的長度、儲存中斷描述符表暫存器、除錯器函數和用於主機-客機通訊的指令。在某些實施例中,該虛擬環境可以是虛擬機器或者模擬器。
進一步的實施例包括計算設備,該計算設備包括記憶體和處理器,該處理器被配置為具有處理器可執行指令以執行本文中描述的方法的操作。進一步的實施例包括具有儲存在其上的處理器可執行軟體指令的非暫時性處理器可讀取儲存媒體,該等處理器可執行軟體指令被配置為使處理器執行本文中描述的方法的操作。進一步的實施例包括計算設備,該計算設備包括用於執行本文中描述的方法的操作的功能的構件。
將參考附圖詳細描述各種實施例。每當可能時,相同的元件符號將貫穿附圖被用於代表相同或者相似的部分。對特定實例和實現方式作出的參考是出於說明目的的,並且不意欲限制書面的說明書或者請求項的範疇。
如本文中使用的,術語「計算設備」指以下各項中的任意一項或者全部項:蜂巢式電話、智慧型電話、個人或者行動多媒體播放機、個人資料助理、桌上型電腦、膝上型電腦、平板型電腦、伺服器、智慧手錶、智慧書、掌上型電腦、無線電子郵件接收器、多媒體啟用網際網路的蜂巢式電話、無線遊戲控制器和類似的包括可程式設計的處理器和記憶體的個人或者企業電子設備。
計算設備執行為使用者提供多個功能和服務的程式和應用。對計算設備和被提供給使用者的服務的一個威脅是惡意軟體,該惡意軟體指被編寫為執行未經授權的操作(該等未經授權的操作在許多情況下是惡意的)的多種多樣的程式。例如,在計算設備上執行的惡意軟體可以被設計為取得對計算設備的控制、刪除或者污染計算設備上的至關重要的檔案、暗中監視或者追蹤計算設備上的使用者動作、向使用者提供不想要的廣告,或者敲詐或者欺騙使用者付錢或者洩露金融或者個人資訊。因此,進行偵測和保護以防範惡意軟體的方法已接收很多關注。
存在多種用於偵測惡意程式的方法。一種方法是在諸如是虛擬機器或者模擬器的計算設備上的虛擬環境內執行潛在惡意的程式。虛擬環境可以提供與計算設備的正常作業系統類似的獨立環境。程式操作可以在虛擬環境內被分析,以決定程式操作是否展現惡意的行為。然而,存在某些惡意軟體程式取決於該等惡意軟體程式是否正在虛擬環境內被執行而改變該等惡意軟體程式的行為的風險。該等程式可以在虛擬環境中良性地表現,但在正常作業系統環境中惡意地表現。
概括地說,各種實施例提供用於分析在計算設備上的虛擬環境內執行的程式的系統和方法。各種實施例可以包括:決定程式是否正在執行指示該程式正在嘗試偵測該程式是否正在虛擬環境內被執行的操作。回應於決定程式正在嘗試偵測該程式是否正在虛擬環境內被執行,可以在計算設備的受保護模式內對程式進行分析。回應於決定程式不是正在嘗試偵測該程式是否正在虛擬環境內被執行,對程式的分析可以在虛擬環境內繼續。虛擬環境可以是虛擬機器或者模擬器。受保護模式可以是該計算設備或者另一個計算設備上的與其他網路部件及/或敏感資訊隔離的系統管理模式。
用於辨識程式何時正在嘗試偵測該程式是否正在虛擬環境內被執行的方法可以包括以下步驟:監控程式對虛擬環境的應用程式設計介面(API)屬性的存取。被監控的API屬性可以包括以下各項中的至少一項:模型專用的暫存器、指令的長度、儲存中斷描述符表暫存器、除錯器函數和用於主機-客機(host-guest)通訊的指令(例如,用於存取來自輸入/輸出埠的資料的IN/OUT指令和在虛擬環境內對非法操作碼的使用)。
圖1是適用於實現各種實施例的計算設備100的功能方塊圖。計算設備100除了其他設備以外可以是桌上型電腦、膝上型電腦、平板型電腦、任何類型的行動電子設備、伺服器或者任何類型的消費者或者企業電子設備。計算設備100包括用於執行軟體指令的中央處理單元(CPU)102和用於儲存代碼和資料的記憶體104。記憶體104可以是儲存處理器可執行指令的非暫時性電腦可讀取儲存媒體。記憶體104可以儲存作業系統106。
虛擬環境108可以在作業系統106內被建立和執行。虛擬環境108可以是虛擬機器或者模擬器,亦即,虛擬環境108可以用於模擬另一個計算系統的軟體及/或硬體環境和功能。虛擬環境108可以是基於虛擬環境108正在嘗試模擬的計算系統的電腦架構、硬體及/或軟體的。虛擬環境108可以用於多個不同的目的。虛擬環境108的一種用途可以是作為用於對潛在惡意的程式的行為進行分析的測試場地或者人造環境。
計算設備100亦可以包括受保護模式110。受保護模式110可以是計算設備100的特殊模式,該特殊模式當被啟用時暫停作業系統106的操作,或者以其他方式使計算設備與由惡意軟體作出的惡意動作隔離。受保護模式110可以是CPU 102的具有關於計算設備100上的硬體和軟體功能的特殊特權的特定操作模式。受保護模式110可以被實現在計算設備100上的韌體或者硬體輔助的除錯器內。受保護模式110的一個實例是系統管理模式(SMM),SMM可以在特定的CPU晶片集中被提供。SMM可以經由斷言CPU 102上的系統管理中斷(SMI)管腳而被觸發。用於SMM的處理常式(handler)可以被儲存在僅可由SMM存取的特殊記憶體中。
受保護模式110可以用於執行諸如是功率管理或者錯誤處理的特殊任務。受保護模式110是「真實的」計算環境,在於受保護模式110在計算設備100上的實際硬體內執行,而非如在虛擬環境108中一般在模擬的硬體內執行。受保護模式110亦可以提供特定防護措施以防範惡意程式碼,例如,將程式鎖定在高級別存取(例如,根存取)之外。因此,在各種實施例中,受保護模式110可以充當用於潛在的惡意程式的替換的測試環境(特別若該等程式被設計為規避虛擬環境108)。
計算設備100亦可以包括未在圖1中圖示的各種其他的部件。例如,計算設備100可以包括多個輸入、輸出和處理部件,例如,揚聲器、麥克風、數據機、收發機、用戶標識模組(SIM)卡、鍵區、滑鼠、顯示螢幕或者觸控式螢幕、各種連接埠、音訊或者圖形處理器、額外的硬碟和本領域中已知的許多其他部件。
圖2包括圖示使用計算設備上的虛擬環境進行的程式分析的方塊圖200。計算設備可以包括作業系統202。虛擬環境204可以在作業系統202內執行。虛擬環境204可以在作業系統202內提供獨立的計算環境。例如,虛擬環境204可以是模擬另一個計算系統的軟體及/或硬體功能的虛擬機器或者模擬器。虛擬環境204可以用於對程式206進行分析以決定是否程式206是惡意的。在虛擬環境204內被執行的程式206不能夠存取作業系統202或者計算設備的處在虛擬環境之外的其他資源。因此,若程式206是惡意的,則程式206不能夠強佔或者破壞虛擬環境204在其上執行的作業系統202或者計算設備。
虛擬環境204可以包括應用程式設計介面(API)208,API 208被作業系統202用於與虛擬環境204互動和控制虛擬環境204。API 208可以包括多個函數、常式、協定和資料結構。
某些惡意程式(例如,程式206)可以被設計為嘗試探索該等惡意程式正在虛擬機器內還是在作業系統內執行。此種程式可以當在虛擬環境204內執行時良性地表現,並且因此可以規避惡意程式碼偵測。一旦程式被釋放到作業系統202中,程式就可以開始惡意地動作。
惡意程式206可以例如經由嘗試調用API 208中的特定函數或者存取API 208中的特定資料結構來嘗試探索惡意程式206是否正在虛擬環境204內執行。來自所調用的API 208的函數的特定返回值或者API 208的資料結構可以確認程式206正在虛擬環境204內執行。因此,在各種實施例中,虛擬環境204或者作業系統202可以被配置為監控程式206在虛擬環境204內的操作和行為,以決定程式206是否正在調用API 208中的特定函數或者存取API 208中特定資料結構,以嘗試探索程式206是否正在虛擬環境204內執行。存在惡意程式206在企圖偵測虛擬環境時可能執行或者嘗試存取並且虛擬環境204可以被配置為對其進行偵測的若干種類型的函數及/或資料結構。
惡意程式206可能執行並且虛擬環境204可以被配置為對其進行偵測的動作的一個非限制性的實例包括:存取在快速模擬器(QEMU)模擬器上有效但當在實際的計算設備中被調用時返回異常的模型專用的暫存器。
惡意程式206可能執行並且虛擬環境204可以被配置為對其進行偵測的動作的另一個非限制性的實例包括:存取指令的長度。此情形是因為指令的長度在實際的計算設備中將是有限的,但是在虛擬環境中可以是任意長的。
惡意程式206可能執行並且虛擬環境204可以被配置為對其進行偵測的動作的另一個非限制性的實例包括:存取儲存中斷描述符表暫存器。此情形是因為虛擬環境中的基址可以與實際計算設備不同,並且可以超過特定的函數。
惡意程式206可能執行並且虛擬環境204可以被配置為對其進行偵測的動作的另一個非限制性的實例包括:調用除錯器函數。例如,環境204可以被配置為偵測程式何時調用IsDebuggerPresent()或者CheckRemoteDebuggerPresent()。
惡意程式206可能執行並且虛擬環境204可以被配置為對其進行偵測的動作的另一個非限制性的實例包括:執行在主機-客機通訊期間使用的用於從輸入/輸出埠讀或者寫資料的IN或者OUT指令。此種IN或者OUT指令可以涉及從存在於虛擬環境內但當在底層計算設備中被調用時將產生異常的埠位址讀/寫資料。
惡意程式206可能執行並且虛擬環境204可以被配置為對其進行偵測的動作的另一個非限制性的實例包括:在主機-客機通訊期間對執行非法操作碼的嘗試。此情形是因為底層計算設備的錯誤處理常式可以處置對非法操作碼的調用,但虛擬環境可能不具有錯誤處理常式。例如,非法操作碼可以包括未定義的操作碼或者對現有操作碼的非法編碼。何種操作碼是非法的可以取決於特定的虛擬環境204及/或計算設備的硬體或者軟體。
若虛擬環境204偵測到程式正在嘗試偵測該程式是否正在虛擬環境204內執行(亦即,程式正在試圖規避虛擬環境中的測試),則虛擬環境204可以將程式206標記或者標示為規避的程式,並且終止程式206。虛擬環境204或者作業系統202可以隨後用信號通知計算設備,程式206應當在計算設備上的受保護模式內被執行和分析。在圖3中對此進行了說明。
圖3是圖示使用計算設備上的受保護模式進行的程式分析的方塊圖300。計算設備可以包括作業系統302。虛擬環境304可以在作業系統302內操作,以對諸如是程式306的潛在惡意的程式進行分析。如參考圖2描述的一般,虛擬環境304可以偵測到程式306正在嘗試偵測程式306是否正在虛擬環境304內被執行。虛擬環境304可以將程式306標示為規避的,並且終止程式306。計算設備可以隨後啟動諸如是SMM的受保護模式310。受保護模式310可以經由系統中斷(例如,用於SMM的SMI)被觸發。程式306可以在受保護模式310內被重新執行。
受保護模式310亦可以提供用於對程式306進行分析的獨立的環境,但是是基於實際計算設備的環境,而不是對另一個計算設備的模擬。因此,可以被設計為規避虛擬環境304的程式306將不偵測到程式306正在虛擬環境中執行,並且因此將不以被設計為規避受保護模式310的方式表現(亦即,程式306正常地表現,而不是假裝是良性的)。受保護模式310可以防止程式306存取計算設備的至關重要的部分,例如防止根存取。反惡意軟體應用程式或者另一個程式分析器可以在受保護模式310內對程式306進行分析,以決定程式306是否是惡意的。受保護模式310可能利用比虛擬環境304多的計算資源,因此在某些實施例中,僅規避虛擬環境304的程式可以在受保護模式310內被分析。
圖4圖示根據各種實施例的用於分析在計算設備上的虛擬環境內執行的程式的方法400。參考圖1-圖4,方法400可以利用能夠執行虛擬環境(例如,虛擬機器或者模擬器)和受保護模式(例如,SMM)的計算設備(諸如是計算設備100)的處理器(例如,CPU 102等)來實現。
在方塊402中,處理器可以對在計算設備上的虛擬環境內執行的程式進行分析。程式可以是潛在的惡意軟體或者任何其他的未知程式,並且處理器可以正在對程式進行分析以決定該程式是否是惡意的。虛擬環境可以是模擬另一個計算系統的軟體及/或硬體環境的虛擬機器或者模擬器。虛擬環境可以包括被計算設備用於控制虛擬環境和與虛擬環境互動的API。
在方塊404中,處理器可以監控由程式嘗試的對可能洩露虛擬環境的屬性的特定API和資料結構的存取。由程式對存取此種API及/或資料結構屬性作出的嘗試可以指示程式正在嘗試偵測該程式是否正在虛擬環境內被執行。可以在方塊404中被監控的API屬性的一個非限制性的實例是模型專用的暫存器(模型專用的暫存器在快速模擬器(QEMU)模擬器上是有效的,但當在實際計算設備中被調用時返回異常)。可以在方塊404中被監控的API屬性的另一個非限制性的實例是指令的長度(指令的長度在虛擬環境中可以是任意長的)。可以在方塊404中被監控的API屬性的另一個非限制性的實例是儲存中斷描述符表暫存器(基址在虛擬環境中可以是不同的,並且亦可以超過特定的函數)。可以在方塊404中被監控的API屬性的另一個非限制性的實例是除錯器函數(例如,IsDebuggerPresent()或者CheckRemoteDebuggerPresent())。可以在方塊404中被監控的API屬性的另一個非限制性的實例是用於主機-客機通訊的IN/OUT指令。可以在方塊404中被監控的API屬性的另一個非限制性的實例是用於主機-客機通訊的非法操作碼處置。
在決定方塊406中,處理器可以根據被監控的行為來決定程式是否正在嘗試探索該程式是否正在虛擬環境內被執行。例如,處理器可以決定程式正在嘗試存取可能洩露對於虛擬環境來說是唯一的的屬性的被監控的API。
回應於決定程式不是正在嘗試偵測是否該程式正在虛擬環境內被執行(亦即,決定方塊406=「否」),處理器可以在方塊408中繼續在虛擬環境內對程式的分析。亦即,若程式不是正在試圖規避虛擬環境測試,則處理器可以繼續在虛擬環境中對程式進行分析。
回應於決定程式正在嘗試偵測該程式是否正在虛擬環境內被執行(亦即,決定方塊406=「是」),處理器可以在方塊410中終止程式,並且在計算設備上的受保護模式內重新執行並且分析程式。例如,處理器可以標示或者以其他方式標識程式具有規避行為,並且觸發受保護模式。受保護模式可以是計算設備上的SMM,SMM可以使用SMI來觸發。受保護模式可以允許在基於實際計算設備的環境中而不是對另一個計算系統的模擬中的繼續的對程式的分析,但是仍然防止程式存取和破壞計算設備的至關重要的部分。以此種方式,方法400提供了一種用於對規避虛擬環境測試的潛在惡意的程式進行分析的方法。
包括在圖4中圖示的實施例的各種實施例可以在多種多樣的計算設備中的任何計算設備中被實現,在圖5中圖示該計算設備的一個實例(例如,計算設備500)。根據各種實施例,計算設備500可以是與如參考圖1描述的計算設備100類似的。同樣地,計算設備500可以實現圖4中的方法400。
計算設備500可以包括耦合到觸控式螢幕控制器504和內部記憶體506的處理器502。處理器502可以是一或多個被設計為用於通用或者專用處理任務的多核積體電路。內部記憶體506可以是揮發性或者非揮發性記憶體,並且亦可以是安全及/或經加密的記憶體,或者非安全及/或未經加密的記憶體,或者其任意組合。觸控式螢幕控制器504和處理器502亦可以耦合到觸控式螢幕面板512,例如,電阻感測觸控式螢幕、電容感測觸控式螢幕、紅外線感測觸控式螢幕等。額外地,計算設備500的顯示器不需要具有觸控式螢幕能力。
計算設備500可以具有耦合到處理器502和天線510並且被配置為用於發送和接收蜂巢通訊的蜂巢網路收發機508。收發機508和天線510可以與上文提到的電路一起被用於實現各種實施例方法。計算設備500可以包括一或多個耦合到收發機508及/或處理器502並且可以如本文中描述的一般被配置的SIM卡516。計算設備500可以包括使處理器能夠經由蜂巢網路進行通訊的蜂巢網路無線數據機晶片517。
計算設備500亦可以包括用於提供音訊輸出的揚聲器514。計算設備500亦可以包括由塑膠、金屬或者材料的組合構成的用於包含本文中論述的部件中的全部部件或者一些部件的外殼520。計算設備500可以包括耦合到處理器502的諸如是一次性或者可再充電電池的電源522。可再充電電池亦可以耦合到用於從計算設備500外部的源接收充電電流的周邊設備連接埠。計算設備500亦可以包括用於接收使用者輸入的實體按鈕524。計算設備500亦可以包括用於開啟和關閉計算設備500的電源按鈕526。
包括被圖4中圖示的實施例的各種實施例可以在多種多樣的計算設備中的任何計算設備中被實現,在圖6中圖示該計算設備的一個實例(例如,計算設備600)。根據各種實施例,計算設備600可以是與如參考圖1描述的計算設備100類似的。同樣地,計算設備600可以實現圖4中的方法400。
計算設備600(計算設備600可以例如與圖1中的計算設備100相對應)可以包括觸控板觸摸表面617,該觸控板觸摸表面617充當計算設備600的指點設備,並且因此可以接收與配備有觸控式螢幕顯示器的無線設備上實現並且在下文被描述的彼等手勢類似的拖拽、滾動和輕擊手勢。計算設備600將通常包括耦合到揮發性記憶體612和大容量非揮發性記憶體(例如,快閃記憶體的磁碟機613)的處理器611。計算設備600亦可以包括耦合到處理器611的軟碟機614和壓縮光碟(CD)驅動器615。計算設備600亦可以包括多個耦合到處理器611的用於建立資料連接或者接收外部的記憶體設備的連接器埠,例如,通用序列匯流排(USB)或者火線(FireWare)®連接器插座或者其他的用於將處理器611耦合到網路的網路連接電路。在筆記本配置中,設備外殼包括全部皆耦合到處理器611的觸控板617、鍵盤618和顯示器619。計算設備600的其他配置可以包括公知的(例如,經由USB輸入)耦合到處理器的電腦滑鼠或者軌跡球,該等其他配置亦可以結合各種實施例被使用。
前述方法描述和程序流程圖僅作為說明性實例被提供,並且不意欲要求或者暗示各種實施例的操作必須按照所提供的次序來執行。如熟習此項技術者將認識到的,前述實施例中的操作的次序可以按照任何次序被執行。諸如是「之後」、「隨後」、「接下來」等的詞語不意欲限制操作的次序;該等詞語僅用於引導讀者經由對方法的描述。進一步地,任何例如使用冠詞「一」、「一個」或者「該」以單數形式對請求項要素的引用不應當理解為將要素限於單數。
結合本文中揭示的實施例描述的各種說明性邏輯區塊、模組、電路和演算法操作可以被實現為電子硬體、電腦軟體或者此兩者的組合。為清楚地說明硬體和軟體的該可互換性,各種說明性部件、方塊、模組、電路和操作已在上文按照其功能進行了整體描述。此種功能被實現為硬體還是軟體取決於特定的應用和被施加於整體系統的設計約束。技術者可以針對每個特定的應用以變通的方式實現所描述的功能,但此種實現決策不應當理解為導致脫離當前的實施例的範疇。
用於實現結合各種實施例描述的各種說明性邏輯單元、邏輯區塊、模組和電路的硬體可以利用通用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或者其他可程式設計邏輯設備、個別閘門或者電晶體邏輯單元、個別的硬體部件,或者被設計為執行本文中描述的功能的其任意組合來實現或者執行。通用處理器可以是微處理器,但是或者,該處理器可以是任何習知的處理器、控制器、微控制器或者狀態機。處理器亦可以被實現為計算設備的組合,例如DSP與微處理器、複數個微處理器、與DSP核心相結合的一或多個微處理器的組合或者任何其他此種配置。替換地,某些操作或者方法可以由專用於給定的功能的電路來執行。
在一或多個示例性實施例中,所描述的功能可以用硬體、軟體、韌體或者其任意組合來實現。若用軟體來實現,則功能可以作為非暫時性電腦可讀取儲存媒體或者非暫時性處理器可讀取儲存媒體上的一或多個指令或者代碼被儲存。本文中揭示的方法或者演算法的操作可以被包含在處理器可執行軟體模組中,該處理器可執行軟體模組可以位於非暫時性電腦可讀取或者處理器可讀取儲存媒體上。非暫時性電腦可讀取或者處理器可讀取儲存媒體可以是任何可以由電腦或者處理器存取的儲存媒體。作為實例而非限制,此種非暫時性電腦可讀取或者處理器可讀取儲存媒體可以包括RAM、ROM、EEPROM、快閃記憶體、CD-ROM或者其他光碟儲存設備、磁碟儲存設備或者其他磁儲存設備,或者任何其他可以用於以指令或者資料結構的形式儲存期望的程式碼並且可以由電腦存取的媒體。如本文中使用的磁碟和光碟包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地複製資料,而光碟利用鐳射光學地複製資料。以上各項的組合亦被包括在非暫時性電腦可讀取和處理器可讀取媒體的範疇內。額外地,方法或者演算法的操作可以作為代碼及/或指令中的一項或者任意組合或者集合而位於非暫時性處理器可讀取儲存媒體及/或電腦可讀取儲存媒體上,該非暫時性處理器可讀取儲存媒體及/或電腦可讀取儲存媒體可以被併入電腦程式產品。
提供對各種實施例的前述描述以使任何熟習此項技術者能夠製作和使用請求項。對該等實施例的各種修改對於熟習此項技術者將是顯而易見的,並且本文中定義的一般原理可以被應用於一些實施例,而不會脫離請求項的範疇。因此,本案內容不意欲限於本文中展示的實施例,而要符合與下文的請求項和本文中揭示的原理和新穎特徵一致的最寬範疇。
100‧‧‧計算設備
102‧‧‧中央處理單元(CPU)
104‧‧‧記憶體
106‧‧‧作業系統
108‧‧‧虛擬環境
110‧‧‧受保護模式
200‧‧‧方塊圖
202‧‧‧作業系統
204‧‧‧虛擬環境
206‧‧‧程式
208‧‧‧應用程式設計介面(API)
300‧‧‧方塊圖
302‧‧‧作業系統
304‧‧‧虛擬環境
306‧‧‧程式
310‧‧‧受保護模式
400‧‧‧方法
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧決定方塊
408‧‧‧方塊
410‧‧‧方塊
500‧‧‧計算設備
502‧‧‧處理器
504‧‧‧觸控式螢幕控制器
506‧‧‧內部記憶體
08‧‧‧蜂巢網路收發機
510‧‧‧天線
512‧‧‧觸控式螢幕面板
514‧‧‧揚聲器
516‧‧‧SIM卡
517‧‧‧蜂巢網路無線數據機晶片
520‧‧‧外殼
522‧‧‧電源
524‧‧‧實體按鈕
526‧‧‧電源按鈕
600‧‧‧計算設備
611‧‧‧處理器
612‧‧‧揮發性記憶體
613‧‧‧磁碟機
614‧‧‧軟碟機
615‧‧‧壓縮光碟(CD)驅動器
617‧‧‧觸控板
618‧‧‧鍵盤
619‧‧‧顯示器
被併入本文並且構成本說明書的一部分的附圖圖示示例性實施例,並且與上文提供的一般性描述和下文提供的詳細描述一起用於解釋請求項的特徵。
圖1是用於與各種實施例一起使用的計算設備的方塊圖。
圖2是圖示根據各種實施例的在計算設備上的虛擬環境內的程式分析的方塊圖。
圖3是圖示根據各種實施例的在計算設備上的受保護模式內的程式分析的方塊圖。
圖4是圖示根據各種實施例的用於對計算設備上的程式進行分析的方法的程序流程圖。
圖5是適用於實現某些實施例方法的行動計算設備的部件方塊圖。
圖6是適用於實現某些實施例方法的計算設備的部件方塊圖。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
400‧‧‧方法
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧決定方塊
408‧‧‧方塊
410‧‧‧方塊

Claims (24)

  1. 一種用於分析在一計算設備上的一虛擬環境內執行的一程式的方法,包括以下步驟: 決定該程式是否在嘗試偵測該程式是否在該虛擬環境內被執行;及回應於決定該程式在嘗試偵測該程式是否在該虛擬環境內被執行,在該計算設備的一受保護模式內分析該程式。
  2. 根據請求項1之方法,其中該受保護模式是一系統管理模式。
  3. 根據請求項1之方法,亦包括以下步驟:回應於決定該程式不是在嘗試偵測該程式是否在該虛擬環境內被執行,在該虛擬環境內繼續對該程式的分析。
  4. 根據請求項1之方法,其中決定該程式是否在嘗試偵測該程式是否在該虛擬環境內被執行之步驟包括以下步驟: 監控該程式對該虛擬環境的應用程式設計介面(API)屬性的存取。
  5. 根據請求項4之方法,其中該等API屬性包括從由以下各項組成的該群組中選擇的至少一個成員:模型專用的一暫存器、一指令的一長度、一儲存中斷描述符表暫存器、一除錯器函數和用於主機-客機通訊的一指令。
  6. 根據請求項1之方法,其中該虛擬環境包括一虛擬機器或者一模擬器。
  7. 一種計算設備,包括: 一處理器,其被配置為具有用於執行包括以下操作的操作的處理器可執行指令:決定在該計算設備上的一虛擬環境內執行的一程式是否在嘗試偵測該程式是否在該虛擬環境內被執行;及回應於決定該程式在嘗試偵測該程式是否在該虛擬環境內被執行,在該計算設備的一受保護模式內分析該程式。
  8. 根據請求項7之計算設備,其中該受保護模式是一系統管理模式。
  9. 根據請求項7之計算設備,其中該處理器亦被配置為具有用於執行包括以下操作的操作的處理器可執行指令:回應於決定該程式不是在嘗試偵測該程式是否在該虛擬環境內被執行,在該虛擬環境內繼續對該程式的分析。
  10. 根據請求項7之計算設備,其中該處理器被配置為具有處理器可執行指令,以使得決定該程式是否在嘗試偵測該程式是否在該虛擬環境內被執行包括: 監控該程式對該虛擬環境的應用程式設計介面(API)屬性的存取。
  11. 根據請求項10之計算設備,其中該等API屬性包括從由以下各項組成的該群組中選擇的至少一個成員:模型專用的一暫存器、一指令的一長度、一儲存中斷描述符表暫存器、一除錯器函數和用於主機-客機通訊的一指令。
  12. 根據請求項7之計算設備,其中該虛擬環境包括一虛擬機器或者一模擬器。
  13. 一種具有儲存在其上的處理器可執行軟體指令的非暫時性電腦可讀取儲存媒體,該等處理器可執行指令被配置為使一計算設備的一處理器執行包括以下操作的操作: 決定在該計算設備上的一虛擬環境內執行的一程式是否在嘗試偵測該程式是否在該虛擬環境內被執行;及回應於決定該程式在嘗試偵測該程式是否在該虛擬環境內被執行,在該計算設備的一受保護模式內分析該程式。
  14. 根據請求項13之非暫時性電腦可讀取儲存媒體,其中該受保護模式是一系統管理模式。
  15. 根據請求項13之非暫時性電腦可讀取儲存媒體,其中所儲存的該等處理器可執行軟體指令被配置為使該處理器執行亦包括以下操作的操作:回應於決定該程式不是在嘗試偵測該程式是否在該虛擬環境內被執行,在該虛擬環境內繼續對該程式的分析。
  16. 根據請求項13之非暫時性電腦可讀取儲存媒體,其中所儲存的該等處理器可執行軟體指令亦被配置為使該處理器執行操作,以使得決定該程式是否在嘗試偵測該程式是否在該虛擬環境內被執行包括: 監控該程式對該虛擬環境的應用程式設計介面(API)屬性的存取。
  17. 根據請求項16之非暫時性電腦可讀取儲存媒體,其中該等API屬性包括從由以下各項組成的該群組中選擇的至少一個成員:模型專用的一暫存器、一指令的一長度、一儲存中斷描述符表暫存器、一除錯器函數和用於主機-客機通訊的一指令。
  18. 根據請求項13之非暫時性電腦可讀取儲存媒體,其中該虛擬環境包括一虛擬機器或者一模擬器。
  19. 一種計算設備,包括: 用於決定在該計算設備上的一虛擬環境內執行的一程式是否在嘗試偵測該程式是否在該虛擬環境內被執行的構件;及用於回應於決定該程式在嘗試偵測該程式是否在該虛擬環境內被執行而在該計算設備的一受保護模式內分析該程式的構件。
  20. 根據請求項19之計算設備,其中該受保護模式是一系統管理模式。
  21. 根據請求項19之計算設備,亦包括:用於回應於決定該程式不是在嘗試偵測該程式是否在該虛擬環境內被執行而在該虛擬環境內繼續對該程式的分析的構件。
  22. 根據請求項19之計算設備,其中該用於決定該程式是否在嘗試偵測該程式是否在該虛擬環境內被執行的構件包括: 用於監控該程式對該虛擬環境的應用程式設計介面(API)屬性的存取的構件。
  23. 根據請求項22之計算設備,其中該等API屬性包括從由以下各項組成的該群組中選擇的至少一個成員:模型專用的一暫存器、一指令的一長度、一儲存中斷描述符表暫存器、一除錯器函數和用於主機-客機通訊的一指令。
  24. 根據請求項19之計算設備,其中該虛擬環境包括一虛擬機器或者一模擬器。
TW105132990A 2015-11-11 2016-10-13 用於偵測虛擬機器或者模擬器的程式規避的方法、設備和電腦可讀取儲存媒體 TWI735475B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/937,949 2015-11-11
US14/937,949 US9984231B2 (en) 2015-11-11 2015-11-11 Detecting program evasion of virtual machines or emulators

Publications (2)

Publication Number Publication Date
TW201717087A true TW201717087A (zh) 2017-05-16
TWI735475B TWI735475B (zh) 2021-08-11

Family

ID=57223762

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105132990A TWI735475B (zh) 2015-11-11 2016-10-13 用於偵測虛擬機器或者模擬器的程式規避的方法、設備和電腦可讀取儲存媒體

Country Status (7)

Country Link
US (1) US9984231B2 (zh)
EP (1) EP3374920B1 (zh)
JP (1) JP2018534695A (zh)
KR (1) KR20180081726A (zh)
CN (1) CN108351936B (zh)
TW (1) TWI735475B (zh)
WO (1) WO2017083044A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112018012966B1 (pt) * 2015-12-30 2022-07-12 Hill's Pet Nutrition, Inc Composição de alimento para animais de estimação, seu método de formação, e uso de um componente fibroso e de uma fonte de polifenol
US10783239B2 (en) * 2017-08-01 2020-09-22 Pc Matic, Inc. System, method, and apparatus for computer security
US10621348B1 (en) * 2017-08-15 2020-04-14 Ca, Inc. Detecting a malicious application executing in an emulator based on a check made by the malicious application after making an API call
US10546128B2 (en) * 2017-10-06 2020-01-28 International Business Machines Corporation Deactivating evasive malware
TWI650671B (zh) * 2017-10-17 2019-02-11 中華電信股份有限公司 惡意程式分析方法及裝置
US11853425B2 (en) * 2020-10-09 2023-12-26 Sophos Limited Dynamic sandbox scarecrow for malware management
US11934515B2 (en) * 2021-12-02 2024-03-19 Bank Of America Corporation Malware deterrence using computer environment indicators

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697971B1 (en) * 2000-10-24 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for detecting attempts to access data residing outside of allocated memory
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
CN101946466B (zh) * 2007-12-21 2015-01-28 英特尔公司 多个应用的对等流传输和api服务
US8763125B1 (en) * 2008-09-26 2014-06-24 Trend Micro, Inc. Disabling execution of malware having a self-defense mechanism
CN101515320B (zh) * 2009-04-10 2011-08-17 中国科学院软件研究所 一种攻击时漏洞检测方法及其系统
TW201137660A (en) * 2009-12-23 2011-11-01 Ibm Method and system for protecting an operating system against unauthorized modification
US9501644B2 (en) * 2010-03-15 2016-11-22 F-Secure Oyj Malware protection
CN102034050A (zh) * 2011-01-25 2011-04-27 四川大学 基于虚拟机和敏感Native API调用感知的恶意软件动态检测方法
CN102682229B (zh) * 2011-03-11 2015-04-01 北京市国路安信息技术有限公司 一种基于虚拟化技术的恶意代码行为检测方法
US8904537B2 (en) 2011-05-09 2014-12-02 F—Secure Corporation Malware detection
US8826440B2 (en) * 2011-10-19 2014-09-02 Google Inc. Defensive techniques to increase computer security
US9519781B2 (en) 2011-11-03 2016-12-13 Cyphort Inc. Systems and methods for virtualization and emulation assisted malware detection
RU2514141C1 (ru) * 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции
US9104870B1 (en) * 2012-09-28 2015-08-11 Palo Alto Networks, Inc. Detecting malware
JP2014071796A (ja) * 2012-10-01 2014-04-21 Nec Corp マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラム
KR101880796B1 (ko) * 2013-02-10 2018-08-17 페이팔, 인코포레이티드 예측보안 제품을 제공하고 기존의 보안제품을 평가하는 방법과 장치
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization
WO2015029037A2 (en) * 2013-08-27 2015-03-05 MINERVA LABS LTD. No:515155356 Method and system handling malware
US9185128B2 (en) * 2013-08-30 2015-11-10 Bank Of America Corporation Malware analysis methods and systems
US9223964B2 (en) 2013-12-05 2015-12-29 Mcafee, Inc. Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking
US9355246B1 (en) * 2013-12-05 2016-05-31 Trend Micro Inc. Tuning sandbox behavior based on static characteristics of malware
US9294486B1 (en) * 2014-03-05 2016-03-22 Sandia Corporation Malware detection and analysis
US10084813B2 (en) * 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US9992225B2 (en) * 2014-09-12 2018-06-05 Topspin Security Ltd. System and a method for identifying malware network activity using a decoy environment
US9411959B2 (en) * 2014-09-30 2016-08-09 Juniper Networks, Inc. Identifying an evasive malicious object based on a behavior delta
US9413774B1 (en) * 2014-10-27 2016-08-09 Palo Alto Networks, Inc. Dynamic malware analysis of a URL using a browser executed in an instrumented virtual machine environment
US10339300B2 (en) * 2015-03-23 2019-07-02 Binary Guard Corp. Advanced persistent threat and targeted malware defense
US20160357965A1 (en) * 2015-06-04 2016-12-08 Ut Battelle, Llc Automatic clustering of malware variants based on structured control flow
US9703956B1 (en) * 2015-06-08 2017-07-11 Symantec Corporation Systems and methods for categorizing virtual-machine-aware applications for further analysis
US9935972B2 (en) * 2015-06-29 2018-04-03 Fortinet, Inc. Emulator-based malware learning and detection

Also Published As

Publication number Publication date
US20170132411A1 (en) 2017-05-11
EP3374920B1 (en) 2020-04-22
CN108351936B (zh) 2021-11-23
CN108351936A (zh) 2018-07-31
KR20180081726A (ko) 2018-07-17
TWI735475B (zh) 2021-08-11
JP2018534695A (ja) 2018-11-22
US9984231B2 (en) 2018-05-29
EP3374920A1 (en) 2018-09-19
WO2017083044A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
TWI735475B (zh) 用於偵測虛擬機器或者模擬器的程式規避的方法、設備和電腦可讀取儲存媒體
US9507939B1 (en) Systems and methods for batch processing of samples using a bare-metal computer security appliance
JP6842455B2 (ja) 非同期イントロスペクション例外を使用するコンピュータセキュリティシステムおよび方法
US9838405B1 (en) Systems and methods for determining types of malware infections on computing devices
Yin et al. Panorama: capturing system-wide information flow for malware detection and analysis
US9703956B1 (en) Systems and methods for categorizing virtual-machine-aware applications for further analysis
US9852294B1 (en) Systems and methods for detecting suspicious applications based on how entry-point functions are triggered
US10176329B2 (en) Systems and methods for detecting unknown vulnerabilities in computing processes
EP2891104B1 (en) Detecting a malware process
EP3028203A1 (en) Signal tokens indicative of malware
US9679134B1 (en) Systems and methods for detecting display-controlling malware
Mohsen et al. Android keylogging threat
US9552481B1 (en) Systems and methods for monitoring programs
US9311481B1 (en) Systems and methods for classifying package files as trojans
Gong et al. Overlay-based android malware detection at market scales: systematically adapting to the new technological landscape
Kim et al. Large-scale analysis on anti-analysis techniques in real-world malware
US10290033B1 (en) Method, system, and computer-readable medium for warning users about untrustworthy application payment pages
Creutzburg The strange world of keyloggers-an overview, Part I
CN114531294A (zh) 一种网络异常感知方法、装置、终端及存储介质
US9378385B1 (en) Systems and methods for determining whether transmission of sensitive data is expected
Qin et al. MARTINI: Memory Access Traces to Detect Attacks
US9690934B1 (en) Systems and methods for protecting computing devices from imposter accessibility services
Wapet Preventing the release of illegitimate applications on mobile markets
US20210294895A1 (en) Method and system for detecting malware using memory map
Augustine Applying machine learning on linux interprocess communication graphs for intrusion detection

Legal Events

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