一种针对物理侧信道监视器的对抗性攻击
背景介绍
嵌入式系统由于计算能力受限、缺乏对安全功能的硬件支持等原因,检测其中的恶意代码通常很有挑战性。物理侧信道监视器利用微控制器产生的物理现象(如功耗或电磁辐射)来监控程序执行中的恶意行为,尤其适用于工业控制系统中关注安全的嵌入式系统。
一般认为物理侧信道监视器能提供高级别的安全性。物理侧信道监测器由物理侧信道采集模块与异常检测器两部分组成,信号收集模块在程序执行期间收集物理侧信道信号,异常检测器基于收集的信号预测程序的状态(例如,正常或异常、恶意或良性)。
基于以上信息,尽管侧信道监控系统会造成许多攻击障碍,罗格斯大学的Yi Han、Matthew Chan、Zahra Aref等人在USENIX 2022上提出了一种针对侧信道监控系统的对抗性攻击,通过注入特殊设计的汇编级恶意程序,使其产生的侧信道信号可以逃避侧信道监视器的检测[1]。
已有工作
学术界和工业界都采用了物理侧信道监测器来监测系统的安全性。与传统的基于软件的监视器相比,物理侧通道监视器的主要优势在于它们是气隙式的,这意味着它们是在受监控系统的外部实现的。这提供了隔离和单独的攻击面,减少了可用攻击向量的数量[2]。
物理侧信道监测器通常使用数据驱动模型进行训练,工作流程如下图所示。
程序开始时注入恶意程序的功率信号
信号收集模块在程序的正常执行期间采集物理侧信道信号,该信号代表程序的可能行为和控制流的广泛子集。异常检测器将收集的侧信道信号作为模型的训练集,一旦模型被训练到足够高的精度,将进入监测阶段。在系统运行期间,监视器会监测系统的控制流,将监测的侧信道信号作为异常检测器的输入并返回关于系统是执行良性代码还是恶意代码的响应。
因此,若攻击者将恶意程序注入良性程序,当程序运行恶意程序时对应的侧信道信号将被侧信道监视器识别并警报。最近,罗格斯大学的Yi Han等人提出了一种针对侧信道监控系统的对抗性攻击,通过注入特殊设计的汇编级恶意程序,使其产生的侧信道信号可以逃避侧信道监视器的检测[1]。
实验内容
作者使用带有ARM Cortex M4微处理器的W308T-STM32F3进行实验,采样率40MHz的Chipwhisperer-Lite CW1173 oscilloscope进行信号采集,嵌入式系统运行一个为机器人手臂执行路径规划任务的程序。
下面两张图显示了典型循环控制程序和监视器收集的相应功率信号的高度简化示例。该信号表示路径规划程序的执行轨迹:执行哪些指令、执行哪些分支以及遵循哪些控制流程。
典型循环控制程序的简化示例
典型循环控制程序对应的功率信号
异常检测器将扫描周期的功率侧信道作为输入并输出置信度分数。置信度分数指示输入信号对应于良性程序的执行的可能性。在置信度分数上设置阈值(实验中为0.9),置信度分数低于该阈值表示对嵌入式系统的攻击。
检测器本身使用数据驱动模型,该模型训练了在正常系统操作期间一段时间内收集的电源侧信道信号。对手想要对机器人手臂执行数据注入攻击,例如,更改路径规划算法的输入。通过这种方式,它们可以改变程序的内部状态,从而改变输出驱动,从而导致不希望的手臂行为或损坏。对手还想发动隐蔽攻击,即攻击不应造成无意中可观察到的效果。为了实现这一点,对手可能会选择将恶意程序注入良性程序。
下图中的信号在开始时注入了恶意程序。该信号输入侧信道监视器,产生的置信分数0.77低于阈值0.9。因此,异常检测器返回恶意代码响应并触发警报。
程序开始时注入恶意程序的功率信号
作者提出将恶意程序分成独立的部分,并进行位置优化实现对抗性攻击。首先,实验中将训练一个替代性检测器,代替被攻击设备中的异常检测器被攻击;然后进行程序分析,对恶意程序进行预处理;最后通过蒙特卡洛树搜索算法找到最优逃避样本。通过上述过程,恶意程序被分成若干个块并插入特定位置,如下图所示。
程序开始时注入恶意程序的功率信号
在程序特定位置注入恶意程序块时的功率信号如下图所示,此时侧信道监视器输出的置信度为0.99,即运行了恶意程序但未被监视器检测到。
在程序特定位置注入恶意程序块时的功率信号
实验结果
作者在五种具有代表性的控制系统软件中分别进行了虚假数据注入、驱动输出覆盖、控制参数攻击、数据记录、保密信息披露五种攻击,并同时考虑时间、频率特性与三种流行的时间序列模型(BiLSTM、BiRNN、HMM)来构成检测器。
首先在同一台设备上进行了攻击,结果如下图所示,所有的置信度分数都显著高于检测阈值,且对于一些较弱的探测器,置信度分数要高得多。这意味着所提出的攻击可以找到高可信度的回避样本。
同一设备攻击的实验结果
尝试进行跨设备攻击,即在同款设备1上进行攻击优化,在设备2上进行实际攻击。结果如下图所示,分数略低,但仍处于可接受的高水平,也高于检测阈值,这意味着所提出发攻击在跨设备下非常有效。
跨设备攻击的实验结果
考虑一个更具挑战性的场景,在这种情况下,对手甚至不知道模型,因此他需要利用不同模型之间的可迁移性。即攻击者必须优化一个模型,然后攻击另一个模型,这个表代表了每对模型之间的置信度得分。如下图所示,所提出的攻击可以很好地跨同一类型模型的不同架构、同一模型族的不同类型模型进行迁移。
跨模型攻击的实验结果
总结
本论文使用对抗性代码注入和优化技术(如蒙特卡洛树搜索),成功注入特殊设计的汇编级恶意程序,使其产生的侧信道信号可以逃避侧信道监视器的检测。即利用侧通道监控中使用的数据驱动模型的漏洞,发现了恶意行为但可逃避检测的敌对程序。
本文的实验结果表明了这种攻击在检测器模型和硬件实现中是鲁棒的。在几个代表性程序上,本文评估了对流行的ARM微控制器平台的攻击,证明了这种攻击的可行性,并强调对侧通道监视器进行进一步研究的必要性。
