网站大量收购独家精品文档,联系QQ:2885784924

深入SMRAM:SMM重载.DOC

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入SMRAM:SMM重载

深入SMRAM:SMM重载作者:Loic Duflot, Olivier Levillain, Benjamin Morin,Olivier Grumelard 译者:riusksk(泉哥) ?:CanSecWest 2009 ? 概要 ? ·前言 ·SMM简介 ·利用SMM执行攻击 ?? ? ? ? ·潜在用途:提权方案,rootkit ?? ? ? ? ·局限性 ·绕过D_LCK bit ?? ? ? ? ·内存缓冲(Memory caching ) ?? ? ? ? ·缓冲中毒(Cache poisoning) ?? ? ? ? ·应用与演示 ·影响 ·对策与结论 ? ·前言 ? System Management Mode(SMM)是x86与x86-64的CPU操作模式,在CanSecWest 2006大会上已有人演示了如何利用SMM来提升权限的,其它更为详细的资料可参考Phrack杂志上Ivanlef0u与Branco (BSDDeamon)等人发表的文章。在Black Hat briefings 2008 (Sparks, Embleton)大会上,有人展示了首个SMM rootkit,从这些presentations/papers可以得出一个结论:如果可以修改SMRAM的内容,那么攻击者可以做各种有趣的事情(至 少对他们而言),但SMRAM在常规情况下都是受限制的。本文的目的就是演示如何绕过这些限制。 ? ·SMM简介 ? PC架构 ? 什么是System Management Mode? ? SMM属于16位模式,用于主板控制和电源管理,比如: ? ? ? ? ? ·热管理(Thermal management) ? ? ? ? ? ·笔记本电脑的电源管理(有时由高级配置和电源管理接口ACPI调用) 只有当CPU收到硬件系统管理中断SMI(System Management Interrupt)时,才进入系统管理模式。SMI均由蕊片组(chipset)产生,它通过向Advanced Power Management Control Register (AMPC)写入数据来产生SMI (outl(something, 0xb2)),这只需要具备输入/输出权限即可做到。 ? System Management Mode entry ? 关于入口,所有的单一CPU寄存器都将其保存在“memory saved state map”,而它自己又保存在一个称做SMRAM的内存区域中。SMRAM位于RAM中,每一个SMI handler均由SMRAM执行。当SMI handler执行“rsm”汇编指令时,CPU state将恢复到保存在SMRAM中的操作模式,即返回前一个操作模式,接着把控制权归还给中断程序。当运行在SMM的管理软件被中断时,操作系统甚至 未能获知。 ? SMRAM地址 ? SMRAM地址由CPU中的SMBASE寄存器指定,该寄存器无法被访问到,它的内容被复制到SMRAM saved state map,并且只有当CPU state重储时才改变,它也可用于多CPU系统。 实际上,SMBASE地址通常为: ? ? ? ·0xa0000:legacy SMRAM location ? ? ? ·0xfeda0000 (+/- 0x8000):high SMRAM location ? ? ? ·其它:顶段内存TSEG (Extended SMRAM) SMI handler基址位于SMBASE + 0x8000 (固定偏移量) ? SMRAM安全模式 ? System Management Mode下的代码拥有相应操作平台下的充分权限(甚至超过操作系统内核的权限),当系统未处于SMM时,应当防止SMRAM被访问,以防止SMI handler修改SMRAM中存储的内容。因此只有当CPU处于SMM下时,legacy SMRAM, high SMRAM and TSEG才能被访问,chipset中的D_OPEN bit被设置的情况除外。 (译注:pcitweak 用于读写PCI 配置空间信息,格式如下: ?? ? ? pcitweak -r PCI-ID [-b|-h] offset ?? ? ? pcitweak -w PCI-ID [-b|-h] offset value ) SMRAM保护机制 ? 防止SMI handler被修改的主要机制就是设置D_LCK位,当D_LCK位被设置时,chipset中SMRAM的configuration bits将变成只读(包含D_OPEN bit)。 ·利用SMM执行攻击 ? ? ? ?*权限提升方案: ?? ? ? ? ·可参

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档