BIOS Rootkit

国内外对于BIOS Rootkit的检测研究目前尚处于起步阶段。

Rootkit可分为应用程序级Rootkit、系统工具级Rootkit和内核级Rootkit三个类型,我们今天讨论的就是内核级BIOS Rootkit。

自BIOS芯片改用为可擦写芯片(如FlashROM、EPROM)以来,在BIOS芯片里植入程序就变
得可能。最早,BIOS厂商选用这类芯片是为了方便BIOS日后的程序升级工作。然而,这也为BIOS
带来了新的安全隐患。
实模式提供了一种简单的单任务环境,可以直接访问无力内存和I/O空间,操作系统和应用软件运行在同
一个内存空间中和同一个优先级上,因此操作系统的数据很容易被应用软件所破坏。

BIOS Rootkit一般作为BIOS设计规范中的标准ISA或PCI模块存在,因此难于判断相应模块是否为BIOS Rootkit。整个ISA模块大小必须为512字节的倍数。

即使发现并判断出某个ISA/PCI模块为BIOS Rootkit,也只有通过硬件编程写入的方式才能清除。而硬件编程器并不是每个人都有并能熟练掌握的。

BIOS Rootkit主要依靠汇编程序来进行编写,并且汇编只能调用特定的BIOS中断调用。比如int 19h系统引导中断可以正常调用,而int 13h磁盘中断就无法正常使用,原因是BIOS引导计算机时,磁盘设备还没有准备好。INT 19的作用是系统自举,也就是引导加载程序进行冷起动。MBR被加载起来之后才会去HOOK INT13。

编写BIOS Rootkit的困难
通用性较好的BIOS Rootkit难于实现。
BIOS相关资料一直是各大BIOS厂商严格保守的机密,因此BIOS Rootkit编写需要的许多相关电器特性、调用参数等资料都无法找到。
BIOS芯片空间较为宝贵,一般为512K大小。除了厂家初始加入的固定程序外,可用的剩余空间往往不够放下BIOS Rootkit。

BIOS就芯片类型来说,主要分为以下几种:
一、 PROM(Programmable ROM)可编程存储器
PROM出厂时内部每一个字节数据都是$FF(也就是每个位都为1),且从未烧写过
二、.Mask ROM
三、 EPROM
它是由客户指定的数量较大的,由内存生产厂家依客户的指定内容,在大量生产的过程中直接
将数据写入,出厂之后就已经有特定的程序/数据码,内容也无法自行修改或烧写。

BIOS文件一般结构分析
BIOS文件保存着计算机最重要的基本输入输出的程序、系统设置信息、开机上电自检程序和系统启动自举程序。
通常来说BIOS文件一般都包含着BOOTBLOCK和各种初始化微程序,自动检测硬盘和CD驱动
器、输出PnP/PCI设备表等硬件设备程序,支持ACPI高级电源管理的启动程序。另外还有各个主板
厂家自己开发的功能扩展程序模块,以及各个主板厂家的BIOS启动logo等。
BIOS通常以压缩的形式保存微程序(一般使用LHA压缩算法)

多数BIOS病毒是以ISA模块存在的,ISA模块格式:在这里插入图片描述
BIOS内存布局
在这里插入图片描述
BOOTBLOCK位于000FE000h~000FFFFFh这个区段,而BIOS的入口点却在000FFFF0h。确切的说,在000FFFF0h~000FFFFF这16个字节中存放着一个跳转指令,用于调转到BIOS的执行入口。这句跳转指令可以在BIOS文件的最尾部的16个字节看到。

就主板BIOS而言,其最重要的工作集中在以下几个方面:
1). POST(Power On Self Test开机自检测)。
开机系统将控制权交给BIOS时,它会针对CPU各项寄存器,先检查其是否运行正常,接下来
会 检 查 8254 timer ( 可 编 程 外 围 计 时 芯 片 ) 、 9259A ( 可 编 程 中 断 器 ) 、 8237 DMA
Controller(DMA控制器)的状态。
2). Initial。
BIOS会针对动态内存(DRAM)、主板芯片组、显卡以及相关外围的寄存器(register)做初
始化(initialize)设置,并检测是否能够正常工作。
3). 记录系统的设置值。
BIOS会记录系统的设置值,并且会存贮在非挥发性内存(Non-Volatile RAM),如CMOS或
Flash Memory(ESCD区域)等。
4). 初始化常驻程序库。
BIOS会将常驻程序库(Runtime Program)常驻于某一段内存中。并将其提供给操作系统或应
用程序进行调用,如int 10h、int 13h、int 16h等中断调用函数。
这些工作完成以后,BIOS会检查是否存在ISA/PCI附加模块,如果有则加载运行(如以
ISA/PCI模块形式存在的BIOS Rootkit)。完成模块加载并成功运行后,BIOS将调用int 19h中断,
把磁盘第0柱头0磁道1扇区的系统启动数据,即MBR(Master Boot Record)提取到内存
0000:7c00处运行,从此完成BIOS向操作系统的CPU控制权移交工作。

读重庆大学硕士彭毅的学位论文《BIOS Rootkit及其检测技术的研究》后感。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摔不死的笨鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值