[发明专利]在系统操作参数中受控的引入不确定性在审
申请号: | 201910458014.0 | 申请日: | 2019-05-29 |
公开(公告)号: | CN110659479A | 公开(公告)日: | 2020-01-07 |
发明(设计)人: | V·苏霍姆利诺夫;K·铜子;F·吉姆;A·奈什图特 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F21/75 |
代理公司: | 72002 永新专利商标代理有限公司 | 代理人: | 刘瑜;王英 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 扰动 不确定性 选择器电路 攻击 系统数据 可访问 外部 电路 边信道攻击 可访问系统 定时数据 扰动电路 事件发生 潜在的 可变 引入 检测 处理器 受控 监视 | ||
本公开涉及用于通过选择性地将可变、但受控的数量的不确定性引入攻击者可见且有用的外部可访问系统参数来减轻或消除边信道攻击(例如熔毁或者幽灵类型攻击)的有效性的系统和方法。本文描述的系统和方法提供扰动电路,其包括扰动选择器电路和扰动块电路。扰动选择器电路通过监视由处理器生成的性能/定时数据来检测潜在的攻击。在检测到攻击时,扰动选择器电路确定可变量的不确定性以引入外部可访问的系统数据。扰动块电路将确定的不确定性添加到外部可访问的系统数据中。增加的不确定性可以基于指示攻击的事件发生的频率或间隔。
技术领域
本公开涉及计算机安全性,具体地涉及检测和/或防止边信道攻击。
背景技术
边信道攻击在2018年初获得了广泛的恶名声。边信道攻击包括基于从计算机系统的实现获得的信息而不是实现的算法本身的弱点的任何攻击。这种边信道攻击可以使用定时信息、功耗、电磁泄漏或甚至声音作为额外的信息源,其被利用来从系统获得信息和/或数据。边信道攻击包括幽灵(Spectre)和熔毁(Meltdown),它们都依赖于推断数据是来自高速缓存还是未高速缓存的位置。在很大程度上,确定数据源自何处依赖于事件的精确定时,例如来自存储器空间的负载。
现代操作系统将内核映射到处理器执行的每个进程的地址空间。使用处理器的超级位来限制对内核空间的访问,该超级位被设置为允许对内核空间的内核访问并被重置以阻止或禁止对内核空间的用户访问。熔毁克服了这种存储器隔离,从而允许用户进程读取执行用户进程的机器的整个内核存储器。熔毁依赖于乱序执行来从内核空间获取数据。支持乱序执行的CPU支持推测性地运行操作,以至于在CPU确定指令是否有效和已提交之前,处理器的乱序逻辑处理指令。熔毁通过使处理器执行多个指令来从受保护的内核空间读取信息,所述指令例如:
data=getByte(kernelAddress)
variable=probeArray(data)
由于禁止读取内核存储器,“getByte”指令最终会失败。但是,同时访问“probeArray”中的元素会将数据从“probeArray”拉入高速缓存。通过定时读取高速缓存中0到255的地址,攻击者能够推断出“kernelAddress”的内容。
例如,在刷新高速缓存之后,熔毁攻击者从内核存储器中的第一地址取回值“01000000”(二进制“64”)。在处理器生成对从内核存储器的未授权读取的异常之前,攻击者使用取回的内核数据作为索引来访问位于用户空间中的已知阵列中的元素“64”。处理器取回阵列元素64的值并将值加载到高速缓存中。然后攻击者尝试从阵列中读取每个元素-元素0-63和65-255的访问时间相对较长,因为数据是从主存储器中取回的。然而,针对元素64的访问时间将显著缩短,因为仅需要从高速缓存中取回数据。由此,攻击者可以推断出内核存储器中第一地址的数据为“0100000”。通过执行针对内核存储器中的每个位置的操作,攻击者能够读取内核存储器的内容。
第一类幽灵攻击利用CPU的分支目标误预测将数据从存储器读取到高速缓存中。在检测到错误预测时,CPU清除来自流水线中的数据,但读取到高速缓存中的数据仍然存在。然后可以使用隐蔽边信道来从高速缓存获得残余数据。在这类攻击中,攻击者训练系统中的分支预测器以获取特定分支。例如,使用以下指令,攻击者可以通过提供始终小于“array1”大小的“x”的值来训练系统。因此攻击者训练系统以基于以下假设来推测性地执行后续指令,该分支在历史上是真实的:
在训练系统之后,攻击者将高速缓存设置为已知状态并提供超过“array1”大小的“x”的值。之前已经训练过“x”通常小于“array1”的大小,处理器执行分支指令(在处理器由于“x”大于“array1”的大小而抛出异常之前)并使用在地址“x”处找到的值作为索引来查找在array2中地址“x”处的值。处理器将array2中地址“x”的值加载到高速缓存中。然后攻击者读取array2的所有值,并能够确定“x”的值作为在array2中具有最短访问时间的地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910458014.0/2.html,转载请声明来源钻瓜专利网。