端玛科技Logo

专业代码审计服务提供商

Professional Code Review service provider

当前位置:首页新闻资讯

嵌入式系统的安全问题及对策

2023-08-221707

      普通计算机系统存在的安全问题已受到人们广泛关注,并采取了各种应对措施。嵌入式系统是针对具体应用而设计的一种专用计算机系统,随着这种系统被越来越广泛的应用,其中的各种不安全性问题逐渐暴露出来。同时,人们对嵌入式系统的各种安全需求也越来越高。现在,系统开发人员越来越多的关注嵌入式系统的安全特性。


嵌入式系统存在的安全问题 


1. 安全运行的瓶颈问题 


      嵌入式系统的设计者需要提供不同的安全解决方案来处理各种安全需求。这些需求成为嵌入式系统设计过程中的重要瓶颈,下面作简要介绍: 


  •       处理间隙:由于逐渐增加的数据率和安全协议的复杂性,现有的嵌入式系统体系机构跟不上安全处理的计算需求。

  •       电池间隙:受电量限制的嵌入式系统的安全处理的能量消耗非常高,远超过电池能力的缓慢的增长。 

  •       灵活性:嵌入式系统需要足够的灵活性来支持各种不同的安全协议和标准,此外安全协议也需要不断改进以防止黑客的攻击。

  •       篡改阻止:恶意软件的攻击是对于能够运行下载应用的嵌入式系统普遍的威胁,这些攻击能发掘操作系统或应用软件的弱点,进入系统内部并打乱它的正常功能。 

  •       保证间隙:建立真正可靠的系统比那些仅在大部分时间工作的系统要困难的多,可靠的系统必须能够处理可能偶然发生各种情况。

  •       成本:费用是影响系统安全体系结构的基本因素之一,设计者需要平衡嵌入式系统的安全需求与执行相应安全措施的费用。 


2. 安全问题产生的根本原因 


      导致嵌入式系统安全问题的根本原因包括以下四个方面: 


  •       价格因素:结构简单好用,价格便宜也是嵌入式设计追求目标。公司在选择芯片时满足好用够用就可以了。如果从软硬件上增加过多的安全措施,成本则会提高。简约的嵌入式系统上大量使用的4位和8位机,也不能运行过多的安全任务。 

  •       面广量大:嵌入式系统在生活、工作、娱乐、教育、军事等方面大量使用。如果系统设计有缺陷,则影响面非常大。若有嵌入式系统被入侵者利用,将会成为多点攻击的武器。 

  •       电源的限制:许多嵌入式系统都是用电池供电,如果攻击将其电力提前耗尽而又没有得到及时的更换,则系统将处于瘫痪状态,很容易造成安全漏洞,为入侵者开了方便之门。 

  •       开发队伍和环境的制约:许多嵌入式系统都是小团队做的。由于缺少安全方面的专家及经费短缺,设计中对安全问题考虑不足,而用户往往也只追求嵌入式产品的小巧精致,方便好用即可。 


3. 安全性攻击的分类 


      按照功能性目标来分,攻击可以分为以下三种类型: 


  •       机密性攻击:这种攻击的目标是得到关于敏感数据在嵌入式系统中的存储,通信或处理信息

  •       完整性攻击:这种攻击试图改变跟嵌入式系统有关联的数据及代码。

  •       可用性攻击:这种攻击通过盗用系统资源扰乱系统的正常功能。 


      而按照攻击方法来分,则可以分为软件攻击、物理攻击和旁道攻击三种形式,具体如下:


  •       软件攻击:软件攻击是嵌入式系统的一个主要威胁,它能够下载和执行应用代码。这些攻击通过病毒、蠕虫、特洛伊木马等恶意代理执行,并且它能够从完整性、保密性和可用性各个方面危及系统的安全。 

  •       物理攻击:物理攻击能够通过探测器来窃听嵌入式系统内部组件的通信。这种入侵型攻击需要三步完成:首先分离芯片封装,然后进行重建布局,最后利用人工微探测或电波显微法等技术来观测总线上的值及在分离封装的芯片上组件的接口。 

  •       旁道攻击:旁道攻击利用物理量来分析和更改嵌入式系统的行为。通过观察电路中的某些物理量的变化规律,来分析嵌入式系统的加密数据;或通过干扰电路中的某些物理量来操纵嵌入式系统的行为。其具体又可以分为能量分析攻击、时间攻击、错误注入攻击和电磁分析攻击等几种主要攻击方式。 


嵌入式系统应对具体攻击的安全策略 


     嵌入式系统安全要综合考虑物理层、平台层以及应用层三个方面。机密性、完整性和认证这类基本安全功能,通常以适当的安全协议和加密算法来执行。应对具体攻击方式可采取不同的攻击策略。

 

1. 软件攻击的安全防护 


      软件是计算机和嵌入式系统安全问题的重要和关键方面。恶意入侵者常常能够利用软件缺陷潜入系统中。此外,联网的应用软件涉及当今能遇到的普遍的安全危机,软件复杂性和扩展性的不断增加更是加剧了这种危机。 


      安全是软件系统的一个必然出现的属性,这是一个常被注重功能的开发人员所忽视的细节。虽然现在有一些安全功能,同时大多数现代软件具备一定的安全特性,但是比如SSL这类附加特征并没有对安全问题提供一个完善的解决方案。


      对付软件攻击,需要早在软件设计生命周期就要考虑安全性,熟悉并理解常见威胁,对安全性进行设计,使所有的软件设计产品通过严格客观的危机分析和测试。在嵌入式系统设计时主要从以下几个方面来考虑: 


      1)在系统执行的每个阶段确保敏感指令和数据的机密性和完整性。 

      2)确信从一个安全点执行给定程序,在系统启动或代码执行前进行检查,对不可靠的代码提供受限制的执行环境。

      3)去除使系统容易受攻击的软件中的安全漏洞。 


2. 物理攻击的安全防护

 

      对付物理攻击采用一些先进的封装技术和攻击反应技术。比如,指定四个不断提升的物理安全需求等级来满足一个安全系统。第1级需要物理保护,第2级则加入明显的干预机制,第3级规定更强的探测及反应机制,第4级处理环境失败保护和测试。然而,越高的安全等级需要更高的芯片成本。

 

3. 旁道攻击的安全防护 


      由于旁道攻击通过检测和分析系统的旁道信息来实现,因此对于嵌入式系统的某些旁道信息具有易被观测和分析的的征兆时,应尽可能地将其消除。面对各种不同的旁道攻击又可采取各自不同的对抗措施,其方式都是从增加攻击者得到这些旁道信息的难度入手。随机化就是目前频繁使用的一种应对各种旁道攻击的有效手段,它使得攻击者无法确切知道某个操作的执行时间。 


嵌入式系统总体安全解决 


      越来越多的事实证明,仅仅把系统的安全特性当成是对系统的一个补充,在系统设计完成后才开始考虑这个问题是行不通的。人们开始意识到增强系统安全的措施必须从一开始就集成到系统的整体设计中,对于安全问题的考虑也从以功能为中心的观点逐渐转向系统结构设计的角度。通过系统结构的设计和运行可以在一定程度上阻止攻击,从整体上解决各种安全问题。 


1. 层级结构框架设计 


      嵌入式系统设计过程的各个不同方面都会影响安全性,因此对于安全嵌入式系统的设计必须从技术开始,并在整个设计周期中给予评估。


      在所有这些结构框架设计之前,首先我们必须清楚两个问题:其一,安全性并非只是关于密码技术的问题,它也与政策、程序和执行情况有关。基于密钥的密码技术,和政策一样也是通过控制密钥的使用权限来实现安全性的;其二,安全的密码并非仅有安全系统独立完成,同时必须考虑从设计需求到测试,甚至维护的各个阶段的安全性。然后在以下这个基本框架里开始考虑系统的安全性:

 

      1)环境:为正在设计的设备的操作环境来确定假定、威胁及必要的政策。 

      2)目标:确定设备的安全目标。考虑到它将会保护的数据或操作,以及由前一步带来的威胁需要何种相应对策。

      3)需求:确定功能性的安全需求。

 

      如图1所示,每个目标决定了下一个目标。在这一层级中运行,将会避免不必要的安全需求。举例来说,系统可能有对所有事件的信息进行加密的需求,而很多设计者仅以密码技术作为实际安全性的替代。在一个封闭的网络环境中可能会对设备有额外的需求,如果不能将需求的起因追溯到一些与环境相关的因素,就会增加处理或数据传输的开支


1.jpg

 图1 层级结构       


2.jpg

图2 简要安全框架


      以上面的框架分三个步骤有助于制定安全需求,它压缩了过程的各个方面,如图2所示。制定目标的时候,确保对任一环境的威胁都有一项与之相匹配的对策。而对策不总是以软硬件相结合为基础,其中有一些是基于政策或程序的。如果目标涉及受限制访问,且以密码作为需求,那么此时设计必须确保能够处理未保护密码的用户,以及有利于加强政策的功能性需求这两方面的政策。

 

2. 提升系统安全性的解决方案 


      嵌入式计算机系统区别与通用计算机系统,因此提升通用计算机系统安全性的各种对策并不能完全照搬,系统开发者针对嵌入式系统的自身特性提出了一些有效的解决方案。


      1) ARM的TrustZone技术 


      ARM公司的TrustZone技术使用了带有硬件保护的安全域机制,确保了对安全系统能够有一个系统化的实现。TrustZone技术把系统安全部分从复杂的不安全的应用程序中分离出来,把软件验证变得更加完善和容易实现。通过在CPU内核的设计中集成系统安全性扩展,为嵌入式系统实现安全特性提供了基础。在对内核的功耗、性能和硅片面积不产生大的影响的前提下,TrustZone技术为设计具有高度安全性的嵌入式系统提供了坚实的基础。


      2) 安全协处理器 


      为了提高系统的安全性能,使用安全协处理器将系统的处理功能分为安全功能和非安全功能,DallasSemiconductor的DS5250高速安全微处理器常被用作安全协处理器。安全协处理器负责系统中与安全性相关的任务,用来保护口令、PIN码、加密密钥以及其它重要数据。而非安全处理器完成主要的系统功能,这样便提高了系统的安全性。


      3) 微核技术 


      系统中能够包含安全政策的部分是可信计算基(TCB),具有可信度的TCB关键是有一个可以被检测的内核,一个很小的内核只包含具有优先级的代码。任何没有优先级的代码,其功能仍然没有优先级(在内核外),就是所谓的微核。在一个基于微核的系统中,软件封装在具有硬件加强的接口部件中,所有的通信都必须用到内核提供的跨进程通信装置。这意味着内核完全控制着所有部件间的通信,以及部件间透明地介入安全监控成为可能,从而输入到系统中的程序可由用户定义为只读文件,从而防止敏感信息的窃取。


      虽然一个严格意义上的微内核至今仍未建立,但是现存的微型内核已经为建立一个值得信赖的TCB提供了一个好的基础。虽然测试和代码检验不能完全保证内核的正确性,但小型化使得它可以减少不少漏洞。 


      过去嵌入式系统执行一种或几种固定的功能。而现在嵌入式系统能够执行多种功能并具备下载软件执行新的应用程序的能力。这虽然增加了嵌入式系统的灵活性和使用寿命,但它却同时增加了恶意组织攻击的可能性。 


      面对嵌入式系统存在的安全隐患及各种攻击,需要从系统设计之初就考虑其安全性,这是一个目前仍处于起步阶段的领域。虽然我们在构建安全的嵌入式系统方面已经有了一些解决方案,但嵌入式系统有限的资源及其在联网过程中所引起的新问题使我们在实现期望的安全需求时仍面临着重大的挑战。