在网络物理增材制造系统中,侧信道攻击已被用于重建正在生产的 3D 对象的 G/M 代码(这是给制造系统的指令)。在产品大规模制造并投放市场之前的原型设计阶段,这种方法通过最意想不到的方式从组织窃取知识产权是有效的。然而,由于缺乏足够的侧信道信息泄漏,攻击者可能无法完全重建 G/M 码。在本文中提出了一种放大信息泄漏的新方法,通过暗中改变编译器来提高 G/M 代码恢复的机会。通过使用该编译器,攻击者可以轻松控制各种参数以放大 3D 打印机的信息泄漏,同时生产所需的对象并对真实用户隐藏。这种类型的攻击可能由有权访问工具链并寻求高度隐身的强大攻击者实施。本研究已经实现了此编译器,并证明与之前的攻击相比,它从四个侧信道(声学、功率、振动和电磁)恢复 G/M 代码的成功率提高了39%。
0x01 Introduction
信息物理系统 (CPS,Cyber-Physical System) 已被公认为第四次工业革命 (工业 4.0) 的推动者。 由于网络和物理世界的紧密结合,CPS 能够增强与周围物理世界的互动。 事实上,以 CPS 为基础,到 2030 年,工业 4.0 预计将创造 15 万亿美元的全球 GDP 价值。 然而,该预测并未考虑与 CPS 在生活的各个方面(包括最敏感和最关键的方面)广泛传播相关的挑战。 设计人员必须解决的主要挑战之一是确保这些系统的安全可靠运行。
安全性必须保证的基本属性之一是机密性。 违反保密规定会造成重大的经济损失。 例如,当丢失的信息是知识产权 (IP,Intellectual Property) 时,情况确实如此。 总体而言,失去知识产权将增加制造业的财务损失。 保证IP机密性的问题已被研究界广泛研究,也与CPS领域有关。 有趣的是,使用增材制造构建的 IP 的机密性可以通过利用侧信道信息来重建 3D 打印机用于生成对象的 G/M 代码来破坏。 G/M 代码是发送到 3D 打印机以控制其运动和机器参数的指令。
3D 打印机的数字流程链涉及编译 G/M 代码的各种步骤(见下图)。 第一步是创建 3D 模型。 该模型是使用计算机辅助设计 (CAD) 工具设计的,该工具生成立体光刻文件 (STL),其中包含用于描述模型的 3D 坐标。 在下一步中,计算机辅助制造 (CAM) 工具(G/M 代码编译器),如切片和刀具轨迹生成,获取 STL 文件,逐层切片,并找到最有效的路径来遍历一个单层。 然后将该路线转换为 G/M 代码并发送到 3D 打印机。 然后这些代码由 3D 打印机固件解释以生成物理对象。
与任何其他系统一样,3D 打印机会通过侧信道泄漏信息。 例如,声学或电磁等侧信道取决于正在执行的特定操作,并最终取决于正在打印的对象。 利用这种关系,可以对发送到 3D 打印机的模型进行逆向工程并重建生成文件(例如 STL 文件、G/M 代码等)。此外,通过侧信道收集的信息允许 获取有关过程和机器参数的信息。 由于 3D 打印机用于实际制造和快速原型制作,因此泄露打印对象的信息将使对手获得复制它所需的所有信息,从而给相关公司造成重大经济损失。 然而原始文件的重建可能非常困难,因为攻击者需要精确记录 3D 打印机侧信道中发出的信号。
A.示例
本文中的方法类似于其他领域中使用的方法,在这些领域中,添加木马、恶意软件或更改系统软件以从隐蔽渠道泄漏信息已被证明是一种有效的攻击形式。 例如在系统中插入恶意软件,以将硬盘驱动器的 LED 转换为从气隙计算机泄漏敏感数据。
B.贡献
在本文中介绍并演示了一种新颖而强大的攻击,其中攻击者更改编译器以增加原型设计过程中泄漏的信息量。 这可以显着简化通过利用侧信道执行的逆向工程攻击。 将本文分成多个部分,系统地分析了这种更强的攻击场景。 第一部分将解释如何利用侧信道来获取有关 G/M 代码的信息。 接下来的两节将解释新攻击模型以及如何修改编译器以连续增加泄漏。 最后演示了如何通过利用侧信道计算的互信息来重构 G/M 码。
通过这项工作证明了跨域攻击模型的可行性,其中攻击者引入网络域变量的变化以增加物理域中的信息泄漏量。 相信在不久的将来,当信息物理设备将完全渗透到生活时,这将非常重要。 为了演示,已经在基于 3D 桌面打印机的熔融沉积建模 (FDM,Fused Deposition Modeling) 技术中实现了所提出的攻击模型。
0x02 Information Leakage through Side Channels of 3D Printer
从高层次的角度来看,任何 3d 打印机都具有软件(例如 G/M 代码)、电子设备(控制器、步进电机等)和机械设备(轴运动、皮带和滑轮等),这些方法与信息论方法高度相关。 G/M 代码可以根据力学划分成组,例如喷嘴速度、线段角度等。 并且,以这样的方式选择侧信道,使得它们中的每一个都与每个分割的G/M码共享互信息。 并且以这种方式对编译器进行调和以减少侧信道数据的同质性以增加信息增益。 将信息与机械装置耦合的侧信道如下所述。
1.电磁(EM):地球磁场因打印机金属结构(即挤出机、皮带和皮带轮等)的运动以及步进电机的电磁网而发生偏移。 这被称为磁偏差,这种非线性效应的准确模型很复杂。 这种偏差的数据驱动建模可以对金属结构的运动进行建模,由此可以重建直接涉及金属结构运动的 G/M 代码。 可以通过使用 G/M 代码(例如 M566)来增强这种信息泄漏,该代码用于控制线段末端的速度。
2.能量:大多数最先进的桌面 3D 打印机使用两相混合步进电机,产生扭矩来移动喷嘴。 扭矩的产生取决于负载,即物体的形状。 另一方面,电机中产生的扭矩与定子绕组中产生的磁通量 (TαH) 成正比,这也取决于提供给每个电机的步进功率 (H α I)。 因此,几何形状的形状与电机的功率数据之间存在相关性。 例如,可以通过更改控制电机功率的 G/M 代码 M17、M18 来增加功率数据中的这种互信息。
3.振动:3D打印机有四个步进电机。 其中三个用于在 X、Y 和 Z 轴中的每一个上移动打印机喷嘴,第四个电机用于在打印时挤出灯丝。 这些电机由于作用在不同轴上的定子铁芯上的波动径向力而产生振动。 这种振动具有喷嘴运动方向的相互信息,可以通过收集振动侧信道数据来建模。 这种互信息对于重建直接控制喷嘴在不同轴上运动的 G/M 代码集是必要的,并且可以通过改变编译器以受控方式增加电机的振动来增强这种信息增益(例如,M566)。
4.声学:声学侧信道与机体的振动和电机的转速密切相关。下图显示,随着电机速度的增加(从 500 mm/min 到 4800 mm/min),较高的频率分量逐渐被引入到音频频谱。 因此,通过调整 G/M 代码(例如 M204),可以在线路末端提高电机的速度,从而通过声学侧信道泄漏有关 IP 的信息。
0x03 Attack Model Description
在先前提出的对 3D 打印机的侧信道攻击中,攻击者有动机窃取设计者打印的 3D 对象中固有的知识产权(下图)。在本文中设想了一个更强大的攻击者,其动机与之前的攻击者相同,但还可以访问 3D 打印过程中使用的工具链。攻击的 IP 目标最终包含在打印对象的设计文件中,攻击者以各种参数的形式窃取该文件,例如几何尝试、工艺参数、机器参数。
由于侧信道攻击不需要更改设备本身,也不需要其他侵入性更改(例如访问网络),因此它们可能更难被识别和预防。这些攻击可以由有权访问进行打印的位置但无法访问设计文件的恶意员工进行,以进行非法复制。已经表明,这些类型的侧信道攻击可以成功地用于重建有关由用于原型制作的 3D 打印机打印的 IP 的信息。
正如在模板攻击中通常所做的那样,在训练阶段,攻击者将通过使用与将成为攻击目标的设备类似的设备从各个侧信道中提取各种时域和频域特征来表征 G/M 码。这些数据将用于训练和创建一个模型,将 G/M 代码与相关的模拟发射联系起来。由于此训练是使用类似于目标打印机的 3D 打印机完成的,因此攻击者可能还会使用高级机器学习算法(例如,随机森林或神经网络)来创建模型,从而提高模型的准确性和,最终改进攻击。在攻击阶段,攻击者通过暗中放置传感器(如麦克风和加速度计)来非侵入性地监视侧信道,从而获取这些模拟发射信号。使用先前训练的分类器重建部分 G/M 代码,并最终重建打印对象的整个设计文件。然而,如前图所示,由于潜在空间中的低熵,这种方法可能无法准确预测复杂设计的部分 G/M 代码。因此,攻击者可能会重建与打印的 3D 对象不完全匹配的 G/M 代码。
A.新攻击模型
在当前的攻击模型中都假设攻击者无法访问软件编译工具链。然而,这种情况正在迅速改变。由于现在更强大的攻击者能够结合设计变更(例如硬件木马),因此深入研究这种现实的攻击模型非常重要(例如,以前的工作证明了增加受保护逻辑的侧信道泄漏的可能性,通过改变逻辑门的掺杂极性来改变风格)。来自设计工具的威胁是现实的,因为它们在其他安全领域也越来越重要。在文中考虑一个攻击者,它有可能改变用于生成要打印的文件的设计工具,并将这种修改与侧信道攻击相结合,以更容易的方式恢复设计文件。
B.工具链更改
在攻击模型(下图)中,攻击者只需要修改和更改工具链一次,即添加恶意修改代码,从而在不妨碍 3D 打印机正常运行的情况下增加通过侧信道的信息泄漏。大多数用于原型制作的桌面 3D 打印机使用开源 CAD、CAM 和固件,攻击者可以轻松访问这些。
至少在三种情况下可以更改工具链。在第一种情况下,工具提供商或打印机制造商在工具链或打印机固件中引入了恶意修改,并且该修改将存在于所有打印文件中。这种威胁类似于前面提到的硬件木马的威胁模型,其中由恶意代工厂插入的木马通过削弱对策来改变芯片的侧信道稳健性。在第二种情况下,可以访问制造工具链或固件(其中大部分是桌面 3D 打印机的开源)源代码的恶意员工恶意修改它们。与设计文件的简单副本(示例 CAD 设计)相比,工具链的修改可能是更吸引人的网络攻击形式,因为它们更隐蔽且更难以检测。因此,他们可以在公司不知情的情况下将逆向工程设计的可能性保留更长的时间。第三种情况是拦截,过去曾有传言称其被使用,最近已被证明是切实可行的。在这种情况下,竞争对手可以在交付过程中拦截打印设备,修改编译器或固件,然后继续向客户发货。在这种情况下,增加打印过程的侧信道而不是注入其他类型的修改的主要原因主要是由于攻击的隐蔽性和(几乎)不可能证明修改的恶意性质。
C.实验:扩大信息泄露
信息论中的一个基本思想是,同质事件比确定性较低的事件具有更少的信息。本文采用了这个思路。为了证明编译器修改可以通过减少侧信道的同质性来增加信息泄漏,对现有设置进行了实验。3D 打印机制造的物体的表面纹理是喷嘴流量的直接函数。通过从泄漏表面纹理信息(例如,厚度、尺寸)的侧信道中提取各种时域和频域特征,使用随机森林回归器等数据驱动建模方法对创建的表面纹理之间的关系进行建模。来自喷嘴的物体和流速。现在,从这个数据驱动模型预测表面纹理的质量,发现预测误差在增加流量的同时减少,如下图所示。在 3D 打印机中,最佳流量在于80% 到 120% 的范围。通过更改工具链中的代码 M108,该流速在最佳流速的 20% 到 200% 之间变化,步长为 10%。从下图可以看出,平均预测误差随着流量的增加而减小。可以通过以下方式在数学上解释这一点。如果 X = {修改后的编译器指令},Y = {收集的侧信道数据},条件熵可以写为 H(Y|X) = H(X,Y) – H(X)。这里,作为联合熵,H(Y|X)大于H(Y),由于X的引入,H(X,Y)增加。随着流量的增加(即M代码的改变)增加了设计潜在空间的联合熵,这反过来又增加了互信息。
在本文中,为了证明通过侧信道最大化信息泄漏的攻击的可行性,针对 CAM 工具进行分析,它从 STL 文件编译 G/M 代码。通过合并更改的代码,将证明攻击者可以提高他们预测部分 G/M 代码的成功率,而不会妨碍 3D 打印机的正常运行。举一个例子,在使用和不使用对编译器的攻击的情况下重建部分 G/M 代码。在重构 G/M 码时,部分 G/M 码之一是在每一层中移动的线段的角度。当移动角度为 45度时,该线在 X 轴和 Y 轴上的移动相等。这意味着负责移动 3D 打印机喷嘴的执行器(例如步进电机)具有类似的控制信号。如果它们的物理实现(承载的负载、支撑步进电机的框架等)相同,那么它们将发出非常相似的模拟发射,例如声学。这将使区分 X 和 Y 运动之间的角度变化成为一项重要的任务。在这种情况下,攻击者可以通过引入每次角度改变时触发的代码,利用改变的编译器来揭示角度信息。例如,可以通过在每次角度变化时稍微改变喷嘴冷却风扇的速度来实现,而不会被用户察觉。
0x04 Compiler Attack
攻击概述如下图所示。旨在从侧信道分析开始重建 G/M 码的攻击包括两个阶段:分析阶段和攻击阶段。
A.分析阶段
在分析阶段,假设攻击者可以访问目标设备或目标设备的相同副本。这个分析阶段类似于在模板攻击 [30] 期间进行的分析,之前的研究已经证明模板攻击是一种非常强大的侧信道攻击形式。使用 n 个训练 G/M 码,Gn={g1; g2; …; gn} ,攻击者可以表征 m 个侧信道,Sm={S1; S2; …; Sm}。从每个侧信道,能够观察到由随机变量表示的模拟发射 Om={O1; O2; …; Om}。用随机变量表示这些发射,因为希望通过最大化发射和设计变量之间的互信息来增加泄漏。攻击者从这些侧信道中的每一个收集数据,对其进行过滤,并提取多个时域和频域特征(假设总共有 l 个特征)。攻击者最终会为每个侧信道获得以下矩阵:
其中ofl-in 是侧信道Si 的随机变量Oi的值,n 是收集的总排放数据,l 表示从发射数据中提取的总特征。尽管可以从每个侧信道中提取不同数量的特征,但这里假设提取的特征数量相似且相同。根据攻击者的不同,他们可能会使用单变量或多变量分析来估计模型函数 M^,该函数近似于侧信道发射和网络数据之间的关系。假设攻击者可以无限制地访问接近目标 3D 打印机的系统,这样他们就可以获得与 G/M 代码 Gi 对应的模拟发射 Oi 的大样本,从而使用机器学习算法准确估计模型函数。如前所述,这些假设已被大量处理模板攻击的文献证明是现实的。模型函数可以简单地选择为满足以下条件的具有 k 个值的函数:
其中k = 1; 2; …; N是用于估计模型函数的各种模型函数(如神经网络、随机森林、支持向量机等)的数量。 给定相应的模拟发射,训练模型函数以估计 G 代码 g^i=f^k(oi,φ)。 φ={φ1,φ2,φ3,…φt} ;是用于调整模型函数的参数向量。对应于所使用的模型函数(由上式中的 k 索引),确定长度 t 和 f 的值。
在一个相对受保护的环境中进行了分析阶段,将打印机放在一个在整个阶段都没有人访问的房间里。然而,房间仅通过一扇关着的门与其他环境隔开,因此可能来自外部的噪音可能已包含在模型中。打印机被放置在一张普通的桌子上,不支持衰减振动。还对在非绝缘环境中运行的常规设备进行了功率和电磁测量。相信在更加隔离的环境中进行分析会带来更好的结果,因为它会将攻击者置于更理想的情况下。但是由于对提议攻击的实际影响感兴趣,因此构建了设置以模仿攻击者可以使用相对便宜的设备轻松安装的设置。与任何模板攻击一样,目标分析设置越接近,成功的机会就越高。在这里提出的攻击旨在放大信息的泄漏,从而在分析设置与攻击设置非常不同的情况下也更容易被攻击者检测到。
B.攻击阶段
在攻击阶段,模型函数 m : G→O 或 f^k(., φ)从前式中获得的 fÞ 用于重新构建 G/M 代码。使用各种算法(如神经网络、随机森林、支持向量机等)来估计模型函数。对于这些算法 k 中的每一个,选择对 G 代码估计误差给出最少模拟发射的函数。攻击者必须从侧信道获取所有模拟信号以估计完整的 G/M 码。估计函数的准确性决定了攻击的准确性。在大多数攻击中,G/M 代码的重建是使用多个模型函数完成的,每个模型函数负责估计 G/M 代码的部分信息。将 G/M 代码划分为{Q1; Q2; Q3; …;Qr}的不相交块,使得UQi=G。这个划分是基于G/M-code的每条指令负责同时完成多个驱动(例如确定线段的角度和长度为打印)。因此,可以将这种 G/M 代码进一步分解为更小的控制动作。有模型函数{m^1(Q1i,Qi), m^2(Q2i,Qi) ,…, m^r(Qri,Qi)}共同估计 G/M 代码。在增材制造中尤其如此,因为 IP 隐藏在物体的几何形状中,打印时揭示物体几何形状的主要信息是:喷嘴的移动进给速度、线段的角度、距离每个轴的运动等。此信息与其他信息一起出现在 G/M 代码中。因此,可能只需要{Q1; Q2; Q3; …;Qr}的子集来重建几何。此外,不同的侧信道揭示了关于 G/M 代码的不同信息集。
然而,考虑到攻击者在实际场景中可能无法访问可以收集每个侧信道发射的无噪声样本的环境,重建 G/M 代码可能会出现问题。为了改善这种情况,设想了一个更强大的攻击者,它能够通过编译器修改和生成 G/M 代码,以最大限度地通过侧信道泄漏信息。事实上,通过修改计算机辅助制造工具(如切片算法和刀具轨迹生成算法),攻击者可以很容易地在设计变量中引入变化{α1; α2; α3; …; αn},使得估计的模型函数f^k(., φ)可以更准确地重构 G/M 代码。
C.编译器修改
在这项工作中为了恶意修改编译器,确定了三种可以在不影响 3D 打印机正常运行的情况下增加信息泄漏的方法。这些变量是机器特定的。详细地说,使用的变量是:
1.风扇转速(A1):机器码M106控制风扇转速,也控制喷头温度。风扇速度可以在 0 到 255 的范围内变化。风扇速度的微小变化可以增加声、磁、功率和振动侧信道内的熵,从而更容易提取时域和频域特征.风扇速度的这些变化不得导致喷嘴温度对更改的编译器中考虑的材料的平稳流动产生负面影响。
2.线段末端的速度(A2):为了进行逆向工程,攻击者需要逐层重建用于打印 3D 对象的每个线段。因此,通过使用 M566 改变线段末端的速度,攻击者可以大幅增加两条线段之间的速度变化(即增加信息增益),从而使他们能够破译线路的变化。然而,速度变化不能太大以引起机械冲击或阻碍材料通过喷嘴的沉积。
3.步进电机的电源 (A3):M 代码 M17 为所有步进电机供电,而 M18 禁用所有步进电机。该变量可用于增强电源和电磁侧信道中的信息泄漏。然而,步进电机应该快速关闭,这样它就不会影响操作,同时影响到足以显示某些信息的侧信道。
还有其他几种 G/M 代码可用于在合法用户不知情的情况下优化从侧信道泄漏信息,例如 M108 设置挤出机速度,M113 设置挤出机脉冲宽度调制,M140 设置打印床温度,M204 设置步进电机的加速度等。这里只提供少数几个来证明攻击模型的有效性。
为了量化从侧信道泄漏的信息量,使用分区 G/M 码 Qr 和每个侧信道中观察到的模拟发射之间的互信息作为度量。直观地,互信息表示如果已知模拟发射 Om,特定 G/M 码 Qr 的信息有多少可用。用大写字母O,Q,G表示离散随机变量,并用小写字母o,g,q表示这些随机变量所取的值。尽管可以使用描述系统物理特性的基于第一原理的方程来计算来自侧信道的模拟发射值,但这一步并非微不足道。相反,可以将这种模拟发射表示为随机变量,并使用传感器观察其实现。此外,根据打印的 3D 对象、切片算法、工艺参数等,可以将不同的 G/M 代码传递给 3D 打印机。由于不假设攻击者事先知道 3D 对象或过程参数,因此将这些传递给 3D 打印机的 G/M 代码视为具有某种底层分布的随机变量。然后将互信息定义为:
其中p(qr,om)是联合概率分布函数,p(qr)和p(om)是随机变量 Qr 和 Om 的边际概率分布。 联合概率函数可以使用由 Qr 的均匀分布值范围组成的训练 G/M 代码来计算,并收集来自侧信道的相应模拟发射。 由于使用了以 2 为底的对数,因此互信息的单位是比特。
D.泄漏最大化
如前所述,提议的攻击包括两个阶段:首先是分析阶段,第二阶段是攻击阶段。分析阶段只执行一次,这样做有两个原因。第一个是了解如何以及在何处在编译器(或打印机的固件)中注入恶意修改,第二个是构建模板,用于在第二阶段重构代码攻击。在分析阶段,攻击者估计模型函数。基于模型函数,计算模拟信号和 G/M 码之间的互信息以及重构的 G/M 码的精度。然后,探索了各种设计变量,并相应地修改了可以在不影响 3D 打印机正常运行的情况下最大化给定侧信道的互信息的变量。然后将更改后的编译器插入到增材制造系统的设计链中,以生成可以被攻击者轻松重建的 G/M 代码。
攻击者的目标是最大化侧信道信息。为了以系统的方式做到这一点,开发了一种互信息最大化算法。算法采用部分 G/M 代码 Qr 和模拟发射 O 之间的当前互信息值,并最大化可用信息。
算法 1 执行互信息最大化。算法的输入是所考虑的设计变量{A1; A2; …;An}。对于每个设计变量,算法返回值 {αm1,m2,…,mn}最大化 m 个侧信道中的每一个中的互信息量。从第 1 行到第 8 行,算法收集用于估计第 9 行联合概率分布函数的数据。使用该联合概率函数,以及模拟发射的熵和预先确定的分区 G/M代码 Qr用于分析,在第 10 行计算基于每个设计变量值的条件互信息。然后使用非线性函数 f^mn (.) 估计互信息与第 11 行中的设计变量。然后对于每个设计变量和侧信道,使用优化算法最大化每个侧信道中的互信息量。优化算法的约束条件是:(a) 保持打印时间 Tp<=TI + △T ,其中 TI 是原始打印时间,△T 是时间变化的允许阈值,(b) 避免喷嘴温度的大变化θI-△θL<=θp<=θI+△θH,其中 θI 是原始温度和 △θL ;△θH 是温度变化的允许上下阈值,(c) 避免大的速度波动θi-△θ<=θp<=θI+△θ,其中θI 是原始打印速度,△θ是允许的阈值速度变化,(d) 并且不要让步进电机闲置的时间长于 TIDLE<=△IDLE,其中 △IDLE 是允许的闲置时间,而不会导致步进电机自由移动。为了获得这些阈值,攻击者首先需要向上找到这些参数的最优值θp,TIDLE 和 TI 。如果攻击者拥有与目标 3D 打印机相似的分析 3D 打印机,则可以轻松访问这些参数。对于某些参数,用户手册中给出了这些值的最佳范围。但是,攻击者可能会通过增加或减少阈值并分析其对 3D 对象质量的相应影响来超出最佳范围。
攻击的第二阶段是经典的模板侧信道攻击。 为此,攻击者需要在打印过程中物理访问设备。 所需的访问类型取决于攻击者想要利用的特定“渠道”。 对于电源,可能需要复杂且可能可见的测量设置。 对于声学、振动和 EM 侧信道攻击,简单的现代智能手机已被证明具有足以重建整个 G/M 代码的潜力。 在收集到信道轨迹后,攻击者将尝试使用在分析阶段估计的模型函数来重建 G/M 代码。
0x05 Experimantal Result
实验设置如下图所示。使用了Cartesian桌面 3D 打印机(Printrbot),它使用 FDM 技术进行打印。为了监测来自侧信道的模拟发射,使用了三个声学传感器 (Audio-Technica AT2021)、AC/DC 电流钳 (PIC0 TA018)、磁场传感器 (HMC5883L) 和加速度计 (uxcell) ADXL335)。声学传感器放置在彼此垂直的 X、Y 和 Z 轴上,振动传感器放置在 3D 打印机的底座上,磁传感器放置在靠近 3D 打印机的桌子上,功率传感器放置在电源和 3D 打印机之间的电源线上。来自所有侧信道的数据采集是使用 NI 数据采集硬件 (NI USB-6229) 完成的。然后在 Matlab (R2015b) 中处理收集的模拟发射。为了测量由于改变各种参数而引起的互信息的变化,创建了与 X 轴成角度的多层线段。为了计算成功率,使用了不同边和高度的多边形作为测试对象。已经在同一台 3D 打印机中实现了所提出的攻击模型的第一阶段和第二阶段。将 G/M 代码分成三组。能够准确重构这些 G/M 代码子集的攻击者能够在任何时间重构 3D 打印机打印的任何线段。
1.线段角度(Q1):G/M 代码的每一条指令都将 3D 打印机的喷嘴从起点移动到终点,形成一个线段。由于对象是逐层打印的,因此这些线段中的大部分位于 XY 平面中。因此,将线段与 X 轴的夹角定义为 G/M 代码的变量之一。
2.换层(Q2):当3D打印机在一层完成打印后,它会移动到另一层。每个 G/M 代码都包含有关它打印在哪个层上的信息。因此,将 Q2 定义为决定层变化的变量。
3.线段的变化(Q3):线段的变化不是直接来自G/M-code,而是来自G/M-code指令开始和结束时获得的模拟发射。将此变量指定为 Q3。
这三个变量不是 G/M 代码的详尽分区。然而,它们足以跟踪喷嘴运动,并确定被打印的 3D 对象的几何形状,因为结合起来,这些变量定义了构成每一层的线段向量,定义了各个层,以及最后将模拟发射分配给特定的 G/M 代码指令。
可以任意增加信息泄露,而无需让编译器的改动变得可以理解。为此凭经验确定了阈值,并将它们作为优化算法的约束条件。选择的阈值如下: (a) △T=1% 的 TI,假设 1% 的打印时间对于正在打印的任何对象都不会引起注意。 (b) △θL =10°和 △θH =5°。在给定的 3D 打印机中挤出的热塑性塑料是聚乳酸 (PLA),它是一种生物聚合物,熔化温度在 180°到 220°之间。给定 3D 打印机的原始打印温度通常设置为 205°。因此,这为编译器提供了一些空间来改变风扇速度而不影响打印质量。 (c) △θ= 正常打印速度的 10%,这不足以引起抖动,但可能会导致侧信道中的模拟发射明显。 (d) 分配了 △IDLE<=30 ms 以最小化步进电机的自由运动。
精度指标:评估攻击有效性的更好指标是攻击者的成功率。直观地说,成功率衡量的是在给定特定泄漏的情况下攻击者恢复 G/M 代码(或其中具有特定错误阈值的部分)的能力,并且与互信息相反,取决于特定的攻击场景。假设任意侧信道 S’ ∈{S1 ; S2; …; Sm} 泄漏信息 Q‘属于Q 的子集,Q’={Q1; Q2; …; Qt}。其中 t<=r 和 t∈Z > 0,其中 r 是 G/M 代码可以划分成的不相交集的可能数量。假设这个信息子集能够解释 3D 对象的几何形状。定义一个变量 ei=1,使得当 jqri – m^r(omi,.) <=△e,其他情况下为 0。其中△e ∈ R 是误差阈值,估计的部分 G/M 码可用于重建完整的 G/M 码。理想情况下,重建的错误阈值应该接近于攻击者具有完全重建能力的过程变化。但是,为了证明可以通过使用细微的编译器更改来提高成功率,参考给定 3D 打印机最强大的侧信道之一的准确性(通过实验确定)来固定错误阈值。假设从实验中获得了四个错误阈值 △ea ; △ev; △em 和△ep 分别用于每个部分 G/M 代码的声学、振动、EM 和功率侧信道,这使重建成功率超过 75%。然后选择了最小的△e,用于计算所有侧信道的成功率。对于为侧信道 S’估计的每个模型函数m^r(.),定义估计部分 G/M 代码 Q’t 的部分成功率如下:
其中 N 给出了用于描述 3D 模型的 G/M 代码指令的总数。 然而,在计算总成功率时,考虑了对所有部分 G/M 码的准确估计。 因此,当且仅当 ei1=1; ei2=1 …; eit = 1攻击者才能成功重建 G/M 码。其中 eij 是估计第 i 个指令的第 j 个部分 G/M 代码时的误差。 有了这个,给定侧信道 S‘的总成功率可以写成如下:
对于每个侧信道和分割的 G/M 码,测量泄漏的信息量和估计模型函数 m^r(.) 的相应成功率。然后,结合互信息最大化算法来修改设计变量,并查看相同估计模型函数的成功率的相应变化。在量化泄漏时,提取功率谱密度作为 0 Hz 到 10 KHz 范围内的一个特征,以 20 Hz 的间隔均匀分布,因为发射在初始频谱分析期间处于该范围内,并且 20 Hz 间隔分辨率能够捕获频域中的变化,对特征集进行主成分分析(PCA),这将使相关的频率成分转换为不相关的主成分成为可能,并降低攻击模型的维数,并呈现最高主成分的互信息。为了测量每个划分后的 G/M 码的互信息{Q1; Q2; Q3},需要计算相应的模拟发射信号。因此,在实验中,对于角度 (Q1),以 9°的步距角将角度从 0°改变到 360°。假设 Q1 是一个均匀分布的随机变量。因此,它的总熵将为 log2(40)= 5.32 bit。随机变量Q2和Q3只有两个可能的值,层是否改变,是同一线段还是不同线段。因此,它们的熵是 log2(2)= 1bit。出于演示目的,训练数据由不同角度、层(10 层)和方向(通过打印相反方向的线段)的线段组成。
互信息:对每个部分更改编译器(切片和刀具轨迹生成工具)之前和之后的G/M 码 {Q1; Q2; Q3} 计算互信息,这些值是根据联合概率分布计算得出的,该分布假设部分 G/M 码为均匀分布,并收集来自侧信道的相应模拟发射。在下图中,前后的互信息编译器的更改显示在每个侧信道和部分 G/M 代码 Q1 之间。可以观察到,尽管与其他侧信相比,电源侧信道的整体互信息较低,但在更改编译器后互信息的增幅最高(+ 21.5%)。振动侧信道与部分 G/M 码的互信息最高。这意味着与其他侧信道相比,可以从振动侧信道推断出更多关于 Q1 的信息。
在下图中,每个侧信道和部分 G/M 码 Q2 之间显示了编译器更改前后的互信息。 可以看出,电磁侧信道的互信息最高,而编译器更改后互信息的增加(+10.3%)是最低的。 而电源侧信道在编译器更改后显示互信息大幅增加(+ 61.5%)。
在下图中,每个侧信道和部分G/M码Q3之间显示了编译器改变前后的互信息。对于Q3,与Q2类似,电磁侧信道的互信息最高,编译器更改后互信息增加了+26.3%。然而,功率侧信道显示互信息显着增加。与电磁侧信道相比,它的互信息相对非常低。
可以看到,对于分割的 G/M 码 Q1,振动侧信道的互信息最多,而功率侧信道的互信息最少。这是因为角度变化不会影响恒定的直流电源。所有侧信道互信息的增加表明,编译器的改变在不改变最终设计的情况下,有助于攻击者更准确地推断原始 G/M 代码。与通过访问设计文件破坏机密的其他形式相反,这些修改允许攻击者以极难检测的方式获取 G/M 代码。
部分成功率:在计算成功率之前,将使用均匀分布的部分 G/M 码收集的数据分别拆分为 3:1 的训练和测试集。然后训练随机森林回归算法从侧信道收集的模拟发射预测角度,并使用随机森林分类算法预测层和线段的变化。由于只有角度是连续值,所以根据振动侧信道将△e 设为3°,对于3°误差的预测提供75% 以上的准确度。然后计算单个侧信道和分割的 G/M 码的平均部分成功率。
在下图中,部分G/M代码Q1显示了编译器改动前后的部分成功率。可以看出,振动侧信道重构Q1的成功率最高,而编译器改动后的成功率仅增加了+6.53%。而电源侧信道的成功率增幅最高,增加了75.77%,而预测 Q1 的总体成功率最低。
在下图中,部分 G/M 代码 Q2 显示了编译器更改前后的部分成功率。可以看出,电磁侧信道的总体成功率最高。然而,成功率下降了 0.17%。这可能是因为成功率已经更高了,而设计变量的改变并没有显着提高成功率。另一个原因可能是,虽然 Q2 的互信息增加了,但它只给出了在给定模拟发射的情况下推断随机变量 Q2 的上限,并且成功率高度依赖于估计函数的准确性( f^k(.,φ))。而在这个实验中,估计函数无法利用互信息的增加。然而,随着互信息的增加,振动侧信道的成功率急剧增加了 56.05%。
在下图中,部分G/M代码Q3显示了编译器改动前后的部分成功率。与 Q2 类似,电磁侧信道重建 Q3 的成功率最高。然而,编译器改动后的成功率仅比振动侧信道提高了1.46%,其中成功率的提高(24.27%)是最高的。
总成功率:为了计算总成功率,打印了边数从 3 到 12 的各种正多边形,并测量了重建部分 G/M 码信息(Q1、Q2 和 Q3)的精度。对于每个多边形,印刷五层,边长从 5 毫米到 20 毫米不等。然后根据训练的模型函数进行预测以计算部分成功率。然后根据这些预测计算编译器更改前后的总成功率。从下图中可以观察到,在更改编译器后,所有侧信道的总成功率都有所增加。振动侧信道的总成功率最高,约为 24.27%。但是,与其他侧信道相比,它的成功率增幅最低。电源侧信道总体成功率最低,但成功率增幅最高(39.71%)。攻击模型为攻击者提供了很大的余地,可以找到跨各种侧信道的互信息最大化的最佳组合,以提高成功率,同时实现更高的隐蔽性。
0x06 Discussion
完成对象重建:在这里,提出了一个新的、强大得多的攻击模型的概念验证工作,其中攻击者可能能够执行一次性访问以更改生成打印文件的编译器(或解释它的固件),旨在窃取知识产权的侧信道攻击的强度增加。与其他形式的信息泄漏相反,使用侧信道发布的信息更难被识别(因此被阻止)。已经通过使用改变的编译器证明了这一点,预测由线段组成的对象的成功率已显着提高。然而,为了实现带弧的 3D 对象的准确重建,将结合攻击者可能使用的进一步设计变量分析。尽管如此,并不是所有的运动都是非线性的,这种方法仍然会给出 3D 对象中各种线段的部分信息。此外,仅对基于 FDM 的桌面 3D 打印机进行了分析。更高端的 FDM 3D 打印机可能会利用更好的技术来降低噪音和振动。因此,需要进一步分析以在高端 3D 打印机中实施这种攻击。
编译器改动的难度:编译器上的任何形式的更改都必须秘密放置以避免检测。修补过的 Win-RAR 漏洞以前曾被用来操纵设计文件,并从网络域破坏物理结构的完整性。假设攻击者有兴趣在原型设计阶段窃取 3D 对象的 IP。目前,有多种第三方编译软件可以生成 G/M 代码。尽管台式 3D 打印机可能无法连接到互联网,但装有此软件的 PC 可以连接到互联网。因此,为了改变编译器,攻击者需要精通黑客技能以及增材制造过程链知识,以引入用户不会注意到的细微变化。
更改 CAD 和固件:已经演示了一种攻击,其中 3D 打印机的编译器被更改。然而,正如论文中提到的,提出的原则对于想要改变固件或 CAD 工具本身以增加通过侧信道泄漏的信息的攻击者也是有效的。因此在未来的工作中,将通过更改固件和 CAD 工具来完成演示,以增加侧信道中的信息泄漏。
多信道组合:在本文中考虑了一个攻击者,它同时可以访问一个侧信道(或者,至少旨在一次利用一个侧信道),并旨在使用更改的编译器最大化它。这是朝着这个方向迈出的第一步。未来一个有趣的研究方向是探索多侧信道攻击的组合(以及侧信道泄漏的联合增加),将对这方面的系统探索留作未来的工作。
传感器位置:由于攻击者依赖于侧信道的物理发射,因此放置的传感器的位置和数量可能会影响攻击者的成功率。对此,攻击者可能需要探索多个传感器位置和传感器数量,以提高其成功率。在实验中,通过将传感器放置在与负责发射物理辐射的组件非常接近的位置来执行原始传感器定位。然而,需要探索更广泛的方法来确定传感器的最佳数量和位置。
A.对策
所提议的攻击使用侧信道攻击导致信息丢失,可能很难被检测到,因为合法用户无法感知 3D 打印机正常运行的任何变化(最终对象保持不变,打印时间也以难以察觉的量增加)。提出以下对策:
1.减少通过侧信道的信息泄漏:当流速较低时,由于信息泄漏的减少,无法轻易预测表面纹理。通过增加从侧信道提取的数据集的同质性,可以减少信息泄漏。分区 G/M 代码 Q1、Q2 和 Q3 可以采用这个想法。为了使发射数据集同质化,可以在 G/M 代码 {Q1; Q2; Q3} 可以在电机的运动中添加受控的随机性,使侧信道数据均匀。但是 G 代码中的这种冗余会通过延迟它来影响总打印时间。需要深入研究以找到合适的有效算法,在提高安全性的同时为系统增加随机性。
一般而言,对抗侧信道攻击是一项非常艰巨的任务。例如,隐藏侧信道信号需要生成一个恒定的侧信道信号(但是,很难保证每个形状都使用相同的时间打印,产生相同的噪声,产生相同的振动)或覆盖它产生人为噪声,使重建阶段复杂化。然而,这种方法相对较新,需要更深入地探索。
2.G/M 代码的形式验证方法:需要使用传统的形式验证方法来检查 G/M 代码的完整性,以确保 3D 打印机固件或 CAD 和 STL 文件不受损害。
3.金参考:另一种方法是使用未更改的 CAD、CAM 和 3D 打印机固件的金参考,以检查侧信道中的任何异常行为。
4.屏蔽:屏蔽3D打印机可以抑制电磁辐射以及打印机发出的声音。这种方法是有效的,但会增加系统的额外成本。
0x07 Conclusion
本研究已经提出了一种新攻击的概念证明,该攻击包括修改编译器以生成 G/M 代码,从而允许使用侧信道攻击更容易地重建打印文件。 本文展示了如何使用多个设计变量来提高 G/M 代码重构的成功率,并且实施了一个恶意编译器来证明攻击的可行性,能够实现高达 39% 的成功率提升 与仅依赖于监听侧信道的传统攻击模型相比,在声学、功率、振动和电磁侧信道上测量的速率。 本文工作证明了使用改变的工具链进行攻击的可行性,这会给制造业造成巨大的经济损失。 未来的工作将探索控制 3D 打印机参数的其他变量的作用以及多个侧信道的融合,以提高 G/M 代码恢复能力。