嵌入式系统安全机制探讨
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统安全机制探讨
一、嵌入式系统所面临的安全问题
一套完整的嵌入式系统由相关的硬件及其配套的软件构成;硬件部分又可以划分为电路系统和芯片两个层次。在应用环境中,恶意攻击者可能从一个或多个设计层次对嵌入式系统展开攻击,从而达到窃取密码、篡改信息、破坏系统等非法目的。若嵌入式系统应用在诸如金融支付、付费娱乐、军事通讯等高安全敏感领域,这些攻击可能会为嵌入式系统的安全带来巨大威胁,给用户造成重大的损失。根据攻击层次的不同,这些针对嵌入式系统的恶意攻击可以划分为软件攻击、电路系统级的硬件攻击以及基于芯片的物理攻击三种类型,如图1所示。
图1嵌入式系统所面临的安全威胁
在各个攻击层次上均存在一批非常典型的攻击手段。这些攻击手段针对嵌入式系统不同的设计层次展开攻击,威胁嵌入式系统的安全。下面本文将对嵌入式系统不同层次上的攻击分别予以介绍。
1、软件层次的安全性分析
在软件层次,嵌入式系统运行着各种应用程序和驱动程序。在这个层次上,嵌入式系统所面临的恶意攻击主要有木马、蠕虫和病毒等。从表现特征上看,这些不同的恶意软件攻击都具有各自不同的攻击方式。病毒是通过自我传播以破坏系统的正常工作为目的;蠕虫是以网络传播、消耗系统资源为特征;木马则需要通过窃取系统权限从而控制处理器。从传播方式上看,这些恶意软件都是利用通讯网络予以扩散。在嵌入式系统中最为普遍的恶意软件就是针对智能手机所开发的
病毒、木马。这些恶意软件体积小巧,可以通过 SMS(ShortMessagingservice)短信、软件下载等隐秘方式侵入智能手机系统,然后等待合适的时机发动攻击。
尽管在嵌入式系统中恶意软件的代码规模都很小,但是其破坏力却是巨大的。
2005年在芬兰赫尔辛基世界田径锦标赛上大规模爆发的手机病毒Cabir便是恶意软件攻击的代表。截至到2006年4月,全球仅针对智能手机的病毒就出现了近两百种,并且数量还在迅猛增加。恶意程序经常会利用程序或操作系统中漏洞获取权限,展开攻击。最常见的例子就是由缓冲区溢出所引起的恶意软件攻击。攻击者利用系统中正常程序所存在的漏洞,对系统进行攻击。图2.就描述了一段具有安全隐患的程序代码。在主程序f()中调用了g()子程序,其中参数x、y以指针的形式进行传递,字符串x的内容将被复制到本地变量b中,然而在这一过程中程序并没有进行检查字符串x的大小。因此,恶意攻击者可以在程序在运行的过程中利用该漏洞展开缓冲区溢出攻击。
攻击者所采取的具体攻击方法如图3所示。在系统运行过程中,当子程序调用系统函数strcpy()时,若攻击者输入的字符串x大于b的大小,则会在内存片段中发生溢出,程序会跳转到攻击者所设计的危险代码中,从而导致程序的控制权为恶意攻击者所获取。在这一过程中,攻击者必须要了解处理器的体系结构与执行方式,掌握正常程序中所存在的漏洞,同时还要能够将危险的程序代码注入到系统中,才能够完成软件攻击。
图2具有安全隐患的代码
图3缓冲溢出攻击
因而,随着嵌入式系统日益推广应用,其己经不像过去那么安全。恶意软件攻击可以根据恶意攻击者的需求对嵌入式系统实施干扰、监视甚至远程控制,己经对嵌入式系统的安全应用构成了实质性的威胁。
2、系统层次的安全性分析
在嵌入式设备的系统层次中,设计者需要将各种电容、电阻以及芯片等不同的器件焊接在印刷电路板上组成嵌入式系统的基本硬件,而后将相应的程序代码写入电路板上的非易失性存储器中,使嵌入式系统具备运行能力,从而构成整个系统。为了能够破解嵌入式系统,攻击者在电路系统层次上设计了多种攻击方式。这些攻击都是通过在嵌入式系统的电路板上施加少量的硬件改动,并配合适当的底层汇编代码,来达到欺骗处理器、窃取机密信息的目的。在这类攻击中,具有代表性的攻击方式主要有:总线监听、总线篡改以及存储器非法复制等攻击方式。
攻击者为了实现系统级攻击,首先需要在硬件层次上对嵌入式系统进行修改,增加必要的攻击电路,从而构成硬件攻击平台。图4描述了一套用于总线监听的攻击平台。恶意攻击者将一块FPGA电路板挂载在嵌入式系统的数据总线与地址总线上。通过配置FPGA器件,攻击者可以构建攻击所需要的各种监控逻辑,从而捕捉系统总线中的通信信息,为攻击者提供分析所需的数据素材。此外,FPGA
电路板还对嵌入式处理器的通用接口进行监听。当程序指令运行到操作通用接口时,FPGA电路板可以在截获程序指令的同时捕获接口上的电平变化,从而为分析嵌入式系统的程序提供数据支持。FPGA搜集到的所有信息都将上传到攻击者的 PC(PersonalComPuter)中,帮助攻击者对嵌入式系统的运行方式进行解析。攻击者在侦测总线、监听通讯的基础上,还可以对处理器与外部设备之间的通讯进行修改,从而破坏系统的正常运行,这种攻击被称为总线篡改攻击。
图4基于总线监听的攻击平台
在总线监听的攻击平台上,攻击者只需要进行少量的硬件改动即可实施总线篡改攻击。攻击者在硬件上的工作是要在系统总线上插入多路选择器,使得攻击平台可以旁路嵌入式处理器在与外部设备之间的正常通讯。除此以外,攻击者还需要对FPGA器件进行重新配置,使其能够在系统运行时伪装成嵌入式系统中的正常外设,欺骗嵌入式处理器。当嵌入式处理器对外部设备进行通讯时,由FPGA 电路板对外部设备的应答予以篡改,或者直接伪造应答,从而诱导嵌入式处理器完成各种攻击者所需要的相关操作。
总线监听攻击可以帮助恶意攻击者盗取保存在片外存储器中的有价值信息;总线篡改攻击可以帮助恶意攻击者控制嵌入式系统的运行;在适当的软件配合下,总线篡改攻击还可以完成对加密系统的暴力攻击。在实际攻击中,这两种攻击方式经常结合起来,共同对嵌入式系统展开攻击。
3、芯片层次的安全性分析
嵌入式系统的芯片是硬件实现中最低的层次,然而在这个层次上依然存在着面向芯片的硬件攻击。这些攻击主要期望能从芯片器件的角度寻找嵌入式系统安全漏洞,实现破解。根据实现方式的不同,芯片级的攻击方式可以分为侵入式和非侵入式两种方法。其中,侵入式攻击方式需要将芯片的封装予以去除,然后利用探针等工具直接对芯片的电路进行攻击。侵入式的攻击方式中,以硬件木马攻击最具代表性。而非侵入式的攻击方式主要是指在保留芯片封装的前提下,利用芯片在运行过程中泄露出来的物理信息进行攻击的方式,这种攻击方式也被称为边频攻击。硬件木马攻击是一种新型的芯片级硬件攻击。这种攻击方式通过逆向工程分析芯片的裸片电路结构,然后在集成电路的制造过程中,向芯片硬件电路中注入的带有特定恶意目的的硬件电路,即“硬件木马”,从而达到在芯片运行的过程中对系统的运行予以控制的目的。硬件木马攻击包括木马注入、监听触发以及木马发作三个步骤。首先,攻击者需要分析芯片的内部电路结构,在芯片还在芯片代工厂制造时将硬件木马电路注入到正常的功能电路中;待芯片投入使用后硬件木马电路监听功能电路中的特定信号;当特定信号达到某些条件后,硬件木马电路被触发,木马电路完成攻击者所期望的恶意功能。经过这些攻击步骤,硬件木马甚至可以轻易地注入到加密模块中,干扰其计算过程,从而降低加密的安全强度。在整个攻击过程中,硬件木马电路的设计与注入是攻击能否成功的关键。攻击者需要根据实际电路设计,将硬件木马电路寄生在某一正常的功能电路之中,使其成为该功能电路的旁路分支。
硬件木马攻击只需要植入很小规模的电路就可以对芯片的功能造成显著影响。基于侵入式的芯片级硬件攻击对整体系统的功能破坏非常奏效。
另一方面,以不破坏芯片的物理封装为特点的边频攻击,利用芯片在工作时的功耗、时间、电磁辐射等物理特性推断芯片的工作方式,猜测系统中的密文信息。边频攻击中,以差分功耗分析最具代表性。
差分功耗分析根据嵌入式处理器芯片使用固定密钥对输入的多组不同明文数据进行加密操作时CMOS(complementary Metal Oxide Semieonduetor)电路的功耗变化情况,猜测局部密钥位与可量测输出之间的区分函数,并将区分函数的输出与实际功耗曲线进行对比验证,从而分析出嵌入式处理器在加密操作中所