新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式系统安全性(上)

嵌入式系统安全性(上)

—— 对攻击状况和防卫策略的概述和分析
作者:■ Frank Altschuler 和 Bruno Zoppis, Trango Virtual Processors公司时间:2008-04-30来源:电子产品世界收藏

  随着电子装置担负的责任越来越多,我们放入蜂窝式电话、媒体播放器、机顶盒以及其他电器的个人信息也越来越多。于是,涵盖了隐私信息保护的方方面面,从在商业终端(POS)上进行的信用卡交易的真实性保护,一直到私人语音邮件的防护。

本文引用地址:http://www.eepw.com.cn/article/82062.htm

  在这篇调研报告中,我们将回顾最基本的攻击状况、弱点,并讨论最好的防卫策略。我们从硬件、软件及软硬件混合的角度来分析的强化,比如安全引导、系统管理程序对存储器的控制。

  产品层次的正式安全认证可以具体到某一特定的应用,于是,详情会被保存得相当隐秘,这也就不难理解了。同样的,我们也从安全的角度,提出能够产生有用度量的方法,来决定SOC及系统组件的一般鲁棒性和适用性。(注:鲁棒性(robustness)就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。)

攻击状况分析

  知道我们所担心的是什么,这是很重要的。它们的技巧是什么?它们的资源有几种?威胁的类型千变万化,从相对低强度的软件攻击—这种攻击基于一些可在网上新闻组(如:alt.hacker或各种各样的“warez”站点)找到的软件—一直到资金充足的工业间谍活动。

攻击状况可合乎情理地划分为如下几类:

  .一个聪明的外部人员:这个人很聪明但对系统的了解却很有限。他已经可以使用先进程度中等的设备,并可以利用已知的弱点而不是制造新的弱点。

  .一个充分了解系统的内部人员:这个人受过专业技术教育并拥有技术方面的经验。他对系统各个部件的了解程度不同,但是,由于其位置处于“防火墙之后”,他将会获得具有高度损坏性的详细资料。这种人可以利用高度专业化的工具和手段进行分析。

  .一个有资金支持的组织:一个组织将能够组建具有技术互补性的专家队伍。在那个对系统了解充分的内部人可能在某些特定的领域具有专长,而该组织可以通过增加人手来填补这些领域内的空白。他们将有机会使用先进的分析工具和精密的仪器来更改组件。聚焦离子束(FIB)是一种复杂且昂贵设备的技术,可以用来修改集成电路。这种设备远远超过大多数个人的使用需要,但是,那些破解有着重要价值的对象的安全防护措施的组织却要利用该技术。

攻击

  攻击者技术和能力不同,他们的方法也不同。我们从一些基本可以在分属各种威胁程度的几种攻击方法开始。

  一类范围很宽的软件的攻击,依赖于攻击者在执行环境中获得足够的特权,以便能控制和获取敏感的装置及数据。例如,在iPhone软件体系结构的开发过程中,诸如浏览器等部分就处于系统的优先层面1。从系统集成的角度来说,这是有道理的。但是使得系统易遭攻击,因为任何会受到威胁的系统组成部分,可以具有最高权限级别,因此可以访问大量系统资源。

  使用这种方法的最近的一个例子,由Charlie Miller等人在去年夏天公布于众。通过将一个恶意的HTML文件指向电话的Safari网络浏览器,可以控制对包含敏感信息的存储区的访问。这会使电话的Safari网络浏览器崩溃。

  在实际应用中,这种攻击可以通过发含有链接的邮件,这样一个简单的权宜之计来实现。其中,邮件中链接所指的是一个具有恶意HTML的服务器。如果接收者电击那个链接,使用那个攻击所转化的安装程序,接收者就很可能受到攻击。

  从安全的角度来说, DMA(直接存储器存取)存储器是一个令人头疼的问题。它们使用一种强大的机制来迅速而有效地转移数据,但是它们转移数据的过程也是大多数系统所无法控制的。如果目标装置是有DMA能力的,一个恶意的应用程序通过注入代码和数据或获取敏感信息,可以完全地搞垮一个系统。DMA控制器,由于它们可以很轻松地进行绕过保护层和访问存储器,因此在正在设计的SOC和系统中,必须对其进行一系列详细的审查。

  有一种掠夺普遍使用的数据结构的攻击方法是缓存器溢出攻击。这种攻击普遍利用那些被用来存储用户向一个程序所提供的输入的堆栈,比如说:姓名、住址、电话号码和其他的典型表格性数据。在正常操作条件下,数据按照操作者的输入顺序,与返回存储地址一起,存储在堆栈里。

  然而,在一些情况下,应用软件并不进行适当的检查,来确定接受到的数据是否超出了所分配的缓冲存储区域。向缓存中本该操作者输入数据的区域,传送尺寸过大的数据,并伴以一段恶意的执行代码及一个用来覆盖调用程序的返回地址的地址数据。那个特大的数据导致比堆栈配置空间更大空间的使用,造成缓存溢出。同时,由于地址数据过多的返回地址指向攻击者的恶意代码,当功能尝试返回时,就开始执行黑客在错误返回地址所写的代码。这种危害已经达成,侵入者掌握了控制权。

  一旦攻击行动成功地将执行代码放入它的域中,系统水平上的危险度就依赖于赋予被劫持的进程的授权水平。当然,如果被危及的程序在系统中被许可控制的范围并不宽,那么危害的程度就会相对减小。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭