摘要:全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格。官方教材《信息安全工程师教程》及考试大纲于7月1日出版,希赛小编整理了信息安全工程师教程学习笔记之嵌入式系统安全,供大家参考学习。
>>>>>信息安全工程师培训视频
全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格。教材《信息安全工程师教程》及考试大纲于7月1日出版,希赛小编整理了信息安全工程师教程学习笔记之嵌入式系统安全,供大家参考学习。
嵌入式系统所面临的安全问题
一套完整的嵌入式系统由相关的硬件及其配套的软件构成;硬件部分又可以划分为电路系统和芯片两个层次。在应用环境中,恶意攻击者可能从一个或多个设计层次对嵌入式系统展开攻击,从而达到窃取密码、篡改信息、破坏系统等非法目的。若嵌入式系统应用在诸如金融支付、付费娱乐、军事通讯等高安全敏感领域,这些攻击可能会为嵌入式系统的安全带来巨大威胁,给用户造成重大的损失。根据攻击层次的不同,这些针对嵌入式系统的恶意攻击可以划分为软件攻击、电路系统级的硬件攻击以及基于芯片的物理攻击三种类型,如图1所示。
在各个攻击层次上均存在一批非常典型的攻击手段。这些攻击手段针对嵌入式系统不同的设计层次展开攻击,威胁嵌入式系统的安全。下面本文将对嵌入式系统不同层次上的攻击分别予以介绍。
1、软件层次的安全性分析
在软件层次,嵌入式系统运行着各种应用程序和驱动程序。在这个层次上,嵌入式系统所面临的恶意攻击主要有木马、蠕虫和病毒等。从表现特征上看,这些不同的恶意软件攻击都具有各自不同的攻击方式。病毒是通过自我传播以破坏系统的正常工作为目的;蠕虫是以网络传播、消耗系统资源为特征;木马则需要通过窃取系统权限从而控制处理器。从传播方式上看,这些恶意软件都是利用通讯网络予以扩散。在嵌入式系统中最为普遍的恶意软件就是针对智能手机所开发的病毒、木马。这些恶意软件体积小巧,可以通过SMS(ShortMessagingservice)短信、软件下载等隐秘方式侵入智能手机系统,然后等待合适的时机发动攻击。
尽管在嵌入式系统中恶意软件的代码规模都很小,但是其破坏力却是巨大的。
2005年在芬兰赫尔辛基世界田径锦标赛上大规模爆发的手机病毒Cabir便是恶意软件攻击的代表。截至到2006年4月,全球仅针对智能手机的病毒就出现了近两百种,并且数量还在迅猛增加。恶意程序经常会利用程序或操作系统中漏洞获取权限,展开攻击。最常见的例子就是由缓冲区溢出所引起的恶意软件攻击。攻击者利用系统中正常程序所存在的漏洞,对系统进行攻击。图2.就描述了一段具有安全隐患的程序代码。在主程序f()中调用了g()子程序,其中参数x、y以指针的形式进行传递,字符串x的内容将被复制到本地变量b中,然而在这一过程中程序并没有进行检查字符串x的大小。因此,恶意攻击者可以在程序在运行的过程中利用该漏洞展开缓冲区溢出攻击。
攻击者所采取的具体攻击方法如图3所示。在系统运行过程中,当子程序调用系统函数strcpy()时,若攻击者输入的字符串x大于b的大小,则会在内存片段中发生溢出,程序会跳转到攻击者所设计的危险代码中,从而导致程序的控制权为恶意攻击者所获取。在这一过程中,攻击者必须要了解处理器的体系结构与执行方式,掌握正常程序中所存在的漏洞,同时还要能够将危险的程序代码注入到系统中,才能够完成软件攻击
因而,随着嵌入式系统日益推广应用,其己经不像过去那么安全。恶意软件攻击可以根据恶意攻击者的需求对嵌入式系统实施干扰、监视甚至远程控制,己经对嵌入式系统的安全应用构成了实质性的威胁。
2、系统层次的安全性分析
在嵌入式设备的系统层次中,设计者需要将各种电容、电阻以及芯片等不同的器件焊接在印刷电路板上组成嵌入式系统的基本硬件,而后将相应的程序代码写入电路板上的非易失性存储器中,使嵌入式系统具备运行能力,从而构成整个系统。为了能够破解嵌入式系统,攻击者在电路系统层次上设计了多种攻击方式。这些攻击都是通过在嵌入式系统的电路板上施加少量的硬件改动,并配合适当的底层汇编代码,来达到欺骗处理器、窃取机密信息的目的。在这类攻击中,具有代表性的攻击方式主要有:总线监听、总线篡改以及存储器非法复制等攻击方式。
攻击者为了实现系统级攻击,首先需要在硬件层次上对嵌入式系统进行修改,增加必要的攻击电路,从而构成硬件攻击平台。图4描述了一套用于总线监听的攻击平台。恶意攻击者将一块FPGA电路板挂载在嵌入式系统的数据总线与地址总线上。通过配置FPGA器件,攻击者可以构建攻击所需要的各种监控逻辑,从而捕捉系统总线中的通信信息,为攻击者提供分析所需的数据素材。此外,FPGA电路板还对嵌入式处理器的通用接口进行监听。当程序指令运行到操作通用接口时,FPGA电路板可以在截获程序指令的同时捕获接口上的电平变化,从而为分析嵌入式系统的程序提供数据支持。FPGA搜集到的所有信息都将上传到攻击者的PC(PersonalComPuter)中,帮助攻击者对嵌入式系统的运行方式进行解析。攻击者在侦测总线、监听通讯的基础上,还可以对处理器与外部设备之间的通讯进行修改,从而破坏系统的正常运行,这种攻击被称为总线篡改攻击。
在总线监听的攻击平台上,攻击者只需要进行少量的硬件改动即可实施总线篡改攻击。攻击者在硬件上的工作是要在系统总线上插入多路选择器,使得攻击平台可以旁路嵌入式处理器在与外部设备之间的正常通讯。除此以外,攻击者还需要对FPGA器件进行重新配置,使其能够在系统运行时伪装成嵌入式系统中的正常外设,欺骗嵌入式处理器。当嵌入式处理器对外部设备进行通讯时,由FPGA电路板对外部设备的应答予以篡改,或者直接伪造应答,从而诱导嵌入式处理器完成各种攻击者所需要的相关操作。总线监听攻击可以帮助恶意攻击者盗取保存在片外存储器中的有价值信息;总线篡改攻击可以帮助恶意攻击者控制嵌入式系统的运行;在适当的软件配合下,总线篡改攻击还可以完成对加密系统的暴力攻击。在实际攻击中,这两种攻击方式经常结合起来,共同对嵌入式系统展开攻击。
3、芯片层次的安全性分析
嵌入式系统的芯片是硬件实现中最低的层次,然而在这个层次上依然存在着面向芯片的硬件攻击。这些攻击主要期望能从芯片器件的角度寻找嵌入式系统安全漏洞,实现破解。根据实现方式的不同,芯片级的攻击方式可以分为侵入式和非侵入式两种方法。其中,侵入式攻击方式需要将芯片的封装予以去除,然后利用探针等工具直接对芯片的电路进行攻击。侵入式的攻击方式中,以硬件木马攻击最具代表性。而非侵入式的攻击方式主要是指在保留芯片封装的前提下,利用芯片在运行过程中泄露出来的物理信息进行攻击的方式,这种攻击方式也被称为边频攻击。硬件木马攻击是一种新型的芯片级硬件攻击。这种攻击方式通过逆向工程分析芯片的裸片电路结构,然后在集成电路的制造过程中,向芯片硬件电路中注入的带有特定恶意目的的硬件电路,即“硬件木马”,从而达到在芯片运行的过程中对系统的运行予以控制的目的。硬件木马攻击包括木马注入、监听触发以及木马发作三个步骤。首先,攻击者需要分析芯片的内部电路结构,在芯片还在芯片代工厂制造时将硬件木马电路注入到正常的功能电路中;待芯片投入使用后硬件木马电路监听功能电路中的特定信号;当特定信号达到某些条件后,硬件木马电路被触发,木马电路完成攻击者所期望的恶意功能。经过这些攻击步骤,硬件木马甚至可以轻易地注入到加密模块中,干扰其计算过程,从而降低加密的安全强度。在整个攻击过程中,硬件木马电路的设计与注入是攻击能否成功的关键。攻击者需要根据实际电路设计,将硬件木马电路寄生在某一正常的功能电路之中,使其成为该功能电路的旁路分支。
硬件木马攻击只需要植入很小规模的电路就可以对芯片的功能造成显著影响。基于侵入式的芯片级硬件攻击对整体系统的功能破坏非常奏效。另一方面,以不破坏芯片的物理封装为特点的边频攻击,利用芯片在工作时的功耗、时间、电磁辐射等物理特性推断芯片的工作方式,猜测系统中的密文信息。边频攻击中,以差分功耗分析最具代表性。
差分功耗分析根据嵌入式处理器芯片使用固定密钥对输入的多组不同明文数据进行加密操作时CMOS(complementary Metal Oxide Semieonduetor)电路的功耗变化情况,猜测局部密钥位与可量测输出之间的区分函数,并将区分函数的输出与实际功耗曲线进行对比验证,从而分析出嵌入式处理器在加密操作中所使用的密钥。尽管攻击者无需在硬件平台上进行大量的改动,但是在攻击过程中,攻击者需要有处理器准确的功耗模型,并且在实施攻击的过程中,电路板的环境噪声、示波器的采样频率、数据深度等因素都对攻击的结果造成直接的影响。因而,在实际环境中的边频攻击存在着局限性。
这些攻击方式都各具特点。软件攻击的攻击范围广泛、实施容易,且不易发觉,但是其对攻击对象的平台依赖度高,传播需要借助网络等通讯手段。嵌入式系统多种多样,并且不是所有的系统都采用相同的开放操作系统,还有大量的嵌入式设备处于离线工作状态中。此外为满足不同的应用环境的需求,不少设备都是使用封闭的或者特别定制的软件系统,有的设备甚至没有操作系统。这样的软件环境大大降低了恶意软件的威胁。
而芯片级的物理攻击在实际攻击中会受到各种约束条件的限制。首先,对于侵入式的芯片级硬件攻击来说,其攻击成本非常高昂,并且每次攻击都只能针对一块芯片。对攻击者来说,实现起来也困难,必须要借助专门的实验环境才能完成有效攻击。然而最重要的一点是侵入式的芯片级硬件攻击无法了解系统在运行过程中的情况。另一方面,对于非侵入式的芯片级硬件攻击需要有精确的芯片模型作为参考,并且对嵌入式系统的工作环境要求严格,环境误差对攻击结果的影响明显,因而也无法广泛地针对嵌入式系统展开攻击。相反在实际攻击中,采用系统级的硬件攻击最为现实。首先,系统级的硬件攻击可以针对任何能够运行的嵌入式系统;其次攻击者可以通过系统级的硬件攻击确切地掌握嵌入式设备在运行时的数据信息;最后,系统级的硬件攻击成本低廉的特点使得攻击者可以很容易地实现。因此,就实际意义而言,系统级攻击,特别是总线监听以及篡改攻击,才是嵌入式系统在运行过程中所需要面临的最主要安全威胁。
各种攻击方式的特性比较如表1所示。
过去的研究说明,嵌入式系统所面临的安全性威胁主要源于嵌入式系统运行过程中程序以及数据的安全性。
4、嵌入式处理器的安全设计准则
面对以总线监听以及总线篡改攻击为代表的系统级硬件攻击,本文假设嵌入式处理器本身是安全可信的,攻击者无法获取来自嵌入式处理器内部的机密信息,并且本文还假设除处理器以外的其他外部设备都是不可信任的,设计者无法确保来自这些设备的数据是否被攻击者监听或篡改。在这种安全前提下,嵌入式系统的攻击对象主要来自两个地方:数据总线和片外存储器。图5描述了针对嵌入式设备的系统级硬件攻击模型。在现实条件下,程序被保存在处理器外部的不可信的存储器中。攻击者可能将存储器芯片从电路板中取下,并通过物理的方法读取每一位的状态。
如果程序是以明文的形式保存,那么攻击者将会得到其有用的信息。此外,处理器与存储器之间的数据总线也是不可信的。被访问的指令会受到监控的威胁。因此,为了避免这类攻击,在设计一个新的嵌入式处理器时必须对这些安全威胁予以细致考虑。在已知系统级硬件攻击模型的基础上,若嵌入式处理器在设计规划之初就有相关的安全性指导,则可以有效地帮助嵌入式处理器提高整体系统的安全性。因此,有必要为嵌入式处理器制定合理的安全设计准则。我们根据已有的系统级攻击,为嵌入式处理器归纳出了以下安全设计准则:
(l)、限制总线上的数据传输。处理器如果对总线上的数据传输进行有效的控制,则意味着更少的信息暴露在电路板的金属导线上,从而减小总线监听所带来的风险;此外限制数据传输可以避免攻击者随意地操作总线,增加攻击者通过总线监听分析嵌入式系统的难度。
(2)、保护数据信息的机密性。安全的嵌入式处理器应当能确保片外存储器中保存的数据信息的机密性。经过加密操作使数据信息的真实内容隐藏在密文中。即使攻击者能够完全读取存储器中的内容或者捕获总线中的所有信息,在没有密钥的情况下攻击者也无法获取其中的信息。这样才能保证攻击者不能通过系统级的攻击手段破解系统。
(3)、确保程序加密空间的独立性。不同的程序在嵌入式系统中应当具有相互独立的加密空间。在由单一密钥保存的系统中,存在着安全脆弱性。攻击者能够通过窃取某一个程序的密钥,从而获取到其他程序空间的指令数据。因而,安全的嵌入式处理器应当在处理器中采取相应的保护机制,提高安全保护的健壮性。处理器应当使用相互独立的密钥对存储器中的各个程序予以加密,从而保证每一程序被隔离在了自己的空间中。
(4)、保护数据信息的完整性。面对总线篡改攻击,仅仅保护数据的加密性是不够的。攻击者可以通过篡改通信数据,修改嵌入式处理器的指令,并通过分析嵌入式处理器的行为,了解嵌入式处理器的内部运行机制。因此,为了能够辨别这些由攻击者伪造的数据,安全的嵌入式处理器应当确保运行过程中数据信息的完整性,从而保证在处理器中运行的数据指令的合法性。
(5)、确保安全敏感信息的时效性。在安全的嵌入式处理器中运行的安全敏感信息应当具备时效性。嵌入式处理器中,诸如密钥等机密信息保存的时间越长,被捕获的可能性就越高。如果嵌入式处理器将根据程序指令行为以及系统的运行周期,定期地对密钥进行更换,那么可以有效地防止攻击者对系统的暴力攻击,提供整体系统的安全性。
(6)、隔离安全信息与正常的数据信息。在处理器内部安全信息与正常的数据信息应当予以合理地隔离。否则将安全信息与正常的数据信息保存在相同的存储器空间内既降低了处理器运行时的性能又可能给处理器带来潜在的安全隐患。因此处理器在结构应当将安全信息与正常的数据信息予以隔离。
通过以上的安全准则,安全的嵌入式处理器可以对系统中数据信息的机密性、完整性提供完善的保护,从而有效地避免攻击者通过总线监听、篡改等系统级攻击方式,分析系统,寻找系统的漏洞。
希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库(软考历年真题)、软考培训教材和软考视频教程,多样的培训方式包括在线辅导、面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。
软考备考资料免费领取
去领取