TWI464575B - 對應用程式進行透明式檢測的方法及系統,和計算系統 - Google Patents

對應用程式進行透明式檢測的方法及系統,和計算系統 Download PDF

Info

Publication number
TWI464575B
TWI464575B TW100149561A TW100149561A TWI464575B TW I464575 B TWI464575 B TW I464575B TW 100149561 A TW100149561 A TW 100149561A TW 100149561 A TW100149561 A TW 100149561A TW I464575 B TWI464575 B TW I464575B
Authority
TW
Taiwan
Prior art keywords
memory
entity address
primary entity
read
instruction
Prior art date
Application number
TW100149561A
Other languages
English (en)
Other versions
TW201243575A (en
Inventor
Ravi Sahita
David Durham
Prashant Dewan
Manohar R Castelino
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201243575A publication Critical patent/TW201243575A/zh
Application granted granted Critical
Publication of TWI464575B publication Critical patent/TWI464575B/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/54Monitoring 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 adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

對應用程式進行透明式檢測的方法及系統,和計算系統
本揭示與檢測應用程式有關,更具體地與透明地檢測應用程式有關。
許多電子裝置,包括處理器,被組構成執行一或更多個應用程式。電子裝置包括但不限於電腦(例如,桌上型、可攜式、膝上型、平板型、手持式等)及智慧型手機。這些電子裝置可能會經由網路連接到其它電子裝置(包括已知及未知),且易受一些安全威脅。安全威脅例如包括惡意程式(“有毒軟體”)、個資的曝光及/或關鍵性資訊的外洩。有毒軟體可包括病毒應用程式、電子郵件病毒、間諜軟體、被組構成關關閉防毒應用程式的應用程式及/或被組構成模仿網站的應用程式,例如,銀行業務的網站,用來擷取使用者密碼。
已開發出有毒軟體清除軟體及/或硬體構件(也稱為有毒軟體清除引擎)來對付有毒軟體。典型上,有毒軟體清除構件典型上被組構成偵測有毒軟體,並回應偵測的有毒軟體採取動作。這類動作包括但不限於關閉有毒軟體、關閉電子裝置、警告監督程式及/或警告使用者。例如,為了監視非信任應用程式的動作,諸如防毒構件或主機入侵防護構件之類的有毒軟體清除構件可被組構成在某些點“檢測”作業系統(OS)核心。接著,有毒軟體清除構件可 被組構成決定非信任應用程式是否違反有毒軟體清除構件的任何規則。這類的規則違反被組構成用來指示非信任應用程式事實上是有毒軟體。
符合本揭示之方法與設備被組構成允許檢測應用程式,無論該應用程式其本身是否被組構成供檢測用。檢測(instrumenting)被組構成對記憶體掃描器而言為透明的,以致於面對檢測,記憶體掃描器可連續適當地操作。記憶體掃描器可讀取對應於應用程式的實體記憶體位址,與可能出現任何檢測無關。
“檢測”相當於為了監視既有程式之行為而將新的行為引進該程式的能力,例如,為了安全性、除錯、性能及/或測試。有毒軟體清除構件可使用檢測技術來偵測並防止程式中潛在惡意的活動。碼插入(interposition)為一種檢測技術,且包括二進制修補(binary patching)。二進制修補包括可執行碼修改法,該修改被組構成允許有毒軟體清除構件來監視既有程式的行為。例如,二進制修補可被組構成在程式執行期間,將控制從被檢測的應用程式轉移到有毒軟體清除構件。接著,有毒軟體清除程式查核所呼叫之被檢測之應用程式的上下文。“可執行碼”對應於可執行的應用程式或可執行應用程式的部分。
為了檢測既有的應用程式,另一項檢測技術為利用回呼應用程式設計介面(API)。回呼(callback)涉及被當 成引數(argument)傳送給其它可執行碼的可執行碼或可執行碼之片斷。例如,回呼可包括傳送一函式指標當成引數。應用程式編程介面為一個應用程式可使用來存取及使用實施該API之另一個應用程式之服務與資源的一組函式及資料結構定義。當回呼被利用來檢測既有的應用程式的API時,該既有的應用程式提供該回呼的API。不過,並非所有的既有應用程式都提供回呼API,且那些應用程式也可能不提供檢測所有想要之控制點的機會。這可能妨害檢測既有應用程式的能力。
例如,有毒軟體清除構件可啟動被組構成修改或覆寫與目標應用程式或模組相關之可執行碼之指令序列的二進制檢測。在被檢測的應用程式執行之時,經修改的指令序列被組構成致使執行控制轉移給有毒軟體清除構件。接著,有毒軟體清除構件查核被呼叫之應用程式的上下文。接著,有毒軟體清除構件決定被呼叫之應用程式的上下文中是否違反任何規則,其可表示應用程式已被惡意軟體毀損。
修改可執行碼的檢測技術可能會干擾到記憶體掃描器的操作,諸如舊有的記憶體內病毒掃描器。記憶體掃描器可包括硬體或軟體構件,其被組構成讀取實體記憶體並執行實體記憶體之內容與預定之參考的比較。例如,記憶體掃描器可被使用來偵測可能常駐於實體記憶體中的病毒程式。由於被檢測之可執行碼與原始可執行碼不同,被檢測的可執行碼可被記憶體掃描器分類成有毒軟體,且記憶體 掃描器對檢測不太可能具有能見度。
符合本揭示之方法與設備被組構成在主系統實體記憶體中儲存至少部分目標應用程式的兩個版本。一個版本包括原始未經檢測之目標應用程式可執行碼,另一個版本則是包括該目標應用程式可執行碼之經檢測的複製。碼的該等版本係儲存在稱為頁的記憶體區塊中。每一頁具有相關的位址,且頁大小可以為固定或可變的。對於未檢測之目標應用程式可執行碼頁之主實體位址的存取許可被設定成唯讀,且對於經檢測之目標應用程式可執行碼頁,則被設定成唯執行。經檢測的目標應用程式可被執行,及/或未經檢測的目標應用程式則根據存取許可至少部分可被讀取。有各種不同的方法來管理目標可執行碼之兩個版本的存取,如同以下更詳細的描述。
在第一實施例中,視目標應用程式或記憶體掃描工具何者被執行,與虛擬機監視器(VMM)相關的延伸分頁表可被使用來控制對兩個版本的其中之一的存取。客實體位址可被組構成指到原始版本或經檢測的版本。延伸分頁表中的每一個項(entry)包括有與主實體記憶體中之碼頁相關的主實體位址及許可欄位。該許可包括讀取(R)、寫入(W)、及執行(X),以及它們的任意組合。例如,該許可可限制於唯讀(RO)或唯執行(XO)。典型上,該許可可被使用來控制對於實體記憶體中之頁的存取。在本實施例中,與VMM相關的這些許可與分頁錯誤功能性可被使用來確保經檢測之應用程式被執行,及記憶體掃描 器讀取原始的應用程式。
在其它實施例中可實施兩個延伸分頁表。第一個延伸分頁表被組構成指到儲存在主實體記憶體中之原始未經檢測的目標可執行碼(許可被設定成唯讀),及第二個延伸分頁表被組構成指到儲存在主實體記憶體中之目標可執行碼之經檢測的複製(許可被設定成唯執行)。例如,在第二實施例中,記憶體掃描工具可用一或更多個被組構成選擇適當延伸分頁表的指令來予以檢測,以確保經檢測之應用程式被執行,且記憶體掃描器讀取原始應用程式而不使用分頁錯誤功能。在第三實施例中,實施兩個延伸分頁表,與VMM相關的分頁錯誤功能可被使用來確保經檢測之應用程式被執行,且記憶體掃描器讀取原始的應用程式。
第一實施例可使用VMM(也稱為超管理器)來確保適當版本的目標可執行碼被存取,而第二實施例被組構成檢測記憶體掃描工具及使用延伸分頁表來確保記憶體掃描工具讀取目標可執行碼之未經檢測的版本而不調用VMM。第三實施例則使用VMM及複數個延伸分頁表來確保記憶體掃描工具讀取目標碼之未經檢測的版本。好處是任何應用程式中的任何點都可被檢測,且舊有的記憶體掃描器可安全地掃描實體記憶體,而不會回傳主實體記憶體中之被掃描的碼頁與它們預定之參考間的錯誤失配。
系統架構
圖1說明符合本揭示之系統100的一個例示性實施例 。系統100通常包括處理器CPU 102及系統記憶體,例如主實體記憶體104。系統100可包括記憶體管理單元MMU 106及第二儲存器,例如磁碟片108。MMU 106可被組構成管理從CPU 102到記憶體104及/或第二儲存器的記憶體存取請求。
系統100被組構成支援其資源的虛擬化,包括CPU 102與主實體記憶體104。如所知者,虛擬化允許系統資源被多項處理所共享。監督處理(例如,虛擬機監視器(VMM))可管理該共享,並做為一或更多個虛擬機(VM)與主資源(例如,CPU 102與記憶體104)之間的介面。因此,VMM存取及控制系統100,同時每一個VM經由VMM而存取資源並與其它VM共享資源。典型上,每一個VM都不知該資源被共享。
CPU 102可包括複數個用來支援虛擬化的操作模式。例如,CPU 102可包括特權模式(VMx根(VMx root))110與非特權模式(VMx非根(VMx nonroot))112。VMM 120可使用特權模式110,而VM 122a、122b、...、122n可使用非特權模式112。例如,在VMx非根模式112中,複數個VM 122a、122b、...、122n可在複數個虛擬CPU 103a、103b、...、103n上執行。由於虛擬化,某些指令由VM(亦即,VMx非根模式)來予以執行,且某些事件可致使控制轉移給監督程式(supervisor)或VMM(亦即,VMx根模式),例如分頁錯誤,如同本文所描述者。
主實體記憶體104被組構成儲存VMM 120及一或更多個VM 122a、122b、...、122n,其通稱為VM 122。VMM 120可包括一或更多個延伸分頁表132a、132b、...、132k及許可管理員134,如同本文所描述者。每一個延伸分頁表132a、132b、...、132k可具有對應於各個延伸分頁表之基址的對應延伸分頁表基址指標符(EPTP)。VMM 120可包括EPTP暫存器150,其被組構成儲存與被選擇之延伸分頁表(對應於客分頁表)相關的EPTP。
為了易於解釋,在此說明VM。如同熟悉此技術領域之人士所瞭解者,此說明可被應用至系統100中任何一或更多個複數個VM 122a、122b、...、122n。VM 122可包括客作業系統(OS)124及一或更多個應用程式126a、126b、...、126m,其通稱為126。
在非虛擬化系統中,典型上,作業系統管理系統實體記憶體,及實體記憶體之可利用該系統實體記憶體而被複數個應用程式的共享。每一個應用程式可被組構成利用“線性位址空間”,其為應用程式所見之它的記憶體空間。線性位址空間被分割成區塊,此區塊即為碼頁,對應於某數量位元組的可執行碼。碼頁的大小可改變或可被固定。典型上,應用程式並不知道實體記憶體中碼頁的佈局。此允許應用程式被編譯而不須考慮與其碼頁相關的實際實體位址,且允許OS能以對主實體記憶體做最佳利用的方式來在實體記憶體中安置碼頁。OS管理在實體記憶體中配置頁,並進一步管理線性位址空間定址到實體記憶體位址 的轉譯(亦即,映射(mapping))。典型上,映射係使用分頁表來予以實施,其中,線性位址為一進入分頁表的指標符(索引),且每一個分頁表項都包括對應於相關線性位址在實體記憶體中的位址(實體位址)。每一個應用程式可具有相關的分頁表,且OS被組構成管理該分頁表,及執行應用程式進入實體記憶體之每一個可執行碼的佈局。
在虛擬化的系統中,每一個客OS僅管理其各自的客實體記憶體130a、130b、...、130n,其通稱為130。在虛擬化的系統中,每一個客實體記憶體對應於主虛擬記憶體。換言之,客OS所使用的記憶體位址可指到記憶體中的位址,但這些位址可能不是實際的主實體位址。VMM 120管理實際的(主)實體記憶體104及從客實體記憶體130(主虛擬記憶體)到主實體記憶體104的轉譯。換言之,從VM及其相關的客OS來看,VM管理客實體記憶體及應用程式線性位址到客實體記憶體位址的轉譯。從VMM來看,VMM係管理實際的實體記憶體(主實體記憶體104)及從客實體記憶體130a(主虛擬記憶體)到主實體記憶體104的轉譯。
在系統100中,每一個VM 122a、122b、...、122n可包括許多分頁表128a、128b、...、128m,其通稱為128,其中,每一個分頁表128a、128b、...、128m係分別與應用程式126a、126b、...、126m相關聯。分頁表128a、128b、...、128m係由客OS(例如,客OS 124) 所管理,且被組構成提供從應用程式線性位址空間到客實體記憶體的位址轉譯(映射)。VMM 120被組構成將客實體位址轉譯成主實體記憶體位址。
VMM 120利用延伸分頁表132a、132b、...、132k而提供從客實體記憶體130到主實體記憶體104的轉譯。與VM分頁表類似,客實體位址可做為進入延伸分頁表132a、132b、...、132k的指標符(索引),且每一個延伸分頁表項可包括對應的主實體位址。按此方式,應用程式線性位址與客實體記憶體位址之間的位址映射,和客實體位址與主實體位址之間的映射分開。
圖2說明從應用程式線性位址空間到對應之主實體記憶體位址的位址映射。應用程式線性位址可索引進入相關的分頁表202,它的項對應於客實體記憶體位址。此分頁表202由相關的客OS管理。接著,藉由應用程式線性位址所指標的客實體記憶體位址索引進入由許可管理員(例如,圖1中的許可管理員134)管理延伸分頁表204。延伸分頁表204中的項對應於主實體記憶體位址。按此方式,應用程式線性位址具有對應的主實體位址,其中,客OS僅管理映射到客實體位址,及VMM管理從客實體位址到主實體位址的映射。
每一個延伸分頁表項進一步包括用來識別許可的許可欄位(例如,讀取、執行及/或寫入),其可由許可管理員134來管理。許可與實體記憶體中的碼頁相關,且被組構成控制對實體記憶體中之碼頁的存取(例如,藉由存取 的類型)。例如,如果應用程式嘗試讀取其許可被設定成唯執行的碼頁,則會產生讀取分頁錯誤。在另一例中,如果應用程式嘗試執行其許可被設定成唯讀的碼頁,則會產生執行分頁錯誤。分頁錯誤導致控制被從VM及相關的客OS轉移到VMM120及/或許可管理員134。如同本文所描述者,分頁錯誤可被利用來支援應用程式的透明檢測,且同時允許記憶體掃描器的操作。
回頭參閱圖1,VM 122a包括客OS 124及可包括檢測驅動器140和記憶體掃描工具142。檢測驅動器140被組構成例如回應有毒軟體清除構件的操作,藉由修改目標應用程式的可執行碼來檢測目標應用程式(例如,應用程式126a)。記憶體掃描工具142被組構成掃描客實體記憶體,讀取碼頁,並比較所讀取的碼頁與預定的參考,如同本文所描述者。在一個例示的應用中,為了偵測惡意程式之目的而檢測目標應用程式(例如,被有毒軟體清除構件所檢測),及為了偵測惡意程式之目地而執行記憶體掃描。
符合本揭示之方法被組構成利用延伸分頁表來控制對於被檢測之目標應用程式之可執行碼的存取,或對於目標應用程式之原始未經檢測之可執行碼的存取。在一實施例中,可利用一個延伸分頁表,並使用VMM(及許可管理員)和相關的分頁錯誤功能來控制存取,如同本文所描述者。在另一實施例中,記憶體掃描工具可被一或更多個被組構成在與目標應用程式之原始未經檢測之可執行碼相關的第一延伸分頁表和與經檢測之目標應用程式之可執行碼 相關的第二延伸分頁表之間選擇的指令來予以檢測。在第三實施例中,可利用複數個延伸分頁表,並使用VMM(及許可管理員)和相關的分頁錯誤功能來控制存取。
如同本文所描述者,兩種版本的目標應用程式可執行碼都可被儲存在主實體記憶體中。當被客實體位址指到的延伸分頁表項對應於經檢測之可執行碼的主實體位址時,該許可可被設定成唯執行。當被客實體位址指到的延伸分頁表項對應於未經檢測之原始可執行碼的主實體位址時,該許可可被設定成唯讀。客實體位址可由客OS 124提供。客OS 124可能不知道兩種版本的目標應用程式可執行碼頁都存在於主實體記憶體內。因此,無論是客實體位址最終是指到原始未經檢測的目標可執行碼頁,或指到經檢測之目標可執行碼頁,視被選擇的延伸分頁表及/或對應於客實體位址之延伸分頁表項的內容而定。
圖3A與3B說明符合本揭示之延伸分頁表項的例子。在某些實施例中,延伸分頁表132a與132b可以是相同的延伸分頁表(在不同的時間具有不同的項)。在其它實施例中,延伸分頁表132a與132b可以是兩不同的延伸分頁表(在相同時間可兩者都存在),如同前文所描述者。在圖3A與3B中,客實體位址索引進入延伸分頁表132a與132b,並指向分頁表項302a或302b。在圖3A的延伸分頁表132a中,分頁表項302a的內容,對應於主實體記憶體104中之原始未經檢測之目標應用程式可執行碼頁312的位址hpa1,具有設定成唯讀(RO)的許可。在圖3B的 延伸分頁表132b中,分頁表項302b的內容,對應於主實體記憶體104中之經檢測之目標應用程式可執行碼頁310的位址hpa2,具有設定成唯執行(XO)的許可。
例如,如果記憶體掃描工具嘗試讀取對應於客實體位址的可執行碼,且如果延伸分頁表項(例如,延伸分頁表項302a)對應於原始未經檢測之可執行碼(例如,hpa1),原始未經檢測之可執行碼可被讀取而不會產生分頁錯誤。另一方面,如果延伸分頁表項(例如,延伸分頁表項302b)對應於經檢測之可執行碼(例如,hpa2),則會產生讀取分頁錯誤。
在此實施例中,VMM與許可管理員被組構成管理延伸分頁表,並可回應分頁錯誤而改變延伸分頁表項302a、302b的內容。例如,如果產生讀取分頁錯誤,許可管理員可將與該錯誤相關的延伸分頁表項更新成與原始未經檢測之碼頁的主實體位址(亦即,hpa1)對應,將許可設定成唯讀,並將控制還給包括有記憶體掃描工具的VM。接著,記憶體掃描工具可讀取儲存在主實體記憶體104中之hpa1處的原始可執行碼。
在另一實施例中,記憶體掃描工具可使用被組構成選擇適當延伸分頁表(例如,延伸分頁表132a或132b)的指令來予以檢測。例如,第一指令可被組構成在記憶體掃描工具142的讀取指令之前(例如,當記憶體掃描工具開始執行時及/或剛好在執行讀取指令之前),將第一延伸分頁表132a的EPTP載入到EPTP暫存器中。繼續此例, 第一指令可對應於將EPTP暫存器之內容而切換成對應於第一索引之第一EPTP的指令。第一索引可索引進入由VMM所建立之包括了有效EPTP之表單的表中。第一指令的效果係要將對應於第一索引的EPTP(例如,第一延伸分頁表132a之EPTP)載入EPTP暫存器中。當經檢測的掃描工具142接著嘗試讀取對應於客實體位址gpa之主實體記憶體的內容時,客實體位址可索引進入第一延伸分頁表132a中,其對應於其許可被設定成唯讀之目標應用程式原始可執行碼。
在此實施例中,第二指令可被組構成在讀取操作之後(例如,當記憶體掃描工具完成時及/或剛好在讀取操作執行完之後)將第二延伸分頁表132b的EPTP載入到EPTP暫存器中。繼續此例,第二指令可對應於將EPTP暫存器150之內容而切換成對應於第二索引之第二EPTP的指令。第二索引可索引進入由VMM所建立之包括了有效EPTP之表單的表。第二指令的效果係要將對應於第二索引的EPTP(例如,第二延伸分頁表132b之EPTP)載入EPTP暫存器中。如果接著執行目標應用程式,則客實體位址可索引進入第二延伸分頁表132b,並執行經檢測的目標應用程式可執行碼。與第一實施例相較,此實施例相對更有效率,因為其並未被組構成為了在原始與經檢測之複製目標應用程式可執行碼頁間切換而調用VMM或超管理器。
在第三實施例中,VMM與許可管理員被組構成管理 複數個延伸分頁表,且可回應分頁錯誤而改變EPTP暫存器以選擇適當的延伸分頁表132a或132b。與第一實施例相較,此實施例相對更有效率,因其有可能減少分頁錯誤的量,且當記憶體掃描器開始程序時,VMM調用(invocation)。此外,其不需檢測記憶體掃描碼即可執行。
例示性方法
圖4說明符合本揭示之初始化目標應用程式之透明檢測之例示性操作的流程圖400。本實施例中所說明的操作,可藉由與系統100(例如,CPU 102)相關的電路及/或軟體模組來執行。程式流程從操作405開始。操作405包括例如使用檢測驅動器140來識別要被檢測之目標應用程式之可執行碼頁的線性位址。雖然可識別目標應用程式之一或更多個可執行碼頁,且所描述的操作可應用於多碼頁,但為了便於描述,以下參考單碼頁。在操作410處識別出與所識別之線性位址對應的客實體記憶體位址(gpa)。檢測驅動器140可與許可管理員134介接來識別與所識別之應用程式線性位址對應的客實體分頁位址(gpa)。例如,檢測驅動器140可讀取分頁表(客)來決定與所識別之應用程式線性位址對應的客實體位址。接著,檢測驅動器140將客實體位址提供給許可管理員134。
操作415可包括修改對應於目標應用程式可執行碼頁之客實體位址(gpa)的延伸分頁表項,以使許可成為唯 讀(在第一延伸分頁表中)。例如,許可管理員134可被組構成編輯延伸分頁表項,其將客實體位址映射到對應於要被檢測之目標可執行碼頁的主實體記憶體位址(hpa1),以將相關的許可設定成唯讀。
接著,在操作420處,將目標可執行碼頁從主實體記憶體位址(hpa1)複製到另一個主實體記憶體位址(hpa2)。在操作420之後,原始的目標可執行碼頁存在於主實體記憶體中的位址hpa1處,而目標可執行碼頁的複製則存在於主實體記憶體中的位址hpa2處。目標可執行碼頁的複製可位於主實體記憶體中僅VMM 120可存取的位置。
在操作425處,目標可執行碼頁的複製被檢測。許可管理員134可被組構成以經檢測的可執行碼來更新儲存在主實體位址hpa2之目標可執行的複製,如同本文所描述者。例如,該檢測可被組構成將控制從經檢測的目標應用程式轉移到有毒軟體清除構件,如同本文所描述者。
在操作430處,對應於目標可執行碼頁之客實體位址(gpa)的延伸分頁表項被更新,以指向目標可執行碼頁之經檢測之複製的主實體位址(hpa2)(在第一延伸分頁表中)。在操作435處,與此延伸分頁表項(在第一延伸分頁表中)相關的許可(指到目標可執行碼頁之經檢測的複製)可被設定成唯執行(亦即,不讀取,不寫入)。
在操作440處,藉由將指令加到記憶體掃描工具可執行碼來檢測記憶體掃描工具。該等指令被組構成選擇適當 的延伸分頁表,如同本文所描述者。例如,該等指令可包括請求將EPTP索引切換成第一EPTP索引或第二EPTP索引,以便索引進入有效EPTP的表。操作445可包括產生對應於目標可執行碼之經檢測之複製(其許可設定成唯執行)的第二延伸分頁表。在操作450處,將EPTP暫存器連同指標符載入到對應於目標可執行碼頁之經檢測之複製的第二延伸分頁表中。
例如,檢測驅動器140可被組構成與許可管理員134介接,用以初始化複數個延伸分頁表(每一個具有相關的EPTP),並以被組構成從複數個延伸分頁表132a、132b、...、132k中選擇適當延伸分頁表的指令來檢測記憶體掃描工具142。例如,該選擇可包括將適當的EPTP載入EPTP暫存器150中(見圖1)。在其它實施例中,檢測驅動器可被組構成與許可管理員134介接,用以初始化複數個延伸分頁表(每一個具有相關的EPTP),但選擇不檢測記憶體掃描工具,並繼續利用分頁錯誤來從複數個延伸分頁表132a、132b、...、132k中選擇適當的延伸分頁表。
視所想要的功能而定,可執行流程圖400中所有或比所有稍少的操作。典型上,在所有的實施中,從操作405至操作425都被執行。例如,操作430及操作435可被執行,及操作440、445、及450可不被執行。在另一例中,可執行操作440、445、及450,而不執行操作430及操作435。在又一例中,可執行操作430、435、445、及450, 而不執行操作440。按此方式,可使用VMM及分頁錯誤功能及/或藉由經檢測之記憶體掃描工具中的指令使用兩延伸分頁表來管理對於兩版本之目標可執行碼頁的存取。
因此,在這些初始化操作結束之時,原始、未經檢測的目標碼頁可存在於主實體記憶體中的位址hpa1處。目標碼頁之經檢測的複製可存在於主實體記憶體中的位址hpa2處。對應於目標應用程式可執行碼頁之客實體位址gpa的延伸分頁表項可包含主實體記憶體位址hpa2(亦即,經檢測的可執行碼頁)與被設定成唯執行(XO)的許可。
當目標應用程式(例如,應用程式126a)被執行時,碼頁之經檢測的複製(位在主實體記憶體位址hpa2)被組構成根據延伸分頁表項來執行。如果記憶體掃描工具142被啟動(例如,藉由OS 124),且記憶體掃描工具142嘗試讀取位在客實體位址gpa(其指到可執行碼頁之經檢測之複製的主實體位址hpa2)的碼頁,由於hpa2的許可被設定為唯執行,於是產生讀取錯誤。讀取錯誤將控制轉移給監督程式(例如,VMM 120及許可管理員134)。許可管理員134可被組構成更新被客實體位址gpa所指到的延伸分頁表項,從主實體位址hpa2(亦即,經檢測的目標碼頁)改變到主實體位址hpa1(亦即,原始、未經檢測的目標碼頁)。許可管理員134可進一步被組構成將相關的許可設定成唯讀(亦即,不執行,不寫入)。接著,控制被歸還給VM122a與記憶體掃描工具142。接著,記憶體掃 描工具142讀取主實體記憶體位址hpa1及原始的目標可執行碼頁。按此方式,利用延伸分頁表及相關的分頁錯誤功能,經檢測的目標碼頁可被執行,且原始的目標碼頁可被讀取。
圖5說明符合本揭示之操作的例示性流程圖500。假設在執行流程圖500之操作之前,已執行過流程圖400中至少某些操作。特別是,假設至少已執行過操作405-425及操作430及435。流程從操作505開始。操作505包括啟動經檢測之應用程式及/或啟動記憶體掃描工具。經檢測之應用程式及/或記憶體掃描工具可由OS 124來啟動。在操作510處可產生分頁表錯誤。例如,如果記憶體掃描工具嘗試讀取經檢測之應用程式碼頁或OS嘗試執行未經檢測之應用程式碼頁,即會產生分頁錯誤。
在操作515處可決定分頁錯誤的類型。例如,分頁錯誤可以是讀取錯誤或執行錯誤。如果記憶體掃描工具嘗試讀取經檢測之應用程式可執行碼頁(其在延伸分頁表中的許可係設定成唯執行),即可能產生讀取錯誤。如果客OS嘗試執行原始之未經檢測之應用程式可執行碼頁(其在延伸分頁表中的許可係設定成唯讀),即可能產生執行錯誤。
如果分頁錯誤為讀取錯誤,在操作520處,延伸分頁表中的分頁表項會被原始未經檢測之應用程式之可執行碼頁的主實體位址(hpa1)所取代。接著,在操作525處,與此經更新之延伸分頁表項相關的許可被設定成唯讀。接 著,程式流程進行到操作540。
如果分頁錯誤為執行錯誤,在操作530處,延伸分頁表中的分頁表項會被經檢測之應用程式之可執行碼頁的主實體位址(hpa2)所取代。接著,在操作535處,與此經更新之延伸分頁表項相關的許可被設定成唯執行。接著,程式流程進行到操作540。
操作540包括使轉譯後備緩衝器(TLB)中受操作520及525或操作530及535影響之可執行碼頁的映射無效。如熟悉此方面技術之人士所瞭解者,TLB對應於分頁表(例如,延伸分頁表)的快取記憶體,亦即被組構成加快位址轉譯(映射)的速度。類似於快取記憶體,可將最近所使用的映射儲存在TLB中。回應延伸分頁表中之映射的改變,TLB中的映射變為無效。
操作545包括回復啟動分頁錯誤的程式(例如,經檢測之應用程式或記憶體掃描工具)。如果啟動分頁錯誤的程式為記憶體掃描工具,則記憶體掃描可回復。接著,可從主實體記憶體中讀取出原始之未經檢測之應用程式可執行碼頁。如果啟動分頁錯誤的程式為發動經檢測的應用程式之OS,則該經檢測之應用程式可被執行。如同熟悉此技術之人士所瞭解,在執行期間,經檢測之應用程式可被組構成將控制轉移到監視應用程式之操作的有毒軟體清除構件。
圖6說明符合本揭示之操作的例示性流程圖600。假設在執行流程圖600的操作之前,已執行過流程圖400中 至少某些操作。特別是,假設至少已執行過操作405-425及操作440、445、及450。流程從操作605開始。操作605可包括啟動(經檢測的)記憶體掃描工具。經檢測的記憶體掃描工具可由OS 124來啟動。
第一指令可在操作610處執行。如同本文所描述者,第一指令係與檢測記憶體掃描工具相關聯。第一指令被組構成選擇對應於未經檢測之目標可執行碼頁的第一延伸分頁表。例如,第一指令可包括切換有效EPTP之表中索引的請求,並致使對應於第一延伸分頁表的EPTP被載入EPTP暫存器中。結果是,EPTP暫存器可包括對應於未經檢測之目標可執行碼頁之第一延伸分頁表的EPTP。操作615可包括藉由記憶體掃描工具來掃描主實體記憶體位置。接著,可從主實體記憶體讀取原始未經檢測之目標可執行碼頁。在操作620處可執行第二指令。如同本文所描述者,第二指令與檢測記憶體掃描工具相關。第二指令被組構成選擇對應於經檢測之目標可執行碼頁的第二延伸分頁表。例如,第二指令可包括切換有效EPTP之表中索引的請求,並致使對應於第二延伸分頁表的EPTP被載入EPTP暫存器中。結果是,EPTP暫存器可包括對應於經檢測之目標可執行碼頁之第二延伸分頁表的EPTP。接著,控制可在操作625處返回。例如,程式流程可回到啟動記憶體掃描工具的OS。
圖7說明符合本揭示之操作的例示性流程圖700。假設在執行流程圖700的操作之前,已執行過流程圖400中 至少某些操作。特別是,假設至少已執行過操作405-425及操作445及450。流程從操作705開始。操作705可包括發動經檢測的應用程式及/或發動記憶體掃描工具。經檢測的應用程式及/或記憶體掃描工具可藉由OS 124來予以啟動。在操作710處,可能產生分頁表錯誤。例如,如果記憶體掃描工具嘗試讀取經檢測之應用程式碼頁,或OS嘗試執行未經檢測之應用程式碼頁,即可能產生分頁錯誤。
在操作715處決定分頁錯誤的類型。例如,分頁錯誤可以是讀取錯誤或執行錯誤。如果掃描工具嘗試讀取經檢測之應用程式可執行碼頁(其許可在延伸分頁表中被設定成唯執行),即可能產生讀取錯誤。如果客OS嘗試執行原始未經檢測之應用程式可執行碼頁(其許可在延伸分頁表中被設定成唯讀),即可能產生執行錯誤。
如果分頁錯誤為讀取錯誤,在操作720處,VMM可被組構成將對應於第一延伸分頁表的EPTP載入EPTP暫存器中。接著,程式流程進行到操作750。
如果分頁錯誤為執行錯誤,在操作730處,VMM可被組構成相應於第二延伸分頁表的EPTP載入EPTP暫存器中。接著,程式流程進行到操作750。
操作750可包括回復啟動分頁錯誤的程式(例如,經檢測之應用程式或記憶體掃描工具)。如果啟動分頁錯誤的程式為記憶體掃描工具,則記憶體掃描可回復。接著,可從主實體記憶體中讀取出原始未經檢測之應用程式可執 行碼頁。如果啟動該頁的程式為發動經檢測之應用程式的OS,則該經檢測之應用程式可被執行。如同熟悉此技術之人士所瞭解者,在執行期間,該經檢測之應用程式可被組構成將控制轉移到監視該應用程式之操作的有毒軟體清除構件。
符合本揭示之方法與設備被組構成允許檢測應用程式,無論該應用程式其本身是否為檢測而組構。該檢測被組構成要對記憶體掃描器透明,且在面對檢測時能持續正確地操作。目標應用程式的兩個版本可儲存在主系統實體記憶體中。其中一個版本為原始未經檢測之目標應用程式的可執行碼頁,而另一個版本為目標應用程式之可執行碼頁之經檢測的複製。
與虛擬機監視器相關的延伸分頁表可用來根據目標應用程式或記憶體掃描工具何者被執行而控制對兩個版本的其中之一的存取。根據藉由客實體位址所指到之分頁表項的內容,客實體位址可指到原始版本或經檢測之版本。延伸分頁表中的每一個項都包括與主實體記憶體中之碼頁相關的主實體位址以及許可欄位。
在一例中,與VMM相關聯的許可及分頁錯誤功能可用來確保經檢測之應用程式被執行,及記憶體掃描器讀取原始應用程式。在另一例中,可實施兩個延伸分頁表。第一個延伸分頁表被組構成指到儲存在主實體記憶體中之原始未經檢測之目標可執行碼(許可設定成唯讀),及第二延伸分頁表被組構成指到儲存在主實體記憶體中之目標可 執行碼之經檢測的複製(許可設定成唯執行)。在此例中,記憶體掃描工具可被一或更多個被組構成選擇適當延伸分頁表的指令來檢測,以確保經檢測之應用程式被執行,且記憶體掃描器讀取原始應用程式而不使用分頁錯誤功能。有利之處是應用程式中的任何點都可被檢測,且舊有記憶體掃描器可安全地掃描實體記憶體,而不回傳主實體記憶體中之被掃描碼頁與其預定之參考之間的錯誤失配。
雖然前文提供了例示性的系統架構及方法,但本揭示內容可做修改。例如,作業系統124可以被組構成管理系統資源及控制那些在系統100上執行的工作。例如,OS 124可以使用微軟視窗、HP-UX、Linux、或UNIX來予以實施,當然也可使用其它的作業系統。圖1中所示的OS 124可在虛擬機監視器之下,在虛擬機中執行,虛擬機監視器可為底層硬體提供抽像層給在一或更多個處理器上執行的各種虛擬機與作業系統。
也可做到其它修改。例如,記憶體104可包括一或更多個以下類型的記憶體:半導體韌體記憶體、可程式化記憶體、非揮發性記憶體、唯讀記憶體、電可程式化記憶體、隨機存取記憶體、快閃記憶體、磁碟記憶體、及/或光碟記憶體。無論是附加或另者,記憶體104可以包括其它及/或最新發展之各類型的電腦可讀取記憶體。
本文所描述之各方法的實施例,可在包括有一或更多個其上儲存有指令之儲存媒體的系統中實施,該等指令以個別或組合之方式儲存,當被一或更多個處理器執行時, 實施該等方法。在此,處理器例如可包括系統CPU(例如,圖1的CPU 102)。儲存媒體可包括任何類型的永久性媒體,例如,任何類型的碟片,包括軟性磁碟片、光碟片、光碟唯讀記憶體(CDROM)、可覆寫光碟(CD-RW)、及磁光碟片;半導體裝置,諸如唯讀記憶體(ROM)、隨機存取記憶體(RAM),諸如動態及靜態RAM、可抹除可程式化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體、磁卡或光學卡、或適合儲存電子指令之任何類型的媒體。
本文任何實施例中所使用的“電路”例如可包含單一或任何組合的硬線電路、可程式電路、狀態機電路、及/或儲存有能被可程式電路執行之指令的韌體。
按照一個態樣,揭示有一方法。該方法可包括將至少部分的可執行應用程式儲存在主系統實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該部分的複製,並將該經檢測之複製儲存在該主系統實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該等存取許可而執行該經檢測的複製,或讀取該可執行應用程式之該部分。
按照另一態樣,揭示有一物件,包括其上具有儲存之指令的實體儲存媒體,當被處理器所執行時,致使以下的操作:將至少部分的可執行應用程式儲存在主系統實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該 部分的複製,並將該經檢測之複製儲存在該主系統實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該等存取許可而執行該經檢測的複製,或讀取該可執行應用程式之該部分。
在又一態樣中,揭示有一系統。該系統包括主實體記憶體;以及處理器。該處理器被組構成:將至少部分的可執行應用程式儲存在該主系統實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該部分的複製,並將該經檢測之複製儲存在該主系統實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該存取許可來執行該經檢測的複製,或讀取該可執行應用程式之該部分。
本文所使用的名詞及表述被使用來做為描述的名詞而非限制,且使用這些名詞及表述並無意排除所顯示及描述(或其部分)之特徵的任何相等物,且可識得在申請專利範圍之範圍內可做的各種修改。因此,申請專利範圍意欲涵蓋所有這些相等物。
雖然以上所進行的詳細描述係參考說明性實施例,但熟悉此方面技術領域之人士明瞭,其可做很多的替換、修改、及衍生。因此,意欲寬廣地思考申請的主題,且僅由所附申請專利範圍中的陳述來定義。
100‧‧‧系統
102‧‧‧中央處理器
103‧‧‧虛擬中央處理器(CPU)
104‧‧‧主實體記憶體
106‧‧‧記憶體管理單元
108‧‧‧磁碟片
110‧‧‧特權模式
112‧‧‧非特權模式
120‧‧‧虛擬機監視器
122‧‧‧虛擬機
132‧‧‧延伸分頁表
134‧‧‧許可管理員
124‧‧‧客作業系統
126‧‧‧應用程式
130‧‧‧客實體記憶體
128‧‧‧分頁表
202‧‧‧分頁表
204‧‧‧延伸分頁表
140‧‧‧檢測驅動器
142‧‧‧記憶體掃描工具
302‧‧‧延伸分頁表
310‧‧‧可執行碼頁
312‧‧‧可執行碼頁
150‧‧‧對應延伸分頁表基址指標符(EPTP)暫存器
從以上參考圖式的詳細描述將可明瞭所主張之主題之實施例的特徵與優點,其中,相同的編號描繪相同的部件,且其中:圖1說明符合本揭示之系統的例示性實施例;圖2說明符合本揭示之客分頁表與延伸分頁表間的定址;圖3A與3B說明符合本揭示之延伸分頁表項的例子;圖4說明符合本揭示之例示性初始化操作的流程圖;圖5說明符合本揭示之使用超管理器(hypervisor)來管理對兩種版本之目標可執行碼之存取之例示性操作的流程圖;圖6說明符合本揭示之不調用超管理器來管理對兩種版本之目標可執行碼之存取之例示性操作的另一流程圖;及圖7說明符合本揭示之使用超管理器來管理對兩種版本之目標可執行碼之存取之例示性操作的另一流程圖。
100‧‧‧系統
102‧‧‧中央處理器
103a、103b、...、103n‧‧‧虛擬CPU
104‧‧‧主實體記憶體
106‧‧‧記憶體管理單元
108‧‧‧磁碟片
110‧‧‧特權模式
112‧‧‧非特權模式
120‧‧‧虛擬機監視器
122a、122b、...、122n‧‧‧虛擬機
124‧‧‧客作業系統
126a、126b、...、126m‧‧‧應用程式
128a、128b、...、128m‧‧‧分頁表
130a、130b、...、130n‧‧‧客實體記憶體
132a、132b、...、132k‧‧‧延伸分頁表
134‧‧‧許可管理員
140‧‧‧檢測驅動器
142‧‧‧記憶體掃描工具
150‧‧‧對應延伸分頁表基址指標符(EPTP)暫存器

Claims (22)

  1. 一種對應用程式進行透明式檢測的方法,包含:將至少部分的可執行應用程式儲存在主系統實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該部分的複製,並將該經檢測之複製儲存在該主系統實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該等存取許可而執行該經檢測的複製,或讀取該可執行應用程式之該部分。
  2. 如申請專利範圍第1項的方法,進一步包含:回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址處之該部分的嘗試而產生分頁錯誤。
  3. 如申請專利範圍第2項的方法,進一步包含:決定該分頁錯誤的類型;以及如果該分頁錯誤為執行錯誤,則更新延伸分頁表項而對應該第二主實體位址,或如果該分頁錯誤為讀取錯誤,則更新延伸分頁表項而對應該第一主實體位址。
  4. 如申請專利範圍第1項的方法,其中,記憶體掃描器被組構成讀取該可執行應用程式之該部分。
  5. 如申請專利範圍第1項的方法,進一步包含: 產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;以及以第一指令來檢測記憶體掃描器,該第一指令被組構成選擇該第一延伸分頁表,其中,該記憶體掃描器被組構成讀取該可執行應用程式之該部分,且該第一指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之前。
  6. 如申請專利範圍第5項的方法,進一步包含:以第二指令來檢測該記憶體掃描器,該第二指令被組構成選擇該第二延伸分頁表,其中,該第二指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之後。
  7. 如申請專利範圍第1項的方法,進一步包含:使用該經檢測的複製來監視該可執行應用程式的執行,其中,該監視被組構成偵測有毒軟體。
  8. 如申請專利範圍第1項的方法,進一步包含:產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址中之該部分的嘗試而產生分頁錯誤;以及回應該分頁錯誤而選擇該第一及第二延伸分頁表的其中之一。
  9. 一種對應用程式進行透明式檢測的系統,包含其 上具有以個別或組合方式儲存之指令的一或更多個儲存媒體,當被一或更多個處理器所執行時,致使以下的操作包含:將至少部分的可執行應用程式儲存在主系統實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該部分的複製,並將該經檢測之複製儲存在該主系統實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該等存取許可而執行該經檢測的複製,或讀取該可執行應用程式之該部分。
  10. 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址處之該部分的嘗試而產生分頁錯誤。
  11. 如申請專利範圍第10項的系統,其中,該指令致使以下其它的操作包含:決定該分頁錯誤的類型;以及如果該分頁錯誤為執行錯誤,則更新延伸分頁表項而對應該第二主實體位址,或如果該分頁錯誤為讀取錯誤,則更新延伸分頁表項而對應該第一主實體位址。
  12. 如申請專利範圍第9項的系統,其中,記憶體掃描器被組構成讀取該可執行應用程式之該部分。
  13. 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;以及以第一指令來檢測記憶體掃描器,該第一指令被組構成選擇該第一延伸分頁表,其中,該記憶體掃描器被組構成讀取該可執行應用程式之該部分,且該第一指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之前。
  14. 如申請專利範圍第13項的系統,其中,該指令致使以下其它的操作包含:以第二指令來檢測該記憶體掃描器,該第二指令被組構成選擇該第二延伸分頁表,其中,該第二指令被組構成被執行於在該記憶體掃描器讀取該可執行應用程式之該部分之後。
  15. 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:使用該經檢測的複製來監視該可執行應用程式的執行,其中,該監視被組構成偵測有毒軟體。
  16. 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:產生與該第一主實體位址相關的第一延伸分頁表及與 該第二主實體位址相關的第二延伸分頁表;回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址處之該部分的嘗試而產生分頁錯誤;以及回應該分頁錯誤而選擇該第一及第二延伸分頁表的其中之一。
  17. 一種計算系統,包含:主實體記憶體;以及處理器,被組構成:將至少部分的可執行應用程式儲存在該主實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該部分的複製,並將該經檢測之複製儲存在該主實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該存取許可來執行該經檢測的複製,或讀取該可執行應用程式之該部分。
  18. 如申請專利範圍第17項的系統,其中,該處理器被進一步被組構成:回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址處之該部分的嘗試而產生分頁錯誤。
  19. 如申請專利範圍第18項的系統,其中,該處理 器被進一步被組構成:決定該分頁錯誤的類型;以及如果該分頁錯誤為執行錯誤,則更新延伸分頁表項而對應該第二主實體位址,或如果該分頁錯誤為讀取錯誤,則更新延伸分頁表項而對應該第一主實體位址。
  20. 如申請專利範圍第17項的系統,其中,該處理器被進一步被組構成:產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;以及以第一指令來檢測記憶體掃描器,該第一指令被組構成選擇該第一延伸分頁表,其中,該記憶體掃描器被組構成讀取該可執行應用程式之該部分,且該第一指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之前。
  21. 如申請專利範圍第20項的系統,其中,該處理器被進一步被組構成:以第二指令來檢測該記憶體掃描器,該第二指令被組構成選擇該第二延伸分頁表,其中,該第二指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之後。
  22. 如申請專利範圍第17項的系統,其中,該處理器被進一步被組構成:使用該經檢測的複製來監視該可執行應用程式的執行,該監視被組構成偵測有毒軟體。
TW100149561A 2011-03-30 2011-12-29 對應用程式進行透明式檢測的方法及系統,和計算系統 TWI464575B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/076,378 US8479295B2 (en) 2011-03-30 2011-03-30 Method and apparatus for transparently instrumenting an application program

Publications (2)

Publication Number Publication Date
TW201243575A TW201243575A (en) 2012-11-01
TWI464575B true TWI464575B (zh) 2014-12-11

Family

ID=46929145

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100149561A TWI464575B (zh) 2011-03-30 2011-12-29 對應用程式進行透明式檢測的方法及系統,和計算系統

Country Status (5)

Country Link
US (1) US8479295B2 (zh)
EP (1) EP2691851B1 (zh)
CN (1) CN103460179B (zh)
TW (1) TWI464575B (zh)
WO (1) WO2012134584A1 (zh)

Families Citing this family (186)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US9231858B1 (en) 2006-08-11 2016-01-05 Dynatrace Software Gmbh Completeness detection of monitored globally distributed synchronous and asynchronous transactions
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US9274919B2 (en) * 2011-04-29 2016-03-01 Dynatrace Software Gmbh Transaction tracing mechanism of distributed heterogenous transactions having instrumented byte code with constant memory consumption and independent of instrumented method call depth
US8555388B1 (en) 2011-05-24 2013-10-08 Palo Alto Networks, Inc. Heuristic botnet detection
US9069586B2 (en) * 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9256552B2 (en) * 2011-11-21 2016-02-09 Cisco Technology, Inc. Selective access to executable memory
US9342704B2 (en) * 2011-12-28 2016-05-17 Intel Corporation Allocating memory access control policies
US9075913B2 (en) * 2012-02-27 2015-07-07 Qualcomm Incorporated Validation of applications for graphics processing unit
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
RU2510075C2 (ru) * 2012-04-11 2014-03-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ обнаружения вредоносного программного обеспечения в ядре операционной системы
US9223721B2 (en) * 2012-09-04 2015-12-29 Arm Finance Overseas Limited Embedded processor with virtualized security controls using guest identifications, a common kernel address space and operational permissions
US9215239B1 (en) 2012-09-28 2015-12-15 Palo Alto Networks, Inc. Malware detection based on traffic analysis
US9104870B1 (en) 2012-09-28 2015-08-11 Palo Alto Networks, Inc. Detecting malware
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
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
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9009822B1 (en) * 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9413781B2 (en) 2013-03-15 2016-08-09 Fireeye, Inc. System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9613210B1 (en) 2013-07-30 2017-04-04 Palo Alto Networks, Inc. Evaluating malware in a virtual machine using dynamic patching
US9811665B1 (en) 2013-07-30 2017-11-07 Palo Alto Networks, Inc. Static and dynamic security analysis of apps for mobile devices
US10019575B1 (en) 2013-07-30 2018-07-10 Palo Alto Networks, Inc. Evaluating malware in a virtual machine using copy-on-write
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9436823B1 (en) * 2013-12-17 2016-09-06 Google Inc. System and method for detecting malicious code
US9117081B2 (en) * 2013-12-20 2015-08-25 Bitdefender IPR Management Ltd. Strongly isolated malware scanning using secure virtual containers
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9507935B2 (en) 2014-01-16 2016-11-29 Fireeye, Inc. Exploit detection system with threat-aware microvisor
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9569115B2 (en) 2014-03-31 2017-02-14 International Business Machines Corporation Transparent code patching
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9256546B2 (en) 2014-03-31 2016-02-09 International Business Machines Corporation Transparent code patching including updating of address translation structures
US9483295B2 (en) 2014-03-31 2016-11-01 International Business Machines Corporation Transparent dynamic code optimization
US9824021B2 (en) 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
US9858058B2 (en) 2014-03-31 2018-01-02 International Business Machines Corporation Partition mobility for partitions with extended code
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9720661B2 (en) 2014-03-31 2017-08-01 International Businesss Machines Corporation Selectively controlling use of extended mode features
US9715449B2 (en) 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9489516B1 (en) 2014-07-14 2016-11-08 Palo Alto Networks, Inc. Detection of malware using an instrumented virtual machine environment
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9886577B2 (en) * 2014-09-26 2018-02-06 Mcafee, Llc Detection and mitigation of malicious invocation of sensitive code
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
RU2580016C1 (ru) * 2014-10-17 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Способ передачи управления между областями памяти
US9542554B1 (en) 2014-12-18 2017-01-10 Palo Alto Networks, Inc. Deduplicating malware
US9805193B1 (en) 2014-12-18 2017-10-31 Palo Alto Networks, Inc. Collecting algorithmically generated domains
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US9703720B2 (en) 2014-12-23 2017-07-11 Intel Corporation Method and apparatus to allow secure guest access to extended page tables
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10616266B1 (en) 2016-03-25 2020-04-07 Fireeye, Inc. Distributed malware detection system and submission workflow thereof
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10169585B1 (en) * 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
DE102016219202A1 (de) * 2016-10-04 2018-04-05 Robert Bosch Gmbh Verfahren und Vorrichtung zum Schützen eines Arbeitsspeichers
US10725807B2 (en) 2016-10-13 2020-07-28 Red Hat Israel, Ltd. Page table entry caching for virtual device emulation
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US20180285262A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Techniques for shared virtual memory access protection
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
RU2697948C1 (ru) * 2018-04-19 2019-08-21 Акционерное общество "Лаборатория Касперского" Система и способ выявления уязвимостей с использованием перехвата вызовов функций
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11010474B2 (en) 2018-06-29 2021-05-18 Palo Alto Networks, Inc. Dynamic analysis techniques for applications
US10956573B2 (en) 2018-06-29 2021-03-23 Palo Alto Networks, Inc. Dynamic analysis techniques for applications
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
CN110928737B (zh) * 2018-09-19 2021-05-18 华为技术有限公司 监控样本进程的内存访问行为的方法和装置
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US12074887B1 (en) 2018-12-21 2024-08-27 Musarubra Us Llc System and method for selectively processing content after identification and removal of malicious content
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11221962B2 (en) * 2019-09-04 2022-01-11 Apple Inc. Unified address translation
US11196765B2 (en) 2019-09-13 2021-12-07 Palo Alto Networks, Inc. Simulating user interactions for malware analysis
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
CN110795358B (zh) * 2020-01-06 2020-04-07 同盾控股有限公司 代码插桩检测方法、装置、设备及介质
WO2024006371A1 (en) 2022-06-28 2024-01-04 Apple Inc. Pc-based computer permissions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146607B2 (en) * 2002-09-17 2006-12-05 International Business Machines Corporation Method and system for transparent dynamic optimization in a multiprocessing environment
TW200745951A (en) * 2005-10-21 2007-12-16 Vir2Us Inc Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20100031353A1 (en) * 2008-02-04 2010-02-04 Microsoft Corporation Malware Detection Using Code Analysis and Behavior Monitoring

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440710A (en) * 1994-03-08 1995-08-08 Exponential Technology, Inc. Emulation of segment bounds checking using paging with sub-page validity
US5710724A (en) * 1995-04-20 1998-01-20 Digital Equipment Corp. Dynamic computer performance monitor
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US6898785B2 (en) * 2001-08-16 2005-05-24 Hewlett-Packard Development Company, L.P. Handling calls from relocated instrumented functions to functions that expect a return pointer value in an original address space
US7249349B2 (en) * 2001-12-13 2007-07-24 Hewlett-Packard Development Company, L.P. Uninstrumenting in-line code instrumentation on-the-fly
US7313734B2 (en) * 2002-01-14 2007-12-25 International Business Machines Corporation Method and system for instruction tracing with enhanced interrupt avoidance
US6993665B2 (en) 2002-05-01 2006-01-31 Sun Microsystems, Inc. Applet permissions manager
US7886293B2 (en) * 2004-07-07 2011-02-08 Intel Corporation Optimizing system behavior in a virtual machine environment
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7797747B1 (en) 2006-02-21 2010-09-14 Symantec Corporation Detection of malicious code in non-paged pool unused pages
US20070240141A1 (en) * 2006-03-30 2007-10-11 Feng Qin Performing dynamic information flow tracking
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US7797748B2 (en) 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
CN101299192B (zh) * 2008-06-18 2010-06-02 中国科学院计算技术研究所 一种非对齐访存的处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146607B2 (en) * 2002-09-17 2006-12-05 International Business Machines Corporation Method and system for transparent dynamic optimization in a multiprocessing environment
TW200745951A (en) * 2005-10-21 2007-12-16 Vir2Us Inc Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20100031353A1 (en) * 2008-02-04 2010-02-04 Microsoft Corporation Malware Detection Using Code Analysis and Behavior Monitoring

Also Published As

Publication number Publication date
TW201243575A (en) 2012-11-01
CN103460179A (zh) 2013-12-18
EP2691851A1 (en) 2014-02-05
CN103460179B (zh) 2017-05-17
WO2012134584A1 (en) 2012-10-04
US20120255015A1 (en) 2012-10-04
EP2691851B1 (en) 2017-05-17
US8479295B2 (en) 2013-07-02
EP2691851A4 (en) 2015-01-14

Similar Documents

Publication Publication Date Title
TWI464575B (zh) 對應用程式進行透明式檢測的方法及系統,和計算系統
US10810309B2 (en) Method and system for detecting kernel corruption exploits
Stüttgen et al. Anti-forensic resilient memory acquisition
US7418584B1 (en) Executing system management mode code as virtual machine guest
US7984304B1 (en) Dynamic verification of validity of executable code
KR100681975B1 (ko) 가상머신 구조에서 게스트 소프트웨어의 동작 동안발생하는 폴트 제어
US7380049B2 (en) Memory protection within a virtual partition
US8341369B2 (en) Providing protected access to critical memory regions
US8909898B2 (en) Copy equivalent protection using secure page flipping for software components within an execution environment
US7739466B2 (en) Method and apparatus for supporting immutable memory
KR100708356B1 (ko) 가상 기기 아키텍처에서의 게스트 소프트웨어의 연산과연관된 장애의 취급
US7127579B2 (en) Hardened extended firmware interface framework
US20080201540A1 (en) Preservation of integrity of data across a storage hierarchy
US20110082962A1 (en) Monitoring a data structure in a virtual machine
US11977631B2 (en) Hypervisor level signature checks for encrypted trusted execution environments
CN109784062B (zh) 漏洞检测方法及装置
US9424427B1 (en) Anti-rootkit systems and methods
JP2009140485A (ja) ソフトウェアコンポーネントをホワイトリストに登録する方法およびシステム
US10740462B2 (en) Instruction and/or data verification before execution
US20180307516A1 (en) Transparent code patching using a hypervisor
US20070056039A1 (en) Memory filters to aid system remediation
US11216280B2 (en) Exception interception
Sun et al. Kernel code integrity protection based on a virtualized memory architecture
Noack et al. Exploiting speculative execution (spectre) via javascript
Wu et al. SecMon: a secure introspection framework for hardware virtualization

Legal Events

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