主机保护区域

主机保护区域（，缩写HPA）也称主机保护区，是普通硬盘或固态硬盘上的一个操作系统一般不可见的区域，于2001年在ATA-4标准CXV (T13)中引入。

 工作方式 
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。 就是此种实现的一个例子，其中使用了启动工程扩展记录（Boot Engineering Extension Record，缩写BEER）和保护区运行时接口扩展服务（Protected Area Run Time Interface Extension Services，缩写PARTIES）。Blunden, Bill. The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System. 1st ed. Jones & Bartlett Publishers, 2009 p.538另一个例子是Gujin安装程序，它可以在BEER中安装引导程序，命名伪分区为/dev/hda0或/dev/sdb0；这样只有冷启动（断电再开机）才能成功，因为热启动（Control-Alt-Delete）将无法读取HPA。
 计算机制造商可以使用此区域来容纳预装的操作系统，以用于安装和恢复，从而代替提供DVD或CD光盘。
 戴爾笔记本电脑在HPA中隐藏实用工具。IBM和LG笔记本电脑在HPA中隐藏系统恢复软件。
 各防盗找回和监控服务供应商也会利用HPA。例如，笔记本电脑安全公司使用HPA来加载向服务器报告机器启动的软件。HPA的优势是即便被盗的笔记本电脑硬盘被格式化，HPA也不会改变。
 HPA也可能被用来存储不合法的数据以逃避取证。
 部分Rootkit在HPA中隐藏以躲避反Rootkit和反病毒安全软件。
 某些NSA攻击工具使用HPA实现应用程序持久化。

 识别和操控 
有许多工具和方法可以识别硬盘驱动器上的HPA。

HPA功能可以通过隐藏, 并且可以“冻结”（至下次硬盘关机）或受到密码保护。

 识别工具 

  by Data Synergy

  by Guidance Software
  by Access Data

 识别方法 
Windows程序可以检测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)
使用下列参数调用程序（版本 >= 8.0）将检测sdX上的HPA：
 hdparm -N /dev/sdX

 操控方法 
Windows程序可以用来创建一个HPA。例如，创建一个10GB HPA：

Linux程序（版本 >= 8.0）使用下列参数调用  可以创建一个HPA：（sdX：目标驱动器，#：非HPA可见扇区数量）
 hdparm -N p# /dev/sdX

 参见 

 （DCO）
 GUID磁碟分割表（GPT）
 主引导记录（MBR）

 参考资料 

 外部链接 

 The Sleuth Kit 
 International Journal of Digital Evidence 
 Dublin City University Security & Forensics wiki
 Wiki Web For ThinkPad Users 

Category:ATA