利用威胁模型和风险评估来确定设备的安全性要求

作者:Dana Neustadter,产品营销经理,安全IP部,Synopsys公司

前言

攻击、入侵以及恶意勒索软件的泛滥使许多设计人员认识到,他们需要保护他们的产品和生态系统。本文描述了当今最常见的威胁类型,提供了一些指导说明如何通过确定威胁和相关风险来弄清楚哪些威胁是最重要的,并提出了一些安全措施来帮助防止这些攻击。安全的实施需要通过软件、硬件和物理设计的组合来设计到产品的核心之中,即片上系统(SoC)之中。

威胁的类型

安全威胁可以分为几个不同的类别。威胁可以是远程或本地非侵入式攻击,也可以是物理侵入性甚至破坏性攻击。这些攻击的目的是获取特定资产或中断对某种服务的访问,从而使攻击者因作恶而声名远扬,或者使攻击者获得企业/政府的情报或金钱报酬。图1突出显示了这样一个事实:就攻击的成本和力度而言,威胁形形色色,而且就实施彻底的安全对策而言,需要付出相应的成本。

图1:威胁的类型

图1:威胁的类型

远程攻击通常是攻击一套设备生态系统的起点。利用特定协议实施中已知的漏洞也非常实用,这是因为采用易于获得的预先写好的攻击脚本。攻击者能够监视未加密的流量来获取有关系统的信息,从而使攻击者能够提升攻击能力来控制设备。缓冲区溢出或不完善的认证措施是控制单个设备的最常见途径。

一旦攻击者能够访问某台设备,他们就能够窃取用户数据、加密密钥或以专有算法形式存在的知识产权等资产。根据设备的情况以及所获得的资产的不同,其对于整个生态系统而言可能会是灾难性的。

更高级的攻击能够取代系统中的固件。这通常是暂时的,直到下一个启动周期而结束;但如果在SoC中没有实施安全的启动认证过程,而且常规的固件更新过程又被利用,则这种取代就可能是永久性的。

图2:对非侵入性攻击的威胁评估

图2:对非侵入性攻击的威胁评估

如果攻击者能够物理地访问某台设备,则他们可以执行另一类型的攻击。这些攻击既可以是非侵入性的被动攻击,也可以是非常侵入性的攻击,直至设备被破坏的程度。非侵入性攻击包括通过JTAG或逻辑分析仪进行总线监控、端口扫描以及GPIO操纵。更先进的非侵入性攻击包括通过功耗或时序分析进行的侧信道攻击。

另一种本地的和物理的侵入性攻击是故障注入,它能够导致设备状态的改变。这种攻击会导致设备拒绝服务或发生意外行为。

侵入式攻击的成本更高,因为需要专门的设备。这包括芯片的解封装、蚀刻掉半导体基底以及进行电子显微镜扫描以揭示密码密钥或设计逻辑。

威胁模式

确定SoC安全性需求的第一步是了解产品的用途和面临的威胁模式。这并不是一件容易的事情,因为一套SoC设计可以用于针对不同市场的许多产品,因此具有各种各样的使用模式。建议设计人员对他们的SoC、设备和生态系统进行彻底的威胁和风险评估(TRA)。已经发布了许多开展这项工作的方法,而且也有一些专业公司来完成这个过程。一般而言,这项工作有四个主要步骤:

  1. 确定评估范围并确定资产
  2. 确定对资产的威胁,并评估其影响范围和发生的可能性
  3. 根据所实施的保护措施来评估漏洞,并计算风险
  4. 实施额外的保护,将风险降低到可接受的水平

所有的资产将被分类为具有与其机密性、可用性或完整性相关的一个或多个值。TRA流程不是达成目标的手段,而是一个持续的过程。一旦启动,应定期进行审查,以确保现有的保护机制能够充分满足安全性要求。

在评估风险时,设计人员需要考虑攻击者发起攻击的动机,他们突破系统所需要的工具、设备、技能、时间和金钱,以及他们成功的可能性。一般来说,如果突破系统所需要付出的成本高于可能获得的收益,那么,攻击者就不会再费力地企图去破坏系统了。

有时,新的攻击模式或新的工具会被发明,或者变得广为人知。另外,攻击者的成本会随着其设备和工具价格的下降而降低。因此,这些威胁的分类会随着时间的推移而变化,从而导致某些原本具有较高防篡改能力的设备,由于新的低成本攻击手段的出现而在某一天变得易于受到破坏。

很难从系统的角度衡量或评估攻击造成的破坏影响。损失可以包括设备故障、服务中断、金钱损失、品牌损害,等等。系统设计者在评估可能的损害时必须了解这些影响。

安全性实施

对于在评估过程中发现的风险,为了确定减轻这些风险的最佳方法,必须对每种实施进行成本效益方面的权衡。响应级别可以分为三大方面:软件、硬件或增强的硬件保护机制。

软件实施能够解决许多安全威胁。采用经过批准的密码算法和经过测试的协议实施能够提供基本的保护。从ROM开始的、基于软件的安全启动过程能够创建出一个可信任的环境,以便执行经过验证的应用程序代码。软件开发流程(例如实施安全编码准则并进行模糊测试)可帮助防止引入不必要的漏洞。这些方法实施起来最简单、最便宜,当然也有妥协。

密码算法的硬件实施能够提高性能,也能够增加安全性。这是通过创建一个隔离的硬件环境来实现的,此环境可以保护密钥和数据不被外人窥测到。基于信任根、采用密钥阶梯(key laddering)的完整硬件安全模块能够将所有的关键资产与远程攻击隔离开。硬件解决方案需要更多的硅片面积来实施,但能够满足更高的性能要求。

增强的硬件安全功能可以抵御包括差分功耗分析(DPA)和定时攻击在内的多种安全威胁。其他增强的功能可以抵御专业化的故障注入技术。这些技术更难以实施,而且也难以验证防范措施的有效性。

SoC设计示例

图3显示了一套针对简单物联网设备的SoC的高级架构视图。插图中的编号对应于不同的威胁和攻击。下面的详细列表更详细地描述了这些威胁和攻击,并指出了抵御这些威胁的安全响应措施。

  1. 把程序内存替换为恶意的引导加载程序、操作系统或应用
    a. 执行安全的启动过程,在执行之前验证所有的可执行代码。初始引导代码以及用于进行这些检查的密钥都不能被修改。
  2. 从程序存储器中窃取软件算法或其他知识产权
    a. 实施安全的启动过程,存储加密的代码,并且只在执行之前将这些代码解密到本地安全的内存中。
  3. 从内存中盗取用户数据
    a. 利用以软件方式(或采用硬件方式以实现更高性能)实施的加密算法对用户的数据或其他资产进行加密,以防止攻击者读取内存。
  4. 从系统总线中读取密钥
    a. 通过熔断器(blowing fuse)或编程控制来禁用JTAG或其他调试访问端口。只有经过一套安全流程之后才能重新启用,而且在授予访问权限之前应当销毁所有的关键安全性参数。
  5. 截获或重放外部通信
    a. 利用TLS(传输层安全性)协议或者其他经过测试和验证的类似协议对网络流量进行加密。加密可以防止攻击者截获端点之间传输的数据。同样重要的是,应当利用TRNG(真随机数生成器)生成随机会话密钥,以便使数据包无法在网络上重放。
  6. 利用代码漏洞获得对其他应用或资产的访问权
    a. 在设计上具有独立内存保护区的CPU能够使应用和数据与恶意应用相隔离。
图3:对物联网SoC的威胁和攻击

图3:对物联网SoC的威胁和攻击

Synopsys公司提供了完整的硬件安全IP、软件加密库和安全启动SDK,并提供了多种预集成的子系统把这些组件组合在一起。Synopsys公司还拥有完整的开发和测试工具,用于把“安全设计”(“secure by design”)最佳实践实施到开发过程中。

结论

目前存在许多安全威胁,而且它们处于不断演变过程中,能够造成服务中断和关键资产被盗。安全和信任必须设计到生态系统中;而且这不是一成不变的事情。设计一套安全的生态系统起始于保护具体设备,这可以通过在控制性SoC的架构中纳入安全性功能来实现。设计工程师必须通过选择适当的保护级别来管理各种攻击的风险,以期构建出具有成本效益而且可靠的产品。