一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统技术方案

技术编号:21659135 阅读:22 留言:0更新日期:2019-07-20 05:45
本发明专利技术公开了一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统,本发明专利技术实施步骤包括拦截程序运行引发的异常,如果拦截到程序运行引发的异常则判断当前异常是否为缓存侧信道攻击,如果为缓存侧信道攻击则通过清除缓存数据向缓存注入噪音数据、重置微架构状态,最终调用用户异常处理程序继续处理当前异常。本发明专利技术从软件对策层面实现了防御包括熔毁攻击(Meltdown)在内的缓存侧信道攻击,能够达到兼顾性能的目的,本发明专利技术能够有效防止敏感信息的泄密,对正常应用程序的性能几乎没有影响,不需要修改CPU硬件,能够恶意系统寄存器读取的变体,具有防御成本低、实施灵活的优点。

A Method and System for Actively Cutting off Covert Channels to Deal with Cache Side Channel Attacks

【技术实现步骤摘要】
一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统
本专利技术涉及计算机安全领域,具体涉及一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统,可用于防止包括熔毁攻击(Meltdown)在内的缓存侧信道攻击。
技术介绍
现代超标量结构的处理器被用来实现指令级并行。乱序执行是使性能最大化的标准技术,它允许处理器根据输入数据和执行单元的可用性(而不是它们的原始顺序)来执行指令,并避免让处理器等待前面的指令完成。开发指令级并行对于设计高性能处理器而言是一个关键目标之一。冒险就是在流水线中,阻滞指令流中的下一条指令执行的情形。为了避免冒险并使指令级并行性能最大化,很多技术被开发出来。乱序执行就是这样的一种典型技术并被广泛应用于现代超标量处理器中。乱序执行处理器可以不按照指令原来的顺序执行指令。在乱序执行的结构中,指令按原来的顺序解码和排序,但在实际中可以不按这个顺利执行。乱序执行的核心理念就是一旦一个操作数可用,处理器就继续执行指令,因而避免流水线中的数据冒险。与编译器执行的静态调度技术相比,动态调度至少有三个优点。首先,它可以高效地运行程序,并且在具有不同微体系结构的计算机上运行时不需要重新编译源代码。其次,它支持在运行时动态地处理依赖项,这在编译时很难解决。第三,它允许处理器容忍不可预测的延迟,比如缓存丢失。IBMSystem/360,型号91被认为是第一个全面支持乱序执行的计算机。这款电脑引入了Tomasulo的动态指令调度算法,以减少延迟。在Tomasulo的设计之前,因CDC6000计分牌命名的计分牌技术被专利技术出来,它可以在资源充足且没有数据依赖的情况下乱序执行程序。它可以规避流水线中数据依赖所造成的写后读冒险。然而,计分牌[4]并不能消除因命名相关导致的读后写和写后写冒险。Tomasulo的算法通过引入寄存器的重命名机制解决这种依赖。在Tomasulo的设计中,保留站会在指令的操作数可用时立即提取和缓冲指令操作数,将寄存器名称从原始操作数重命名为缓冲区中的寄存器名称。此外,Tomasulo实现了命令数据总线(CDB),将保留站直接连接到功能单元。它使冒险检测和执行控制分散,而从保留站的结果可以直接迂回到功能单元,无需通过寄存器。Tomasulo的方案在IBMSystem/360型号91之后很多年都没有使用过,但是在1990年代多任务处理器中被广泛采用。指令在原始计算机代码中排序的方式称为程序顺序。在乱序执行时,处理器实际执行的顺序从程序顺序更改为数据顺序。数据流是产生结果的指令和使用结果的指令之间的实际数据流。数据流是保持程序正确性的关键属性之一。乱序执行是数据流计算的一种受限形式,其中指令窗口指的是可以执行无序的指令集。指令窗口的大小是有限的,新指令只能在其他指令离开窗口时进入窗口,这些指令按程序顺序排列。因此,指令窗口可以看作是一个滑动窗口,在其中的指令可以变为无序。动态跟踪数据依赖关系的逻辑复杂性将执行窗口限制为相对较小的大小,范围从32条指令到200条指令。侧信道信息是可以从系统的物理状态而不是明文获得的信息。侧信道攻击的目标是利用侧信道信息来执行攻击,而不是系统实现本身的弱点。与通常由木马故意利用的隐蔽通道不同,侧信道的信息泄漏是由内部可信组件无意地执行。因此,仅通过简单地限制系统内的信息流是无法解决这种情况的。根据系统的物理特性,攻击者可以使用各种类型的侧通道来泄漏敏感信息。时序信息,功耗和电磁泄漏都是可以用来执行侧信道攻击的信息来源。现代处理器使用缓存来填补内存层次结构中的速度差距。同时,它给系统带来了不确定性,即存储器访问的时间根据数据是否在高速缓存中而变化。高速缓存定时攻击是一种特定类型的侧信道攻击,它利用高速缓存对算法执行时间的影响。攻击者可以通过测量访问条目和泄漏信息所花费的时间来确定分配到缓存中的地址。从安全的角度来看,乱序执行可能导致处理器执行一些具有微架构副作用的恶意代码,这些副作用可被利用来泄漏敏感信息。熔毁攻击(Meltdown)是一种新的攻击方式,这种攻击方式利用现代处理器上乱序执行的副作用来读取任意内核内存或特权寄存器,它可用于突破地址空间隔离或甚至特权模式给出的安全性假设。图1显示了一个示例,在某些指令触发异常随后终止应用程序后,CPU可能无序地执行指令。由于异常被触发,CPU不会退出代码的无序部分。因此,无任何架构状态实际上被改变。但是,在乱序执行期间,将存在微体系结构状态修改,例如高速缓存行的加载和清除。那些微体系结构状态不会被回滚并且可以被用来执行侧信道攻击。如图2所示,用户访问内核地址会导致异常,然后会导致乱序执行;如图3所示,用户访问仅特权模式下才可访问的内侧地址会导致异常,然后会导致乱序执行。通过对熔毁攻击中异常执行的可缓存位置的无序内存访问,攻击者可以对指令读取的敏感信息进行编码,从而触发缓存侧通道的异常。然后,攻击者可以测量缓存中分配的影响,并导致敏感信息泄露。参见图4,熔毁攻击有两个构建块:熔毁攻击的第一个构建块是使CPU执行一条或多条从不会在执行槽里出现的指令。那些乱序执行并留下可测量副作用的指令称为瞬态指令。访问用户不可访问的页面(例如内核页面)会触发通常会终止应用程序的异常。如果攻击者将目标锁定在用户无法访问的地址,则攻击者必须处理此异常。熔毁的第二个构建块是将瞬态指令序列的微架构副作用转移到架构状态,以进一步处理泄露的秘密。最初发现熔毁攻击是为了从用户模式执行特权页面的推测读取,并报告为恶意数据缓存加载,其常见漏洞和暴露ID为CVE-2017-5754。之后,发现了一种变种,通过本地用户访问权限执行系统寄存器的推测读取并泄漏未经授权的系统参数,称为恶意系统寄存器读取,常见漏洞和暴露ID为CVE-2018-3640。解决熔毁攻击的问题,要么通过重新设计硬件,要么用软件来应对。熔毁攻击绕过了硬件强制的安全区域隔离,因此一个简单的想法是,使硬件能够识别一次访存是否可能会越过安全边界,如果是的话就阻止这条指令执行。但硬件的重新设计成本很高,并且会和当前系统不兼容,因此用软件来应对会是当前最好的解决方案。在现代操作系统中,内核内存通常映射到每个正在运行的进程的地址空间,通常占用空间的上半部分。共享地址空间的设计避免了每次在内核和用户空间之间切换上下文时修改页表结构。但内核内存仅通过地址转换表中的权限位进行保护,这需要很长时间才能完成检查,从而为恶意代码乱序执行留下足够的周期。KAISER通过阻止大多数受保护的位置映射到用户空间来防止对敏感内核页面的熔毁攻击。KAISER将用户和内核地址空间之间的重叠页面数量减少到在现代系统上运行所需的绝对最小值,这可以用来消除从侧信道的泄漏。内核页表隔离(KPTI)是Linux内核对KAISER的实现。在x86架构上,KPTI创建了第二个PGD,它仅在进程在用户空间中运行时才处于活动状态,而原始PGD在内核运行时保留。它指向属于进程本身相同目录层次的页面,但是除了最小的所需区域(例如中断描述符表)之外,取消映射大部分内核空间。两个PGD相邻,可以通过恢复一位来轻松切换。由于ARM体系结构使用两个转换表寄存器用于内核空间和用户空间,因此在ARM上实现KPTI是相当不同的。ASID是ARM体系结构上的地本文档来自技高网...

【技术保护点】
1.一种主动切断隐蔽通道应对缓存侧信道攻击的方法,其特征在于实施步骤包括:1)拦截程序运行引发的异常,如果拦截到程序运行引发的异常则跳转执行下一步;2)判断当前异常是否为缓存侧信道攻击,如果为缓存侧信道攻击则跳转执行下一步;否则,跳转执行步骤4);3)通过清除缓存数据向缓存注入噪音数据、重置微架构状态,跳转执行步骤4);4)调用用户异常处理程序继续处理当前异常,退出。

【技术特征摘要】
1.一种主动切断隐蔽通道应对缓存侧信道攻击的方法,其特征在于实施步骤包括:1)拦截程序运行引发的异常,如果拦截到程序运行引发的异常则跳转执行下一步;2)判断当前异常是否为缓存侧信道攻击,如果为缓存侧信道攻击则跳转执行下一步;否则,跳转执行步骤4);3)通过清除缓存数据向缓存注入噪音数据、重置微架构状态,跳转执行步骤4);4)调用用户异常处理程序继续处理当前异常,退出。2.根据权利要求1所述的主动切断隐蔽通道应对缓存侧信道攻击的方法,其特征在于,步骤2)中判断当前异常是否为缓存侧信道攻击具体是指判断当前异常是否为程序试图访问敏感资源引起的。3.根据权利要求2所述的主动切断隐蔽通道应对缓存侧信道攻击的方法,其特征在于,所述敏感资源包括无法访问的内核地址以及特权系统寄存器。4.根据权利要求1所述的主动切断隐蔽通道应对缓存侧信道攻击的方法,其特征在于,步骤2)还包括判定引发的异常的程序是否在白名单中,如果引发的异常的程序在白名单中则直接跳转执行步骤4)。5.一种主动切断隐蔽通道应对缓存侧信道攻击的系统,包括计算机设备,其特征在于:所述计算机设备被编程以执行权利要求1~4中任意一项所述主动切断隐蔽通道应对缓存侧信道攻击的方法的步骤。6.一种主动切断隐蔽通道应对缓存侧信道攻击的系统,包括...

【专利技术属性】
技术研发人员:黄辰林陈鲍孜丁滟吴庆波谭郁松谭霜王晓川粟长征余杰马俊
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1