嵌入式系统安全综述

您所在的位置:网站首页 嵌入式软件认证标准分析报告 嵌入式系统安全综述

嵌入式系统安全综述

2024-07-10 03:11:24| 来源: 网络整理| 查看: 265

0 引言

随着科技的飞速发展,信息技术逐步应用到生产生活的各个领域[1, 2].近年来,随着大规模集成电路制造技术的不断进步,嵌入式系统以其结构简单、功耗小、可定制化程度高等特点[3],逐步成为日常生活、工业生产、交通控制、电力运输等重要基础行业信息化建设的核心组成部分,极大促进了生产生活的发展.嵌入式系统属于具有专用功能的计算机系统,多用于实时计算领域,它被嵌入到其他完整的硬件或机械设备中.98%的微处理器被设计成为嵌入式设备的组件[4].与传统的计算机相比,嵌入式设备具有功耗低、尺寸小的特点,这是以有限的处理资源为代价的,这些特性使得嵌入式设备更加难以编程和与之交互,也导致了嵌入式设备在安全上的先天不足.嵌入式系统的产品范围非常宽广,从便携式设备(如个人智能终端和MP3播放器)到大的固定设备(如交通灯、工业控制系统ICS)都可以涵盖.目前,各种智能终端与物联网设备不断涌现,层出不穷,极大地改变了人们的生产生活方式.据Gartner统计,截至2016年,全球已有64亿部物联网设备,到2020年,全球物联网设备的数量估计会突破200亿[5].

随着嵌入式系统逐步应用到各个领域,其应对安全威胁能力不足的缺陷也逐渐显现出来,众多黑客纷纷将攻击目标转向嵌入式系统.2009年“震网病毒”攻击伊朗布什尔核电站嵌入式工业控制系统,直接破坏了纳坦兹浓缩铀工厂的近千台离心机,导致核电站延期启动,对伊朗国家核计划造成重大影响;2010年在加州奥克兰召开的安全会议上,加州大学圣地亚哥分校和华盛顿大学的研究者展示了攻击车载嵌入式系统的技术[6],该技术能够恶意篡改车载自适应刹车控制器、速度表等重要的嵌入式控制模块,对车载嵌入式系统造成重大的安全威胁,甚至会导致严重的交通事故;2012年在加州召开的设计年会西部会议上,Mocana高级分析师Vamosizhan介绍了针对打印机、数字机顶盒的攻击[7].这些攻击往往会严重威胁到系统的安全性、可用性和可靠性,将会对依赖嵌入系统执行重要控制任务的诸多基础行业带来极大的安全隐患.

嵌入式系统暴露出来的安全问题及其严重性,与其自身的特性是紧密相关的.一个典型的嵌入式系统包含硬件层、操作系统层和应用层.从技术角度看,以下一些原因导致了嵌入式系统容易遭受攻击:

1) 硬件结构简单,缺乏安全保护电路,容易被侧信道等攻击;

2) 操作系统设计过于简单,容易被恶意篡改;

3) 各类应用交互复杂,设备通过网络连接,中间环节多,通讯协议过于简单,容易被植入木马等恶意软件;

产生这些攻击的重要原因是嵌入式系统缺乏足够的多层次保护机制.为了细致全面的了解嵌入式系统安全现状,本文将先介绍嵌入式系统的脆弱性;然后对嵌入式系统的硬件和软件层面临的安全问题作分析.最后,从体系架构的角度,对嵌入式系统的安全对策做出设计和构想.在文末的总结与展望中,提出嵌入式安全将来的研究方向.

1 嵌入式系统的特性及其脆弱性分析

不同于现有的个人电脑或服务器,嵌入式设备的功能、成本、功耗及尺寸都与传统的电脑完全不同.而且,嵌入式设备往往承载着大量隐私信息,或用于特定的控制领域,其承载的数据极易被攻击者盗取.总的来说,嵌入式系统的脆弱性表现在以下几个方面:

1) 供电与计算能力有限

因为成本和能耗等方面的考量,嵌入式系统往往采用电池供电,且供电能力低下,基于节约系统能耗的考虑,往往无法加入过重的安全加密算法.这也导致嵌入式系统CPU的计算能力极其有限,在嵌入式系统中无法安装传统计算机上使用的杀毒软件、入侵检测系统等.同时,也无法使用传统的密码体制对其软件系统进行严格的完整性验证.恶意用户可以通过相关工具和软件,对嵌入式设备中的固件重新编程,修改成带有恶意代码或其他非法目的的固件.这给嵌入式设备带来了极大的安全隐患.

2) 物理暴露

很多嵌入式设备放置在远离所有者的地方,导致非法用户很容易物理接触到设备,从而对设备的软硬件进行非法的修改.如,黑客可以通过硬件搭线、探针等方式,非法刺探到系统总线,对总线中的通讯数据进行分析,或直接替换硬件系统关键部件达到绕过或者破坏原系统功能的目的[8, 9].另外,存储在嵌入式设备中的非易失性数据极易被非法访问.如:恶意用户能够简单的将其中的存储芯片焊下来,通过编程器读出里面的隐私数据.

3) 部署位置复杂

很多嵌入式设备作为数据采集产品部署在野外等人迹罕至、条件恶劣的地方,就算发现了安全问题,维护人员也很难对其软件系统进行及时的补丁和安全升级.

4) 网络接入方式多样

很多的嵌入式设备具备联网的功能,其通过互联网进行数据通讯,这就进一步导致恶意用户能够在互联网的任何地方发起对设备的攻击.更为严重的是,由于嵌入式系统在设计之初,并没有考虑到这些威胁,对网络协议栈的设计考虑过于简单,很多设备在对外通讯时采用明文或只是简单加密后即通过网络发往外部,导致其极易遭受网络入侵攻击.

2 嵌入式系统面临的安全问题

图 1从整体架构的角度,列出了嵌入式系统面临的部分安全问题.

图 1 嵌入式系统面临的安全问题 Figure 1 Security issues of embedded system 图选项

根据嵌入式系统的分层结构,有必要对不同层级的安全威胁进行分类.本节将从硬件和软件两个部分,分别对嵌入式系统面临的安全威胁做一个细致的阐述与分析.

2.1 硬件安全问题

嵌入式系统的硬件在设计和应用场景上,都与传统PC系统完全不同.由于嵌入式硬件往往应用于专门领域,其硬件复杂程度低于传统PC系统,这就给不同的硬件制造商提供了灵活的设计和制造机制.在嵌入式硬件的设计过程中,不良制造商会将恶意电路(又称“硬件木马”)植入硬件芯片中,从硬件底层发起对系统的攻击,达到其窃取数据的目的[10].另一方面,针对功耗与时间信息的“侧信道”攻击,也能窃取关键密码算法中的密钥数据[11~13].更进一步,出于对嵌入式硬件成本、功耗等方面的考虑,硬件芯片中的存储部件往往没有采取足够的保护措施.普通用户即使没有这些专业的攻击手段,如果能够物理接触到这些设备,也能轻而易举的获取存储在其中的敏感数据.

本节将对主流的硬件安全问题进行分类,并对相应的硬件攻击进行描述.

1) 硬件木马

攻击者通过对集成电路的某些部分进行蓄意的修改,以达到对内部电路的控制、更改或监控的目的.这种经过恶意修改过的电路被称为硬件木马[14~16].由于硬件木马位于芯片内部,使用者缺少足够的信息,往往很难对这类攻击进行有效的检测与防范.

目前针对硬件木马的主流检测方法主要有功能与结构性测试[17, 18]、“路径延迟”度量[19]、门电路级特性分析[20, 21]、温度分析[22]等.但这些方法均需要昂贵的专业设备或非常苛刻的检测环境,给硬件木马的检测带来了不小的挑战.随着硬件制造成本的不断降低,很多以前不具备芯片制造和设计能力的企业也逐步加入芯片研发与制造行业.可以预计,在面向物联网的信息战中,硬件木马也会呈现出高发的态势.如何对现有的检测、防范方法进行整合与扩展,以提高对硬件木马的检测能力和免疫能力,将是今后硬件设计与安全领域的一个极具挑战的课题.

2) 侧信道攻击

近年来,安全密码芯片被应用到各类安全相关行业中.安全密码芯片是专门设计的片上系统,用于执行密码操作,嵌入具有多个物理安全措施的封装中,给予其一定程度的防篡改性[23].正因为安全密码芯片是用来处理系统中的机密信息,攻击者对它的关注从未停止,攻击手段越来越先进,攻击方法也层出不穷[24, 25].从攻击的代价来看,侧信道是一种成本相对低廉,实施简单、效率较高的攻击方式,成为近年来硬件攻击的主要手段.当嵌入式系统运行某些应用时,攻击者运用侧信道攻击手段,能够探测到系统的物理信息泄露[26].侧信道攻击极具破坏性,能攻破所有主流的密码算法[27],对嵌入式系统的安全威胁巨大.

3) 错误注入

通过将环境参数(如电压、频率)等改变到异常值,使系统进入一种错误的工作状态,从而得到额外的系统控制权.如文献[28]实现了基于光学的错误注入方法,可以读取智能卡内部闪存的机密信息.

4) 微探针

在现代集成电路编辑技术的帮助下,攻击者可以移除芯片外部的材料保护层,将内部芯片暴露在空气中.通过将精细尖端探针直接放置在感兴趣的点上或感兴趣的点所连接的区域上进行电接触[29],从而分析和采集兴趣点区域的电气特性、信号和数据.

5) 硬件逆向工程

用于了解设备的内部结构并学习或模拟其功能;需要使用与半导体制造商相同的技术,并为攻击者提供类似的功能.攻击者可以通过电子显微镜对芯片进行拍照,从而了解到芯片内部的设计结构.甚至通过激光扫描的方式,直接解析出芯片中对应存储区域的数据.针对这类攻击,通常的解决办法是提高和加强集成电路的制造工艺,对电路的容错性进行增强.同时,增加额外的掩膜“包裹层”,让攻击者无法轻易的进行探针刺探或硬件逆向.

面向硬件的攻击可以回溯到最早的电子管系统,是伴随着电路制造技术而出现的.随着集成电路制造技术的不断发展,结合着新技术的硬件攻击也会不断被发掘.目前尚无有效的解决方案,通常的安全防护措施是在嵌入式系统中添加一个专用的安全硬件模块[30],并将敏感数据保护在一个安全设计十分牢靠的物理设备中.这个物理设备可以充分考虑使用更先进的防篡改技术、物理安全技术和硅晶片加工技术.但这种方法加重了嵌入式系统的设计开销、并有可能降低处理器的性能.而且,这种方案仅仅是提供了一个安全处理和安全存储的功能,对运行在安全硬件模块之外的数据和软件,并不能提供有效的防护.

2.2 软件安全问题

相对于硬件攻击,软件攻击的实施成本更加低廉,由于嵌入式系统需要由软件来实现相应的控制逻辑,而软件系统由于其自身固有的复杂特性,拥有更大的攻击面,成为近年来黑客主要的攻击目标.嵌入式软件系统面临诸多攻击威胁,根据不同的攻击目的,可以将这些攻击细分为篡改(以修改代码完整性为目标)、破坏(通过对运行的软件发起攻击)和窃取(以获取机密数据或隐私为目标).

1) 代码完整性攻击

这种攻击试图修改嵌入式系统相关数据或代码.防范这类攻击的重点是保证嵌入式系统自身代码的完整性,可以在运行前通过对嵌入式系统相关代码进行安全度量,检测代码是否被篡改.Kirovski等[31]和Chen等[32]在系统启动之时,通过完整性传递规则,确保上层程序功能模块完整不受篡改.这些方案能够确保嵌入式软件在启动之初的静态安全性,但是缺乏针对动态安全的保护.AEGIS[33]和OASIS[34]架构在处理器中扩展执行完整性校验的指令集,在软件运行过程中对软件指令块和重要数据块进行完整性验证.该方案能够保护嵌入式系统运行过程中的动态完整性,但是这些方案需要对处理器进行较大改动,无法利用现有嵌入式多核处理器架构,可行性和通用性存在不足.

2) 应用软件攻击

针对嵌入式系统运行软件的攻击:如病毒,木马,蠕虫等通过软件代理对终端系统结构的薄弱环节发起的攻击[35].这类攻击是耗费代价较小,较为常见的一种形式.

2014年6月,安全厂商F-Secure首先发现Havex病毒[36],该病毒主要攻击目标为能源行业(水电大坝、核电站、电网),用于从事工业间谍活动,可能禁用水电大坝、使核电站过载.

2015年9月,一种名为“幽灵推(Ghost Push)”的病毒感染了全球大量安卓手机[37],每日有超过60万台手机中毒.病毒自带Root功能,即使用户用杀毒软件清除病毒,重启手机之后仍会自动安装,彻底清除病毒难度很大.

2015年12月,乌克兰的国家电网中被植入了恶意软件BlackEnergy[38],导致发电站意外关闭,造成大规模电力瘫痪,近70万民众遭受停电困扰.

2016年1月,以色列国家电力局网络受到勒索软件ransomware攻击[39].攻击者通过发送钓鱼邮件诱骗收件人执行恶意代码,加密电脑中相关内容,电力供应系统受到了重大网络攻击侵袭.

2016年8月,苹果公司公布了iOS下的一个高危“零日”漏洞[40].受害者只要点击攻击者发来的链接,手机就会被远程注入代码,攻击者瞬间就能获得受害者手机的最高权限.利用最高权限,攻击者可以远程对受害者的手机进行任何操作.这是迄今为止,苹果iOS爆出的最为危险的一个漏洞.

3) 隐私数据窃取攻击

这种攻击的目的是获取嵌入式系统内存储、传递或操作的敏感信息数据;防范这类攻击的主要手段是对敏感信息数据进行加密保护,但实现加密保护需要密钥,密钥的创建、存储、使用和销毁等,需要引入能够信任的密钥管理机制以保障其安全性.此外,还可通过访问控制对敏感信息数据进行保护.德国达姆施塔特工业大学的Bugiel等针对嵌入式设备中安全数据的访问和控制问题,构建TrustDroid架构[41],该架构在中间件层、内核层分别使用访问限制、强制访问策略,保证嵌入式关键数据的安全.

针对软件层的安全防护,常用的对策是借鉴虚拟化(VMM)技术[42],不需要额外的硬件开销就可以提供隔离的执行环境,让安全敏感的软件能够移植到VMM的环境中,并受保护地运行.然而,这种方案中嵌入式虚拟机监控器自身的安全性并未得到有效保障,所以受其容器管理的软件安全性实现方法也有待改进.

在与软件实现相关的网络层,传统的嵌入式软件在设计之初,并没有考虑网络连接带来的安全问题.多数嵌入式硬件,都使用了TCPI/IP连接协议.基于前文的脆弱性分析,嵌入式软件在网络通讯设计中往往采用明文方式连接,软件本身并不会对通讯的数据进行任何的加密.同时,设备的身份认证全靠简单的用户名和密码机制实现,由于数据的明文传输特性,这些密码极易被攻击者捕获和破解.基于上述原因,嵌入式设备在网络接入时极易受到身份仿冒攻击;同时,在由嵌入式设备组成的内部网络中,节点也极易遭受间谍和木马的攻击,节点之间的数据也会被攻击者进行截获、篡改和伪造.

3 嵌入式系统安全对策

从前文的威胁分析可以看出,由于嵌入式系统的组件多、层次复杂,其暴露出的攻击面巨大,安全问题日益凸显.嵌入式系统涵盖面极其宽泛,本节将从硬件和软件两个大的方向,以面向基础硬件设施的工业系统和面向软件系统的智能终端应用场景为代表,对现有的安全对策和不足做出分析.

3.1 硬件现有安全对策

嵌入式系统硬件是整个现代工业自动化的基础支撑,广泛应用于核设施、石油石化、化工、电力、钢铁、天然气、先进制造、水利枢纽、铁路、交通及其他与国计民生紧密相关的领域.嵌入式硬件的安全问题,会直接对这些设施、设备造成巨大冲击.近年来,随着信息技术和互联网技术的迅猛发展,特别是工业化和信息化的融合及物联网的快速发展,在给工业企业带来巨大方便和利益的同时,也给关键基础硬件设施的安全防护工作提出严峻挑战.目前,针对硬件的攻击主要集中在硬件木马和侧信道,本节将从这两个方面描述其安全对策和不足.

针对硬件木马的防范主要集中在检测方法上.这些方法可以分为:强化功能测试、侧信道指纹比对和电路强化技术.

1) 强化功能测试

强化功能测试的方法基于硬件木马通常依赖罕见事件来触发的思想.因此,有研究人员建议测试阶段将这些罕见事件包含在测试用例中[43],或者分析门级网表上的所有罕见事件,以识别可能作为触发器的可疑节点[44].但在实践中,很少有专门针对罕见事件的定义标准,导致该方法较难实施.

2) 侧信道指纹比对

这是另外一种比较流行的检测硬件木马的方式.尽管硬件木马在测试阶段不能被轻易触发,从而可能逃避功能测试,但是,只要硬件电路中被植入了木马,必将导致电路的硬件参数发生变化(如噪声、功耗等的变化)[45].因此,利用先进的数据分析方法,通过对噪声的测量,生成侧信道指纹[46].目前,各种侧信道参数及其组合被选择用于生成指纹和木马检测.这些参数通常包括全局功率迹线[47]、局部功率迹线[48]、路径延迟等.由于侧信道指纹检测的非侵入特性,该方法被认为具有广泛的应用前景.但该方法严重依赖于无木马的“标准黄金模型”电路来进行指纹比对,这在现实中几乎是无法做到的.

3) 电路强化技术

通过尝试增加额外的逻辑电路来修改电路结构,以消除罕见的可疑事件[49],或者使目标电路对恶意的修改更为敏感[50].此种方法通常与其他木马检测方法联合使用,以提高检测精度或降低检测成本.但额外的电路反过来又会增加硬件成本,影响硬件电路的性能和可靠性.此外,专门设计的电路强化结构本身也有可能成为硬件木马的目标[51].

针对侧信道攻击,目前的主要应对措施包括:

1) 噪声掩蔽技术(masking)

为了迷惑攻击者,在硬件层面,可以在电路中添加一些“虚拟”电路,每次密码变换时,这些电路将随机消耗电能,从而扰乱攻击者的分析数据.在软件层面,可以在执行路径中注入无关“噪声”代码,如文献[52~54]提出的掩蔽技术;用于密码学中的SBox也可以进行相应的掩蔽,如文献[55].

2) 窗口方法(window method)

可以在公钥密码体制中运用窗口方法防止基于侧信道的功率分析.在窗口方法中,可以进行模幂运算,通过随机化选择窗口,将除数除以特定大小的窗口来执行指数幂运算[56].

3) 伪指令插入

伪指令可以用来提供随机的延迟.如文献[57],当攻击者试图通过功率分析关联源运算时,通过伪指令的插入,混淆这种关联性.

4) 平衡技术

平衡技术可以分为代码平衡与模块功率平衡.在关键加解密算法的代码中加入一些平衡代码,用来平衡CPU的计算时间,这是一种有效地平衡功率的方法.同时,在硬件设计时,均衡关键模块的功率系数,让各模块无论工作在何种状态,都消耗固定的能量,这会从很大程度上混淆攻击者对能耗分析的结果数据.

然而随着机器学习的发展,利用聚类分析等机器学习算法的新型侧信道攻击异军突起,成为用户隐私泄露的威胁之一.如文献[58]实现了这样一种侧信道攻击方式:用户佩戴智能手表在笔记本电脑键盘上打字时,手表的运动传感器会泄漏用户正在打字的信息.当通过机器学习将运动信号处理与英语模式相结合时,能够准确的分析出用户在键盘上敲入的字符,其信息泄漏是巨大的.特别是在应用程序市场上出现的各种可以读取传感器应用程序,稍微加以修改,结合机器学习与侧信道攻击,会对用户隐私造成巨大的威胁.文献[59]对智能电表的研究表明,电表的细粒度能量使用数据会带来隐私风险,利用这些数据,结合机器学习算法进行侧信道分析,能够推断家庭内部的活动.

针对这些新兴的侧信道攻击方法,目前还没有好的对策能够防护.相信随着人工智能与深度学习的不断发展,新的侧信道攻击方法还会不断涌现.安全人员需要与硬件工程师联合,用机器学习的方法来进行反制.这是今后侧信道防护的一个新兴方向,值得深入研究.

3.2 软件现有安全对策

面向个人用户的智能终端安全问题日益增多,成为嵌入式系统软件安全中最为突出的部分.个人终端设备的最初形态是手持电话.随着大量用于个人计算机的功能被逐步融入到手持电话中,出现了个人智能终端设备.特别是随着大量的互联特性(如:Wi-Fi、蓝牙、GPRS等)加入到个人终端设备中,进一步加速了这些设备的广泛使用和传播.2011年,尽管全球销售的智能设备达到4.2亿部[60],但针对智能终端设备的攻击数量仍小于PC端[61].然而,到2014年,短短三年时间,全球智能手机的数量已超12亿部[62],与此同时,智能终端的软件安全问题已远超PC端,成为日益凸显的核心问题.

目前针对智能终端的操作系统,以谷歌公司的Android和苹果公司的iOS为主,截止到2017年初,Android的占有量接近15亿,在所有操作系统中的占比超过50%[63],成为绝对的领先者.

针对嵌入式软件系统的安全对策,现有的安全解决方案,从虚拟化、操作系统、应用层和网络传输层几个方面,通过资源隔离、安全审计、应用防护和轻量加密方案的角度对其进行安全加固.

1) 基于虚拟化的安全对策

有研究者通过借鉴传统x86架构的虚拟化技术,对相关资源进行隔离和虚拟化以达到安全增强的目的.文献[64]通过在操作系统层引入虚拟化机制,并建立可信安全实体,对用户态的进程进行隔离.该安全实体控制和管理Android系统中的进程,并提供对设备中的软件进行远程监管的接口.文献[65]将Linux的容器组件移植到Android系统,通过隔离容器,在系统内核之上建立多个虚拟的Android框架,以达到各App之间安全隔离的目的.尽管这些虚拟化技术能够通过隔离思想来解决上层的安全问题,但在虚拟化架构之下,缺乏安全的根基,无法保障虚拟化架构自身的安全.

2) 操作系统层安全对策

近年来,很多研究者基于系统挂钩(hooks)的思想来对系统进行安全增强.文献[66]提出了一种“Android安全模型框架”(Android security modules,ASM),利用系统挂钩构建相关监控模块,达到Android系统安全性增强的目的.文献[67]从策略控制的角度,提出了一种称为DeepDroid的企业级安全策略增强机制.该机制通过动态实施一个细粒度的系统级服务,让管理员能够对系统资源访问策略进行控制.DroidForce[68]和WrapDroid[69]也基于同样的思想,利用对系统策略进行相应的控制和强化来提高安全级别.但是基于同样的原因,无论是系统挂钩还是安全策略,都没有底层的机制对自身进行保护,其安全架构是不完善的.

3) 应用软件层安全对策

也有研究人员站在安全审查的角度,提出了安全增强的相关方案.文献[70]设计并实现了一款Dex文件的比较工具Dexdiff,对已经编译好的Android二进制文件进行结构化的比较,并能给出上下文的差异.从而通过应用级的比较与审查,找出潜在的恶意应用.基于类似的设计思想,TaintDroid[71]与PiOS[72]通过动态污点跟踪与静态数据流分析的方法,能审计出应用程序可能存在的隐私泄露.还有研究人员聚焦于恶意软件检测[73~75],通过各种手段对软件进行检查,找出恶意的应用.虽然上述这些方法能够有效地对应用程序进行审查,但对于应用层之下的安全,却无能为力.

4) 网络传输层安全对策

为了解决网络的明文传输问题,同时又兼顾嵌入式硬件功耗和计算能力有限的特点,有研究者设计了专门针对嵌入式设备的轻量级加密方案[76].为了解决身份仿冒的问题,一般的安全增强方法,是在设备的生产过程中,为每一个设备生成唯一的ID,分别存储在设备和远端的数据库中.

虽然上述方法能够有效地避免明文传输和身份仿冒问题,但身份标识和密钥往往用明文或简单的编码方式存储在设备中,缺乏一体化的保护措施.一旦攻击者能够物理接触到设备,整个网络的身份认证和数据传输保护便形同虚设.

4 理想化的全域安全解决方案

通过前面的威胁分析、现状研究,不难发现,嵌入式系统的安全问题,并不是某一层的单一问题,其牵涉到整个体系架构的每一层.仅对单一层次做安全研究是远远不够的.从前面的相关工作可以看到,目前大多数针对嵌入式安全的研究,都只聚焦在某一层或几层,缺乏系统思维,尚无令人满意的整体解决方案出现.

一个理想化的全域安全解决方案需要涵盖硬件、操作系统、应用软件和网络等各个层面.每个层级各司其责,又整体融合、互为补充、共同增强.早在2006年,为了解决嵌入式智能终端面临的安全威胁,在国家863计划的支持下,我们研制出我国第一台可信PDA的原型系统[77],该可信PDA的系统结构和安全机制借鉴了TCG的规范,并进行了大量的创新,实现了我们提出的“可信≈可靠+安全(Trust≈Dependability+Security)”[78]的学术思想,从硬件底层、操作系统到应用层都建立了一套较为完整的可信机制.

结合以往的研究成果,一个理想化的针对嵌入式系统的全域联合安全增强(federated universal security enforcement)方案被提出,简称为FUSE.如图 2所示.其基本思路是:利用硬件隔离机制,结合可信计算思想,自底向上,软硬结合,构建安全可信、全域融合的嵌入式系统安全方案.整个FUSE系统,可以划分为硬件层、固件层、软件层和网络层.

图 2 理想化FUSE解决方案 Figure 2 Idealized FUSE solution 图选项

首先,在硬件层,需要有独立设计的安全协处理器(secure coprocessor,SCP)接管所有的加解密运算,并保证这些操作始终位于SCP内部,就算是位于同一层级的通用处理器也无法窥探.同时,可以利用硬件隔离机制(如ARM的TrustZone架构),在内存中开辟隔离区域,保证机密数据的权级访问.

其次,在固件层,应以SCP为可信基,建立可信固件(trusted firmware,TF).利用TF,实现安全启动(secure boot)机制,用来对抗软件系统中的代码注入等各类攻击.Secure Boot通过对各阶段的启动镜像进行数字签名,并从系统启动初始阶段进行检验,能够确保系统各层次代码不被非法篡改.在TF的监控与度量下,只有经过正确签名的内核(包括可信微内核与通用操作系统内核)才能被Boot Loader载入内存执行.同时在TF层部署可信执行环境(trusted execution environment,TEE),负责将上层的安全操作请求路由到底层的SCP,并将结果通过安全通道返回到请求层.

然后,在软件层,应构建完全独立于通用操作系统的可信微内核(trusted micro kernel,TMK),与通用操作系统完全隔离,通过TF直接与SCP通信.

最后,在网络层,应利用可信网络连接的思想,对终端、平台等各个组件进行身份认证.各层的架构具体描述如下:

1) 可信硬件层

在硬件架构上,利用隔离思想,对系统的关键机密数据加以物理隔离.典型的硬件隔离方案,如TrustZone安全架构, 是由ARM公司提出的一套系统级安全解决方案,在尽量不影响原有处理器设计的情况下通过物理隔离保护安全内存、加密块、键盘和显示器等外设.其将系统的硬件和软件资源划分为两个执行环境,安全环境(secure world)和普通环境(normal world)[79].每个执行环境都有自己的系统软件和应用软件、内存区及外围设备.通过TrustZone的硬件逻辑,建立隔离的可信执行环境(TEE),为安全敏感应用提供安全服务,使得安全环境的资源不能被普通环境的组件访问,将其与普通环境隔离开来.把敏感资源放在安全环境,就能保护绝大多数的资源免受很多可能的攻击,包括一些很难保证安全的操作(比如用键盘或触摸屏输入密码).普通环境和安全环境的代码以分时共享的方式在同一个物理处理器核上运行,这使得不需要专用的处理器内核来执行安全代码,节省了硅片面积和能耗.

FUSE理想架构在利用硬件隔离架构的同时,还需在硬件层面加入独立的安全协处理器SCP,实现系统硬件可信根.安全协处理器内部自带加解密引擎和可信存储单元,为系统上层提供可信度量根和可信存储根.

2) 可信固件层

在负责承上启下,连接软硬件的固件层,基于可信计算思想,构建可信执行环境,对软件系统代码进行保护.

可信计算系统是能够提供系统的可靠性、可用性、安全性(信息的安全性和行为的安全性)的计算机系统.我们通俗地简称为:可信≈可靠+安全(Trust≈Dependability + Security)[78].信任根是可信计算机系统可信的基点.TCG认为一个可信的计算平台必须包含三个信任根:可信度量根、可信存储根和可信报告根.对计算平台的可信性进行度量,对度量的可信值进行存储,当访问客体询问时提供报告.这一机制简称为度量存储报告机制,这是可信计算机系统确保自身可信,并向外提供可信服务的一项重要机制.可信度量根是对平台进行可信度量的基点.可信存储根是平台可信性度量值的存储基点.可信报告根是平台向访问客体提供平台可信性报告的基点.没有这些根,可信计算就失去了可信的基础.

在这些信任基点之上,结合底层的可信协处理器,构建可信执行环境TEE,与现有操作系统并行运行,又完全隔离.TEE比OS有更高的安全权限,通过直接与SCP通讯,建立安全信道,进行高敏感的数据交互.TEE具有直接访问硬件和内存的权力.

3) 可信软件层

在软件层构建可信微内核,独立于现有通用操作系统.该设计思想基于这样的原因:现有通用操作系统种类繁多,且代码经过多年迭代,如果直接在其基础之上进行修改和增强,势必会引入新的安全问题.因此,从零开始独立设计的可信微内核既能做到代码量最小,又能充分利用硬件层中的可信协处理器,独立运行于SCP核中.能较好的保证实时性与隔离性的目标.

另外,在通用操作系统之上,还应借鉴容器思想构建“安全轻量容器”(secure light container,SLC),对运行于嵌入式系统中的App进行有效的安全隔离.SLC的安全性直接由新构建的可信微内核保证,由后者通过动态的方式,对SLC发起实时度量.这种架构既能充分发挥原有操作系统的功能,最大化代码复用能力,又能保障SLC的安全性,让其能够运行于有安全漏洞甚至恶意的操作系统之上.

4) 可信网络层

在嵌入式系统面临各种安全风险与威胁时,不仅需要自顶向下的安全体系设计,还需要从设备终端开始自底向上的保证嵌入式系统的可信.因此,整个安全系统不仅要保证嵌入式终端环境的可信,还要把这种可信扩展到网络,使得网络也成为一个可信的计算环境.

在脱离嵌入式设备,与外界交互的网络层,需要建立一套可信的网络连接机制,以保障接入到网络系统中每个嵌入式终端的通信安全.可以借助TCG组织研究和制定的可信网络连接(trusted network connection, TNC)框架来实现可信网络层.基于此框架,构建这样一种安全机制:嵌入式设备终端在接入网络之前,先对其终端身份进行认证,如果终端的身份认证通过,则再对终端平台的身份进行认证;进而,当平台身份认证通过后,再对终端平台的可信状态进行度量;如果度量结果满足网络接入的安全策略,则允许终端接入网络,否则将终端连接到指定的隔离区域,对其进行安全修复和升级.

5 嵌入式安全的研究趋势

嵌入式系统经过多年的发展,安全问题日益突出,究其原因,有历史的遗留问题,也有新技术发展带来的挑战.随着可信计算研究的不断深入,目前针对传统PC和服务器领域的可信研究必然会拓展到嵌入式系统.我们认为,将可信计算思想及其机制引入到嵌入式系统中,使得嵌入式系统也成为一个可信的计算环境,会是将来嵌入式安全研究的热点和突破口.前文提到,嵌入式系统面临着比传统PC和服务器更加复杂的软硬件环境,因此需要从理论和技术两个层面同时展开相应的研究.首先,要从理论模型的角度对嵌入式系统安全进行研究;其次,要对可信度量、可信报告等可信计算核心机制与嵌入式系统无缝融合的角度深入研究;最后,还要对嵌入式资源的可信共享与可信隔离进行研究.接下来将对这些具体研究展开讨论.

5.1 可信嵌入式系统的理论模型研究

研究如何将可信计算机制引入到嵌入式系统,使后者成为可信的计算环境.由于嵌入式系统组件的复杂性,因此需要对嵌入系统各组件进行建模,在此基础上,研究嵌入式系统中各组件的信任关系,建立可信嵌入式环境的理论模型.已有学者对信任模型进行了深入的研究,如文献[80]提出的TrustFound,包含平台逻辑模型、可信计算技术模型和泛威胁模型,可以用来检查平台上的安全属性(如机密性和可验证性),揭示必须满足的隐含假设以保证安全.文献[81]提出了针对云平台的信任模型.它利用平台的可用性、可靠性、周转效率和数据完整性四个参数构建可信模型.这些模型在传统的PC和云平台上取得了较好的效果.在嵌入式系统有限的运算资源下,很多传统的建模条件并不能很好的得到满足,制约了其在嵌入式系统中的应用.

目前的信任模型都只从某些特定的方面描述了信任度在信息系统中的表示和计算方法,在嵌入式环境中,存在下列不足:1)由于嵌入系统的异构特性,现有模型缺乏在不同嵌入式系统下,对信任模型进行统一的信任评价、比较、运算的研究;2)信任模型在传递中,会出现路径过长、信任损耗的问题,这在嵌入式这种计算资源极其有限的环境中,是不能忽视的;3)评价信任度的粒度太粗(大多数仅用信任、不信任、不确定来简单评价),并不能很好的反映系统的可信状态.

以上这些不足,目前没有更好的解决方法,将会是今后嵌入式系统安全理论需要研究的内容.目前,有研究者针对其中的部分问题,提出了自己的思路,如问题2), 可以结合嵌入式系统的特性,将传统的链式信任模型转变成星型信任模型.这样可以缩短度量路径,降低信任损耗.但这些处理方式,仍显不够,需要在后续的研究中不断探索.

5.2 可信度量与可信报告研究

可信计算的主要目标是保证计算平台的可信性.但是由于受到可信度量理论的限制,目前还缺少简单易行的平台可信性度量理论与方法.相比之下,数据完整性的度量理论已经成熟,而且简单易行,TCG采用了数据完整性度量来替代可信性度量.但是,完整性并不能等同于可信性.数据完整性只是安全性和可靠性中的一部分,而不是他们的全部.但受限于目前的技术水平,这一问题的解决依赖于可信度量理论的发展.

可信度量的另一种方式是借鉴系统评测的方法,对嵌入式系统各个组件进行安全风险评估,并给出计算后的风险估值.根据这些风险估值,结合各组件在系统中的层级与权值,综合进行度量,由此获得全面、可靠、粒度合适的基础信息.在尽量不影响嵌入式系统实时性需求的情况下,完成包含各组件身份、行为和环境信息的实时刻画和生成.

可信报告与可信度量紧密相关.可信报告需要针对嵌入式系统有限计算资源的矛盾,设计高效、安全、可扩展的报告协议.并对报告协议进行严格的形式化分析和验证,消除潜在的安全漏洞.

5.3 资源的可信共享与可信隔离研究

可信资源共享方面,可以借鉴传统的访问控制理论和方法,在这些理论基础之上,结合嵌入式系统自身的特点,对其进行可信性增强,设计多层次、全域联合的、基于嵌入式可信硬件的访问控制方法,达到主体对客体的安全访问,实现资源的可信共享.

在研究资源共享的过程中,授权是重要的环节.现有的授权模型大多依赖身份、角色、访问控制策略做出判断,没有考虑在用户授权过程之后,用户行为或平台环境发生改变后该如何处理.所以,需要对共享资源的使用者进行持续的认证和监控,以确保系统的信任度始终符合使用者的真实身份.

在可信隔离研究方面,隔离与共享是矛盾共同体,如何处理这个关系,也是摆在研究者面前的难题.所以,需要对系统中的各类资源进行建模,并根据嵌入式系统计算资源有限的特点,建立轻量隔离容器,让资源的使用始终在容器的监控之下.做到既能让合法授权用户共享资源,又能将非法用户隔离在这些敏感数据之外.

6 结束语

嵌入式系统安全是一个极具挑战性的课题.本文讨论了一些安全架构方面的解决方案,随着技术的发展,攻击者的攻击能力也在不断的提升.如何在嵌入式系统的各个层面保持领先的安全防护能力,是摆在每一个安全研究人员面前的问题,任重而道远.

在芯片设计领域,硬件设计师面临着巨大的挑战.根据现实对嵌入式系统的需求,他们必须设计出能效更高(对于电池的有限供电能力)、吞吐率更大(用于云计算或服务器领域)、延迟更低(用于实时操作系统)、面积更小(面向物联网设备)的产品.面对日益严峻的安全环境,产品还必须能抵抗物理攻击(尤其是侧信道和错误注入攻击),而这些需求往往是互相冲突和矛盾的.本文讨论了一些如何缓解物理攻击的对策,然而,面对一些手段新颖的硬件攻击,这些对策还显得势单力薄.当嵌入式系统往更快、更高、更强的道路上持续演进时,我们可以将量子演化密码、可信计算等先进的思想融入到硬件设计领域.利用软件工程领域的一些思路和方法来武装硬件设计也不失为一种有效的方法.如文献[82]借鉴了软件保护领域中的代码混淆思路,将其用于硬件设计中,取得了较好的效果.

在嵌入式软件开发领域,设计人员与芯片供应商深度合作,利用硬件的先天优势来弥补软件中的不足,如文献[83]提出的HA2lloc硬件辅助分配器,能够利用扩展内存管理单元来检测堆中的内存错误.文献[84]提出了HAFIX(硬件辅助流完整性扩展),在硬件层构建新指令,用以防止软件层的代码重用攻击.

在软件设计日益复杂、功能需求不断膨胀、安全攻击频繁出现的时代,如何保障软件系统自底向上各个环节的安全,是嵌入式软件设计师面临的巨大挑战.同时,在构建安全可信的嵌入式系统架构时,研究者应结合目前人工智能与深度学习方向的成果,将其运用到自动软件行为度量、攻击主动防御、智能漏洞挖掘等方面,这也是今后值得持续研究和深化的地方.



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭