State Authenticity under Multiple Bus Masters: A Non-Secure DMA Gap and Mitigation for TrustZone-M Proofs of Executio
本文揭示了 TrustZone-M 执行证明易受非安全 DMA 控制器导致的状态篡改攻击,因为其安全保证仅依赖于 CPU 隔离,并提出了一种使用每通道 DMA 安全性的轻量级缓解方案,以确保针对所有总线主机的状态真实性。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一个微型、廉价的计算机散布在各处的的世界——它们存在于你的智能恒温器、健身追踪器,甚至工厂车间的传感器中。这些小设备理应是诚实的报告员,传回诸如温度读数或运动计数之类的数据。但如果黑客控制了其中一台设备,并开始编造谎言,将虚假数据喂给庞大的云端数据库怎么办?为了阻止这种情况,我们使用了一种数字化的“执行证明”(proof of execution)。你可以把它想象成计算机的公证员:设备会签署一份收据,声明:“我保证我按照要求准确地运行了这个特定的数学问题,没有任何人篡改过数字。”
为了实现这一点,设备需要两样东西:一个证明它运行了正确代码的安全方式,以及一个证明它所使用的数据(即“状态”,state)未被篡改的方式。我们正在讨论的这篇论文研究了一种特定且高科技版本的证明系统,称为 TrustZone-M,它内置于许多现代微芯片中。它就像芯片内部的一个超级安全保险库,将“受信任”的任务与“不受信任”的任务隔离开来。核心问题在于:如果黑客攻破了“不受信任”的一侧,他们能否在计算机进行数学运算的过程中,偷偷地更改数据,从而欺骗系统签署一份虚假的收据?本研究调查了当前的保险库规则是否足够强大,足以阻止一个能够进行数据写入却不被主计算机察觉的、隐形且狡猾的“助手”。
无形的笔:幽灵黑客如何愚弄安全芯片
在嵌入式安全的高端博弈中,研究人员最近提出了一种巧妙的方案,称为 SLAPP(状态化执行证明)。把 SLAPP 想象成一位非常严格的图书管理员,她想要验证一名学生(设备)是否正确解决了数学题。管理员检查两件事:首先,学生是否使用了正确的教科书(代码);其次,学生在解题过程中有没有通过修改笔记本里的数字来作弊(状态)。
管理员的逻辑很简单,看似天衣无缝:“如果学生试图修改笔记本里的数字,他们必须先打开教科书,寻找如何操作的指令。但由于我们有一个神奇的扫描仪在监视教科书,任何对指令的修改都会被立即发现。因此,如果教科书看起来很完美,那么笔记本里的数字也一定是诚实的。”
然而,这篇论文揭开了真相,揭示了该逻辑中的一个漏洞。研究人员发现,并不是只有“学生”才能在笔记本上写字。还有一个第二的、隐形的作者:DMA 控制器(直接存储器访问控制器)。
“幽灵”作者
要理解 DMA,请将主计算机处理器(CPU)想象成一位正在切菜的忙碌大厨。大厨是唯一被允许触摸厨房里案板(内存)的人。有一台安全摄像机(TrustZone-M 隔离机制)在监视着大厨,确保其他人无法触碰案板。
但是等等!厨房里还有一个机器人手臂(DMA 控制器)。这个机器人被编程为自动将食材从冰箱移动到案板上。安全摄像机只盯着大厨的手。它并不知道机器人的存在。机器人可以伸手抓起一袋面粉,并在大厨忙着切菜时将其倒在案板上。大厨完全没看见机器人,而安全摄像机也从未眨眼,因为大厨的手并没有移动。
在 SLAPP 安全方案的世界里,“机器人”就是 DMA 控制器。研究人员发现,安全系统只监视着大厨(CPU)。它假设如果食谱书(程序存储器)没有被更改,那么没有人能更改食材(状态)。但机器人可以在不触碰食谱书的情况下改变食材。
攻击:一场无声的投毒
研究人员在真实的芯片(STM32L5 微控制器)上进行了一项测试,以观察这个“幽灵”作者是否真的能破坏系统。他们创建了一个场景:一名已经控制了芯片“不受信任”部分的黑客,利用 DMA 机器人,在计算过程中间隙,将一个合法的数字替换为一个伪造的数字。
以下是这一诡计的过程:
- 检查: 芯片的安全部分检查了笔记本,发现数字是干净的。它给出了认可。
- 替换: 在检查之后,但在最终结果被签名之前,DMA 机器人迅速出手,用一个“毒素”值替换了原有的数字。
- 签名: 芯片使用这个被投毒的数字完成了数学运算,并签署了收据。
- 结果: 安全摄像机查看了食谱书,发现其未被触动,于是接受了这份收据。
结果是一个在数学上有效、但在事实上撒谎的“执行证明”。系统基于被篡改的数据认证了一个结果,而整个过程主计算机都认为一切正常。
为什么常规防御失效了
研究人员随后问道:“为什么芯片内置的安全机制没有阻止这一切?”他们尝试了三种标准的防御手段,而每一种都因为不同的、令人啼笑皆非的原因而失败了:
- “锁住机器人”尝试: 他们试图告诉安全系统去锁住机器人的手臂。但系统回答说:“我不控制机器人;我只控制大厨。”安全闸门根本不适用于机器人。
- “锁住桌子”尝试: 他们试图锁住案板,让任何人无法触碰。但这太严苛了!大厨也需要在案板上写字。如果锁住了案板,大厨就无法工作,整个系统也会停止运转。
- “报警器”尝试: 他们试图设置一个报警器,如果机器人触碰案板就会响起。但报警器只有在有人违反规则时才会响。由于机器人是被允许触碰案板的(它只是对于这项特定的安全规则而言属于“错误”的触碰),所以报警器保持了沉默。
解决之道:驯服机器人
解决方案并不是建造更高的围墙或更响的警报。而是给机器人发一张自己的安全通行证。研究人员发现,机器人(DMA 控制器)内部实际上有一个可以由安全大厨来拨动的隐藏开关。
通过拨动这个开关,安全世界可以声明:“这个特定的机器人手臂现在归我控制。如果黑客试图指挥它移动,它将忽略黑客并发出红色警报。”
这个修复方法出奇地廉价且简单。它不会减慢大厨的速度,也不需要新的硬件。研究人员通过对芯片上的所有机器人手臂进行安全加固来测试此方法。当他们再次尝试攻击时,机器人拒绝移动,警报响起,虚假的收据被拒绝了。
核心启示
这篇论文最重要的收获不仅仅是关于某一个特定的芯片或某一种特定的黑客技巧。它是一个关于我们如何思考安全的教训。
长期以来,安全设计者一直假设,如果你保护了“大脑”(CPU),你就保护了一切。这篇论文证明了,在现代芯片上,还有其他的“手”在伸向内存,而大脑却看不见它们。如果你想信任一台计算机的数据,你不能只盯着大脑,你必须盯着每一只能触碰数据的“手”。
研究人员表明,SLAPP 系统在发布时存在逻辑漏洞,因为它忘记了“机器人手”。他们不仅找到了这个漏洞,还展示了如何用一个简单、轻量级的修复方案来修补它。这提醒我们,在微型计算机的世界里,最危险的黑客可能不是那些在键盘上打字的人,而是那些在后台工作的、隐形的机器人,它们正等待着有人忘记检查它们的身份证明。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。