IOs interface memory secutity

了解SoC漏洞和模拟威胁的演变趋势

发布时间:2021-05-07 点击数:

SoC攻击需要模拟和数字防御

Agile Analog

安全问题


漏洞情况

       许多SoC集成商都非常清楚,仅由软件执行的安全是非常容易受到攻击的。黑客所要做的就是找到一种方法来替换引导程序或低级固件的关键部分,以破坏系统中用于支持安全访问的其他软件。

       我们看到的最简单的攻击是那些通过网络远程进行的攻击,有许多零日漏洞攻击的例子是由于开放的根访问账户没有安全保障。当发现这些问题时,可以通过软件升级远程修补。然而,有越来越多的案例被犯罪分子发现,这些案例涉及到物理访问,而且其影响无法通过软件升级得到缓解。

       在现实的攻击中,一个极端的例子是过去三年在欧盟和美国发生的一系列针对自动取款机(ATM)的 "jackpotting "攻击。在这些攻击中,盗贼利用物理访问,用他们自己版本的操作系统和应用程序替换包含核心ATM软件的合法硬盘,或者引入间谍软件设备以插入不受保护的USB端口。还有人潜入银行的核心网络,在目标机器上植入恶意软件。


1620372163875002.png

Figure 1: OpenTitan introduces a security focused hardware module into the core machine.


       通过在核心机器设计中引入一个注重安全的硬件模块,例如OpenTitan项目,制造商可以防止许多远程和本地攻击。硬件模块提供了一个信任根,一个系统应该始终能够依赖的模块(见图2)。这个模块支持安全或测量启动等功能,确保只有针对已知签名或安全证书的加密固件才允许运行。在没有代码签名过程的情况下进行的任何修改都将无法通过信任根应用的哈希测试,并将被启动程序终止。


1620372212454702.png

Figure 2: the root-of-trust model.


       一个受保护的加密控制器被用来实现信任根。这可以作为一个安全的飞地,用于执行任何需要保护的敏感操作,以防止入侵或间谍活动。但是,如果实施时不考虑攻击者可以用来破坏其保护的技术,即使是信任根和类似的安全飞地也容易受到攻击,这些攻击往往利用了加密协议提供的理论安全与实现这些协议的硬件和软件功能的行为之间的差距。


旁道攻击

       通常情况下,算法的实现方式不仅为黑客提供了重要的操作线索,还为他们处理的敏感数据(如私钥)提供了重要线索。一个系统的用户能在多大程度上获得这些信息并将其用于攻击,不仅取决于所采用的保护措施,还取决于攻击者对目标系统的访问程度,以及安全飞地与不太敏感的电路隔离的程度。


1620372249911004.png

图3:缓存旁信道攻击可以观察到由于缓存争夺而导致的操作执行时间的微小变化。将这一信息与底层算法(本例中为RSA)的知识相结合,攻击者可以推导出密钥值(或者至少大大减少了试错攻击的搜索空间)。图中突出了过程中的乘法部分;明显的负峰值是平方和模块化还原。


       缓存、执行管道、电磁(EM)发射和电源线上的电压和电流的瞬时变化都提供了目标正在做什么的线索。虽然EM和电源签名需要本地访问,但缓存和管道行为可以被远程跟踪,如魏茨曼科学研究所的研究人员创建的Prime+Probe等概念验证攻击,以及更广为宣传的Meltdown和Spectre技术。这些更有可能被用于云服务器,因为对手几乎没有机会渗透到数据中心的物理安全中。


1620372279578093.png

图4:攻击输出与子密钥猜测的样本数。使攻击者推断出每个关键字节的泄漏通常被隔离到特定的计算组中,并且通常通过相关性变化来识别。 在此示例中,在350个样本附近的区域中,相关性发生了很大变化,显示了正确猜测的密钥字节的结果。


       但计算量在数据中心外的扩张速度远远超过了数据中心内,这些设备对我们的秘密和个人信息的访问量越来越大。5G等服务的推出,预计边缘服务器和智能物联网设备的使用会有强劲的增长,这些设备能够运行人工智能和其他更先进的算法,延迟问题远远低于严重依赖远程云计算的系统。越来越多的自动驾驶车辆和机器人系统正在加入这些设备,它们可以被视为边缘服务器,也是黑客的诱人目标。

       这些设备更容易受到侵入性攻击的破坏,这些破坏性攻击能够破坏硬件强制执行的安全区域。攻击的形式有很大的不同,而且随着攻击者对目标的控制程度的增加而变得越来越难以对付,从对目标密码核心执行许多重复操作以分析其内部操作,到操纵电压、时钟和温度,一直到解封设备并插入干扰正常操作的探针。虽然后一种攻击通常只限于为黑客提供高价值的系统,但chip.fail最近的工作表明,只需不到150美元的实验室套件,就能完成各种攻击,150美元的实验室套件,就可以入侵各种物联网设备。


攻击性质的变化

       在过去,除了国家行为者对具有军事或国防作用的系统进行高度针对性的攻击外,需要物理存在的攻击的主要集中在面向消费者的金融敏感设备上:智能卡、销售点终端和付费电视解码器。破解这些设备的保护是有利可图的,足以让犯罪团伙投资于复杂的工具,以了解它们是如何工作的,并获得足够的信息来制造克隆产品进行销售,或破坏保护措施以直接窃取金钱。

       然而,边缘设备越来越多地集成到大规模分布式系统中,为有动机的团伙提供了越来越大的攻击空间。为了最大限度地提高他们成功的可能性,他们将使用多种攻击类型。有时,这是一个尝试不同方法的问题,直到有一种方法成功。但是,由于使用了更先进的统计工具和机器学习,恶意用户正在结合来自多个来源的信息,以便对目标进行逆向工程,增加其对最终攻击的脆弱性。

       在攻击中使用机器学习的一个简单例子是在旁道分析中发现的:这种方法被用来试图获得一个嵌入式加密核所使用的私人钥匙。攻击依赖于电路发出的信号(通常被视为电磁干扰或供电轨波动)来揭示有关正在处理的数据的信息的方式。通过收集大量的痕迹--10,000个或更多--统计工具可以用来定位提供最强线索的样本。诸如噪音注入或在重要节点上对关键字节施加随机掩码的对策可以隐藏这些明显的过渡,尽管它们可能无法掩盖所有的操作。

       使用更多数量的跟踪并将其作为训练数据提供给深度学习管道,一些研究小组已经表明,在有反措施的情况下,有可能获得私钥。攻击者在开发旁道攻击时面临的一个问题是可重复性问题。在收集准确的痕迹以获得信息时,涉及许多变量。通过集合学习等技术对多个模型和一系列设备进行训练,有助于减少预测中的变数,提高准确得出密钥的概率。

       使用更具侵入性的方法,攻击者可能会增加他们获得系统信息的概率,甚至获得更高的控制程度,使他们能够读出敏感的信息。

       尽管它们只在攻击者能长期完全接触目标的情况下才实用,但这些技术可能极难对付,因为它们关注的是通常被认为在通过制造测试的系统中表现良好的电路设计要素。

       根据整体的系统结构,如果私钥被暴露,或获得对特权账户的访问权,这些信息可能会导致破坏整个设备网络的能力。


物理攻击能做什么?

       侵入式物理攻击用户的共同目标是通过执行某种特权提升来直接控制目标。在适当的时候和在SoC的一个特定部分插入一个故障,可能会迫使它跳过通常强制性的认证检查。最近由LevelDown security展示的一个例子是通过以下代码序列:


1620372312392634.png

图5:在正确的时间翻转一个位的能力,通过监测时钟同时干扰电源来实现,导致微处理器放弃一个失败的固件验证步骤,并继续启动(https://chip.fail)


       微处理器的一个较早的做法是使用非法操作码,试图找到可能以意外方式触发执行单元的状态,并可能访问目标内存位置或破坏管道。至少,非法操作码经常触发异常,可能导致内部信息在内存总线上暴露给黑客。

       一些非法指令攻击不仅仅暴露了流水线控制的状态机中的错误。针对威盛C3处理器的Project:Rosenbridge "上帝模式 "攻击设法激活了设备内部隐藏的处理器内核,而这些内核本应是终端用户无法接触到的。一旦激活,它们就可以运行任意代码而不受管理合法激活的内核的操作系统的检查,并在此过程中获得root权限。

       尽管许多处理器内核现在都会例行检查有效的指令操作码和操作,但其他载体往往仍然存在。通过瞄准时钟和电源轨道,对手有可能利用组合逻辑的速度和时钟信号之间的人为不匹配,强制执行非法操作,甚至是有效的代码。由于几乎所有的SoC都是按照同步方法设计的,一个生产级别的设备被认为具有组合逻辑路径,当在一个时钟周期开始时从源寄存器提供数据时,在该周期结束时将一个正确的、更新的值存入其相关的目标寄存器(见图5)。

       传播延迟取决于许多因素。有些是固定的,如芯片内的工艺变化。然而,温度和电源轨电压对开关速度有很大的影响,而且这两个因素都有可能在对设备进行物理访问的攻击者的控制之下。


温度攻击

       器件对温度变化的反应可能很复杂。传统上,晶体管在给定的电源电压下,随着它们的冷却,开关速度往往会加快。然而,随着使用具有多种阈值电压的晶体管的工艺,这种关系变得更加复杂。低阈值电压的器件通常是为性能而设计的,当运行温度较低时往往会加速,而那些具有较高阈值的器件则会减慢速度,这种现象被称为温度反转依赖。尽管多角仿真提供了设计团队在设计时补偿这些影响所需的信息,但当电路的运行超出用于验证的温度范围时,这些温度依赖性会导致意外的结果。

       许多攻击会将SoC加热到超出其正常范围,以触发错误,但有些攻击会将设备冷却到远低于冰点,以触发其他故障。对攻击者来说,快速冷却目标的另一个好处是防止易失性内存阵列的内容在系统停止时被擦除。自从剑桥大学的研究人员证明了这一效果以来,已经发表了一些概念验证的攻击。

       剑桥大学的研究人员在2002年证明了这一效果后,已经发表了一些概念验证攻击。最近的一次攻击是用液氮将目标冻结到-110℃,从一个由片上SRAM构建的物理不可克隆函数(PUF)阵列中提取私钥。目标在启动过程中被停止,就在密钥由PUF生成并存储在片上存储器之后,然后用热或激光刺激进行探测。

       过度的热量也可以用来利用异常的数据残余。在这种情况下,通过负偏压温度不稳定等老化效应使晶体管退化,从而印证了存储器内容。高温攻击可用于通过数小时的大量加热以及组合逻辑树的错误来诱发存储器错误。


电压攻击

       供电轨的变化对电路行为的影响对实施者来说通常更容易预测。电压降低会使晶体管更接近其阈值电压,这反过来又会使开关速度减慢。如果推得太远,关键路径将无法在下一个时钟周期开始前完成。由被攻击的触发器或寄存器阵列提供的逻辑更有可能包含不正确的数据。

       攻击者将试验电压水平,看看被攻击设备的反应,包括临时断电条件。由于许多复杂的SoC需要多个电源轨,而且通常复位发生器的反应很慢,对断电的敏感度很低,因此攻击者可以把注意力放在那些更有可能产生结果的电源轨上。处理器核心轨道通常被选中,因为它们可以产生对数据路径操作的更好控制。利用现代方法和从公开文件中获得的PCB数据,攻击者很容易切断PCB线路并引入他们自己的电压控制器。许多人移除去耦电容,以提高他们引入的任何电压和电流变化的分辨率。因此,受害者的设备可以很容易地受到非常短(100ns)的断电条件,在关键时刻可以翻转关键位,从而产生必要的结果。


时钟攻击

       如果使用外部时钟源,攻击者的另一个选择是直接修改设备时钟。启动器通常直接从外部晶体操作,这样PLL设置可以在生产后进行调整。时钟突变或插入错误的跳变将被解释为时钟频率的短期增加,导致寄存器试图提前从供给它们的组合逻辑链中锁住数据。


图6:时钟故障是一种常见的入侵性攻击,可以通过一些简单的方式实现


1620372356606930.png

6(a) Poly-PWM结合(通过XOR-ing)在单一频率和固定相位的三个波形,但占空比可变。


6(b) 多相技术采用了具有共同频率和占空比的波形,但相位发生变化


1620372389782014.png

6(c) 当顺序逻辑和组合逻辑结合在一起时,将一个触发器的设置和保持时间超出规格是另一种方法。

在这里,一个时钟事件在通过组合逻辑的传播完成之前到达了第二个触发器。


       如果由外部信号源提供,时钟突变攻击的实施成本相对较低,甚至在ChipWhisperer等现成的套件中也有特色模式。这使用一对移相器,加上使能控制,有选择地将非常快的时钟转换插入给目标的时钟信号中。如果目标的执行管线正在进行算术运算,除了破坏数据值外,已知突波攻击还能迫使故障发生,如跳过的指令和指令解码中的错误,这导致错误的指令在下一个完整周期运行。

       即使对手无法强迫采取错误的程序路径,对手在内存或系统总线上检测到的数据损坏也可能是有帮助的:他们可以利用指令和数据输入的微小变化来确定密码检查或加密程序的行为,从而建立一个成功输入的画面。


1620372418124001.png

图7:ChipWhisperer Lite等现成的套件可以实现时钟故障(照片:Mouser)。


       2010年,CEA-Leti的研究人员描述了一种时钟攻击,重点是在现场可编程门阵列(FPGA)上实现的AES算法所使用的密钥。该攻击使用了一系列故意的故障,在加密逻辑中产生设置和保持错误,迫使错误进入密码文本,然后与正确加密的信息进行比较。许多错误改变了目标密钥字节中的一个比特。连续几轮的时钟引起的错误与目标猜测相结合,产生了目标密钥字节。


更复杂的攻击

       其他形式的故障注入攻击可以通过电磁(EM)辐射和激光进行。其中一些对攻击者的价值是值得怀疑的,尽管它们可以用相对低端的设备来实现。ChipShouter是一种现成的设备,可以产生短时、高强度的电磁脉冲,在目标设备内诱发杂散电流。然而,在实验中,一些研究小组注意到,除非使用非常强的脉冲,否则电磁脉冲的时间需要与时钟边缘相吻合,以产生可重复的故障。

       使用红外线、可见光或紫外线光谱的激光诱导故障注入,为对手提供了更大的目标定位能力,尽管它涉及到更高的技术水平,因为它要求在不损害器件本身的情况下至少对IC封装进行部分解封。与射频范围内的电磁波类似,短脉冲会激发逻辑门,并能迫使其出错。


所有输入都有风险

       一些对信号的攻击远没有那么明显。一个例子是在2018年展示的概念验证攻击。一个由密歇根大学和浙江大学成员组成的团队的研究人员发现,有可能通过硬盘驱动器的振动传感器来攻击其内部的控制器振动传感器。

       振动传感器用于保护读取磁头,以免损坏下面的磁盘表面--如果检测到突然的冲击,可能会迫使磁头与磁盘表面发生碰撞,则告诉控制器收回磁头。如果有强烈的低频脉冲,控制器可能会误解传入的振动读数,结果是磁头会损坏磁性涂层并破坏其中的数据。在其他情况下,这种策略作为一种拒绝服务(DoS)攻击的形式发挥作用。磁头在沉重的低频振动下不断缩回和重新部署,会使读写速度降低到缓慢的地步。在极端情况下,这会导致主机系统的超时和重设。

       一些黑客没有直接攻击传感器的输入,而是利用了许多系统的分布式性质。例如,一辆机动车依赖于一个传感器模块的网络,这些模块被送入一个电子控制单元(ECU)的阵列中,共同为整个系统提供动力和指导。这样的系统很容易受到攻击,被破坏的模块或被作为特洛伊木马插入网络的模块可以产生错误的信号。传统上,像CAN这样的车辆网络是在假设网络元素可以被信任的情况下设计的。该协议本身没有检查沿总线传递的信息的真实性的机制。因此,该协议容易受到广泛的攻击,这些攻击不仅包括DoS,还包括重放和假帧注入,这些攻击可能被用来混淆或使传感器和ECU模块崩溃。物理和远程访问的组合足以破坏该系统,这表明漏洞之间的复杂关系,可能使系统远不如它们看起来那么安全。


对策选项

       有许多可能的反措施,实施者可以决定将其纳入他们的设计中,但它们需要以一种连贯的方式,以明确的系统级视角进行组合。但是,传统的反措施一直集中在特定的攻击载体上。例如,为安全设备设计的微控制器通常不仅采用旨在混淆侧信道攻击的硬件元素,而且还采用电路来应对电源轨和时钟故障。然而,值得注意的是,许多物联网级别的微控制器缺少这种保护,然而对信息的访问对用户来说同样具有破坏性。


1620372464363226.png

图8:Agile Analog的监控器可以防止常见的攻击。


       其中一些技术在更高性能的SoC上甚至不实用。例如,对时钟突变攻击的常见防御措施是使用内部生成的信号源,而外部时钟可以被监测到以保证一致性。这可以防止大多数的突变式攻击。

       在安全的微控制器中也采用了类似的选项来处理电源突变。传统上,基于比较器电路的断电检测器观察电压的突然下降,并将强制复位以重新启动设备,从而进入保护状态,将可能缓存在RAM中的任何敏感数据清零,并防止任何管道操作继续进行。当电源轨恢复到有效状态的时间足够长时,断电检测器会释放复位引脚。

       当供电电压上升超过阈值足够长的时间时,控制器释放复位引脚,设备被允许完成复位,允许从一个已知的状态开始执行,破坏攻击者改变程序执行的企图。

       在智能卡或电视解码器中,每次检测到电源异常就强制复位是可以接受的。如果系统重新启动并终止操作,除了假阳性干扰合法使用外,很少会有问题。然而,在许多情况下,更细微的反应是可取的。终止被认为是敏感但可中断的芯片部分的操作,而其他部分继续进行,这可能是有意义的。但可能还需要其他反应。例如,SoC可能需要切换到一个保持安全操作的模式,并采用片上保护模式,但这些模式太耗电,无法在所有情况下使用。

       在所有情况下都太耗电,但可以改善入侵性攻击的一些影响。

       如果外部时钟受到攻击,可以用性能较低的内部时钟进行操作。同样,直接访问核心电压轨道可能会被禁用,所有的电源都通过一个主要的封装内电源管理单元提供,也许是在一个较低的整体水平,支持较慢的操作,而不会禁用整个SoC。在不能容忍中断的情况下,除非SoC根本无法正常工作,否则设备可以记录这些行动,并尽早通过网络报告。

       支持对可疑攻击作出更多的反应的另一个原因是假阳性的问题。在为极端环境下运行而制造的高可靠性设备中,被认为是正常的环境温度与攻击者使用的加热或冷却的实际差异可能非常小。然而,专用温度传感器的高分辨率测量可以提供控制器可能需要的详细信息,以便能够分辨出利用快速变化而不是典型环境偏差的蓄意攻击。


深度防御

       由于对入侵性攻击的许多反应是可以想象的,处理它们的关键是一个安全的、适应不同形式的入侵和反应灵敏的基础设施。这种基础设施的一个重要要求是它能独立于主系统逻辑运行,这样它就能在目标子系统受到攻击时对事件作出反应。

       UltraSoC的解决方案将事务感知的硬件监控器嵌入到SoC的数字基础设施中,所有这些都使用基于消息的架构相互连接。在这个框架中,有可能整合各种系统控制、调试和安全监控核心。数字和远程入侵尝试的例子是总线哨兵和CAN哨兵硬件模块。这些模块可以识别并在实施过程中需要时,立即阻止芯片内和CAN端口上的可疑通信。该公司与Agile Analog的合作将入侵监控的可能性扩展到了物理、模拟领域。Agile Analog的监控器组合可以对SoC内的时钟、电压和温度进行连续检查。


1620372503471022.png

图9:一个完整的片上安全解决方案可以检测和缓解许多威胁。


       通过将监控器与跨芯片基础设施联系起来,SoC集成商不仅可以对特定的入侵行为作出反应,还可以结合来自多个来源的信息以及本地存储的历史记录,根据需要调整反应。由于对手越来越多地转向使用混合式攻击,这可能涉及到在攻击其实际目标之前对许多受害者设备进行分析,因此追踪和报告异常情况的能力将是至关重要的。

       使用跨芯片架构也支持根据威胁程度来调整功耗和处理开销的能力。例如,连续监测一些模拟通道,如多个电源轨,可能在能源方面过于昂贵。相反,系统可以使用低分辨率的传感器来检测停电事件或高重要性目标上的噪音增加,以激活更广泛的传感器来确定该事件是否可能是恶意的或系统问题的后果。一旦有了足够的信息,系统控制器可以触发反措施或向更高层次的管理系统发出警告。

       基础设施可以随时根据SoC的使用情况进行调整。选择使用哪种传感器和反措施将取决于各种因素,如可及性和目标对黑客的价值。在数据中心系统中,一个不太可能的可能性是内部人员将某种数据提取或干扰设备放在靠近服务器刀片的地方。但即使如此,鉴于应用程序和数据可以使用Kubernetes和类似的开发工具在数据中心内轻松移动,攻击者也不能轻易确定哪个刀片会在任何时候被给定的工作负载使用。因此,这类系统可以通过结合物理访问安全和侧重于软件工作负载行为的对策,以及将处理敏感数据的工作负载与其他任务隔离的容器部署程序来充分保护。

       相反,进入工厂、车辆和家庭的系统需要更多的物理安全保护和模拟感应模式,以防止不仅是直接入侵,而且可能有助于以后通过远程访问(例如信息娱乐系统的射频模块)进行攻击的分析研究。

       正如恶意敌手对现实世界系统的攻击所证明的,信息就是力量。有了包含智能控制器以及模拟和数字传感器模块的全芯片安全基础设施,SoC集成商可以利用他们对实时信息的访问来扭转局面。

赞助企业