在设备上同时运行的多个程序时,必须依赖于存储在设备内存硬件中的数据,但敏感信息可能不会在所有程序之间共享,而使得设备面临“内存定时侧信道攻击”的漏洞。
Video edited on Kapwing
在尝试访问内存硬件时,会有明显的响应延迟,以便检索敏感信息,例如密码或加密密钥。当前将内存硬件限制为单个程序的解决方案,会减慢计算速度。
美国国家科学基金会资助的麻省理工学院研究人员,开发了一种方法,不但可以共享内存硬件,也不会影响内存定时侧信道攻击的安全性;并且与当前最先进的解决方案相比,计算速度甚至提高了 12%。该研究发表在第 27 届 ACM 国际编程语言和操作系统架构支持会议论 (ASPLOS)论文集。
“如今,与他人共享计算机非常普遍,特别是在在云计算中、甚至在自己的移动设备上进行计算,”研究作者之一的闫梦佳说。“通过这些共享资源,攻击者甚至可以找到非常细粒度的信息。”
恶意程序可以通过多种方式,以共享内存为目标来访问敏感信息。该团队专注于解决争用攻击的解决方案——当恶意程序试图与另一个程序同时访问内存硬件时。
“攻击者会不断得戳着内存控制器、程序库,问着,“现在忙吗?’” 共同作者 Joel Emer 说。“如果他们因为程序库的门已经打开而被阻止——因为受害者程序已经在使用内存控制器——他们就会被延迟。”
研究人员开发的一种方案,使用称为”有向无环图“(directed acyclic graph)或 DAG 的图结构来处理请求,并按固定时间表将请求提交给内存控制器。而这个结构可在程序之间安全地共享内存硬件。该团队将安全方案命名为 DAGguise。
DAGguise 也可以加以更改,以防御针对共享计算资源(如片上网络)的不同侧信道攻击。
Comments