现在的处理器都配备了调试功能,以方便程序的调试和分析。尽管调试体系架构已经提出多年,但是调试功能的安全性还没有得到充分的检查,因为它通常需要物理访问才能在传统的调试模型中使用这些功能。 Arm 引入了一个新的调试模型,该模型自 Armv7 以来不需要任何物理访问。在这种新的调试模型中,主机处理器能够暂停和调试同一芯片上的另一个目标处理器(处理器间调试)。“钉枪”攻击的思想是利用这种处理器间调试能力,因为它允许低权限处理器暂停和调试高权限的目标处理器。 我们的实验发现了许多易受攻击的设备,包括 Raspberry Pi 这样的物联网设备、所有基于 Arm 的商业云平台,以及华为、摩托罗拉和小米等移动电话。为了进一步验证,我们证明了钉枪攻击可以用于访问Raspberry PI 上的安全配置寄存器(只有在安全状态下才能访问),并使用非安全内核模块提取存储在手机安全内存中的指纹图像。最后,我们提出了一种基于 Arm 虚拟化技术的防御手段,它能够在低性能开销的情况下,有效的抵御“钉枪”攻击。
张锋巍