主机保护区域
此条目翻译自其他语言维基百科,需要相关领域的编者协助校对翻译。 |
主机保护区域(英语:host protected area,缩写HPA)也称主机保护区,是普通硬盘或固态硬盘上的一个操作系统一般不可见的区域,于2001年在ATA-4标准CXV (T13)中引入。[1]
工作方式
IDE控制器具有可以使用ATA命令来查询数据的多个寄存器。返回的数据给出了有关连接到控制器的驱动器的信息。共有三个ATA命令涉及创建和使用主机保护区,它们是:
- IDENTIFY DEVICE
- SET MAX ADDRESS
- READ NATIVE MAX ADDRESS
操作系统使用“IDENTIFY DEVICE”命令来查找硬盘驱动器的可寻址空间。而“IDENTIFY DEVICE”命令会查询IDE控制器上的特定寄存器来确定驱动器的大小。
该寄存器可以通过SET MAX ADDRESS ATA命令更改。如果将该值设置为小于实际硬盘大小,则有效地创建了一个主机保护区域。因为操作系统只能处理由“IDENTIFY DEVICE”命令返回的寄存器值,通常无法寻址HPA内的驱动器部分,所以该区域受到保护。
只有其他软件或固件(如BIOS)能够使用主机保护区域时,该技术才能发挥作用。此类软件被称为“HPA aware”。它们使用ATA命令“READ NATIVE MAX ADDRESS”,该命令会访问包含硬盘真实大小的寄存器。要使用主机保护区域时,此类软件会使用READ NATIVE MAX ADDRESS代替IDENTIFY DEVICE的寄存器值。
使用
- 在HPA最早在硬盘固件上被实现时,当时的某些BIOS难以通过大容量硬盘启动。此时可以通过硬盘上的某些跳线来设置一个初始HPA,将柱面数限制为4095或4096,以便早期的BIOS启动。然后引导加载程序再重置HPA,以便操作系统看到完整的硬盘存储空间。
- 各种引导和诊断工具可以使用HPA,这通常配合BIOS。Phoenix FirstBIOS就是此种实现的一个例子,其中使用了启动工程扩展记录(Boot Engineering Extension Record,缩写BEER)和保护区运行时接口扩展服务(Protected Area Run Time Interface Extension Services,缩写PARTIES)。[2]另一个例子是Gujin安装程序,它可以在BEER中安装引导程序,命名伪分区为/dev/hda0或/dev/sdb0;这样只有冷启动(断电再开机)才能成功,因为热启动(Control-Alt-Delete)将无法读取HPA。
- 计算机制造商可以使用此区域来容纳预装的操作系统,以用于安装和恢复,从而代替提供DVD或CD光盘。
- 戴尔笔记本电脑在HPA中隐藏Dell MediaDirect实用工具。IBM和LG笔记本电脑在HPA中隐藏系统恢复软件。
- 各防盗找回和监控服务供应商也会利用HPA。例如,笔记本电脑安全公司Computrace使用HPA来加载向服务器报告机器启动的软件。HPA的优势是即便被盗的笔记本电脑硬盘被格式化,HPA也不会改变。
- HPA也可能被用来存储不合法的数据以逃避取证。[3]
- 部分Rootkit在HPA中隐藏以躲避反Rootkit和反病毒安全软件。
- 某些NSA攻击工具使用HPA[4]实现应用程序持久化。
识别和操控
有许多工具和方法可以识别硬盘驱动器上的HPA。
HPA功能可以通过DCO隐藏, 并且可以“冻结”(至下次硬盘关机)或受到密码保护。
识别工具
- ATATool by Data Synergy
- The Sleuth Ki
- EnCase by Guidance Software
- Forensic Toolkit by Access Data
识别方法
Windows程序ATATool可以检测HPA。例如,使用下列命令查看第一个磁盘是否具有HPA:
ATATOOL /INFO \\.\PhysicalDrive0
在Linux中有多种方法可以检测是否存在HPA。较新版本的Linux在系统启动时如果检测到HPA,将显示一条消息,例如:
dmesg | less [...] hdb: Host Protected Area detected. current capacity is 12000 sectors (6 MB) native capacity is 120103200 sectors (61492 MB)
使用下列参数调用程序hdparm(版本 >= 8.0)将检测sdX上的HPA:
hdparm -N /dev/sdX
操控方法
Windows程序ATATool可以用来创建一个HPA。例如,创建一个10GB HPA:
Linux程序hdparm(版本 >= 8.0)使用下列参数调用 可以创建一个HPA:(sdX:目标驱动器,#:非HPA可见扇区数量)
hdparm -N p# /dev/sdX
参见
参考资料
- ^ Host Protected Areas (PDF). [2018-04-14]. (原始内容存档 (PDF)于2020-10-20).
- ^ Blunden, Bill. The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System. 1st ed. Jones & Bartlett Publishers, 2009 p.538
- ^ Nelson, Bill; Phillips, Amelia; Steuart, Christopher. Guide to computer forensics and investigations 4th. Boston: Course Technology, Cengage Learning. 2010: 334. ISBN 1-435-49883-6.
- ^ 存档副本. [2018-04-14]. (原始内容存档于2020-10-30).