TWI464575B - 對應用程式進行透明式檢測的方法及系統,和計算系統 - Google Patents
對應用程式進行透明式檢測的方法及系統,和計算系統 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic 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項的方法,其中,記憶體掃描器被組構成讀取該可執行應用程式之該部分。
- 如申請專利範圍第1項的方法,進一步包含: 產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;以及以第一指令來檢測記憶體掃描器,該第一指令被組構成選擇該第一延伸分頁表,其中,該記憶體掃描器被組構成讀取該可執行應用程式之該部分,且該第一指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之前。
- 如申請專利範圍第5項的方法,進一步包含:以第二指令來檢測該記憶體掃描器,該第二指令被組構成選擇該第二延伸分頁表,其中,該第二指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之後。
- 如申請專利範圍第1項的方法,進一步包含:使用該經檢測的複製來監視該可執行應用程式的執行,其中,該監視被組構成偵測有毒軟體。
- 如申請專利範圍第1項的方法,進一步包含:產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址中之該部分的嘗試而產生分頁錯誤;以及回應該分頁錯誤而選擇該第一及第二延伸分頁表的其中之一。
- 一種對應用程式進行透明式檢測的系統,包含其 上具有以個別或組合方式儲存之指令的一或更多個儲存媒體,當被一或更多個處理器所執行時,致使以下的操作包含:將至少部分的可執行應用程式儲存在主系統實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該部分的複製,並將該經檢測之複製儲存在該主系統實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該等存取許可而執行該經檢測的複製,或讀取該可執行應用程式之該部分。
- 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址處之該部分的嘗試而產生分頁錯誤。
- 如申請專利範圍第10項的系統,其中,該指令致使以下其它的操作包含:決定該分頁錯誤的類型;以及如果該分頁錯誤為執行錯誤,則更新延伸分頁表項而對應該第二主實體位址,或如果該分頁錯誤為讀取錯誤,則更新延伸分頁表項而對應該第一主實體位址。
- 如申請專利範圍第9項的系統,其中,記憶體掃描器被組構成讀取該可執行應用程式之該部分。
- 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;以及以第一指令來檢測記憶體掃描器,該第一指令被組構成選擇該第一延伸分頁表,其中,該記憶體掃描器被組構成讀取該可執行應用程式之該部分,且該第一指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之前。
- 如申請專利範圍第13項的系統,其中,該指令致使以下其它的操作包含:以第二指令來檢測該記憶體掃描器,該第二指令被組構成選擇該第二延伸分頁表,其中,該第二指令被組構成被執行於在該記憶體掃描器讀取該可執行應用程式之該部分之後。
- 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:使用該經檢測的複製來監視該可執行應用程式的執行,其中,該監視被組構成偵測有毒軟體。
- 如申請專利範圍第9項的系統,其中,該指令致使以下其它的操作包含:產生與該第一主實體位址相關的第一延伸分頁表及與 該第二主實體位址相關的第二延伸分頁表;回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址處之該部分的嘗試而產生分頁錯誤;以及回應該分頁錯誤而選擇該第一及第二延伸分頁表的其中之一。
- 一種計算系統,包含:主實體記憶體;以及處理器,被組構成:將至少部分的可執行應用程式儲存在該主實體記憶體中於第一主實體位址處;檢測該可執行應用程式之該部分的複製,並將該經檢測之複製儲存在該主實體記憶體中於第二主實體位址處;為該第一主實體位址而將對應的存取許可設定成唯讀,並為該第二主實體位址而將對應的存取許可設定成唯執行;以及至少部分根據該存取許可來執行該經檢測的複製,或讀取該可執行應用程式之該部分。
- 如申請專利範圍第17項的系統,其中,該處理器被進一步被組構成:回應於讀取該第二主實體位址之嘗試或執行該可執行應用程式之儲存在該第一主實體位址處之該部分的嘗試而產生分頁錯誤。
- 如申請專利範圍第18項的系統,其中,該處理 器被進一步被組構成:決定該分頁錯誤的類型;以及如果該分頁錯誤為執行錯誤,則更新延伸分頁表項而對應該第二主實體位址,或如果該分頁錯誤為讀取錯誤,則更新延伸分頁表項而對應該第一主實體位址。
- 如申請專利範圍第17項的系統,其中,該處理器被進一步被組構成:產生與該第一主實體位址相關的第一延伸分頁表及與該第二主實體位址相關的第二延伸分頁表;以及以第一指令來檢測記憶體掃描器,該第一指令被組構成選擇該第一延伸分頁表,其中,該記憶體掃描器被組構成讀取該可執行應用程式之該部分,且該第一指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之前。
- 如申請專利範圍第20項的系統,其中,該處理器被進一步被組構成:以第二指令來檢測該記憶體掃描器,該第二指令被組構成選擇該第二延伸分頁表,其中,該第二指令被組構成被執行於該記憶體掃描器讀取該可執行應用程式之該部分之後。
- 如申請專利範圍第17項的系統,其中,該處理器被進一步被組構成:使用該經檢測的複製來監視該可執行應用程式的執行,該監視被組構成偵測有毒軟體。
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)
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)
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)
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 | 中国科学院计算技术研究所 | 一种非对齐访存的处理方法 |
-
2011
- 2011-03-30 US US13/076,378 patent/US8479295B2/en not_active Expired - Fee Related
- 2011-12-29 EP EP11862405.5A patent/EP2691851B1/en not_active Not-in-force
- 2011-12-29 CN CN201180069747.7A patent/CN103460179B/zh not_active Expired - Fee Related
- 2011-12-29 WO PCT/US2011/067796 patent/WO2012134584A1/en active Application Filing
- 2011-12-29 TW TW100149561A patent/TWI464575B/zh not_active IP Right Cessation
Patent Citations (3)
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 |