TWI612439B - 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體 - Google Patents

用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體 Download PDF

Info

Publication number
TWI612439B
TWI612439B TW104105594A TW104105594A TWI612439B TW I612439 B TWI612439 B TW I612439B TW 104105594 A TW104105594 A TW 104105594A TW 104105594 A TW104105594 A TW 104105594A TW I612439 B TWI612439 B TW I612439B
Authority
TW
Taiwan
Prior art keywords
computing device
transaction
memory
security
monitored
Prior art date
Application number
TW104105594A
Other languages
English (en)
Other versions
TW201543258A (zh
Inventor
亞歷克斯 奈蕭特
伊戈爾 穆提克
羅門 迪曼提夫
Original Assignee
邁克菲股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 邁克菲股份有限公司 filed Critical 邁克菲股份有限公司
Publication of TW201543258A publication Critical patent/TW201543258A/zh
Application granted granted Critical
Publication of TWI612439B publication Critical patent/TWI612439B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

用於偵測未經授權之記憶體存取的技術包括具有異動記憶體支援之一計算裝置。該計算裝置執行一安全性執行緒內之一異動記憶體執行包絡。在該異動包絡內,該安全性執行緒讀取一或多個記憶體位置。該計算裝置偵測源自該異動包絡的一異動中止,且判定一安全性事件是否已發生。一安全性事件可包括自該異動包絡外部(包括自非異動程式碼)對該等經監測記憶體位置的一未經授權之寫入。該計算裝置報告經偵測到之任何安全性事件。該計算裝置可執行各自監測一不同之非重疊記憶體位置的若干安全性執行緒。該計算裝置可在一先前安全性執行緒正處置一異動中止的同時繁衍一新的安全性執行緒以監測一記憶體位置。描述且主張其他實施例。

Description

用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒 體
本發明係有關於使用異動記憶體之未經授權的記憶體修改之低負擔偵測技術。
發明背景
電腦安全性之一個態樣涉及保護電腦系統不受亦稱作「惡意程式碼」之惡意軟體影響。惡意程式碼呈許多形式;然而,許多常見品種之惡意程式碼執行對電腦記憶體中未經授權之位置的寫入或其他存取。舉例而言,某惡意程式碼修改關鍵之記憶體中系統資料結構以獲得對電腦的控制。一個此類攻擊涉及覆寫系統呼叫表,使得由惡意程式碼供應之程式碼替代一或多個系統呼叫而被執行。此攻擊可由所謂「木馬」使用,以獲得系統之控制並逃避偵測。作為另一實例,某惡意程式碼使得系統執行來自未經授權之記憶體區段諸如系統堆疊或資料區段的程式碼。舉例而言,緩衝器溢出開發、返回導向程式設計(ROP)小工 具及類似開發使得系統執行來自一般不應被執行之系統堆疊或堆(或由系統堆疊或堆驅動)的程式碼。惡意程式碼可執行此等攻擊以執行所謂「殼層程式碼(shellcode)」攻擊;亦即,在電腦系統上執行任意程式碼(通常自遠端位置引入)。
典型電腦安全性系統試圖藉由應用程式碼分析以潛在地對惡意程式碼分類而偵測惡意程式碼。舉例而言,電腦安全性系統可執行程式碼之靜態分析以搜尋熟知惡意程式碼簽名。一些系統亦可執行程式碼執行的動態分析。典型動態監測諸如使用超管理器之單一步進執行對系統效能具有大的負面影響。
一些電腦處理器提供對硬體異動記憶體之支援。異動記憶體允許程式設計師指定稱作「異動」之碼段獨立且不可部分完成地執行。亦即,在異動內發生之記憶體操作對於在計算系統上執行之其他異動或執行緒不可見,直至異動被成功地提交。在成功提交之後,在異動之後進行的所有記憶體瞬時可用於系統上的其他執行緒。異動記憶體可藉由以下操作實施:推測地執行異動,偵測在異動之執行期間發生的任何記憶體衝突,且接著回應於記憶體衝突而中止並復原異動。記憶體衝突包括(例如)試圖寫入至已由另一異動讀取或寫入之記憶體位置的異動。異動記憶體可簡化用於平行計算的程式設計模型。硬體異動記憶體支援之一個市售實例為可用於由Intel®公司製造之某些處理器上的異動同步擴展(Intel®TSX)。
如在2013年12月17日申請之申請中的國際申請 案PCT/US2013/075805中所描述,未經授權之記憶體存取可藉由將可疑程式碼包覆至異動中且並行地自另一異動讀取受保護記憶體區來偵測。異動之間的任何讀取-寫入衝突產生異動中止,且因此對受保護記憶體區的未經授權之改變可被自動地復原。
依據本發明之一實施例,係特地提出一種用於偵測未經授權之記憶體存取的計算裝置,該計算裝置包含:一安全性執行緒分派模組,其用以啟動一安全性執行緒;以及一安全性執行緒模組,其用以進行下列動作:啟動該安全性執行緒內的一異動記憶體包絡;存取該異動記憶體包絡內的一經監測記憶體位置;回應於該經監測記憶體位置之該存取而偵測一異動中止;回應於該異動中止之偵測而判定一安全性事件是否已發生,該安全性事件指示對該經監測記憶體位置的一未經授權之寫入,該未經授權之寫入源自該異動記憶體包絡的外部;以及回應於該安全性事件已發生的一判定而報告該安全性事件。
100‧‧‧例示性計算裝置
120‧‧‧處理器
122‧‧‧處理器核心
124‧‧‧硬體異動記憶體支援
126‧‧‧效能監測單元(PMU)
128‧‧‧輸入/輸出子系統
130‧‧‧記憶體
132‧‧‧經監測記憶體區
134‧‧‧中止處置常式
136‧‧‧資料儲存裝置
138‧‧‧通訊子系統
140‧‧‧顯示器
200‧‧‧環境
202‧‧‧安全性模組
204‧‧‧安全性執行緒分派模組
206‧‧‧安全性執行緒模組
208、208a至208c‧‧‧安全性執行緒
210‧‧‧異動記憶體異動
300、400、600‧‧‧方法
302至324、402至420、602至 630‧‧‧區塊
500‧‧‧活動圖式
502‧‧‧應用程式
在隨附諸圖中藉由實例且非限制地說明本文中所描述之概念。為簡單並清晰說明起見,諸圖中所說明之元件未必按比例繪製。在認為適當之處,已在諸圖當中重複參考標號以指示對應或類似元件。
圖1係用於偵測未經授權之記憶體存取之計算裝置的至少一實施例之簡化方塊圖; 圖2為圖1之計算裝置的環境之至少一實施例的簡化方塊圖;圖3為用於偵測未經授權之記憶體存取之方法的至少一實施例的簡化流程圖,該方法可由圖1及圖2之計算裝置來執行;圖4為用於分派安全性監測執行緒之方法的至少一實施例的簡化流程圖,該方法可由圖1及圖2之計算裝置來執行;圖5係說明多個安全性監測執行緒之操作的活動圖式;以及圖6為用於執行可疑程式碼之方法的至少一實施例的簡化流程圖,該方法可由圖1及圖2之計算裝置來執行。
較佳實施例之詳細說明
雖然本發明之概念易受各種修改及替代形式影響,但該等概念之特定實施例已在圖式中藉由實例展示,且將在本文中加以詳細描述。然而,應理解,不欲將本發明之概念限於所揭示的特定形式,而是相反,意欲涵蓋與本發明及所附申請專利範圍一致的所有修改、等效物及替代物。
本說明書中對「一個實施例」、「一實施例」、「一說明性實施例」等之參考指示所描述實施例可包括一特定特徵、結構或特性,但每一實施例可以或可能未必包括該特定特徵、結構或特性。此外,此等片語未必係指同一實 施例。另外,當結合一實施例來描述一特定特徵、結構或特性時,應主張,無論是否予以明確描述,結合其他實施例來實現此特徵、結構或特性在熟習此項技術者之認識範圍內。另外,應瞭解,以「至少一A、B及C」之形式包括於清單中之項目可意謂(A);(B);(C);(A及B);(B及C);(A及C);或(A、B及C)。類似地,以「A、B或C中之至少一者」之形式列出的項目可意謂(A);(B);(C);(A及B);(A及C);(B及C);或(A、B及C)。
在一些狀態下,所揭示實施例可以硬體、韌體、軟體或其任何組合來實施。所揭示實施例亦可實施為由一或多個暫時或非暫時性機器可讀(例如,電腦可讀)儲存媒體攜載或儲存於一或多個暫時或非暫時性機器可讀(例如,電腦可讀)儲存媒體上的指令,該等指令可由一或多個處理器讀取並執行。機器可讀儲存媒體可體現為用於儲存或傳輸呈機器可讀之形式之資訊的任何儲存裝置、機構或其他實體結構(例如,依電性或非依電性記憶體、媒體光碟或其他媒體裝置)。
在圖式中,一些結構或方法特徵可以特定配置及/或次序來展示。然而,應瞭解,可能不需要此等特定配置及/或次序。確切而言,在一些實施例中,此等特徵可以不同於說明性諸圖中所展示之方式及/或次序的方式及/或次序配置。另外,特定圖中包括結構或方法特徵不意謂暗示,此特徵係所有實施例中所需的,且在一些實施例中,可不包括此特徵或此特徵可與其他特徵組合。
現參看圖1,例示性計算裝置100可用於偵測未經授權之記憶體存取。計算裝置100可執行一或多個安全性執行緒,每一安全性執行緒啟動異動,且在該異動內讀取經監測記憶體區的特定集合。安全性執行緒及其對應異動保持待決,而其他程式碼(例如,作業系統、超管理器、應用程式碼或其他程式碼)在計算裝置100上執行。源自異動外部之程式碼的對經監測記憶體區之任何寫入使得異動中止產生且由安全性執行緒處置。安全性執行緒可報告安全性事件,終止計算裝置100,或回應於偵測到異動中止而執行任何其他適當動作。異動監測允許計算裝置100即時監測關鍵記憶體區段的改變,而不修改或包覆執行程式碼(例如,不插入(inject)異動開始/結束指令)。另外,與執行程式碼之相容性可藉由降低執行程式碼之巢套異動層級而得到改良。又,藉由使用若干監測執行緒,可避免在異動記憶體緩衝器之大小上的限制。
計算裝置100可體現為用於執行本文中所描述之功能的任何類型之裝置。舉例而言,計算裝置100可體現為(但不限於)桌上型電腦、伺服器電腦、工作站、膝上型電腦、筆記型電腦、行動計算裝置、智慧型手機、平板電腦、蜂巢式電話、手機、訊息傳遞裝置、可穿戴式計算裝置、車載資訊通裝置、分散式計算系統、多處理器系統、消費型電子裝置、嵌入式控制器,及/或經組配以執行本文中所描述之功能的任何其他計算裝置。如圖1中所展示,例示性計算裝置100包括處理器120、輸入/輸出子系統128、記憶體 130及資料儲存裝置136。當然,在其他實施例中,計算裝置100可包括其他或額外組件,諸如常見於桌上型電腦中之彼等組件(例如,各種輸入/輸出裝置)。另外,在一些實施例中,例示性組件中之一或多者可併入於另一組件中或以其他方式形成另一組件之一部分。舉例而言,記憶體130或其部分在一些實施例中可併入於處理器120中(例如,在處理器快取記憶體用作隨機存取存儲器之實施中)。
處理器120可體現為能夠執行本文中所描述之功能的任何類型之處理器。例示性處理器120為多核心處理器;然而,在其他實施例中,處理器120可體現為單核心或多核心處理器、數位信號處理器、微控制器,或其他處理器或處理/控制電路。例示性處理器120包括四個處理器核心122,該等處理器核心中之每一者為能夠執行經規劃指令之獨立處理單元。儘管例示性處理器120包括四個處理器核心122,但處理器120在其他實施例中可包括較少或更大數目個處理器核心122。另外,儘管例示性計算裝置100包括單一處理器120,但在一些實施例中,計算裝置100可包括一個以上處理器120。舉例而言,計算裝置100可體現為具有共用記憶體互連件之對稱多處理系統。例示性處理器120進一步包括硬體異動記憶體支援124及效能監測單元(PMU)126。
異動記憶體支援124允許處理器120推測地執行稱作異動之碼段。異動為不可部分完成的,從而意謂由異動在異動待決同時執行的記憶體操作對於其他異動、核 心、邏輯處理器及/或處理器120的執行緒不可見。在完成異動亦稱作提交了異動時,異動之所有記憶體操作變得立刻可用於計算裝置100的剩餘部分。當異動內之記憶體存取與另一異動或執行緒衝突時,例如當執行緒對已由未提交異動讀取的記憶體位置寫入時(或當兩個異動及/或執行緒對相同記憶體位置寫入時),處理器120可中止衝突異動,從而捨棄任何相關聯的在進行中的異動記憶體改變。詳言之,處理器120可就在偵測到記憶體衝突之後「急切地」中止衝突異動,而不等待異動試圖進行提交。處理器120可使用快取記憶體同調性機構來實施急切衝突偵測。處理器120可以任何粒度層級例如按快取線、按字或按記憶體胞元偵測衝突記憶體位置。關於中止,處理器120可呼叫中止處理常式,重新啟動異動(一次或多次),或回應於中止之異動而調用非異動後饋程式碼。在一些實施例中,異動記憶體支援124可體現為在由Intel®公司製造之某些處理器120上可用的Intel®異動同步擴展(Intel®TSX)。
PMU 126可體現為能夠經由處理器120記錄並監測指令之流動的數個效能計數器。舉例而言,PMU 126可能能夠報告引起異動中止(例如,顯式中止指令或斷點)之指令的精準記憶體位址,或衝突資料位置的記憶體位址。儘管說明為單一PMU 126,但在一些實施例中,處理器120可包括若干PMU 126,例如針對每一處理器核心122一個PMU 126。
記憶體130可體現為能夠執行本文中所描述之功 能的任何類型之依電性或非依電性記憶體或資料儲存器。在操作中,記憶體130可儲存在計算裝置100之操作期間所使用的各種資料及軟體,諸如作業系統、應用程式、程式、程式庫及驅動程式。例示性記憶體130包括一或多個經監測記憶體區132及中止處置常式134。如下文進一步描述,經監測記憶體區132為針對所嘗試之未經授權之記憶體存取監測的特定記憶體區。此類經監測記憶體區132可包括關鍵系統記憶體結構,諸如系統呼叫表、硬體中斷表、系統安全性軟體或其他重要記憶體區。中止處置常式134可包括在異動中止情況下經呼叫以處置潛在安全性違例的常式,如下文進一步描述。記憶體130經由I/O子系統128通訊地耦接至處理器120,該I/O子系統可體現為電路及/或組件以藉由處理器120、記憶體130及計算裝置100之其他組件促進輸入/輸出操作。舉例而言,I/O子系統128可體現為或以其他方式包括記憶體控制器集線器、輸入/輸出控制集線器、韌體裝置、通訊鏈結(亦即,點對點鏈結、匯流排鏈結、導線、纜線、光導、印刷電路板跡線等)及/或其他組件及子系統以促進輸入/輸出操作。在一些實施例中,I/O子系統128可形成系統單晶片(SoC)的一部分,且連同處理器120、記憶體130及計算裝置100之其他組件被併入於單一積體電路晶片上。
資料儲存裝置136可體現為經組配以用於短期或長期資料儲存的任何類型之一或多個裝置,諸如記憶體裝置及電路、記憶卡、硬碟機、固態磁碟機或其他資料儲存 裝置。資料儲存裝置136可用以儲存包括作業系統軟體及應用軟體之軟體或其他資料以供執行。此軟體可最初不被信賴並潛在地為惡意的,例如,下載自第三方供應商的軟體。
計算裝置100進一步包括通訊子系統138,該通訊子系統可體現為能夠實現計算裝置100與遠端計算裝置之間的通訊的任何通訊電路、裝置或其集合。通訊子系統138可經組配以使用任何一或多種通訊技術(例如,無線或有線通訊)及相關聯協定(例如,乙太網、Bluetooth®、Wi-Fi®、WiMAX、HSPA+、LTE等)以實現此通訊。通訊子系統138可體現為網路配接器,包括無線網路配接器。
在例示性實施例中,計算裝置100進一步包括顯示器140。計算裝置100之顯示器140可體現為能夠顯示數位資訊的任何類型之顯示器,諸如液晶顯示器(LCD)、發光二極體(LED)、電漿顯示器、陰極射線管(CRT)或其他類型之顯示裝置。顯示器140可用以(例如)將安全性分析之結果輸送至使用者。
現參看圖2,在例示性實施例中,計算裝置100在操作期間建立環境200。例示性環境200包括安全性模組202、安全性執行緒分派模組204及安全性執行緒模組206。環境200之各種模組可體現為硬體、韌體、軟體或其組合。
安全性執行緒模組206經組配以由計算裝置100與其他程式碼之執行並行地執行一或多個安全性執行緒208。每一安全性執行緒208啟動異動記憶體異動210,並自異動210內讀取經監測記憶體區132。安全性執行緒208使用 相關聯中止處置常式134偵測異動中止,並處置異動中止。回應於偵測到異動中止,安全性執行緒208判定安全性事件是否已發生,並可報告安全性事件。安全性事件可包括對經監測記憶體區132的未經授權之存取,包括自在異動210外部執行的程式碼之未經授權之寫入。
安全性執行緒208各自體現為在計算裝置100之核心122或邏輯處理器上可執行的任何獨立的執行之執行緒,諸如作業系統執行緒、輕量級程序、作業系統程序、作業系統內核執行緒或使用者軟體執行緒。在產生時,每一安全性執行緒208可被供應有經監測記憶體區132或經監測記憶體區132的一部分之位址。在一些實施例中,安全性執行緒208可選自執行緒集區或以其他方式預產生,而非新產生。異動210可各自體現為任何異動記憶體包絡,該任何異動記憶體包絡可使用異動記憶體支援124由處理器120來執行。異動210中之每一者可維持讀取集合,該讀取集合記錄記憶體130內在異動210之執行期間已被讀取的位置。讀取集合可用以偵測記憶體衝突並觸發異動中止。
安全性執行緒分派模組204經組配以啟動安全性執行緒208中的一或多者。安全性執行緒分派模組204可將經監測記憶體區132之部分指派至安全性執行緒208中的每一者。安全性執行緒分派模組204可確保,監測所有經監測記憶體區132,且指派至安全性執行緒208中之每一者的經監測記憶體區132並不重疊。在一些實施例中,安全性執行緒分派模組204可在主要安全性執行緒208執行中止處置常 式134的同時監測安全性執行緒208之效能,且動態地調整使用中之安全性執行緒208的數目;例如基於經處置之異動中止的數目而調整安全性執行緒208的數目,或指派備用安全性執行緒208以覆蓋經監測記憶體區132。
安全性模組202經組配以識別可疑碼段,且將可疑碼段包覆於異動執行包絡中。安全性模組202亦可經組配以識別不應被執行之可疑程式碼內的特定記憶體位置,例如,可疑殼程式碼或可疑返回導向程式設計(ROP)小工具。包覆於異動包絡中的可疑程式碼可與安全性執行緒208並行地執行。由可疑程式碼引起之安全性事件例如對經監測記憶體區132之衝突寫入可引起異動中止。包括可疑程式碼之異動可因此被中止並復原,且安全性事件可經報告或以其他方式進行處理。因此,安全性模組202可體現為計算裝置100的具有對可疑程式碼之位址空間(或在將程式碼映射至記憶體130之前對資料儲存器136上之程式碼之影像)的存取之任何組件。舉例而言,安全性模組202可體現為虛擬機器監視器(VMM)、超管理器、作業系統、內核軟體或計算裝置100之其他控制系統,或前述各者的部分。
現參看圖3,在使用中,計算裝置100可執行用於偵測未經授權之記憶體存取的方法300。方法300可(例如)由計算裝置100之安全性執行緒208來執行。方法300以區塊302開始,在該區塊中,計算裝置100啟動新異動210,且識別相關聯中止處置常式134。在一些實施例中,異動210可藉由執行特定指令(例如,XBEGIN指令)來啟動。中止處置 常式134之位址可作為引數傳遞至異動開始指令。另外或替代地,可存在單獨指令以用於指定中止處置常式134之位址。如上文所描述,若異動中止在異動210之執行期間發生,則處理器120呼叫中止處置常式134。
在區塊304中,計算裝置100之目前安全性執行緒208自異動210內讀取一或多個經監測記憶體區132。如下文結合圖4進一步描述,特定安全性執行緒208可讀取少於記憶體130之經監測記憶體區132的全部。由計算裝置100同時執行之其他安全性執行緒208可讀取剩餘經監測記憶體區132。讀取經監測記憶體區132將經監測記憶體區132添加至與異動210相關聯的讀取集合。因此,在讀取經監測記憶體區132的同時,在區塊306中,計算裝置100可偵測異動中止,例如,由自異動210外部對經監測記憶體區132之衝突寫入引起的異動中止。此等異動中止可由非異動程式碼引起或由在不同異動內執行之程式碼引起。當然,異動中止可具有其他原因,諸如超出異動大小之硬體限值,遭遇對於異動執行並不支援的指令(例如,嘗試之I/O指令)、超出巢套異動限值,或其他原因。
在區塊308中,計算裝置100使得安全性執行緒208休眠。在安全性執行緒208正休眠的同時,計算裝置100監測異動中止。如上文所描述,異動中止可由安全性執行緒208與在計算裝置100上執行之其他程式碼之間的記憶體衝突引起。如上文所描述,例如,當來自異動210外部之程式碼寫入至在待決異動210之讀取集合內的資料位置時,異 動記憶體衝突可發生。記憶體衝突之偵測及異動中止之後續產生可由處理器120之硬體、處理器120之微碼、韌體、軟體或彼等技術之任何組合來執行。記憶體衝突及其他異動中止之偵測對於在處理器120上執行之軟體可為透明的,該處理器可變得僅在處理器120呼叫中止處置常式134之後知曉異動中止。因此,計算裝置100可在將經監測記憶體區132載入至異動210之讀取集合中之後休眠或以其他方式引起安全性執行緒208之執行,且仍偵測異動中止。使得安全性執行緒208休眠可藉由減少對計算資源之競爭而改良計算裝置100之效能。當然,在一些實施例中,處理器120可不能夠在執行緒正休眠的同時偵測異動中止;在彼等實施例中,計算裝置100可(例如)藉由重複地自經監測記憶體位置132進行讀取而持續地、定期地或回應性地判定異動中止是否已發生。
在區塊310中,計算裝置100判定異動中止是否已發生。如上文所描述,硬體、微碼、韌體或計算裝置100之其他組件可透明地判定異動中止是否已發生,即使在安全性執行緒208正在休眠情況下。若異動中止尚未發生,則方法300循環回至區塊308。若異動中止已發生,則方法300前進至區塊312。
在區塊312中,計算裝置100執行中止處置常式134。計算裝置100可執行用於執行中止處置常式134的任何適當程序。舉例而言,計算裝置100可在安全性執行緒208之執行期間自動地復原藉由異動210進行的對記憶體之任 何改變,且接著調用中止處置常式134。
在區塊314中,計算裝置100分析計算裝置100之裝置狀況,以判定安全性事件是否已發生。此分析可藉由中止處置常式134執行,或回應於正經呼叫之中止處置常式134而以其他方式調用。安全性事件包括對經監測記憶體區132中之一或多者的任何未經授權之存取,諸如對經監測記憶體區132之未經授權之寫入。此等未經授權之記憶體修改可由惡意軟體諸如試圖攔截系統表、修補OS或安全性軟體或攪亂計算裝置100之控制的木馬來執行。安全性事件可不包括(例如)未涉及經監測記憶體區132的資料衝突,諸如並行地執行之異動及/或執行緒之間的一般資料衝突。
計算裝置100可基於異動中止之原因而判定安全性事件是否已發生。在區塊316中,在一些實施例中,計算裝置100可讀取中止狀態暫存器以分析裝置狀況。舉例而言,對於具有Intel®TSX之Intel®架構處理器,計算裝置100可讀取EAX暫存器。中止狀態暫存器可提供關於以下各者之資訊:中止的原因諸如記憶體衝突類型,顯式中止指令是否已遭遇到,或斷點是否已遭遇到。舉例而言,若中止狀態暫存器指示異動中止未由記憶體衝突引起,則安全性事件可能尚未發生。在一些實施例中,在區塊318中,計算裝置100可讀取效能監測單元(PMU)126以分析裝置(或處理器)狀況。PMU 126可提供資訊以判定異動中止的原因,包括與中止相關之記憶體位址,諸如中止指令的位址或衝突資料的位址。舉例而言,計算裝置100可比較衝突資料之 記憶體位址與經監測記憶體區132之記憶體位址以判定經監測記憶體區132是否已被存取。因此,計算裝置100可區分由安全性事件引起之異動中止與由並行異動及/或執行緒之間的典型資料衝突引起的異動中止。
在區塊320中,計算裝置100判定安全性事件是否已發生。如上文所描述,安全性事件在來自異動210外部之程式碼寫入至經監測記憶體區132時可發生。若安全性事件尚未發生,則方法300循環回至區塊302以啟動另一異動並繼續監測經監測記憶體區132。若安全性事件已發生,則方法300前進至區塊322。
在區塊322中,計算裝置100報告安全性事件。安全性事件可使用任何可用技術來報告,該技術包括顯示交互式警報、產生人類可讀報告、試圖反轉對經監測記憶體區132的改變,或執行另一安全性操作。在一些實施例中,在區塊324中,計算裝置100可終止(例如,停止執行程式碼、斷電或重新啟動)。舉例而言,計算裝置100可終止以防止所包含程式碼在經監測記憶體區132已被修改之後的潛在執行。在報告安全性事件之後,方法300可完成。
現參看圖4,在使用中,計算裝置100可執行用於分派安全性監測執行緒208的方法400。方法400以區塊402開始,在該區塊中,計算裝置100識別記憶體130之一或多個區以監測。彼等經監測記憶體區132可體現為任何重要之記憶體中資料結構或不應由執行程式碼修改的位址範圍。舉例而言,經監測記憶體區132可包括系統呼叫表或其他系 統或內核層級資料結構或程式碼區域(例如,以保護OS程式碼不被填補或修改)。作為另一實例,經監測記憶體區132可包括超管理器或虛擬機監測程式碼或安全性軟體程式碼。作為再一實例,經監測記憶體區132可包括系統完整性檢查常式,例如,對驗證系統呼叫表、內核或其他關鍵記憶體中資料結構的完整性負責的碼段。
在區塊404中,計算裝置100將經監測記憶體區132之部分指派至一或多個安全性執行緒208。每一安全性執行緒208可被指派有經監測記憶體區132之非重疊區。舉例而言,支援Intel®TSX的處理器120可以快取線粒度(64位元組)支援異動記憶體衝突偵測。因此,在支援Intel®TSX之此類計算裝置100中,每一安全性執行緒208可被指派給位於不同快取線中的經監測記憶體區132。每一安全性執行緒208可接著獨立於另一安全性執行緒208監測其自己之獨特經監測記憶體區132。當然,在一些實施例中,計算裝置100可將所有經監測記憶體區132指派至單一安全性執行緒208。安全性執行緒208之數目及經監測記憶體區132之大小可取決於異動記憶體支援124的硬體限制,且可基於效能經動態地調整,如下文進一步描述。
在區塊406中,計算裝置100啟動安全性執行緒208。在啟動之後,安全性執行緒208各自開始異動210並讀取經監測記憶體位置132,如上文結合圖3之方法300所描述。在一些實施例中,在區塊408中,計算裝置100可將所有安全性執行緒208連結至單一處理器核心122。換言之, 安全性執行緒208可皆由單一處理器核心122執行。由單一處理器核心122執行安全性執行緒208可藉由(例如)以下操作來改良效能:節省其他處理器核心122之異動記憶體資源,減小由計算裝置100需要之內容切換的數目,或改良另一處理器核心122的回應性。計算裝置100可使用用於(例如)藉由使用計算裝置100之作業系統排程器設定處理器親和力而將安全性執行緒208連結至單一處理器核心122的任何技術。另外或替代地,在一些實施例中,計算裝置100可將安全性執行緒208連結至一組處理器核心122,例如,四個可用處理器核心122中的兩者。連結至一組處理器核心122可使可用於安全性執行緒208的異動記憶體資源增加。舉例而言,連結至一個以上處理器核心122可使最大讀取集合大小增加,此係因為最大讀取集合大小可取決於按處理器核心122的硬體。
在區塊410中,計算裝置100在安全性執行緒208正在執行的同時監測安全性執行緒208之效能屬性。計算裝置100可監測多少個異動中止正在發生且計算裝置100花費多長時間處置異動中止的任何指示。在一些實施例中,在區塊412中,計算裝置100判定當前執行之安全性執行緒208的數目。該數目可用於(例如)載入平衡用途或判定資源是否正被次佳地利用。在一些實施例中,在區塊414中,計算裝置100可判定已發生之異動中止的數目。計算裝置100可監測針對每一安全性執行緒208發生的異動中止之數目、與特定經監測記憶體區132相關聯之異動中止的數目、給定時段 中異動中止的總數,或由計算裝置100處置之異動中止的容量的任何其他量測。計算裝置100可另外監測個別安全性執行緒208以判定安全性執行緒208中之任一者是否正處置異動中止。在一些實施例中,在區塊416中,計算裝置100可判定執行中止處置常式134花費的時間量。計算裝置100可量測由所有安全性執行緒208花費之總時間、每安全性執行緒208的平均時間,或處置異動中止花費的任何其他時間量測。
在區塊418中,計算裝置100可基於所量測效能屬性來調整安全性執行緒208的數目。在一些實施例中,計算裝置100可添加或移除安全性執行緒208以執行載入平衡例如以達成每安全性執行緒208特定數目個異動中止,調整安全性執行緒208的處理器利用或處理時間,使指派至每一安全性執行緒208之經監測記憶體區132的大小平衡、使由每一經監測記憶體區132產生的異動中止的數目平衡,或以其他方式控制計算裝置100的效能。在一些實施例中,計算裝置100可添加或移除安全性執行緒208,以確保每一安全性執行緒208可監測其所指派之經監測記憶體區132而不使異動記憶體支援124的硬體能力溢出(例如,不使異動緩衝器溢出)。在一些實施例中,在區塊420中,計算裝置100可添加備用安全性執行緒208以在現有安全性執行緒208正忙碌於執行中止處置常式134或以其他方式處理異動中止時監測經監測記憶體區132。添加備用安全性執行緒208可允許計算裝置100確保所有經監測記憶體區132的連續或幾乎連 續監測,即使在處置潛在安全性事件時。在調整安全性執行緒208之數目之後,方法400循環回至區塊404以重新指派經監測記憶體區132並繼續監測。
現參看圖5,活動圖式500說明多個安全性執行緒208的至少一使用。例示性活動圖式500說明安全性執行緒分派模組204、三個安全性執行緒208a至208c以及應用程式502。當然,計算裝置100在其他實施例中可執行較小或更大數目個安全性執行緒208及/或應用程式502。彼等所說明實體中之每一者包括向下延伸以說明每一實體係作用中的生命線。安全性執行緒分派模組204如上文結合圖4之區塊406所描述藉由啟動安全性執行緒208a、208b開始。在啟動安全性執行緒208a、208b之後,安全性執行緒分派模組204如上文結合圖4之區塊410所描述監測安全性執行緒208的效能。
在啟動之後,安全性執行緒208a如上文結合圖3之區塊302所描述啟動新異動210。安全性執行緒208a如上文結合圖3之區塊304所描述接著讀取標記為「區A」的經監測記憶體區132。在讀取區A且因此載入區A至當前異動210的讀取集合中之後,安全性執行緒208a如上文結合圖3之區塊308所描述進入休眠,且監測異動中止。類似地,在啟動之後,安全性執行緒208b啟動新異動,讀取標記為「區B」的經監測記憶體區132,進入休眠,且監測異動中止。區A及B並不重疊,從而意謂執行緒208a、208b可各自監測涉及獨特記憶體區的異動中止。請注意,安全性執行緒208c最 初為非作用中的、未經啟動、未經排程,或以其他方式並不啟用。
應用程式502可體現為任何應用程式、作業系統、超管理器,或在計算裝置100上執行的其他程式碼。應用程式502可包括異動及/或非異動程式碼。應用程式502與安全性執行緒分派模組204及安全性執行緒208並行或同時地執行。應用程式502可正常(亦即,無干擾地)執行程式碼插入,或由計算裝置100之安全性軟體產生的其他修改。在執行歷時一段時間之後,應用程式502產生至區A之記憶體寫入,該區A包括於經監測記憶體區132中。至區A之寫入觸發至安全性執行緒208a的異動中止。安全性執行緒208a回應於異動中止而執行中止處置常式134,如上文結合圖3之區塊312所描述。雖然安全性執行緒208a執行中止處置常式134,但請注意,安全性執行緒208b繼續休眠並監測區B(獨特之經監測記憶體區132)。因此,處置安全性執行緒208中之一者中的異動中止並不阻斷或以其他方式防止由其他安全性執行緒208進行的異動中止的偵測。
安全性執行緒分派模組204可判定,安全性執行緒208a已接收到異動中止。安全性執行緒分派模組204可使用進行此判定的任何技術。舉例而言,安全性執行緒分派模組204可週期性地輪詢安全性執行緒208之狀態,在進入中止處置常式134之後便自安全性執行緒208接收回呼訊息,或執行任何其他適當技術。在判定或被通知安全性執行緒208a正執行中止處置常式134且因此不再監測經監測 記憶體區132之後,安全性執行緒分派模組204便可判定,應添加額外執行緒,如上文結合圖4之區塊418所描述。接著,安全性執行緒分派模組204如上文結合圖4之區塊406所描述可啟動安全性執行緒208c。在啟動安全性執行緒208c之後,安全性執行緒分派模組204如上文結合圖4之區塊410所描述恢復監測安全性執行緒208的效能。
安全性執行緒208c如上文結合圖3之區塊302所描述啟動新異動。安全性執行緒208c接著如上文結合安全性執行緒208a所描述接著讀取標記為「區A」的經監測記憶體區132。在讀取區A之後,安全性執行緒208c如上文結合圖3之區塊308所描述進入休眠,且監測異動中止。因此,安全性執行緒208c可為在安全性執行緒208a正處理異動中止的同時監測區A的備用執行緒。藉由啟動備用安全性執行緒208c,計算裝置100可繼續偵測所有經監測記憶體區132中之記憶體衝突,同時處理先前異動中止。
返回參看安全性執行緒208a,在執行中止處置常式134之後,安全性執行緒208a判定異動中止是否由安全性事件引起,如上文結合圖3之區塊314所描述。該判定回應於異動中止而發生,且可由中止處置常式134自身或藉由計算裝置100之另一組件來執行。在例示性實例中,異動中止由安全性事件引起,因此安全性執行緒208a如上文結合圖3之區塊322所描述報告安全性事件。在報告安全性事件之後,安全性執行緒208a如上文結合圖3之區塊324所描述終止計算裝置100。終止計算裝置100停止展示於圖5中之所有 其他實體的執行,該等其他實體包括安全性執行緒分派模組204,安全性執行緒208b、208c,以及應用程式502。
現參看圖6,在使用中,計算裝置100可執行用於執行可疑程式碼的方法600。方法600以區塊602開始,在該區塊中,計算裝置100識別記憶體130之一或多個區以在可疑程式碼之執行期間進行監測。判定記憶體領域以監測可係基於可疑程式碼之靜態及/或動態分析。如上文結合圖4所描述,經監測記憶體區132可體現為任何重要之記憶體中資料結構或不應由執行程式碼修改的位址範圍。舉例而言,經監測記憶體區132可包括系統呼叫表或其他系統或內核層級資料結構或程式碼區域(例如,以保護OS程式碼不被填補或修改)。作為另一實例,經監測記憶體區132可包括超管理器或虛擬機監測程式碼或安全性軟體程式碼。
在區塊604中,計算裝置100分派一或多個安全性執行緒208以監測經監測記憶體區132。計算裝置100可執行如上文結合圖4所描述之方法400以分派安全性執行緒208。
在區塊606中,計算裝置100監測可疑程式碼之執行。可疑程式碼可包括潛在地或很可能係惡意的任何程式碼。計算裝置100可使用任何方法來識別可疑程式碼。舉例而言,在一些實施例中,計算裝置100可基於諸如以下各者之後設資料屬性來監測及/或識別可疑程式碼:程式碼是否經簽名,程式碼是否下載自網際網路等。另外或替代地,計算裝置100可執行靜態分析、動態分析(例如,基於仿真)或其他啟發式分析以識別潛在惡意程式碼。作為更簡單實 例,在一些實施例中,計算裝置100可將待執行之任何程式碼識別為可疑的。
在區塊608中,計算裝置100判定是否已識別出任何可疑程式碼。若否,則方法600分支至區塊610,在該區塊中,計算裝置100允許程式碼之執行為正常的,且接著循環回至區塊606以繼續監測可疑程式碼。若已識別出了可疑程式碼,則方法600前進至區塊612。
在區塊612中,計算裝置100將可疑程式碼包覆於異動執行包絡中。包覆可疑程式碼允許可疑程式碼在異動中執行。可使用與處理器120之異動記憶體支援124相容的用於包覆可疑程式碼之任何方法。在一些實施例中,在區塊614中,計算裝置100可(例如)藉由在可疑程式碼之情形下使用超管理器來執行對應指令或藉由使用測試設備而將異動開始及異動結束指令插入至可疑程式碼中或周圍。在一些實施例中,可使得插入指令對於可疑程式碼不可見。另外或替代地,在一些實施例中,計算裝置100可插入僅異動開始指令以包覆可疑程式碼。在彼等實施例中,執行可繼續,直至異動中止回應於安全性事件(當異動緩衝器被超出)或由於任何其他原因發生。異動開始及異動結束指令可體現為藉由處理器120解譯以分別對異動之開始及結束發信的機器指令。舉例而言,在具有Intel®異動同步擴展(Intel®TSX)之Intel®架構處理器上,異動開始及異動結束指令可體現為分別具有記憶XBEGIN及XEND的指令。
在一些實施例中,在區塊616中,計算裝置100 可設定斷點,或可疑程式碼內的顯式中止指令。斷點可針對計算裝置100已判定不應被執行之可疑程式碼內的經監測記憶體區132而設定。斷點可體現為任何指令、資料或其他設定,該其他設定使得處理器120在試圖執行記憶體中之該特定位置時產生異動中止。舉例而言,斷點可藉由插入顯式異動中止指令諸如具有具Intel®TSX之Intel®架構處理器上之記憶XABORT的指令來設定。另外或替代地,斷點可藉由插入引起異動中止的任何其他合適指令或指令集(例如,斷點中斷指令、合法指令,或引起內部CPU異動追蹤儲存器之溢出從而導致中止的一連串指令)來設定。另外或替代地,斷點可藉由將特定值儲存於處理器120的除錯暫存器中而設定。設定斷點可允許計算裝置100監測可疑程式碼內潛在惡意位址的執行。
在區塊618中,計算裝置100啟動異動且識別相關聯中止處置常式。計算裝置100可識別結合安全性執行緒208或不同中止處置常式使用的中止處置常式134。中止處置常式可判定,異動中止是否由安全性事件引起,報告發生之任何安全性事件,或執行任何其他適當安全性操作。在一些實施例中,異動可藉由執行特定指令例如XBEGIN指令來啟動。中止處置常式之位址可作為引數傳遞至異動開始指令。另外或替代地,可存在單獨指令以用於指定中止處置常式之位址。如上文所描述,若異動中止在異動之執行期間發生,則處理器120呼叫中止處置常式。雖然在區塊618中啟動異動,但在區塊620中,計算裝置100可偵測異 動中止,例如,由異動與安全性執行緒208中之一或多者之間的記憶體衝突引起的異動中止。當然,異動中止可具有其他原因,諸如超出異動大小之硬體限值,或遭遇對於異動執行並不支援的指令(例如,經嘗試之I/O指令)。
在區塊622中,計算裝置100執行異動內的可疑程式碼。因此,可疑程式碼可與安全性執行緒208並行或同時地執行。於在區塊622中執行可疑程式碼的同時,在區塊624中,計算裝置100可偵測異動中止。(例如)若可疑程式碼寫入至已由安全性執行緒208讀取的經監測記憶體區132,則可產生異動中止。異動中止可就在衝突寫入之後或在稍後時間產生。另外或替代地,異動中止可在遭遇到在可疑程式碼內先前設定之斷點或插入於可疑程式碼內之顯式中止指令之後便產生。回應於異動中止,異動被復原,從而使由可疑程式碼對記憶體130進行的任何改變反轉。如上文所描述,當異動緩衝器之容量被超出時,例如當計算裝置100已插入異動開始指令而無對應異動結束指令時,亦可產生異動中止。在彼等實施例中,計算裝置100可插入另一異動開始指令(例如)以於在異動中止之前執行的最後指令之後繼續監測可疑程式碼。
在區塊626中,計算裝置100在完成可疑程式碼之後結束異動。在一些實施例中,異動可藉由執行特定指令例如XEND指令來結束。結束異動可使得計算裝置100在提交異動之前驗證異動。驗證異動可包括驗證異動之讀取集合及/或寫入集合以判定任何記憶體衝突是否已在異動之 執行期間發生。於在區塊626中結束異動的同時,在區塊628中,計算裝置100可偵測異動中止。舉例而言,異動中止可在驗證及/或提交異動出於任何原因失敗之後出現。另外或替代地,在一些實施例中,計算裝置100可實施「急切」驗證機構,其中驗證(包括衝突偵測)在發佈記憶體請求之後或在遭遇任何中止條件之後儘可能快地發生。另外,在一些實施例中,顯式異動結束指令可不存在,在該狀態下,異動歸因於耗盡用以追蹤異動衝突的儲存器之容量而可隱含地結束。
在成功地結束包括可疑程式碼之異動之後,方法600可前進至區塊630,或在一些實施例中循環回至區塊606。異動之成功完成指示,無安全性事件在可疑程式碼之執行期間發生;亦即,可疑程式碼的確不嘗試對任何經監測記憶體區132的未經授權之存取,包括藉由斷點標註之可疑程式碼的經嘗試執行。在一些實施例中,在區塊630中,計算裝置100可報告可疑程式碼為可信的。計算裝置100可使用任何報告方法;例如,計算裝置100可產生交互式警報,發送訊息或調用呼叫或回呼至至少一軟體模組,產生人類可讀報告,將可疑程式碼添加至白清單以允許將來執行,或執行其他安全性相關任務。在完成區塊630之後,方法600循環回至區塊606以繼續監測可疑程式碼執行。
實例
下文提供本文中所揭示之技術的例示性實例。技術之實施例可包括下文描述之實例中的任何一或多者及其 任何組合。
實例1包括一種用於偵測未經授權之記憶體存取的計算裝置,該計算裝置包含一安全性執行緒分派模組,其啟動一安全性執行緒;以及一安全性執行緒模組,其啟動該安全性執行緒內的一異動記憶體包絡;存取該異動記憶體包絡內的一經監測記憶體位置;回應於對該經監測記憶體位置之該存取而偵測一異動中止;回應於該異動中止之偵測而判定一安全性事件是否已發生,該安全性事件指示對該經監測記憶體位置之一未經授權之寫入,該未經授權之寫入源自該異動記憶體包絡外部;以及回應於該安全性事件已發生的一判定而報告該安全性事件。
實例2包括實例1之標的物,且其中該經監測記憶體位置包含該計算裝置之一系統呼叫表、該計算裝置之安全性軟體、該計算裝置之一超管理器的部分,或該計算裝置之一內核的一部分。
實例3包括實例1及2中任一項之標的物,且其中該經監測記憶體位置包含該計算裝置的一系統完整性檢查常式。
實例4包括實例1至3中任一項之標的物,且其中存取該經監測記憶體位置包含讀取經監測記憶體位置。
實例5包括實例1至4中任一項之標的物,且其中該安全性執行緒模組進一步回應於對該經監測記憶體位置之該存取而引起該安全性執行緒的執行。
實例6包括實例1至5中任一項之標的物,且其中 判定該安全性事件是否已發生包含比較擷取自該計算裝置之一效能監測單元的一衝突資料位置之一第一記憶體位址與該經監測記憶體位置的一第二記憶體位址。
實例7包括實例1至6中任一項之標的物,且其中判定該安全性事件是否已發生包含基於該計算裝置之一中止狀態暫存器而判定該異動中止的一原因。
實例8包括實例1至7中任一項之標的物,且其中報告該安全性事件包含終止該計算裝置。
實例9包括實例1至8中任一項之標的物,且其中安全性執行緒模組進一步回應於偵測到異動中止而執行一異動中止處置常式;其中啟動異動記憶體包絡包含識別異動中止處置常式;且執行該異動中止處置常式包含判定安全性事件是否已發生。
實例10包括實例1至9中任一項之標的物,且其中該安全性執行緒模組進一步回應於該安全性事件尚未發生的一判定而重新啟動該異動記憶體包絡。
實例11包括實例1至10中任一項之標的物,且其中該安全性執行緒分派模組進一步啟動一第二安全性執行緒;且該安全性執行緒模組進一步進行以下操作:啟動第二安全性執行緒內之一第二異動記憶體包絡;存取該第二異動記憶體包絡內之一第二經監測記憶體位置,其中該第二經監測記憶體位置與該經監測記憶體位置並不重疊;以及與該安全性事件是否已發生之該判定同時地監測由該第二異動記憶體包絡進行之一第二異動中止。
實例12包括實例1至11中任一項之標的物,且其中該安全性執行緒分派模組進一步連結該安全性執行緒與該第二安全性執行緒以供該計算裝置之一專用處理器核心執行。
實例13包括實例1至12中任一項之標的物,且其中安全性執行緒分派模組進一步進行以下操作:啟動安全性執行緒之一集合,其中該集合包括該安全性執行緒;監測安全性執行緒之該集合的一效能屬性;以及基於該經監測效能屬性而調整包括於安全性執行緒之該集合中的安全性執行緒之數目;且該安全性執行緒模組進一步進行以下操作:啟動安全性執行緒之該集合的每一安全性執行緒內的一異動記憶體包絡;以及存取安全性執行緒之該集合的每一異動記憶體包絡內之一獨特經監測記憶體位置。
實例14包括實例1至13中任一項之標的物,且其中該效能屬性包含偵測到之異動中止的一數目、處置異動中止花費的一時間,或每一異動記憶體包絡之該獨特經監測記憶體位置的一大小。
實例15包括實例1至14中任一項之標的物,且其中該安全性執行緒分派模組進一步回應於該異動中止之該偵測而啟動一第二安全性執行緒;且該安全性執行緒模組進一步進行以下操作:(i)啟動該第二安全性執行緒內之一第二異動記憶體包絡,(ii)存取該第二異動記憶體包絡內的該經監測記憶體位置,以及(iii)與該安全性事件是否已發生的該判定同時地監測由該第二異動記憶體包絡進行之一第 二異動中止。
實例16包括實例1至15中任一項之標的物,且其中安全性執行緒分派模組進一步進行以下操作:(i)啟動第二安全性執行緒;以及(ii)回應於偵測到異動中止而啟動第三安全性執行緒;且安全性執行緒模組進一步進行以下操作:啟動第二安全性執行緒內的第二異動記憶體包絡;存取第二異動記憶體包絡內的第二經監測記憶體位置,其中第二經監測記憶體位置與經監測記憶體位置並不重疊;啟動第三安全性執行緒內之第三異動記憶體包絡;存取第三異動記憶體包絡內的經監測記憶體位置;以及與安全性事件是否已發生的判定同時地監測由第二異動記憶體包絡及第三異動包絡進行之第二異動中止。
實例17包括實例1至16中任一項之標的物,且進一步包含進行以下操作之安全性模組:判定一碼段是否為可疑的;回應於存取該經監測記憶體位置及該碼段並非可疑的一判定而執行該碼段;以及回應於該碼段係可疑的一判定而進行以下操作:將該碼段包覆於一第二異動記憶體包絡中;以及回應於對該經監測記憶體位置之該存取而執行該第二異動記憶體包絡內的該碼段。
實例18包括實例1至17中任一項之標的物,且其中包覆碼段包含將異動開始指令插入於碼段中。
實例19包括實例1至18中任一項之標的物,且其中包覆碼段進一步包含將一異動結束指令插入於該碼段中。
實例20包括一種用於偵測未經授權之記憶體存取的方法,該方法包含由一計算裝置啟動一安全性執行緒;由該計算裝置啟動該安全性執行緒內之一異動記憶體包絡;由該計算裝置存取該異動記憶體包絡內的一經監測記憶體位置;由該計算裝置回應於存取該經監測記憶體位置而偵測一異動中止;由該計算裝置回應於偵測到該異動中止而判定一安全性事件是否已發生,該安全性事件指示對該經監測記憶體位置的一未經授權之寫入,該未經授權之寫入源自該異動記憶體包絡外部;以及由該計算裝置回應於判定該安全性事件已發生而報告該安全性事件。
實例21包括實例20之標的物,且其中該經監測記憶體位置包含該計算裝置之一系統呼叫表、該計算裝置之安全性軟體、該計算裝置之一超管理器的部分,或該計算裝置之一內核的一部分。
實例22包括實例20及21中任一項之標的物,且其中該經監測記憶體位置包含該計算裝置的一系統完整性檢查常式。
實例23包括實例20至22中任一項之標的物,且其中存取該經監測記憶體位置包含讀取經監測記憶體位置。
實例24包括實例20至23中任一項之標的物,且進一步包含由該計算裝置回應於存取該經監測記憶體位置而引起該安全性執行緒的執行。
實例25包括實例20至24中任一項之標的物,且其中判定該安全性事件是否已發生包含比較擷取自該計算裝 置之一效能監測單元的一衝突資料位置之一第一記憶體位址與該經監測記憶體位置的一第二記憶體位址。
實例26包括實例20至25中任一項之標的物,且其中判定該安全性事件是否已發生包含基於該計算裝置之一中止狀態暫存器而判定該異動中止的一原因。
實例27包括實例20至26中任一項之標的物,且其中報告該安全性事件包含終止該計算裝置。
實例28包括實例20至27中任一項之標的物,且進一步包含由該計算裝置回應於偵測到異動中止而執行一異動中止處置常式;其中啟動異動記憶體包絡包含識別異動中止處置常式;且執行該異動中止處置常式包含判定安全性事件是否已發生。
實例29包括實例20至28中任一項之標的物,且進一步包含由該計算裝置回應於判定該安全性事件尚未發生而重新啟動該異動記憶體包絡。
實例30包括實例20至29中任一項之標的物,且進一步包含由該計算裝置啟動一第二安全性執行緒;由該計算裝置啟動該第二安全性執行緒內之一第二異動記憶體包絡;由該計算裝置存取該第二異動記憶體包絡內的一第二經監測記憶體位置,其中該第二經監測記憶體位置與該經監測記憶體位置並不重疊;以及由該計算裝置監測由該第二異動記憶體包絡進行之一第二異動中止,同時判定該安全性事件是否已發生。
實例31包括實例20至30中任一項之標的物,且進 一步包含由該計算裝置連結該安全性執行緒與第二安全性執行緒以供計算裝置之一專用處理器核心執行。
實例32包括實例20至31項中任一項之標的物,且進一步包含由該計算裝置啟動安全性執行緒之一集合,其中該集合包括該安全性執行緒;由該計算裝置啟動安全性執行緒之該集合的每一安全性執行緒內的一異動記憶體包絡;由該計算裝置存取安全性執行緒之該集合的每一異動記憶體包絡內之一獨特經監測記憶體位置;由該計算裝置監測安全性執行緒之該集合的一效能屬性;以及由該計算裝置基於該經監測效能屬性調整包括於安全性執行緒之該集合內的安全性執行緒之數目。
實例33包括實例20至32中任一項之標的物,且其中監測效能屬性包含監測偵測到之異動中止的數目、處置異動中止花費的一時間,或每一異動記憶體包絡之該獨特經監測記憶體位置的一大小。
實例34包括實例20至33中任一項之標的物,且進一步包含由一計算裝置回應於偵測到該異動中止而啟動一第二安全性執行緒;由該計算裝置啟動第二安全性執行緒內之一第二異動記憶體包絡;由該計算裝置存取該第二異動記憶體包絡內的該經監測記憶體位置;以及由該計算裝置監測由該第二異動記憶體包絡進行之一第二異動中止,同時判定該安全性事件是否已發生。
實例35包括實例20至34中任一項之標的物,且進一步包含由計算裝置啟動第二安全性執行緒;由計算裝置 啟動第二安全性執行緒內之第二異動記憶體包絡;由計算裝置存取第二異動記憶體包絡內之第二經監測記憶體位置,其中第二經監測記憶體位置與經監測記憶體位置並不重疊;由計算裝置回應於偵測到異動中止而啟動第三異動記憶體包絡;由計算裝置啟動第三安全性執行緒內之第三異動記憶體包絡;由計算裝置存取第三異動記憶體包絡內的經監測記憶體位置;以及與安全性事件是否已發生的判定同時地監測由第二異動記憶體包絡及第三異動包絡進行之第二異動中止。
實例36包括實例20至35中任一項之標的物,且進一步包含由該計算裝置判定一碼段是否係可疑的;由該計算裝置回應於存取該經監測記憶體位置及判定該碼段並非可疑的而執行該碼段;以及回應於判定該碼段係可疑的而進行以下操作;由該計算裝置將該碼段包覆於一第二異動記憶體包絡中;以及由該計算裝置回應於存取該經監測記憶體位置而執行該第二異動記憶體包絡內的該碼段。
實例37包括實例20至36中任一項之標的物,且其中包覆碼段包含將異動開始指令插入於碼段中。
實例38包括實例20至37中任一項之標的物,且其中包覆碼段進一步包含將一異動結束指令插入於該碼段中。
實例39包括一種計算裝置,其包含一處理器;以及一記憶體,其具有儲存於其中之多個指令,該等多個指令在由該處理器執行時使得該計算裝置執行實例20至38中 任一項的方法。
實例40包括一或多種機器可讀儲存媒體,其包含儲存於其上之多個指令,該等多個指令指令回應於經執行而導致一計算裝置執行實例20至38中任一項的方法。
實例41包括一種計算裝置,其包含用於執行如實例20至38中任一項之方法的構件。
實例42包括一種用於偵測未經授權之記憶體存取的計算裝置,該計算裝置包含用於啟動一安全性執行緒之構件;用於啟動該安全性執行緒內之一異動記憶體包絡的構建;用於存取該異動記憶體包絡內之一經監測記憶體位置的構件;用於回應於存取該經監測記憶體位置而偵測一異動中止的構件;用於回應於偵測到該異動中止而判定一安全性事件是否已發生的構件,該安全性事件指示對該經監測記憶體位置之一未經授權之寫入,該未經授權之寫入源自該異動記憶體包絡外部;以及用於回應於判定該安全性事件已發生而報告該安全性事件的構件。
實例43包括實例42之標的物,且其中該經監測記憶體位置包含該計算裝置之一系統呼叫表、該計算裝置之安全性軟體、該計算裝置之一超管理器的部分,或該計算裝置之一內核的一部分。
實例44包括實例42及43中任一項之標的物,且其中該經監測記憶體位置包含該計算裝置的一系統完整性檢查常式。
實例45包括實例42至44中任一項之標的物,且其 中用於存取經監測記憶體位置的構件包含用於讀取經監測記憶體位置的構件。
實例46包括實例42至45中任一項之標的物,且進一步包含用於回應於存取經監測記憶體位置而引起安全性執行緒之執行的構件。
實例47包括實例42至46中任一項之標的物,且其中用於判定安全性事件是否已發生之構件包含用於比較比較擷取自該計算裝置之一效能監測單元的一衝突資料位置之一第一記憶體位址與該經監測記憶體位置之一第二記憶體位址的構件。
實例48包括實例42至47中任一項之標的物,且其中用於判定安全性事件是否已發生的構件包含用於基於該計算裝置之一中止狀態暫存器而判定該異動中止的一原因之構件。
實例49包括實例42至48中任一項之標的物,且其中用於報告安全性事件之構件包含用於終止計算裝置的構件。
實例50包括實例42至49中任一項之標的物,且進一步包含用於回應於偵測到異動中止而執行一異動中止處置常式的構件;其中用於啟動異動記憶體包絡之構件包含用於識別異動中止處置常式的構件;且用於執行該異動中止處置常式的構件包含用於判定安全性事件是否已發生的構件。
實例51包括實例42至50中任一項之標的物,且進 一步包含用於回應於判定該安全性事件尚未發生而重新啟動該異動記憶體包絡的構件。
實例52包括實例42至51中任一項之標的物,且進一步包含用於啟動一第二安全性執行緒之構件;用於啟動第二安全性執行緒內之一第二異動記憶體包絡的構件;用於存取該第二異動記憶體包絡內之一第二經監測記憶體位置的構件,其中該第二經監測記憶體位置與該經監測記憶體位置並不重疊;以及用於藉由該第二異動記憶體包絡監測一第二異動中止同時判定該安全性事件是否已發生的構件。
實例53包括實例42至52中任一項之標的物,且進一步包含用於連結該安全性執行緒與第二安全性執行緒以供計算裝置之一專用處理器核心執行的構件。
實例54包括實例42至53中任一項之標的物,且進一步包含用於啟動安全性執行緒之一集合的構件,其中該集合包括該安全性執行緒;用於啟動安全性執行緒之該集合的每一安全性執行緒內之一異動記憶體包絡之構件;用於存取安全性執行緒之該集合的每一異動記憶體包絡內之一獨特經監測記憶體位置之構件;用於監測安全性執行緒之集合之效能屬性的構件;以及用於基於該經監測效能屬性而調整包括於安全性執行緒之該集合中的安全性執行緒之數目的構件。
實例55包括實例42至54中任一項之標的物,且其中用於監測效能屬性之構件包含用於監測以下各者的構 件;偵測到之異動中止的一數目、處置異動中止花費的一時間,或每一異動記憶體包絡之該獨特經監測記憶體位置的一大小。
實例56包括實例42至55中任一項之標的物,且進一步包含用於回應於偵測到該異動中止而啟動一第二安全、性執行緒之構件;用於啟動該第二安全性執行緒內之一第二異動記憶體包絡的構件;用於存取該第二異動記憶體包絡內的該經監測記憶體位置之構件;以及用於藉由該第二異動記憶體包絡監測一第二異動中止同時判定該安全性事件是否已發生的構件。
實例57包括實例42至56中任一項之標的物,且進一步包含用於啟動第二安全性執行緒之構件;用於啟動第二安全性執行緒內之第二異動記憶體包絡的構件;用於存取第二異動記憶體包絡內的第二經監測記憶體位置之構件,其中第二經監測記憶體位置與經監測記憶體位置並不重疊;用於回應於偵測到異動中止而啟動第三安全性執行緒的構件;用於啟動第三安全性執行緒內之第三異動記憶體包絡的構件;用於存取第三異動記憶體包絡內之經監測記憶體位置的構件;以及用於在判定安全性事件是否已發生的同時監測由第二異動記憶體包絡及第三異動包絡進行之第二異動中止的構件。
實例58包括實例42至57中任一項之標的物,且進一步包含用於判定一碼段是否為可疑的構件;用於回應於存取該經監測記憶體位置及判定該碼段並非可疑的而執行 該碼段之構件;以及用於回應於判定該碼段係可疑的而將該碼段包覆於一第二異動記憶體包絡中的構件;以及用於回應於存取該經監測記憶體位置而執行該第二異動記憶體包絡內之該碼段的構件。
實例59包括實例42至58中任一項之標的物,且其中用於包覆碼段之構件包含用於將異動開始指令插入於碼段中的構件。
實例60包括實例42至59中任一項之標的物,且其中用於包覆碼段之構件進一步包含用於將異動結束指令插入於碼段中的構件。
100‧‧‧例示性計算裝置
134‧‧‧中止處置常式
200‧‧‧環境
202‧‧‧安全性模組
204‧‧‧安全性執行緒分派模組
206‧‧‧安全性執行緒模組
208‧‧‧安全性執行緒
210‧‧‧異動記憶體異動

Claims (25)

  1. 一種用以偵測未經授權之記憶體存取的計算裝置,該計算裝置包含:一安全性執行緒分派模組,其用以啟動一安全性執行緒以讀取關聯於一異動之一經監測記憶體位置;以及一安全性執行緒模組,其用以:啟動該安全性執行緒內的一異動記憶體包絡;由該安全執行緒來回應於該異動記憶體包絡之啟動而存取來自該異動記憶體包絡內的該經監測記憶體位置;回應於來自該異動記憶體包絡內的該經監測記憶體位置之存取而偵測一異動中止;回應於該異動中止之偵測而讀取來自一效能監測單元之一記憶體位址;回應於該異動中止之偵測而藉由該安全執行緒來將讀取自該效能監測單元之該記憶體位址與該經監測記憶體位置比較,以判定一安全性事件是否已發生,其中該安全性事件指示對源自該異動記憶體包絡的外部之該經監測記憶體位置的一未經授權之寫入;以及回應於該安全性事件已發生的一判定而報告該安全性事件。
  2. 如請求項1之計算裝置,其中該經監測記憶體位置包含 該計算裝置之一系統呼叫表、該計算裝置之安全性軟體、該計算裝置之一超管理器的部分,或該計算裝置之一內核的一部分。
  3. 如請求項1之計算裝置,其中該經監測記憶體位置包含該計算裝置的一系統完整性檢查常式。
  4. 如請求項1之計算裝置,其中該安全性執行緒模組係進一步用以回應於該經監測記憶體位置之該存取而產生該安全性執行緒的執行。
  5. 如請求項1之計算裝置,其中判定該安全性事件是否已發生包含比較擷取自該計算裝置之一效能監測單元的一衝突資料位置之一第一記憶體位址與該經監測記憶體位置的一第二記憶體位址。
  6. 如請求項1之計算裝置,其中判定該安全性事件是否已發生包含基於該計算裝置之一中止狀態暫存器而判定該異動中止的一原因。
  7. 如請求項1之計算裝置,其中報告該安全性事件包含終止該計算裝置。
  8. 如請求項1之計算裝置,其中該安全性執行緒模組係進一步用以回應於該安全性事件尚未發生的一判定而重新啟動該異動記憶體包絡。
  9. 如請求項1至8中任一項之計算裝置,其中:該安全性執行緒分派模組係進一步用以啟動一第二安全性執行緒;且該安全性執行緒模組係進一步用以進行下列動作: 啟動該第二安全性執行緒內之一第二異動記憶體包絡;存取該第二異動記憶體包絡內之一第二經監測記憶體位置,其中該第二經監測記憶體位置與該經監測記憶體位置並不重疊;以及與該安全性事件是否已發生之該判定同時地監測由該第二異動記憶體包絡所進行之一第二異動中止。
  10. 如請求項9之計算裝置,其中該安全性執行緒分派模組係進一步用以連結該安全性執行緒與該第二安全性執行緒以供該計算裝置之一專用處理器核心執行。
  11. 如請求項1至8中任一項之計算裝置,其中:該安全性執行緒分派模組係進一步用以進行下列動作:啟動安全性執行緒之一集合,其中該集合包括該安全性執行緒;監測安全性執行緒之該集合的一效能屬性;以及基於經監測之該效能屬性而調整包括於安全性執行緒之該集合中的安全性執行緒之數目;且該安全性執行緒模組係進一步用以進行下列動作:啟動安全性執行緒之該集合的每一安全性執行緒內之一異動記憶體包絡;以及存取安全性執行緒之該集合的每一異動記憶 體包絡內之一獨特經監測記憶體位置。
  12. 如請求項11之計算裝置,其中該效能屬性包含被偵測到之異動中止的一數目、處置異動中止花費的一時間,或每一異動記憶體包絡之該獨特經監測記憶體位置的一大小。
  13. 如請求項1至8中任一項之計算裝置,其中:該安全性執行緒分派模組係進一步用以回應於該異動中止之該偵測而啟動一第二安全性執行緒;且該安全性執行緒模組係進一步用以進行下列動作:(i)啟動該第二安全性執行緒內之一第二異動記憶體包絡;(ii)存取該第二異動記憶體包絡內的該經監測記憶體位置;以及(iii)與該安全性事件是否已發生的該判定同時地監測由該第二異動記憶體包絡所進行之一第二異動中止。
  14. 如請求項1至8中任一項之計算裝置,其進一步包含進行以下操作之一安全性模組:判定一碼段是否係可疑的;回應於該經監測記憶體位置之該存取及該碼段並非可疑的一判定而執行該碼段;以及回應於該碼段係可疑的一判定而進行下列動作:將該碼段包覆於一第二異動記憶體包絡中;以及回應於該經監測記憶體位置之該存取而執行該第二異動記憶體包絡內的該碼段。
  15. 如請求項1之計算裝置,其中讀取來自該效能監測單元之該記憶體位址包含讀取致使該異動中止的一指令之一位址。
  16. 一種用以偵測未經授權之記憶體存取的方法,該方法包含:由一計算裝置啟動一安全性執行緒以讀取關聯於一異動之一經監測記憶體位置;由該計算裝置啟動該安全性執行緒內之一異動記憶體包絡;由具有該安全性執行緒之該計算裝置回應於該異動記憶體包絡之一啟動而存取來自該異動記憶體包絡內的該經監測記憶體位置;由該計算裝置回應於來自該異動記憶體包絡內的該經監測記憶體位置之存取而偵測一異動中止;由該計算裝置回應於該異動中止之偵測而讀取來自一效能監測單元之一記憶體位址;由具有該安全性執行緒之該計算裝置回應於該異動中止之偵測而將讀取自該效能監測單元之該記憶體位址與該經監測記憶體位置比較以判定一安全性事件是否已發生,其中該安全性事件指示對源自該異動記憶體包絡的外部之該經監測記憶體位置的一未經授權之寫入;以及由該計算裝置回應於判定該安全性事件已發生而報告該安全性事件。
  17. 如請求項16之方法,其進一步包含由該計算裝置回應於存取該經監測記憶體位置而產生該安全性執行緒的執行。
  18. 如請求項16之方法,其中報告該安全性事件包含終止該計算裝置。
  19. 如請求項16之方法,其進一步包含由該計算裝置回應於判定該安全性事件尚未發生而重新啟動該異動記憶體包絡。
  20. 如請求項16之方法,其進一步包含:由該計算裝置啟動一第二安全性執行緒;由該計算裝置啟動該第二安全性執行緒內之一第二異動記憶體包絡;由該計算裝置存取該第二異動記憶體包絡內之一第二經監測記憶體位置,其中該第二經監測記憶體位置與該經監測記憶體位置並不重疊;以及由該計算裝置監測由該第二異動記憶體包絡所進行之一第二異動中止,同時判定該安全性事件是否已發生。
  21. 如請求項16之方法,其進一步包含:由該計算裝置啟動安全性執行緒之一集合,其中該集合包括該安全性執行緒,由該計算裝置啟動安全性執行緒之該集合的每一安全性執行緒內之一異動記憶體包絡;由該計算裝置存取安全性執行緒之該集合的每一 異動記憶體包絡內之一獨特經監測記憶體位置;由該計算裝置監測安全性執行緒之該集合的一效能屬性;以及由該計算裝置基於經監測之該效能屬性而調整包括於安全性執行緒之該集合中的安全性執行緒之數目。
  22. 如請求項16之方法,其進一步包含:由一計算裝置回應於偵測到該異動中止而啟動一第二安全性執行緒;由該計算裝置啟動第二安全性執行緒內之一第二異動記憶體包絡;由該計算裝置存取該第二異動記憶體包絡內的該經監測記憶體位置;以及由該計算裝置監測由該第二異動記憶體包絡所進行之一第二異動中止,同時判定該安全性事件是否已發生。
  23. 如請求項16之方法,其進一步包含:由該計算裝置判定一碼段是否係可疑的;由該計算裝置回應於存取該經監測記憶體位置及判定該碼段並非可疑的而執行該碼段;以及回應於判定該碼段係可疑的而進行下列動作:由該計算裝置將該碼段包覆於一第二異動記憶體包絡中;以及由該計算裝置回應於存取該經監測記憶體位置而執行該第二異動記憶體包絡內的該碼段。
  24. 一種計算裝置,其包含:一處理器;以及一記憶體,其具有儲存於其中之多個指令,該等多個指令在由該處理器所執行時致使該計算裝置執行如請求項16至23中任一項的方法。
  25. 一種包含儲存於其上的多個指令之一或多個機器可讀儲存媒體,該等指令回應於經執行而導致一計算裝置執行如請求項16至23中任一項的方法。
TW104105594A 2014-03-28 2015-02-17 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體 TWI612439B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/228,842 US20150278123A1 (en) 2014-03-28 2014-03-28 Low-overhead detection of unauthorized memory modification using transactional memory
US14/228,842 2014-03-28

Publications (2)

Publication Number Publication Date
TW201543258A TW201543258A (zh) 2015-11-16
TWI612439B true TWI612439B (zh) 2018-01-21

Family

ID=54190583

Family Applications (2)

Application Number Title Priority Date Filing Date
TW106137163A TWI667588B (zh) 2014-03-28 2015-02-17 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體(二)
TW104105594A TWI612439B (zh) 2014-03-28 2015-02-17 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW106137163A TWI667588B (zh) 2014-03-28 2015-02-17 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體(二)

Country Status (4)

Country Link
US (1) US20150278123A1 (zh)
EP (1) EP3123339A4 (zh)
TW (2) TWI667588B (zh)
WO (1) WO2015148080A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501314B2 (en) * 2013-02-22 2016-11-22 International Business Machines Corporation Reducing aborts caused by a runtime helper called during execution of a transaction block
US10540524B2 (en) * 2014-12-31 2020-01-21 Mcafee, Llc Memory access protection using processor transactional memory support
DE102016007139A1 (de) * 2016-06-10 2017-12-14 Giesecke+Devrient Mobile Security Gmbh Speicherverwaltung eines Sicherheitsmoduls
US10922604B2 (en) 2016-09-09 2021-02-16 Cylance Inc. Training a machine learning model for analysis of instruction sequences
US11074494B2 (en) * 2016-09-09 2021-07-27 Cylance Inc. Machine learning model for analysis of instruction sequences
US10223536B2 (en) * 2016-12-29 2019-03-05 Paypal, Inc. Device monitoring policy
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
GB201708439D0 (en) * 2017-05-26 2017-07-12 Microsoft Technology Licensing Llc Compute node security

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115479A1 (en) * 2001-12-14 2003-06-19 Jonathan Edwards Method and system for detecting computer malwares by scan of process memory after process initialization
US20080083031A1 (en) * 2006-12-20 2008-04-03 Microsoft Corporation Secure service computation
US20100131953A1 (en) * 2008-11-26 2010-05-27 David Dice Method and System for Hardware Feedback in Transactional Memory
TW201037525A (en) * 2008-12-30 2010-10-16 Intel Corp Read and write monitoring attributes in transactional memory (TM) systems
TW201218080A (en) * 2010-09-25 2012-05-01 Intel Corp Apparatus, method, and system for dynamically optimizing code utilizing adjustable transaction sizes based on hardware limitations
US8180971B2 (en) * 2005-12-09 2012-05-15 University Of Rochester System and method for hardware acceleration of a software transactional memory
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US8417814B1 (en) * 2004-09-22 2013-04-09 Symantec Corporation Application quality of service envelope
US8640230B2 (en) * 2011-12-19 2014-01-28 International Business Machines Corporation Inter-thread communication with software security

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711678B2 (en) * 2006-11-17 2010-05-04 Microsoft Corporation Software transaction commit order and conflict management
US9372718B2 (en) * 2008-07-28 2016-06-21 Advanced Micro Devices, Inc. Virtualizable advanced synchronization facility
US8161247B2 (en) * 2009-06-26 2012-04-17 Microsoft Corporation Wait loss synchronization

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115479A1 (en) * 2001-12-14 2003-06-19 Jonathan Edwards Method and system for detecting computer malwares by scan of process memory after process initialization
US8417814B1 (en) * 2004-09-22 2013-04-09 Symantec Corporation Application quality of service envelope
US8180971B2 (en) * 2005-12-09 2012-05-15 University Of Rochester System and method for hardware acceleration of a software transactional memory
US20080083031A1 (en) * 2006-12-20 2008-04-03 Microsoft Corporation Secure service computation
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US20100131953A1 (en) * 2008-11-26 2010-05-27 David Dice Method and System for Hardware Feedback in Transactional Memory
TW201037525A (en) * 2008-12-30 2010-10-16 Intel Corp Read and write monitoring attributes in transactional memory (TM) systems
TW201218080A (en) * 2010-09-25 2012-05-01 Intel Corp Apparatus, method, and system for dynamically optimizing code utilizing adjustable transaction sizes based on hardware limitations
US8640230B2 (en) * 2011-12-19 2014-01-28 International Business Machines Corporation Inter-thread communication with software security

Also Published As

Publication number Publication date
TWI667588B (zh) 2019-08-01
WO2015148080A1 (en) 2015-10-01
US20150278123A1 (en) 2015-10-01
TW201816650A (zh) 2018-05-01
EP3123339A4 (en) 2017-11-15
EP3123339A1 (en) 2017-02-01
TW201543258A (zh) 2015-11-16

Similar Documents

Publication Publication Date Title
TWI612439B (zh) 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體
KR101835250B1 (ko) 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출
CN107690645B (zh) 使用解释器虚拟机的行为恶意软件检测
JP6367490B2 (ja) プロセッサトランザクショナルメモリサポートを用いるメモリアクセス保護
US9864626B2 (en) Coordinating joint operation of multiple hypervisors in a computer system
JP2018523201A (ja) ファームウェア関連イベント通知
US11301283B1 (en) Virtualization extension modules
US9880931B2 (en) Safepoints for guest languages on a virtual machine
CN115576734B (zh) 一种多核异构日志存储方法和系统
US11461104B2 (en) Deferred system error exception handling in a data processing apparatus
US10282235B1 (en) Single-click ejection of peripheral devices associated with virtual machines
CN104166633B (zh) 用于存储器访问保护的方法和系统
EP2972848B1 (en) Completing asynchronous operations during program execution
Bai A Checkpointing Methodology for Android Smartphone