CN110851836B - 一种面向Meltdown攻击的主动防御方法 - Google Patents

一种面向Meltdown攻击的主动防御方法 Download PDF

Info

Publication number
CN110851836B
CN110851836B CN201910987190.3A CN201910987190A CN110851836B CN 110851836 B CN110851836 B CN 110851836B CN 201910987190 A CN201910987190 A CN 201910987190A CN 110851836 B CN110851836 B CN 110851836B
Authority
CN
China
Prior art keywords
address
attack
segfault
access
array
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.)
Active
Application number
CN201910987190.3A
Other languages
English (en)
Other versions
CN110851836A (zh
Inventor
李幼萌
刘雪琴
章亦葵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
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 Tianjin University filed Critical Tianjin University
Priority to CN201910987190.3A priority Critical patent/CN110851836B/zh
Publication of CN110851836A publication Critical patent/CN110851836A/zh
Application granted granted Critical
Publication of CN110851836B publication Critical patent/CN110851836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information

Landscapes

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

Abstract

本发明公开了一种面向Meltdown攻击的主动防御方法,采用如下步骤:内核进程通过捕获SegFault异常数据获取由SegFault产生的攻击信息,所述攻击信息包括进程页基址、线性地址和时间戳;对攻击信息中的进程页基址在队列数组中结构体查找存储;对攻击信息中的线性地址在进程结构体数组的地址队列中查找存储;判断攻击信息是否为此进程第一异常访问;判断地址访问次数是否超过单地址访问阈值;判断异常访问地址数量是否超过进程总攻击次数阈值;判断进程异常访问地址连续个数是否超过地址连续阈值,该方法避免meltdown硬件漏洞通过微体系结构泄露内核数据,使用刷新缓存的方式来清除微体系结构存储的特权信息。

Description

一种面向Meltdown攻击的主动防御方法
技术领域
本发明属于对计算机硬件中攻击程序防御措施,特别涉及一种面向Meltdown攻击的主动防御方法御方法。
背景技术
1.meltdown漏洞
meltdown利用现代处理器的乱序执行(out-of-order execution)技术引发的微体系结构的改变,使用旁路攻击(Side Channel Attacks,SCA)技术实现对任意内核内存地址的读取,包括隐私数据和密码,破坏了现代CPU用户空间和内核空间之间的内存隔离。
2.KPTI内核页表隔离
KPTI通过隔离内核页表与用户页表限制用户对系统内核的访问。原进程地址空间中的内核空间和用户空间在同一张页表,才给了攻击程序在用户态获取内核数据的机会。KPTI将用户空间与内核空间分隔开,内核模式下进程页表包括内核空间和用户空间在内的所有数据,而用户模式下只有用户空间的数据代码等以及尽可能少的内核数据和代码用于用户空间和内核空间的上下文交互。由于同一进程的页表由一张变成了两张,进程运行期间用户级别与系统特权级别交互时需要频繁切换CR3,增加了页表切换的系统开销,具有PCID(process-context identifier,进程上下文标识符)特性的处理器可利用该CPU特性降低用户模式和特权模式切换导致的TLB刷新的性能开销。
发明内容
针对现有技术存在的问题,本发明提供一种面向Meltdown攻击的主动防御方法,该方法避免meltdown硬件漏洞通过微体系结构泄露内核数据,使用刷新缓存的方式来清除微体系结构存储的特权信息,同时尽可能减少对系统的性能影响。
本发明采用如下技术方案予以实施:
一种面向Meltdown攻击的主动防御方法,采用如下步骤:
内核进程通过捕获SegFault异常数据获取由SegFault产生的攻击信息,所述攻击信息包括进程页基址、线性地址和时间戳;
对攻击信息中的进程页基址在队列数组中结构体查找存储;
对攻击信息中的线性地址进程结构体数组的地址队列中查找存储;
判断攻击信息是否为此进程第一异常访问;
判断地址访问次数是否超过单地址访问阈值;
判断异常访问地址数量是否超过进程总攻击次数阈值;
判断进程异常访问地址连续个数是否超过地址连续阈值。
所述的对攻击信息中的进程页基址在队列数组中结构体查找存储步骤包括:
根据进程页表基址查找队列数组中结构体是否存在相同进程;若存在则进一步判断该进程结构体数组中的addrs队列是否有相同的线性地址,若是结构体数组中没有找到匹配的进程,并且数组未满则为当前进程新建一个结构体放入数组中,否则将数组中最近最久未产SegFault的结构体清空作为当前进程的结构体,并插入产生SegFault的线性地址的信息。
所述的对攻击信息中的线性地址进程结构体数组的地址队列中查找存储步骤包括:
根据线性地址判断该进程结构体数组的地址队列中是否有该地址;若存在相同的线性地址则更新该地址访问的各种属性;若不存在相应的线性地址,则将此次产生的SegFault信息封装成一个新的结构体,插入到当前进程的地址队列。
有益效果
1.理论上该方案在计算机不受攻击且正常运行的过程中(不产生SegFault时)不会产生任何额外的负担。现有方案KPTI内核页表隔离通过完全分离内核页表和用户页表的实现特权数据的保护,但是会有需要频繁切换页表的弊端(频繁进行TLB刷新),对于计算机系统性能有一定的影响,实验表明对于IO密集型程序影响尤其大。开启PCID,可以尽可能避免TLB(translation lookaside buffer,转换检测缓冲区,用于改进虚拟地址到物理地址转换速度的缓存)的刷新。然而许多早期处理器并不支持PCID这种高级CPU特性,显然对于这些早期处理器而言,打KPTI补丁并不是一个友好的选择。综上本专利提出的主动防御方法比KPTI性能好,代价低。
2.该方案同KPTI有一个相同的优势,就是二者都不需要在硬件层面进行任何的改动,是从系统层面通过软件对meltdown漏洞进行修复。
3.本发明属于芯片安全,针对计算机硬件漏洞meltdown的攻击程序的特征提出了一种防御该硬件漏洞的策略,该策略不同于现有漏洞补丁KPTI(kernel page-tableisolation,内核页表隔离),并结合现有清除cache的技术从而避免计算机微体系结构的信息泄露。
附图说明
图1.KPTI内核页表隔离。
图2CPU数据访问权限地址和合法性检查。
图3缺页异常处理过程。
图4判断产生SegFault的进程是否为Meltdown攻击进程。
图5进程地址空间。
图6遍历进程地址空间并刷新其缓存。
具体实施方式
1.meltdown攻击原理分析:
Figure BDA0002237060500000031
攻击程序的流程是首先试图访问高权限地址数据,该访问会引发一个异常,异常访问下是正常执行流程中永远不会执行到的正常访问用户空间数组的代码,首先程序会跳转到异常处理程序,但是由于现代处理器的乱序执行技术,异常代码下的数组访问指令已经被执行了(数据从内核内存流向CPU缓存时不会检查地址是否合法),由于异常指令不会提交,预先执行的访问数组的代码结果将不会生效,指令会发生回滚,即清除寄存器等软件可见层面的数据(数据从CPU缓存流向进程可见的寄存器时会对地址合法性进行检查)。但是乱序执行过程中预先被缓存的数据并不会从高速缓存中清除。攻击程序正是通过高速缓存中遗留的数据利用旁路攻击技术获取缓存数据状态,然后进一步推测出高权限级别的数据。
meltdown攻击程序通过信号处理器(signal handler)处理内核的非法访问时会在内核中产生一个SegFault(分段错误)的异常。系统会将该异常转发至运行于用户态的攻击程序,攻击程序通过注册自定义异常处理函数的方法屏蔽该异常,以保证攻击程序的继续执行,但是在内核态,操作系统仍然可以感知到该异常的产生。该异常可以作为系统捕捉攻击行为的依据。
2.CR3寄存器(Control Register 3)
Figure BDA0002237060500000032
图4 CR3--传统模式非PAE分页
Figure BDA0002237060500000033
CR3--传统模式PAE分页
Figure BDA0002237060500000041
CR3--长模式
CR3寄存器是页目录基址寄存器,用于保存页目录表(最高级页目录)的物理地址(指向进程页目录PGD),由于页目录表为页对齐,因此该寄存器的低12位不记录页目录基址信息,作为保留位提供给更高级的处理器。向CR3寄存器装入一个新值时(切换任务),低12位必须为0,但从CR3取值时,低12位被忽略。
本专利所陈述的防御方法理论上可应用于任何操作系统,下文所述的实施方式为在Linux系统上的具体实施方式,其他操作系统根据其进程结构、指令的不同略加调整即可。
3.防御方案
攻击程序有明显的攻击特征:
基于cache行为旁路攻击的特点是对每一个地址的访问次数越多,测量越准确,因此攻击程序想要获取某个地址的精确值一般需对该地址进多次访问,即对同一地址进行多次访问。
攻击程序获取数据一般是连续的,即获取连续地址空间数据。因为单独一个字节两个字节泄露的信息有限,意义不大,因此攻击程序一般会对连续地址空间进行攻击。
即使攻击程序选择牺牲获取攻击数据的可靠性,甚至放弃攻击数据的连续性,也就是说攻击程序的攻击地址没有规律可循,攻击程序仍然会保留的一个特征是攻击的频次会很高。因为攻击程序在运行过程中只进行一两次攻击精度和能获取到的数据都有限,攻击仍然是没有意义的。
本防御方案是要在现有指令集的支持下,尽可能精确的通过对cache数据的清除完成对攻击程序泄露通道的关闭。
首先根据以上攻击特征判断当前产生SegFault的进程是否有攻击嫌疑,一旦程序符合其中任何一条特征,程序都应该被认定为有攻击嫌疑。考虑到meltdown漏洞正是通过攻击程序对用户空间数据的正常访问,根据用户空间数据是否缓存(缓存数据从cache结构直接读取,时间较短,未缓存数据从内存读取需要的时间较长,因此可以通过访问数据时间的长短来判断某位置数据是否缓存),与其他数据访问时间有明显时间差的数据所在位置或者说索引位置就是攻击程序试图访问的高权限数据。
因此为了避免高权限数据在用户空间的泄露,应将泄露通道关闭,也就是清除攻击进程用户空间在高速缓存结构留下的痕迹,则应遍历进程的用户地址空间中具有可读或可写属性地址结构基本单位,使用缓存清除指令对地址结构基本单位中的地址依次进行缓存清除操作(无论是否映射物理页面)避免微体系结构的数据泄露。
SegFault内核态获取
SegFault是计算机软件运行过程中可能出现的一种特殊错误情况。当程序试图访问它不被允许访问的内存位置,或者试图以不允许的方式访问内存位置时(例如试图对有只读权限的内存地址进行写入操作,或者试图覆盖掉部分操作系统),就会发生SegFault。
在meltdown攻击中,SegFault出现的原因是攻击程序试图访问一个内核地址空间,此次访问首先会引发一个缺页异常(page fault)。
引发缺页异常的几种情况有:1)用户态按需调页2)主内核页目录的同步3)对exception table中的异常操作的处理4)堆栈自动扩展5)对用户态指针越界的检查6)oops。其中1)、2)、4)都属于正常缺页,3)、5)、6)可能是地址异常等情况,需要对异常检查处理。
如图3所示,缺页异常产生后系统会对缺页异常的状态进行分析,首先判断是否是对内核空间的访问,在由攻击程序引发的缺页异常中是在对内核空间进行访问,然后系统会判断该访问是否在用户态进行,利用meltdown漏洞的攻击程序是用户态试图访问内核空间,因此,系统判断此次访问不被允许,然后发出一个SIGSEGV信号,即SegFault。系统会把所有以用户态访问内核空间的情况都作为保护错误(protection faults)处理,最后发出一个SIGSEGV的信号。上图中流程即为攻击过程中内核处理过程。
设计具体防御策略
从以下几个方面对攻击行为进行侦测:
a)同一个进程运行过程中出现多次SegFault
b)一个进程运行期间同一个地址产生多次SegFault
c)一个进程运行期间产生SegFault的地址连续,因为获取单个比特或者单个字节的数据意义并不大,因此一般攻击进程会对一片数据进行访问,即访问地址连续。
根据以上的行为设置3个阈值:
a)TOTAL_ACCESS_NUMBER:一个进程总共出现多少次SegFault
b)ADDR_ACCESS_NUMBER:同一个进程的同一个地址最多产生多少次SegFault
c)SERIES_NUMBER:同一进程产生SegFault的连续地址超过多少个
Figure BDA0002237060500000061
阈值结构体设计如下:
考虑到多个攻击程序可能同时出现,为了避免攻击程序之间的调度影响,造成统计攻击次数失效,设计一个结构体数组access_procs,用于储存多个进程的攻击信息。考虑到数组的容量太大会在查找遍历的过程中产生较大的性能损耗,数组容量太小无法处理多个进程同时攻击的情况,ACCESS_PROC_NUMBER的值应该在空间、性能和安全三者之间寻求一个平衡。
同时攻击进程将攻击地址以队列结构存储在进程结构体作为access_proc的一个属性,每个地址也有自己的结构体Access_addr用来储存该攻击地址的攻击信息,作为判断攻击程序的依据。出于空间,性能,安全三者之间的考虑,地址队列的长度选择了10,也就是存储攻击数据结构中的ADDRESS_QUEUE_NUMBER等于10,因为如果一个进程出现多次分段错误显然是不正常的,因此无需分配太大的空间。
Figure BDA0002237060500000071
存储攻击数据结构如下:
(1)Access_proc结构体类型数组access_procs[ACCESS_PROC_NUMBER]:产生SegFault的进程存储数组(ADDRESS_QUEUE_NUMBER=6)
(2)结构体Access_proc:用于存储因用户态访问内核空间而产生的SegFault的进程信息。
1)earliest_timestamp:该进程最早产生SegFault的时间戳
2)latest_timestamp:该进程最近产生SegFault的时间戳
3)total_access_number:该进程在最早和最近的两个时间戳的时间段内共产生多少次SegFault
4)pgd_paddr:进程页基址,作为进程的唯一标识
5)Access_addr结构体类型addrs[ADDRESS_QUEUE_NUMBER+1]:储存该进程的攻击地址队列(循环队列,ADDRESS_QUEUE_NUMBER=10)
6)front、rear:作为指向队列首尾的两个指针
(3)结构体Access_addr:用于储存被攻击地址的信息
1)pgd_paddr:该地址属于哪个进程
2)address:产生SegFault的线性地址
3)first_timestamp:该地址第一次被访问(产生SegFault)的时间
4)last_timestamp:该地址最近一次被访问(产生SegFault)的时间
5)access_number:该地址产生异常访问的数量
如图4所示,防御策略如下:内核在捕获到SegFault后,将该异常相关数据存储到上述结构体,然后按照下图流程判断是否超过设置阈值。具体过程中首先获取a.产生SegFault的进程页表基址pgd_paddr,b.产生SegFault线性地址address,c.产生SegFault的时间戳timestamp这些攻击信息。(由于CR3寄存器高20位含有存放页目录表页面的物理地址,进程页表基址pgd_paddr是物理地址,每个进程在物理页基址是绝对不同的,所以CR3寄存器的页基址可以作为进程的唯一标识,用于区分不同的进程。)
获取到信息后根据进程页表基址pgd_paddr在数组access_procs中查找该进程是否已经存在,若存在则进一步判断该进程结构体数组中的addrs队列是否有相同的线性地址,若存在相同的线性地址则更新该地址访问的各种属性,包括时间戳、异常访问次数等。若不存在相应的线性地址,则将此次产生的SegFault信息封装成一个新的Access_addr结构体,插入到当前进程的addrs队列。若是数组access_procs中没有找到匹配的进程,并且数组未满则为当前进程新建一个Access_proc结构体放入数组中,否则将数组中最近最久未产生SegFault的结构体清空作为当前进程的结构体,并插入产生SegFault的线性地址的信息。
攻击信息存储后应对当前进程的被攻击状态进行检查,判断是否超过上文提到的三个阈值,即当前进程产生SegFault的总数是否超过阈值,当前进程产生SegFault的线性地址连续个数是否超过阈值,产生SegFault的线性地址的异常访问次数是否超过阈值。
在判断产生SegFault地址是否连续时,本防御策略选择将属于同一个page的地址都作为连续地址处理。采用这种方法主要是因为数据处理方便,并且适当放松阈值标准可以起到更好的防御效果。
另外,在流程中还出现了一个上文没有提到的判断条件——“此次SegFault是否为当前进程第一次产生SegFault”。之所以增加此条件,是考虑到攻击进程对特权地址访问并获取该地址数据失败后可能会再次尝试访问该地址获取数据,如果此次SegFault为当前进程第一次产生的SegFault,也通知内核采取防御措施,这样也许会激发出更多的攻击特性,从而更准确的判断出当前进程是否为攻击程序。
4.刷新缓存
由meltdown攻击原理可知,一旦攻击进程缓存数据清除,数据泄露通道也随之被关闭,也就意味着攻击程序无法通过微体系结构的数据缓存状态推测特权数据的值。因此,在适当的时间刷新缓存可以避免微体系结构的数据泄露。
刷新缓存的方式主要有两种,一种是通过clflush指令对单个线性地址进行刷新;另一种是使用wbinvd指令对全部缓存结构(包括一级缓存、二级缓存、三级缓存)进行清除。
WBINVD:该指令用于把cache的数据同步到内存中,同时使cache失效。工作流程为写回处理器内部缓存中所有修改的cache line,并使这些内部缓存失效(清除)。接着,指令发出一个特殊功能的总线周期,指示外部缓存写回修改的数据;并发出另一个总线周期,指示应该使外部缓存失效。执行此指令之后,处理器并不等待外部缓存完成写回与清除操作,而是继续执行指令。缓存写回与清除信号的响应由硬件负责。
CLFLUSH:在处理器缓存层次结构的所有级别中,使包含源操作数制定的线性地址的cache line失效。失效会在整个缓存一致性区域中传播。
使用clflush需要遍历整个进程的地址空间,对进程地址空间的线性地址依次刷新。遍历进程地址空间需要借助进程地址空间的虚拟内存区域。虚拟内存区域(VirtualMemory Area,VMA)是指进程地址空间上一段连续的内存范围,虚拟内存管理的基本单位是vm_area_struct结构体。vm_area_struct描述的是一段连续的、具有相同访问空间属性的虚存空间,该虚存空间的大小为物理内存页面的整数倍。一个进程的虚存空间需要多个vm_area_struct结构来描述,进程所有的线性区是通过一个简单的链表连接在一起的。
如图5所示,可以通过依次访问vm_area_struct实现对进程地址空间的访问,结合clflush指令实现对特定进程的cache刷新,与此同时,考虑到攻击流程中必然要通过用户空间数据的正常访问(读、写操作)实现对特权数据的推测,即进程地址空间中访问权限为可读、可写的部分就是攻击程序泄露特权数据的通道。因此,在防御过程中,地址空间访问权限为不可读且不可写(如“可执行”等访问权限)的部分可以不用清除其缓存。
如图6所示,首先获取当前进程的内存描述符指针mm,通过mm指针指向的内存描述符结构体mm_struct中的mmap指针,该值针指向vm_area_struct线性区对象的链表头。遍历该线性区,并依次判断该vm_area_struct结构体指向的虚存空间是否具有可读或可写属性,如果具备则遍历该虚存空间描述范围的每一个线性地址,并将其缓存数据清除。当vm_area_struct结构体指向的虚存空间超过用户空间的最大地址即TASK_SIZE_MAX时结束对vm_area_struct线性区链表的遍历。
结合上小节的策略,刷新方式实际上可以分为四种:有策略clflush、无策略clflush、有策略wbinvd、无策略wbinvd。
无策略刷新可以实现数据的有效保护,但是正常程序产生的偶然段错误也会被判定为攻击程序;有策略刷新可以更准确的判定攻击程序,减少对偶发异常正常程序的影响,当然相应的判断策略的执行过程也会给系统带来少许的负担。
wbinvd优点是在较短的指令周期内完成,缺点是会影响到其他进程的缓存。clflush需要对进程地址空间进行遍历,完成对进程地址空间的清除需要的指令周期较长,但是对其他进程的影响较小。
综合考虑有策略clflush的方案更合理,可以较准确地判断当前进程是否为攻击进程,既不会对其他进程造成太大的影响,又能尽可能的减少clflush的性能开销(策略开销相比比多次清除进程地址空间的开销小),但是其他的刷新方式仍然值得保留,例如早期不支持CLFLUSH的处理器可以通过WBINVD实现防御,无策略方案可以应用在对计算机性能要求不高但是对于安全性要求较高的场景,因此这四种刷新方式都可能有其特定的应用场景,可以结合具体情况综合考虑,使用最适宜的方案。
应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本实用新型专利的保护范围应以所附权利要求为准。

Claims (2)

1.一种面向Meltdown攻击的主动防御方法,其特征在于,采用如下步骤:
内核进程通过捕获SegFault异常数据获取由SegFault产生的攻击信息,所述攻击信息包括进程页基址、线性地址和时间戳;
对攻击信息中的进程页基址在结构体数组中查找存储,包括如下步骤:
根据进程页表基址查找结构体数组中是否存在相同进程;若存在则进一步判断该进程结构体中的地址队列是否有相同的线性地址,若是结构体数组中没有找到匹配的进程,并且结构体数组未满则为当前进程新建一个结构体放入结构体数组中,否则将结构体数组中最近最久未产生SegFault的结构体清空作为当前进程的结构体,并插入产生SegFault的线性地址的信息;
对攻击信息中的线性地址在进程结构体地址队列中查找存储,包括如下步骤:
根据线性地址判断该进程结构体的地址队列中是否有该地址;若存在相同的线性地址则更新该地址访问的各种属性;若不存在相同的线性地址,则将此次产生的SegFault信息封装成一个新的结构体,插入到当前进程的地址队列;
获取如下攻击特征:
判断同一个进程运行过程中出现多次SegFault是否超过单地址访问阈值;
判断一个进程运行期间同一个地址产生多次SegFault数量是否超过进程总攻击次数阈值;
判断一个进程运行期间产生SegFault的地址连续个数是否超过地址连续阈值;
根据以上攻击特征判断当前产生SegFault的进程是否有攻击嫌疑,一旦程序符合其中任何一条攻击特征,程序都应该被认定为有攻击嫌疑。
2.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1所述的方法步骤。
CN201910987190.3A 2019-10-17 2019-10-17 一种面向Meltdown攻击的主动防御方法 Active CN110851836B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910987190.3A CN110851836B (zh) 2019-10-17 2019-10-17 一种面向Meltdown攻击的主动防御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910987190.3A CN110851836B (zh) 2019-10-17 2019-10-17 一种面向Meltdown攻击的主动防御方法

Publications (2)

Publication Number Publication Date
CN110851836A CN110851836A (zh) 2020-02-28
CN110851836B true CN110851836B (zh) 2023-04-18

Family

ID=69597710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910987190.3A Active CN110851836B (zh) 2019-10-17 2019-10-17 一种面向Meltdown攻击的主动防御方法

Country Status (1)

Country Link
CN (1) CN110851836B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022065992A1 (ko) * 2020-09-28 2022-03-31 고려대학교 산학협력단 멜트다운 취약점을 이용한 인공신경망 추출 방법
CN113569237B (zh) * 2021-07-29 2024-04-02 武汉天喻信息产业股份有限公司 攻击防护方法、装置、设备及可读存储介质
CN116226859A (zh) * 2022-12-16 2023-06-06 杭州后量子密码科技有限公司 一种针对Meltdown漏洞精准动态分析检测方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005039591A (ja) * 2003-07-16 2005-02-10 Toshiba Corp 不正アクセス防御装置及びプログラム
JP2007060379A (ja) * 2005-08-25 2007-03-08 Nippon Telegr & Teleph Corp <Ntt> Sipサーバにおける攻撃防御方法、システム及びプログラム
CN108270722A (zh) * 2016-12-30 2018-07-10 阿里巴巴集团控股有限公司 一种攻击行为检测方法和装置
CN110032867A (zh) * 2019-03-26 2019-07-19 中国人民解放军国防科技大学 一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790292A (zh) * 2017-03-13 2017-05-31 摩贝(上海)生物科技有限公司 基于行为特征匹配和分析的web应用层攻击检测与防御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005039591A (ja) * 2003-07-16 2005-02-10 Toshiba Corp 不正アクセス防御装置及びプログラム
JP2007060379A (ja) * 2005-08-25 2007-03-08 Nippon Telegr & Teleph Corp <Ntt> Sipサーバにおける攻撃防御方法、システム及びプログラム
CN108270722A (zh) * 2016-12-30 2018-07-10 阿里巴巴集团控股有限公司 一种攻击行为检测方法和装置
CN110032867A (zh) * 2019-03-26 2019-07-19 中国人民解放军国防科技大学 一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王烨 ; 李清宝 ; 曾光裕 ; 陈志锋 ; .基于代码防泄漏的代码复用攻击防御技术.计算机研究与发展.2016,(10),全文. *

Also Published As

Publication number Publication date
CN110851836A (zh) 2020-02-28

Similar Documents

Publication Publication Date Title
KR102287758B1 (ko) 부채널 공격으로부터 캐시를 보호하는 시스템
US7673345B2 (en) Providing extended memory protection
US11461243B2 (en) Speculative cache storage region
US7426626B2 (en) TLB lock indicator
US7793067B2 (en) Translation data prefetch in an IOMMU
US7565492B2 (en) Method and apparatus for preventing software side channel attacks
CN110851836B (zh) 一种面向Meltdown攻击的主动防御方法
US9465748B2 (en) Instruction fetch translation lookaside buffer management to support host and guest O/S translations
TWI381275B (zh) 位址轉譯方法及裝置
US8112174B2 (en) Processor, method and computer program product for fast selective invalidation of translation lookaside buffer
WO2020000989A1 (zh) 可抵御边信道攻击的缓存加固方法及装置
WO2021032943A1 (en) Capability write address tracking
US9697136B2 (en) Descriptor ring management
KR20210034027A (ko) 메모리 시스템에 저장된 메모리 보호 테이블을 사용하는 메모리 보호 유닛
US7552254B1 (en) Associating address space identifiers with active contexts
US6519684B1 (en) Low overhead method for selecting and updating an entry in a cache memory
KR20210034618A (ko) 메모리 시스템에 저장된 제어 테이블에 대한 이진 검색 절차
CN111259384B (zh) 一种基于缓存随机无效的处理器瞬态攻击防御方法
US11327903B2 (en) Multiple guard tag setting instruction
CN110889147B (zh) 一种利用填充缓存抵御Cache边信道攻击的方法
Nie et al. Isolate cache shield: defending cache attacks via cache set isolation

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
GR01 Patent grant
GR01 Patent grant