CN114556341A - 完整性监视器 - Google Patents
完整性监视器 Download PDFInfo
- Publication number
- CN114556341A CN114556341A CN201980101671.8A CN201980101671A CN114556341A CN 114556341 A CN114556341 A CN 114556341A CN 201980101671 A CN201980101671 A CN 201980101671A CN 114556341 A CN114556341 A CN 114556341A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- code
- monitoring
- kernel
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012544 monitoring process Methods 0.000 claims description 52
- 230000009471 action Effects 0.000 claims description 11
- 230000000116 mitigating effect Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 3
- 238000002955 isolation Methods 0.000 claims 1
- 238000005259 measurement Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000007792 addition Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000001010 compromised effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 208000015181 infectious disease Diseases 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004374 forensic analysis Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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
-
- 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
描述了一种方法,包括例如从存储器管理单元获得存储器管理配置数据。存储器管理配置数据用于标识具有预定性质的存储器位置。在所标识存储器位置处监视内容。
Description
背景技术
当今的反病毒软件专注于防止感染(例如,在打开文件之前扫描文件)和检测恶意的用户空间进程。通过依靠某种形式的软件混淆来保护监视组件免受成功入侵,在内核内进行监视可以是可能的。
附图说明
从以下结合附图的详细描述中,某些示例的各种特征和优点将是清楚的,附图通过示例的方式一起图示了多个特征,并且其中:
图1是示出了根据示例的分页存储器结构的示意图;
图2是示出了根据示例的页表的示意图;
图3是根据示例的用于监视存储器的方法的流程图;
图4是示出了根据示例的监视所标识存储器位置处的内容的方法的另外流程图;
图5是示出了根据示例的监视器的组件的示意图;
图6是示出了用具有安全(例如安全世界)和非安全(例如正常世界)部分的系统实现的示例的示意图;
图7是示出了根据示例的处理器和存储器的组件的框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了某些示例的许多具体细节。说明书中对“示例”或类似语言的引用意味着结合示例描述的特定特征、结构或特性包括在至少该一个示例中,但不一定包括在其他示例中。
内核空间在历史上一直是安全的盲点,不仅因为更难以监视它,而且还因为驱动程序之间完全没有分离(而进程之间有一些分离),监视器将难以保护自己免受成功的内核级感染。此外,监视组件的软件混淆可能易受熟练攻击者的影响,这些攻击者作为入侵的一部分,能够逆向设计混淆机制并损害监视组件本身。因此,难以有效地监视计算机系统来检测和缓解恶意内核级攻击。如将要解释的,根据示例,可以通过使用由存储器管理单元所定义的处理器的页表来保护内核代码部分的完整性,可能的是找到内核代码的所有位置,并针对意外的改变来监视它。在一个示例中,通过在所标识位置处取得内容的散列并将其与在较早时间(诸如在启动时间,此时系统被假定没有被损害)取得的散列进行比较来执行监视。
在示例中,更具特权的组件(例如,管理程序、信任区、SMM)可以实行运行时监视检查,以保护由内核层执行的代码的完整性。这防御内核空间的一些最强大和简单的感染:代码注入和代码修改。
图1是示出了具有存储器管理单元(MMU)11的处理器(CPU)10的示意图。在该示例中,MMU示出为CPU板载的组件。将领会的是,在其他架构中,MMU可以是单独组件,然而其与CPU的一个或多个核心通信。MMU具有定义页表20的根的多个配置寄存器。页表可以形成多级或分级的页结构,使得1级条目指向2级表,依此类推。页表20包含页表条目,其将虚拟地址空间30中的存储器帧映射到物理地址空间(未示出),例如主存储器(RAM或高速缓冲存储器)。在表是分级结构化的情况下,可能的是在例如1级条目上设置页表条目属性(其示例将在下面描述),并且它将在由1级条目指向的所有后续级上“强制”该属性。
不同类型的数据可以在虚拟存储器30内被寻址。例如,虚拟存储器可以包括内核代码31、内核数据32、进程代码33和进程数据34。内核代码涉及存储器的内核可执行区域,并且内核数据32涉及通过执行代码31而运行的内核进程(即操作系统的核心进程)所使用的数据。进程代码33涉及在虚拟存储器空间中运行的其他进程(例如,来自应用),并且进程数据34涉及在那些进程的执行中使用的数据。内核代码31特别令人感兴趣,因为侵入这些存储器区域可能损害处理器上运行的O/S。
内核代码位置31包含在O/S运行期间不应当被不知不觉地改变的数据。如将在下面更详细解释的,如果这些(或其他敏感的)存储器位置可以被高效地标识,则可以针对意外的改变来监视它们。在示例中,监视改变的一种方式是在认为内容尚未被损害时取得内容的散列并且然后在稍后时间取得散列,并且比较所获得的散列值。如果它们不同,则内核可执行存储器位置潜在地已经被损害,并且然后可以确定是否要作为响应而采取适当的缓解动作。在内核存储器被认为未损害时取得的散列值可以存储在参考列表40中,该参考列表40包含对应内核代码位置31的散列41-2和41-3。在所示的示例中,对应于参考散列41-2和41-3的地址的测量散列值31-2和31-3示出了参考散列41-3不对应于测量散列31-3。这指示代码已经改变,这在正常操作期间不应当发生,并且可能指示内核已经被损害。此外,发现可执行内核存储器位置的测量散列31-1包含代码,其中参考列表被认为是空的41-1。这指示一些新的可执行代码已经被添加到内核,这将需要被系统的任何监视组件进行考虑。
图2中示意性地示出了页表20的示例。页表20包含多个索引条目21-1至21-N。条目21-1至21-N包括用于将页表条目所指示的虚拟地址映射到存储器中的物理地址的物理地址22,以及指示页表条目所属的存储器帧的性质的多个状态位。例如,属性位可以包括PXN“特权从不执行”位23,其是当被设置时防止代码(即内核代码)在该页中执行的标志。其他属性位可以包括读取/写入位24,其指示该页处的存储器是可以写入的还是“只读”的。“只读”属性可以是不应当能够被改变的敏感代码的指示符。描述存储器中页的其他属性的其他类型的属性位25是可能的,并且这些属性位可以在示例中用于标识要被监视的特定属性的代码。
图3示出了根据示例的用于标识和监视感兴趣的存储器位置的方法。在框301中,获得存储器管理配置数据。这可以从MMU的配置寄存器获得,并提供页表数据和属性。然后,在框302处,可以使用页表数据结构来标识虚拟存储器空间内具有预定性质的存储器位置。如所提及的,预定性质可以是存储器位置可由内核执行,换句话说,包含特权代码。另一个可能的性质可能是存储器位置是“只读”的。例如,可以通过检查存储器帧的页表条目的属性/状态位,并根据属性确定存储器帧是否具有预定性质,来执行标识。如果给定的地址在页表中没有被标记为可执行的,那么试图执行它将引发CPU异常。因此,属性给出了当前可由例如内核执行的内容的权威视图。
例如,为了找到所有特权代码,可以检查处理器正在使用的页表。可以从地址0开始迭代所有虚拟地址,直到地址空间的顶部,并且可以针对该虚拟地址模拟处理器通常在硬件中执行的许可检查。例如,将检查防止(即内核)代码执行那些页中的代码的“特权从不执行”(PXN)位。任何没有此位的页都将被视为包含可执行代码。例如,Linux操作系统的版本开始在所有非内核代码上设置该属性(例如,包含内核不可执行的数据或代码的存储器区)。所有可执行页的物理地址都可以从页表中获得,所以我们可以在物理存储器中找到该页的内容。通过使用这种技术,该方法可以因此找到所有内核可执行的虚拟页及其对应的物理地址。在使用分级页表的情况下,在上级条目(例如,1级)上设置PXN位的情况下,它可以被强制在上级条目所指向的下级条目(例如,2级)中的所有页表条目上。因此,内核可执行代码是否存在于低级表的虚拟存储器区处可以通过查看高级页表条目的(一个或多个)属性(例如,PXN位)来确定。
可以在找到的可执行页上执行检查。可以验证没有添加可执行页,并且虚拟到物理的映射没有改变。当启动时不包含内核可执行代码的虚拟地址突然包含内核可执行代码时,页被认为是“添加的”。可以对每个“已知”的可执行页进行检查,并验证其对应的物理地址仍然与它在启动时是相同的。
在框303处,监视所标识存储器位置处的内容。例如,监视可以确保:
- 没有未经授权的代码被添加到执行代码;
- 自从现有代码被验证并被授权执行以来,没有现有代码被修改(在平台的启动或设置期间)。
根据框302处的方法,监视组件能够汇编可执行页(或其他感兴趣的页)的列表。根据示例的一种监视方式是将那些代码页的内容从内容被信任的时间与不知道代码页是否已被篡改的另一时间进行比较。
这样的监视进程的示例在图4中示出。在框401处,获得与存储器的所标识页(或多页)处的内容相关的参考数据。数据可以是内容本身,或者是基于该数据或从该数据导出的数据。在示例中,与内容相关的数据是存储器内容的加密散列。例如,这样的散列可以根据SHA-256散列协议来生成。这提供了一种简单的度量,它占用少量的存储器,但适合于执行比较。加密散列函数是单向函数,它取得任意长度的输入并输出恒定长度的散列。它们提供的保证之一是抗冲突性:不可行的是,找到将给出相同散列作为输出的两个不同输入。因此,它们是验证内核可执行代码完整性的好方式,而不需要存储它的整个副本。在我们的具体情况下,我们使用SHA-256函数。
在另一个示例中,可以用加密签名对所标识位置处的存储器内容进行数字签名,可以获得该签名并将其用于进行比较以确定内容的真实性。
在一个示例中,监视组件首先计算在内核启动和设置的受信阶段期间,就在启动之后取得的散列的参考列表,作为与存储器内容相关的第一数据。
初始测量(参考数据的计算)在监视进程的安全性方面可能具有至关重要的地位。事实上,该进程可能无法在“好”和“坏”初始测量之间进行区分:它将只是确保,在平台的运行时期间,与这些初始测量相比,没有代码被添加或修改。因此,如果这些初始测量(获得参考数据401)在启动进程中尽可能早地发生以最小化当我们取得测量时已经存在感染的风险,那么其是有利的。
然而,它们也应当在所有内核模块都已经被加载之后被取得。事实上,因为监视进程可以检测代码修改和添加两者,所以它可以在初始测量已经被取作恶意代码添加之后检测模块的加载。
在示例中,这些初始测量的取得可以与平台的启动管理器集成。通过启动管理器的适当配置,所有内核模块一被加载,就可以使其向例如监视组件发送信号,因此我们可以开始检查页表并计算初始测量。然后,在启动期间的稍后时间点(其可以是紧接在我们开始取得测量之后),但在开始执行表示潜在风险的任何代码(例如,未签名的代码、非常大的代码库、网络堆栈……)之前,所有初始散列计算(或获得参考数据的其他进程)已经完成。在启动期间的那个时间点,监视将被完全初始化功能,并且可以根据本文描述的任何示例继续。
根据示例,初始测量因此是被标识为具有预定性质(例如,它可由OS的内核执行)的虚拟地址和诸如该位置处的至少一些内容的散列之类的数据的汇编列表。
在框402处,与存储器的所标识页(或多页)处的内容相关的测量数据。在框401处,可以以与参考数据相似的方式获得测量数据。继获得参考数据之后获得测量数据(例如,在启动之后的某个时间,在其期间处理器已经执行)。在框403处,将参考数据与测量数据进行比较。例如,在已经计算散列以获得参考数据和测量数据的情况下,比较的是存储器页的相应散列值。在框404处,根据该比较来确定在该位置处的存储器内容是否已经有任何改变。如果是,则处理在框405处继续,其中响应于检测到的改变,决定是否要采取缓解或其他动作。此外,获得测量数据可以包括根据页表条目的属性重新汇编具有预定性质的虚拟地址列表。如果测量数据中的虚拟地址不在参考列表中,则这指示已经存在代码添加,并且可能需要缓解动作。因此,检测到改变,并且处理继续到框405。此外,根据示例,如果由虚拟地址的页表条目指示的物理地址在测量数据中不同于参考数据,则这指示入侵,并且处理应当再次继续到框405,以确定需要什么缓解动作(如果有的话)。
如果对于给定的虚拟地址,所测量的代码散列与参考列表相同——指示该代码的完整性没有被损害,则系统的完整性仍然完好无损,并且不采取动作。因此,该方法可以返回到框402,其中可以恢复监视。
此外,一旦已经采取了任何缓解动作,处理就可以返回到框402,并且监视可以继续。在框402处获得另外的数据作为测量数据,并且在先前比较中用作测量数据的内容现在被视为用于403中的比较的参考数据。可以在预定时间量(或计算周期)已经过去之后获得另外的测量数据。以此方式,该方法可以持续且有规律地监视所标识存储器位置。换句话说,我们在运行时期间持续计算内核存储器上的相同散列化(或替代)操作,并将新测量的散列列表与参考列表进行比较。间隔可以被生成并隐藏在安全存储器中,或者是非周期性的,从而不容易被攻击者预测。否则,恶意软件或其他恶意代码可以有可能在测量之前移动到存储器中,并且成功地避开检测,但是仍然在存储器中保持存续。不是以预定的间隔进行比较,而是可以取而代之地基于系统中的触发事件使得测量重复。例如,可以在安装或下载新软件时、这期间或这之后,或者在进程之间的上下文切换期间,进行测量和比较。
在框404处,根据示例,在比较给定页地址的所获得的参考和测量数据(散列值)时,监视组件可以基于以下安全策略(逻辑)采取动作。
如果在给定的虚拟地址处,监视组件根本没有找到任何代码(即没有代码来计算散列),而参考列表中存在一些代码(即在参考列表中计算了散列值)。在该情况下,根据示例,监视组件可以默默地忽略差异(因为它不应当被认为是安全威胁),或者根据另一个示例,应用诸如记录事件之类的策略。这可能发生在动态代码(诸如UEFI运行时服务或驱动程序)被卸载或以其他方式被标记为未使用时。
如果在给定的虚拟地址处,测量的(当前)散列包含参考列表中不存在的代码。这指示已经加载了一些新代码并使其可由内核执行。这可能例如是由于攻击(例如,攻击者加载新的内核模块或利用内核漏洞执行某种代码注入),也可能是由于合法加载驱动程序。在示例中,监视组件将应用一个策略或多个策略。
根据示例,策略可以允许将所有添加视为威胁:在该情况下,任何新的代码添加都被认为是恶意的,并且采取补救动作(以与针对代码改变事件类似的方式),诸如重启系统。
根据示例,策略可以允许所有添加可能被允许:在该情况下,监视组件将允许新代码被执行(可能安全地记录事件)。新代码的测量散列将被添加到参考列表,并且内核将继续其操作。例如,这可以用在调试或开发阶段中。
根据示例,允许受信添加,但不允许不受信添加:在该情况下,监视组件将在决定新代码是否应当被添加到参考列表之前对新添加的代码执行进一步检查。这样的检查可以包括(但不限于):基于驱动程序签名的数字签名验证、对照“允许更新”散列列表的验证、由远程方(例如策略服务器)的认证等。
在给定的虚拟地址处,测量的散列示出具有不同于参考列表中对应散列的散列的代码。这示出一些现有代码已经被修改。这在正常操作期间不应当发生。这很可能是代码修改攻击的结果(例如,攻击者修改一段内核代码来移除权限检查)。因此,在示例中,监视组件报告错误并采取缓解动作(例如,重启平台)。其他可能的缓解包括记录问题但另外不做任何事情,向安全操作中心报告问题,或者冻结设备的操作以允许取证分析。然而,该列表不是独有的,并且其他缓解动作是可能的。
根据示例,可以设置总体策略,其包括上述策略中的至少一个或者是任何上述策略的组合。
上面的监视示例使用非常高效的测量方法,因为它查看内核可以执行什么(或被标识和认为有风险的其他存储器区域),而不查看其他不相关的存储器区域,并且不能被误导。这是因为禁止CPU执行未标记为可执行的存储器区域。
图5是根据示例的监视组件500的框图。监视组件500将执行如上所述的图3的方法。根据示例,监视组件可以被实现为在处理器、专用硬件组件或硬件和软件的任何组合上执行的一组计算机可读指令。监视组件500将获得301存储器管理配置数据。例如,存储器管理配置数据可以是包括虚拟存储器中页的虚拟地址和属性信息的页表数据。监视组件还将标识302具有预定性质的存储器位置(即,虚拟存储器中的页)。例如,预定性质可以是位置是具特权的,并且可由O/S的内核执行。换句话说,监视器500可以标识存储器管理单元的页表的页表条目是否具有预定的页表属性。监视组件500进一步将监视所标识位置处的内容。例如,可以根据图4中所示的方法或本文描述的任何其他示例来执行监视。换句话说,监视器500可以监视对应于被标识为具有预定页表属性的页表条目的存储器的存储器位置处的数据。
图6示出了计算系统600的概念示意图,其中监视组件(实现上述任何示例进程)在特权和隔离环境中运行。在该示例中,安全特权域可以称为“安全世界”620,并且非安全域610可以称为“正常世界”610。处理器630被配置为使得具有分别用于在安全世界620和正常世界610中执行进程的操作模式630-1、630-2。处理器包括MMU 631,其管理由处理器630操作的虚拟存储器空间的配置寄存器和页表。在该示例中,监视组件621是在620世界中运行的安全应用,并且能够访问包含在正常(非安全域)世界610中执行的O/S内核软件组件的存储器611。监视组件621可以在安全世界中存储一个或多个参考列表622,从而防护它们免受攻击。
监视组件在其中执行的隔离环境可以使用诸如(但不限于)SMM、信任区 (RTM)、管理程序、或例如虚拟化、或者本领域技术人员可用的任何其他隔离执行环境之类的技术来实现。进一步加固可以由在隔离环境内执行的受信执行环境来提供。结果,监视组件可以在位于内核的地址空间中的存储器上执行存储器读取操作,但是保持与内核的任何潜在损害隔离。至关重要的是,监视组件还可以访问被监视内核的执行上下文(即CPU寄存器、存储器配置等)。换句话说,使监视组件621在隔离环境中执行比软件加固更鲁棒,这是因为它与内核隔离并且因此不能与内核同时受到损害。
在图6的示例中,监视组件621以软件实现,然而,在其他示例中,它可以(至少部分地)是在安全域中操作的安全硬件组件。
在上述示例中,监视进程可以在硬件或软件中执行。在另一个示例中,可能的是使硬件块执行散列化并将散列与启动时的参考列表进行比较(即,它防御代码修改),并且并行地使软件使用MMU来防御代码添加攻击,即,标识存储器的可执行区域,并且当代码先前不在那里时确定代码何时存在。此外,可能的是确定一些代码是否已经被移动。换句话说,检查相关代码的给定虚拟地址仍然指向相同物理地址。因此,代码添加攻击的检测可能不需要计算密集的散列化操作,并且可以在软件中高效地执行。硬件和软件之间的其他分割也将是可能的,并且可以基于可能的复杂性、性能和成本标准来选择,以确定最佳的安全系统。
在上述示例中,由处理器的存储器管理单元管理的页表条目和属性用于确定要被监视的代码的位置。然而,微控制器和处理器可以代替于MMU和页表而具有“存储器保护单元”(MPU)。具有不同属性的存储器区可以由MPU的寄存器来定义,所述寄存器可以例如指示哪些存储器区可由内核(或其他特权进程)执行。当使用MPU时,不使用页表。因此,页表属性(或其他MMU存储器配置数据)和MPU寄存器值两者是存储器配置数据的示例。其他存储器管理实现中的其他存储器配置数据可以是可能的,其指示存储器的性质,该性质指示应当对其进行监视。
本公开中的示例可以作为方法、系统或机器可读指令来提供,诸如软件、硬件、固件等的任何组合。这样的机器可读指令可以被包括在其中或其上具有计算机可读程序代码的计算机可读存储介质(包括但不限于盘存储装置、CD-ROM、光存储装置等)上。
参考根据本公开的示例的方法、设备和系统的流程图和/或框图来描述本公开。尽管上述流程图示出了特定的执行顺序,但是执行顺序可以不同于所描绘的顺序。关于一个流程图描述的框可以与另一个流程图的框相组合。在一些示例中,流程图的一些框可能不是必需的和/或可以添加附加的框。应理解,流程图和/或框图中的每个流程和/或框,以及流程图和/或框图中的流程和/或图的组合可以通过机器可读指令来实现。
机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器或其他可编程数据处理设备的处理器来执行,以实现说明书和图中描述的功能。特别地,处理器或处理装置可以执行机器可读指令。因此,装置的模块可以由执行存储在存储器中的机器可读指令的处理器或者根据嵌入逻辑电路中的指令操作的处理器来实现。术语“处理器”将被广义地解释为包括CPU、处理单元、ASIC、逻辑单元或可编程门阵列等。这些方法和模块可以全部由单个处理器执行,或者在几个处理器之间划分。
这样的机器可读指令也可以存储在计算机可读存储装置中,其可以引导计算机或其他可编程数据处理设备在特定模式下操作。
例如,可以在编码有可由处理器执行的指令的非暂时性计算机可读存储介质上提供指令。
图7示出了与存储器720相关联的处理器710的示例。存储器720包括可由处理器710执行的计算机可读指令730。指令730包括:
使用存储器管理单元的页表来汇编存储器中具有预定属性的页列表的指令。
监视页的存储器位置以确定是否发生了任何改变的指令。
基于监视来确定是否要执行缓解动作的指令。
在示例中,预定属性是存储器位置可由内核执行。
在示例中,预定属性是存储器位置是“只读”的。
在示例中,指令包括通过在第一时间基于内容获得第一数据并将第一数据与后续基于所标识存储器位置处的内容获得的第二数据进行比较来监视存储器位置的指令。
在示例中,指令包括通过计算所标识存储器位置处的内容的散列来生成第一和第二数据的指令。
在示例中,指令在处理器的特权或安全环境中执行。例如,可以使用信任区、管理程序或系统管理模式(SMM)中的任何一种来提供安全环境。
在示例中,指令包括基于监视来确定是否执行策略动作的指令。
这样的机器可读指令也可以被加载到计算机或其他可编程数据处理设备上,使得计算机或其他可编程数据处理设备执行一系列操作以产生计算机实现的处理,因此在计算机或其他可编程设备上执行的指令提供了用于实现由流程图中的(一个或多个)流程和/或框图中的(一个或多个)框指定的功能的操作。
此外,本文的教导可以以计算机软件产品的形式实现,该计算机软件产品存储在存储介质中,并且包括用于使计算机设备实现本公开的示例中所记载的方法的多个指令。
虽然已经参考某些示例描述了方法、装置和相关方面,但是在不脱离本公开的精神的情况下,可以进行各种修改、改变、省略和替换。特别地,来自一个示例的特征或框可以与另一个示例的特征/框相组合或被另一个示例的特征/框替换。
词语“包括”不排除权利要求中列出的元素之外的元素的存在,“一”或“一个”不排除多个,并且单个处理器或其他单元可以实现权利要求中记载的几个单元的功能。
任何从属权利要求的特征可以与任何独立权利要求或其他从属权利要求的特征相组合。
Claims (15)
1.一种方法,包括:
获得存储器管理配置数据;
使用存储器管理配置数据来标识具有预定性质的存储器位置;
监视所标识存储器位置处的内容。
2.根据权利要求1所述的方法,其中,预定性质是存储器位置可由内核执行。
3.根据权利要求1所述的方法,其中,预定性质是存储器位置是只读的。
4.根据权利要求1所述的方法,其中,监视包括在启动时基于内容获得第一数据,并且将第一数据与后续基于所标识存储器位置处的内容获得的第二数据进行比较。
5.根据权利要求4所述的方法,其中,第一和第二数据包括所标识存储器位置处的内容的散列。
6.根据权利要求1所述的方法,其中,在隔离环境中使用监视组件来执行所述方法。
7.根据权利要求6所述的方法,其中,使用信任区、管理程序或系统管理模式(SMM)中的任何一种来提供所述隔离环境。
8.根据权利要求1所述的方法,进一步包括基于所述监视确定是否执行策略动作。
9.根据权利要求8所述的方法,进一步包括,在所述监视指示新代码已经被添加到所标识存储器位置的情况下,执行验证以确定所添加的代码是否有效。
10.一种包括监视器和处理器的装置,监视器用于:
标识与可由处理器寻址的存储器区相关联的存储器区属性是否具有预定属性:
基于具有预定页表属性来监视存储器区处的数据。
11.根据权利要求10所述的装置,其中,监视器属于隔离计算环境,并且存储器区属性属于非隔离计算环境。
12.根据权利要求11所述的装置,其中,监视器进一步用于从所标识存储器区属性中汇编可执行页的列表,并通过计算那些页的内容的散列来监视数据。
13.根据权利要求11所述的装置,其中,所述属性是从与存储器区相关联的存储器配置寄存器或页表属性中标识的。
14.根据权利要求12所述的装置,其中,所述属性是存储器区用于特权代码。
15.一种编码有可由处理器执行的指令的非暂时性机器可读存储介质,所述机器可读存储介质包括指令,所述指令用于:
使用存储器配置数据汇编具有预定属性的存储器中的存储器位置列表;
监视列表的存储器位置,以确定是否已经发生了改变;和
基于所述监视来确定是否要执行缓解动作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/058071 WO2021080601A1 (en) | 2019-10-25 | 2019-10-25 | Integrity monitor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114556341A true CN114556341A (zh) | 2022-05-27 |
Family
ID=75620624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980101671.8A Pending CN114556341A (zh) | 2019-10-25 | 2019-10-25 | 完整性监视器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220342984A1 (zh) |
EP (1) | EP4049158A1 (zh) |
CN (1) | CN114556341A (zh) |
WO (1) | WO2021080601A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030229794A1 (en) * | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US8955104B2 (en) * | 2004-07-07 | 2015-02-10 | University Of Maryland College Park | Method and system for monitoring system memory integrity |
US8819225B2 (en) * | 2010-11-15 | 2014-08-26 | George Mason Research Foundation, Inc. | Hardware-assisted integrity monitor |
AU2012236739A1 (en) * | 2011-03-28 | 2013-10-03 | Mcafee, Inc. | System and method for virtual machine monitor based anti-malware security |
US11119939B2 (en) * | 2017-08-21 | 2021-09-14 | Alibaba Group Holding Limited | Methods and systems for memory management of kernel and user spaces |
-
2019
- 2019-10-25 EP EP19949956.7A patent/EP4049158A1/en not_active Withdrawn
- 2019-10-25 US US17/761,694 patent/US20220342984A1/en active Pending
- 2019-10-25 CN CN201980101671.8A patent/CN114556341A/zh active Pending
- 2019-10-25 WO PCT/US2019/058071 patent/WO2021080601A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US20220342984A1 (en) | 2022-10-27 |
WO2021080601A1 (en) | 2021-04-29 |
EP4049158A1 (en) | 2022-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6142027B2 (ja) | ハイパーバイザ環境においてカーネルルートキットに対する保護を実行するシステムおよび方法 | |
Ge et al. | Sprobes: Enforcing kernel code integrity on the trustzone architecture | |
US9747443B2 (en) | System and method for firmware based anti-malware security | |
US9530001B2 (en) | System and method for below-operating system trapping and securing loading of code into memory | |
US9384349B2 (en) | Negative light-weight rules | |
US9392016B2 (en) | System and method for below-operating system regulation and control of self-modifying code | |
US9262246B2 (en) | System and method for securing memory and storage of an electronic device with a below-operating system security agent | |
US9087199B2 (en) | System and method for providing a secured operating system execution environment | |
US8925089B2 (en) | System and method for below-operating system modification of malicious code on an electronic device | |
US8549648B2 (en) | Systems and methods for identifying hidden processes | |
US8650642B2 (en) | System and method for below-operating system protection of an operating system kernel | |
US9275225B2 (en) | Linear address mapping protection | |
US8966629B2 (en) | System and method for below-operating system trapping of driver loading and unloading | |
US8549644B2 (en) | Systems and method for regulating software access to security-sensitive processor resources | |
US20130312099A1 (en) | Realtime Kernel Object Table and Type Protection | |
US20120255014A1 (en) | System and method for below-operating system repair of related malware-infected threads and resources | |
US20120255031A1 (en) | System and method for securing memory using below-operating system trapping | |
US20120254993A1 (en) | System and method for virtual machine monitor based anti-malware security | |
US20120254982A1 (en) | System and method for protecting and securing storage devices using below-operating system trapping | |
US20080244114A1 (en) | Runtime integrity chain verification | |
US20120254994A1 (en) | System and method for microcode based anti-malware security | |
Leon et al. | Hypervisor-based white listing of executables | |
Shi et al. | Vanguard: A cache-level sensitive file integrity monitoring system in virtual machine environment | |
Korkin | Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces | |
CN114556341A (zh) | 完整性监视器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |